diff options
256 files changed, 8327 insertions, 4596 deletions
diff --git a/2020/info/19.md b/2020/info/19.md index 4dc84a04..98d78add 100644 --- a/2020/info/19.md +++ b/2020/info/19.md @@ -1,7 +1,7 @@ # Sharing blogs (and more) with org-webring Brett Gilio -[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.webm" subtitles="/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio-autogen.vtt"]] +[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.webm" subtitles="/2020/subtitles/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio.vtt"]] [Download compressed .webm video (25.8M)](https://media.emacsconf.org/2020/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio--compressed32.webm) [Download compressed .webm video (20.8M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--19-sharing-blogs-and-more-with-org-webring--brett-gilio--vp9-q56-video-original-audio.webm) diff --git a/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main--chapters.vtt b/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main--chapters.vtt new file mode 100644 index 00000000..6f7d26b1 --- /dev/null +++ b/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main--chapters.vtt @@ -0,0 +1,41 @@ +WEBVTT + + +00:00:19.840 --> 00:03:04.599 +Hyperdrives introduction + +00:03:04.600 --> 00:04:32.099 +About USHIN and the contributors + +00:04:32.646 --> 00:06:06.132 +Basic introduction to Hyperdrive + +00:06:06.133 --> 00:12:56.572 +Managing files with Hyperdrive.el + +00:12:56.573 --> 00:15:01.233 +Dired like interface + +00:15:01.234 --> 00:17:39.973 +History in hyperdrive + +00:17:39.973 --> 00:19:20.793 +Use case of sharing large files + +00:19:20.913 --> 00:23:26.198 +Drive creation with hyperdrive.el + +00:23:26.199 --> 00:30:06.818 +hyperdrive-mirror + +00:30:06.819 --> 00:34:20.879 +hyperdrive history + +00:34:20.880 --> 00:35:07.119 +Streaming video from hyperdrive + +00:35:08.746 --> 00:38:57.540 +hyperdrive.el under the hood + +00:38:57.541 --> 00:40:02.859 +Next steps diff --git a/2023/info/adventure-after.md b/2023/info/adventure-after.md index 4a5d4f30..f9d69acc 100644 --- a/2023/info/adventure-after.md +++ b/2023/info/adventure-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="adventure-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="adventure-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-adventure" id="subtitle"]] - -[[!template text="""Hi, I'm going to give you a little demo""" start="00:00:00.000" video="mainVideo-adventure" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-adventure" id="subtitle"]]</div>[[!template text="""Hi, I'm going to give you a little demo""" start="00:00:00.000" video="mainVideo-adventure" id="subtitle"]] [[!template text="""of a project that I'm working on""" start="00:00:04.040" video="mainVideo-adventure" id="subtitle"]] [[!template text="""which is called the `orgdungeon`.""" start="00:00:06.440" video="mainVideo-adventure" id="subtitle"]] [[!template text="""As you can see here, they are just a bunch of Org files""" start="00:00:09.840" video="mainVideo-adventure" id="subtitle"]] @@ -23,9 +20,7 @@ [[!template text="""so a similar interface to the developer""" start="00:00:53.200" video="mainVideo-adventure" id="subtitle"]] [[!template text="""who was using that technology to develop the game.""" start="00:00:57.560" video="mainVideo-adventure" id="subtitle"]] -[[!template new="1" text="""Demo""" start="00:01:01.200" video="mainVideo-adventure" id="subtitle"]] - -[[!template text="""Concretely, I'm going to give you""" start="00:01:01.200" video="mainVideo-adventure" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:01:01.200" video="mainVideo-adventure" id="subtitle"]]</div>[[!template text="""Concretely, I'm going to give you""" start="00:01:01.200" video="mainVideo-adventure" id="subtitle"]] [[!template text="""a demo of how the game looks like.""" start="00:01:03.800" video="mainVideo-adventure" id="subtitle"]] [[!template text="""So, this is a very vanilla Emacs setup.""" start="00:01:08.880" video="mainVideo-adventure" id="subtitle"]] [[!template text="""Then I open up the first Org file.""" start="00:01:14.840" video="mainVideo-adventure" id="subtitle"]] @@ -69,9 +64,7 @@ [[!template text="""I'm just try that. `M-x` and then `emi-escape-10`.""" start="00:03:21.400" video="mainVideo-adventure" id="subtitle"]] [[!template text="""All right.""" start="00:03:31.480" video="mainVideo-adventure" id="subtitle"]] -[[!template new="1" text="""emi-escape-12""" start="00:03:33.360" video="mainVideo-adventure" id="subtitle"]] - -[[!template text="""So I will jump to another file.""" start="00:03:33.360" video="mainVideo-adventure" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""emi-escape-12""" start="00:03:33.360" video="mainVideo-adventure" id="subtitle"]]</div>[[!template text="""So I will jump to another file.""" start="00:03:33.360" video="mainVideo-adventure" id="subtitle"]] [[!template text="""Or in the game, you jump to another plane.""" start="00:03:36.040" video="mainVideo-adventure" id="subtitle"]] [[!template text="""And now you know that""" start="00:03:39.360" video="mainVideo-adventure" id="subtitle"]] [[!template text="""there is a function called `emi-escape-12`.""" start="00:03:40.339" video="mainVideo-adventure" id="subtitle"]] @@ -95,9 +88,7 @@ [[!template text="""Write `emi-escape-12`,""" start="00:04:36.440" video="mainVideo-adventure" id="subtitle"]] [[!template text="""and then now you know the password is `emi`. Right.""" start="00:04:42.240" video="mainVideo-adventure" id="subtitle"]] -[[!template new="1" text="""The rest of the game""" start="00:04:47.040" video="mainVideo-adventure" id="subtitle"]] - -[[!template text="""So you can progress along these different files,""" start="00:04:47.040" video="mainVideo-adventure" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The rest of the game""" start="00:04:47.040" video="mainVideo-adventure" id="subtitle"]]</div>[[!template text="""So you can progress along these different files,""" start="00:04:47.040" video="mainVideo-adventure" id="subtitle"]] [[!template text="""and then if you...""" start="00:04:51.840" video="mainVideo-adventure" id="subtitle"]] [[!template text="""Okay, it's like a game,""" start="00:04:53.520" video="mainVideo-adventure" id="subtitle"]] [[!template text="""but at the same time, it also teaches you""" start="00:04:54.640" video="mainVideo-adventure" id="subtitle"]] @@ -119,7 +110,7 @@ [[!template text="""I hope you enjoyed this little demo.""" start="00:05:51.360" video="mainVideo-adventure" id="subtitle"]] [[!template text="""Thank you.""" start="00:05:56.540" video="mainVideo-adventure" id="subtitle"]] - +</div> Captioner: sachac diff --git a/2023/info/adventure-before.md b/2023/info/adventure-before.md index c774f5ff..7c9dda68 100644 --- a/2023/info/adventure-before.md +++ b/2023/info/adventure-before.md @@ -1,18 +1,18 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 6-min talk; Q&A: Etherpad +Format: 6-min talk ; Q&A: Etherpad Status: All done -<div class="vid"><video controls preload="none" id="adventure-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="adventure-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-adventure"><source src="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-adventure" data=""" 00:00.000 Introduction 01:01.200 Demo 03:33.360 emi-escape-12 04:47.040 The rest of the game -"""]]<div></div>Duration: 05:58 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.opus">Download --main.opus (3.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.webm">Download --main.webm (19MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/2oqbPJB8Wm3QSo4HCKAyVn">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 05:58 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-adventure">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.opus">Download --main.opus (3.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-adventure--an-orgmode-based-text-adventure-game-for-learning-the-basics-of-emacs-inside-emacs-written-in-emacs-lisp--chunghong-chan--main.webm">Download --main.webm (19MB)</a></li><li><a href="https://toobnix.org/w/2oqbPJB8Wm3QSo4HCKAyVn">View on Toobnix</a></li><li><a href="https://youtu.be/7R0yA0R1jsk">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/adventure-nav.md b/2023/info/adventure-nav.md index 95382fff..d50bda6c 100644 --- a/2023/info/adventure-nav.md +++ b/2023/info/adventure-nav.md @@ -2,5 +2,5 @@ <div class="talk-nav"> Back to the [[talks]] Next by track: <a href="/2023/talks/uni">Authoring and presenting university courses with Emacs and a full libre software stack</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/collab-after.md b/2023/info/collab-after.md index de166231..06ebf8d4 100644 --- a/2023/info/collab-after.md +++ b/2023/info/collab-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="collab-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="collab-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-collab" id="subtitle"]] - -[[!template text="""[Lukas]: Welcome to our presentation,""" start="00:00:00.000" video="mainVideo-collab" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""[Lukas]: Welcome to our presentation,""" start="00:00:00.000" video="mainVideo-collab" id="subtitle"]] [[!template text="""Collaborative Data Processing""" start="00:00:01.875" video="mainVideo-collab" id="subtitle"]] [[!template text="""and Documenting using org-babel.""" start="00:00:03.600" video="mainVideo-collab" id="subtitle"]] [[!template text="""My name is Lukas Bossert, and I'm""" start="00:00:06.040" video="mainVideo-collab" id="subtitle"]] @@ -35,9 +32,7 @@ [[!template text="""All right.""" start="00:01:13.360" video="mainVideo-collab" id="subtitle"]] [[!template text="""Let's dive in to that.""" start="00:01:14.240" video="mainVideo-collab" id="subtitle"]] -[[!template new="1" text="""Org Mode""" start="00:01:16.080" video="mainVideo-collab" id="subtitle"]] - -[[!template text="""Jonathan, can you give us an introduction about Org Mode?""" start="00:01:16.080" video="mainVideo-collab" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Org Mode""" start="00:01:16.080" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""Jonathan, can you give us an introduction about Org Mode?""" start="00:01:16.080" video="mainVideo-collab" id="subtitle"]] [[!template text="""[Jonathan]: Of course.""" start="00:01:19.920" video="mainVideo-collab" id="subtitle"]] [[!template text="""So in case anyone isn't familiar with it,""" start="00:01:20.440" video="mainVideo-collab" id="subtitle"]] [[!template text="""Org Mode, in the words of Carsten Dominik,""" start="00:01:23.080" video="mainVideo-collab" id="subtitle"]] @@ -62,9 +57,7 @@ [[!template text="""So what you see here is the plain text underneath it.""" start="00:02:10.800" video="mainVideo-collab" id="subtitle"]] [[!template text="""So this is Org Mode.""" start="00:02:14.720" video="mainVideo-collab" id="subtitle"]] -[[!template new="1" text="""Working together""" start="00:02:18.960" video="mainVideo-collab" id="subtitle"]] - -[[!template text="""And Jonathan, since we kind of already""" start="00:02:18.960" video="mainVideo-collab" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Working together""" start="00:02:18.960" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""And Jonathan, since we kind of already""" start="00:02:18.960" video="mainVideo-collab" id="subtitle"]] [[!template text="""did the introduction together, should we""" start="00:02:21.920" video="mainVideo-collab" id="subtitle"]] [[!template text="""also do the working part together?""" start="00:02:26.120" video="mainVideo-collab" id="subtitle"]] [[!template text="""[Jonathan]: Of course.""" start="00:02:28.761" video="mainVideo-collab" id="subtitle"]] @@ -152,9 +145,7 @@ [[!template text="""50 items is fine.""" start="00:06:23.160" video="mainVideo-collab" id="subtitle"]] [[!template text="""So what do we see here, Jonathan?""" start="00:06:25.360" video="mainVideo-collab" id="subtitle"]] -[[!template new="1" text="""Data cleaning""" start="00:06:27.840" video="mainVideo-collab" id="subtitle"]] - -[[!template text="""[Jonathan]: Right.""" start="00:06:27.840" video="mainVideo-collab" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Data cleaning""" start="00:06:27.840" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""[Jonathan]: Right.""" start="00:06:27.840" video="mainVideo-collab" id="subtitle"]] [[!template text="""So the first thing we see when we look at this""" start="00:06:28.320" video="mainVideo-collab" id="subtitle"]] [[!template text="""is a couple of Q codes at the top,""" start="00:06:31.240" video="mainVideo-collab" id="subtitle"]] [[!template text="""which are an artifact of Wikidata.""" start="00:06:33.308" video="mainVideo-collab" id="subtitle"]] @@ -194,9 +185,7 @@ [[!template text="""and consortia.""" start="00:07:59.960" video="mainVideo-collab" id="subtitle"]] [[!template text="""Very nice.""" start="00:08:02.760" video="mainVideo-collab" id="subtitle"]] -[[!template new="1" text="""Processing""" start="00:08:04.040" video="mainVideo-collab" id="subtitle"]] - -[[!template text="""So let's come to our main part, doing some processing.""" start="00:08:04.040" video="mainVideo-collab" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Processing""" start="00:08:04.040" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""So let's come to our main part, doing some processing.""" start="00:08:04.040" video="mainVideo-collab" id="subtitle"]] [[!template text="""Let me give you a headline here, process the data.""" start="00:08:08.720" video="mainVideo-collab" id="subtitle"]] [[!template text="""What do you want to do first?""" start="00:08:13.640" video="mainVideo-collab" id="subtitle"]] [[!template text="""[Jonathan]: This is not a very complicated data set,""" start="00:08:15.520" video="mainVideo-collab" id="subtitle"]] @@ -283,9 +272,7 @@ [[!template text="""this also will be updated once it's exported.""" start="00:12:30.400" video="mainVideo-collab" id="subtitle"]] [[!template text="""Very nice, Jonathan.""" start="00:12:35.080" video="mainVideo-collab" id="subtitle"]] -[[!template new="1" text="""Visualization""" start="00:12:36.040" video="mainVideo-collab" id="subtitle"]] - -[[!template text="""But I think we did a lot of analysis""" start="00:12:36.040" video="mainVideo-collab" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Visualization""" start="00:12:36.040" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""But I think we did a lot of analysis""" start="00:12:36.040" video="mainVideo-collab" id="subtitle"]] [[!template text="""on text and counting things.""" start="00:12:38.975" video="mainVideo-collab" id="subtitle"]] [[!template text="""Can we also do something more visual?""" start="00:12:41.080" video="mainVideo-collab" id="subtitle"]] [[!template text="""Show me something.""" start="00:12:43.680" video="mainVideo-collab" id="subtitle"]] @@ -318,9 +305,7 @@ [[!template text="""and I get a nice plot of the network below our cell.""" start="00:13:52.920" video="mainVideo-collab" id="subtitle"]] [[!template text="""So this is very nice indeed.""" start="00:13:59.160" video="mainVideo-collab" id="subtitle"]] -[[!template new="1" text="""Preserve""" start="00:14:01.760" video="mainVideo-collab" id="subtitle"]] - -[[!template text="""So I think it's about time to wrap it up and to export""" start="00:14:01.760" video="mainVideo-collab" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Preserve""" start="00:14:01.760" video="mainVideo-collab" id="subtitle"]]</div>[[!template text="""So I think it's about time to wrap it up and to export""" start="00:14:01.760" video="mainVideo-collab" id="subtitle"]] [[!template text="""and to preserve the data and the documentation""" start="00:14:05.200" video="mainVideo-collab" id="subtitle"]] [[!template text="""that we have in our very last step, calling preserve.""" start="00:14:07.960" video="mainVideo-collab" id="subtitle"]] [[!template text="""So I would like to do it in two steps.""" start="00:14:13.080" video="mainVideo-collab" id="subtitle"]] @@ -413,7 +398,7 @@ [[!template text="""Thanks for listening.""" start="00:19:01.120" video="mainVideo-collab" id="subtitle"]] [[!template text="""[Jonathan]: Thank you all, have a good day.""" start="00:19:05.720" video="mainVideo-collab" id="subtitle"]] - +</div> Captioner: amine diff --git a/2023/info/collab-before.md b/2023/info/collab-before.md index 22e68600..a4d8979c 100644 --- a/2023/info/collab-before.md +++ b/2023/info/collab-before.md @@ -1,13 +1,13 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 20-min talk; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference +Format: 20-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Status: All done -<div class="vid"><video controls preload="none" id="collab-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="collab-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-collab"><source src="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-collab" data=""" 00:00.000 Introduction 01:16.080 Org Mode 02:18.960 Working together @@ -16,6 +16,6 @@ Status: All done 12:36.040 Visualization 14:01.760 Preserve -"""]]<div></div>Duration: 19:16 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.opus">Download --main.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.webm">Download --main.webm (62MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--room-noise.webm">Download --room-noise.webm</a></li><li><a href="https://toobnix.org/w/7AAwoawr5MXNSrqiHJQoak">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 19:16 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-collab">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.opus">Download --main.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--main.webm">Download --main.webm (62MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-collab--collaborative-data-processing-and-documenting-using-orgbabel--jonathan-hartman-lukas-c-bossert--room-noise.webm">Download --room-noise.webm</a></li><li><a href="https://toobnix.org/w/7AAwoawr5MXNSrqiHJQoak">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=fz7-Kd83IjM">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/collab-nav.md b/2023/info/collab-nav.md index 55c61f3f..66f593f6 100644 --- a/2023/info/collab-nav.md +++ b/2023/info/collab-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/nabokov">Why Nabokov would use Org-Mode if he were writing today</a> Next by track: <a href="/2023/talks/solo">How I play TTRPGs in Emacs</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/core-after.md b/2023/info/core-after.md index 13fa508a..6a24fa1c 100644 --- a/2023/info/core-after.md +++ b/2023/info/core-after.md @@ -1,8 +1,7 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="core-mainVideo-transcript"></a> -# Transcript (unedited) +<div class="transcript transcript-mainVideo"><a name="core-mainVideo-transcript"></a><h1>Transcript (unedited)</h1> [[!template text="""All right. Hi again, everyone.""" start="00:00:02.540" video="mainVideo-core" id="subtitle"]] [[!template text="""It's been a while. Well,""" start="00:00:03.840" video="mainVideo-core" id="subtitle"]] @@ -1559,7 +1558,7 @@ [[!template text="""felt like it was tiring to stay and listen to""" start="01:07:08.040" video="mainVideo-core" id="subtitle"]] [[!template text="""your answers. So thank you so much Stefan.""" start="01:07:10.900" video="mainVideo-core" id="subtitle"]] -Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20core%3A%20Emacs%20core%20development%3A%20how%20it%20works) +</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20core%3A%20Emacs%20core%20development%3A%20how%20it%20works) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/core-before.md b/2023/info/core-before.md index dfa57577..7360c892 100644 --- a/2023/info/core-before.md +++ b/2023/info/core-before.md @@ -1,12 +1,12 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 68-min talk; Q&A: BigBlueButton conference room +Format: 68-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="core-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 1:07:13 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.json">Download --main.json (2.4MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.opus">Download --main.opus (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.webm">Download --main.webm (211MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/m4XmrmE9Geat54AKT1RQaH">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-core"><source src="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 1:07:13 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-core">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.json">Download --main.json (2.4MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.opus">Download --main.opus (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.webm">Download --main.webm (211MB)</a></li><li><a href="https://toobnix.org/w/m4XmrmE9Geat54AKT1RQaH">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=2izQJiuL0vA">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/core-nav.md b/2023/info/core-nav.md index 57508c7e..5eb44913 100644 --- a/2023/info/core-nav.md +++ b/2023/info/core-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/devel">Emacs development updates</a> Next by track: <a href="/2023/talks/hyperamp">Top 10 ways Hyperbole amps up Emacs</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/cubing-after.md b/2023/info/cubing-after.md index dae3e345..a0ac454b 100644 --- a/2023/info/cubing-after.md +++ b/2023/info/cubing-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="cubing-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="cubing-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-cubing" id="subtitle"]] - -[[!template text="""Hello, everyone, and welcome to Speedcubing in Emacs.""" start="00:00:00.000" video="mainVideo-cubing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""Hello, everyone, and welcome to Speedcubing in Emacs.""" start="00:00:00.000" video="mainVideo-cubing" id="subtitle"]] [[!template text="""First of all, a little bit about myself.""" start="00:00:08.360" video="mainVideo-cubing" id="subtitle"]] [[!template text="""My name is Vasilij Schneidermann. Online, I go by wasamasa.""" start="00:00:10.120" video="mainVideo-cubing" id="subtitle"]] [[!template text="""I'm 31 years old. I work in information security,""" start="00:00:13.680" video="mainVideo-cubing" id="subtitle"]] @@ -39,9 +36,7 @@ [[!template text="""for example the cstimer software""" start="00:01:31.240" video="mainVideo-cubing" id="subtitle"]] [[!template text="""or the twisty-timer app on Android.""" start="00:01:33.240" video="mainVideo-cubing" id="subtitle"]] -[[!template new="1" text="""Cubing in Emacs""" start="00:01:35.400" video="mainVideo-cubing" id="subtitle"]] - -[[!template text="""To my surprise, I did not find a single decent option""" start="00:01:35.400" video="mainVideo-cubing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Cubing in Emacs""" start="00:01:35.400" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""To my surprise, I did not find a single decent option""" start="00:01:35.400" video="mainVideo-cubing" id="subtitle"]] [[!template text="""inside Emacs, so this is basically a case study""" start="00:01:39.320" video="mainVideo-cubing" id="subtitle"]] [[!template text="""how to do better. For this, I wanted to make use of""" start="00:01:41.960" video="mainVideo-cubing" id="subtitle"]] [[!template text="""all the cool new Emacs features that appeared,""" start="00:01:45.000" video="mainVideo-cubing" id="subtitle"]] @@ -50,9 +45,7 @@ [[!template text="""and the recently added sqlite-mode.""" start="00:01:53.600" video="mainVideo-cubing" id="subtitle"]] [[!template text="""And most importantly it was about having fun.""" start="00:01:56.440" video="mainVideo-cubing" id="subtitle"]] -[[!template new="1" text="""Prior art""" start="00:02:01.160" video="mainVideo-cubing" id="subtitle"]] - -[[!template text="""So here's a full list of prior art,""" start="00:02:01.160" video="mainVideo-cubing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Prior art""" start="00:02:01.160" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""So here's a full list of prior art,""" start="00:02:01.160" video="mainVideo-cubing" id="subtitle"]] [[!template text="""I will not go into detail about this,""" start="00:02:02.760" video="mainVideo-cubing" id="subtitle"]] [[!template text="""but basically we have things solving""" start="00:02:04.280" video="mainVideo-cubing" id="subtitle"]] [[!template text="""very different parts of this,""" start="00:02:06.240" video="mainVideo-cubing" id="subtitle"]] @@ -66,9 +59,7 @@ [[!template text="""which kind of surprised me.""" start="00:02:25.920" video="mainVideo-cubing" id="subtitle"]] [[!template text="""So I present the `wca-prep` package.""" start="00:02:28.120" video="mainVideo-cubing" id="subtitle"]] -[[!template new="1" text="""The name""" start="00:02:32.040" video="mainVideo-cubing" id="subtitle"]] - -[[!template text="""So the name, I found it difficult""" start="00:02:32.040" video="mainVideo-cubing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The name""" start="00:02:32.040" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""So the name, I found it difficult""" start="00:02:32.040" video="mainVideo-cubing" id="subtitle"]] [[!template text="""to come up with a good name and so I looked""" start="00:02:35.560" video="mainVideo-cubing" id="subtitle"]] [[!template text="""and I saw, well there's this World Cube Association""" start="00:02:39.960" video="mainVideo-cubing" id="subtitle"]] [[!template text="""that holds these competitions where you compete.""" start="00:02:42.560" video="mainVideo-cubing" id="subtitle"]] @@ -86,9 +77,7 @@ [[!template text="""because it helps me prepare for this kind of competition""" start="00:03:10.920" video="mainVideo-cubing" id="subtitle"]] [[!template text="""and this limited the scope significantly,""" start="00:03:13.640" video="mainVideo-cubing" id="subtitle"]] -[[!template new="1" text="""What's in wca-prep""" start="00:03:16.520" video="mainVideo-cubing" id="subtitle"]] - -[[!template text="""I have a scrambler, visualization of the scramble,""" start="00:03:16.520" video="mainVideo-cubing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""What's in wca-prep""" start="00:03:16.520" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""I have a scrambler, visualization of the scramble,""" start="00:03:16.520" video="mainVideo-cubing" id="subtitle"]] [[!template text="""timer, and statistics.""" start="00:03:19.000" video="mainVideo-cubing" id="subtitle"]] [[!template text="""I excluded pretty much everything else I've seen.""" start="00:03:23.320" video="mainVideo-cubing" id="subtitle"]] [[!template text="""For this reason, I only tried to focus on""" start="00:03:25.560" video="mainVideo-cubing" id="subtitle"]] @@ -99,15 +88,11 @@ [[!template text="""no exotic events, and no specialized scrambles""" start="00:03:40.480" video="mainVideo-cubing" id="subtitle"]] [[!template text="""that are only good for practicing specific algorithms.""" start="00:03:43.920" video="mainVideo-cubing" id="subtitle"]] -[[!template new="1" text="""Demo""" start="00:03:49.240" video="mainVideo-cubing" id="subtitle"]] - -[[!template text="""So at this point the organizer should hopefully show""" start="00:03:49.240" video="mainVideo-cubing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:03:49.240" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""So at this point the organizer should hopefully show""" start="00:03:49.240" video="mainVideo-cubing" id="subtitle"]] [[!template text="""a small video I've prepared, a one minute video showing how""" start="00:03:54.200" video="mainVideo-cubing" id="subtitle"]] [[!template text="""I actually use this to solve a cube and to time my solve.""" start="00:03:58.000" video="mainVideo-cubing" id="subtitle"]] -[[!template new="1" text="""Challenges: Representing the cube""" start="00:05:15.240" video="mainVideo-cubing" id="subtitle"]] - -[[!template text="""Okay, so building this thing, there were several challenges.""" start="00:05:15.240" video="mainVideo-cubing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Challenges: Representing the cube""" start="00:05:15.240" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""Okay, so building this thing, there were several challenges.""" start="00:05:15.240" video="mainVideo-cubing" id="subtitle"]] [[!template text="""The first one was how do I even represent""" start="00:05:18.509" video="mainVideo-cubing" id="subtitle"]] [[!template text="""the state of a Rubik's cube.""" start="00:05:20.509" video="mainVideo-cubing" id="subtitle"]] [[!template text="""For this there are many possible representations,""" start="00:05:22.469" video="mainVideo-cubing" id="subtitle"]] @@ -148,9 +133,7 @@ [[!template text="""mathematically speaking, they are the same thing,""" start="00:07:03.869" video="mainVideo-cubing" id="subtitle"]] [[!template text="""they just look very, very different.""" start="00:07:07.349" video="mainVideo-cubing" id="subtitle"]] -[[!template new="1" text="""Scrambling""" start="00:07:09.269" video="mainVideo-cubing" id="subtitle"]] - -[[!template text="""So the scramble algorithm itself,""" start="00:07:09.269" video="mainVideo-cubing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Scrambling""" start="00:07:09.269" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""So the scramble algorithm itself,""" start="00:07:09.269" video="mainVideo-cubing" id="subtitle"]] [[!template text="""I pondered how this would even be done. In the competitions,""" start="00:07:14.309" video="mainVideo-cubing" id="subtitle"]] [[!template text="""They do this in a very, very elaborate way.""" start="00:07:19.429" video="mainVideo-cubing" id="subtitle"]] [[!template text="""They generate a random cube,""" start="00:07:21.589" video="mainVideo-cubing" id="subtitle"]] @@ -172,9 +155,7 @@ [[!template text="""canonicalizing and repeating""" start="00:08:02.389" video="mainVideo-cubing" id="subtitle"]] [[!template text="""until enough have been generated.""" start="00:08:04.029" video="mainVideo-cubing" id="subtitle"]] -[[!template new="1" text="""Visualization""" start="00:08:09.549" video="mainVideo-cubing" id="subtitle"]] - -[[!template text="""For the visualization I had to figure out""" start="00:08:09.549" video="mainVideo-cubing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Visualization""" start="00:08:09.549" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""For the visualization I had to figure out""" start="00:08:09.549" video="mainVideo-cubing" id="subtitle"]] [[!template text="""something else too complicated.""" start="00:08:13.149" video="mainVideo-cubing" id="subtitle"]] [[!template text="""For this, I tried to figure out""" start="00:08:14.509" video="mainVideo-cubing" id="subtitle"]] [[!template text="""where every facelift would end up in the puzzle view""" start="00:08:17.229" video="mainVideo-cubing" id="subtitle"]] @@ -192,9 +173,7 @@ [[!template text="""that does not have the same color mappings as I do,""" start="00:08:51.589" video="mainVideo-cubing" id="subtitle"]] [[!template text="""then you should be able to fix this.""" start="00:08:54.690" video="mainVideo-cubing" id="subtitle"]] -[[!template new="1" text="""UI with Transient""" start="00:08:56.469" video="mainVideo-cubing" id="subtitle"]] - -[[!template text="""Next challenge was to build""" start="00:08:56.469" video="mainVideo-cubing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""UI with Transient""" start="00:08:56.469" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""Next challenge was to build""" start="00:08:56.469" video="mainVideo-cubing" id="subtitle"]] [[!template text="""a beautiful intuitive UI with Transient.""" start="00:09:01.429" video="mainVideo-cubing" id="subtitle"]] [[!template text="""The reason why I chose this is""" start="00:09:03.949" video="mainVideo-cubing" id="subtitle"]] [[!template text="""because it would be self-documenting and Magit-style,""" start="00:09:06.869" video="mainVideo-cubing" id="subtitle"]] @@ -217,9 +196,7 @@ [[!template text="""to have an executable reference basically""" start="00:09:50.589" video="mainVideo-cubing" id="subtitle"]] [[!template text="""and try to improve my use of it.""" start="00:09:53.429" video="mainVideo-cubing" id="subtitle"]] -[[!template new="1" text="""Book-keeping with SQLite""" start="00:09:55.629" video="mainVideo-cubing" id="subtitle"]] - -[[!template text="""For the book-keeping, I used SQLite.""" start="00:09:55.629" video="mainVideo-cubing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Book-keeping with SQLite""" start="00:09:55.629" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""For the book-keeping, I used SQLite.""" start="00:09:55.629" video="mainVideo-cubing" id="subtitle"]] [[!template text="""This is a very recent addition to Emacs,""" start="00:10:01.549" video="mainVideo-cubing" id="subtitle"]] [[!template text="""it only appeared in the current major version.""" start="00:10:04.549" video="mainVideo-cubing" id="subtitle"]] [[!template text="""It's still very early days.""" start="00:10:07.309" video="mainVideo-cubing" id="subtitle"]] @@ -247,9 +224,7 @@ [[!template text="""and don't have to run into foot guns""" start="00:11:07.389" video="mainVideo-cubing" id="subtitle"]] [[!template text="""with Lisp-style serialization, deserialization.""" start="00:11:10.469" video="mainVideo-cubing" id="subtitle"]] -[[!template new="1" text="""Conclusion""" start="00:11:12.629" video="mainVideo-cubing" id="subtitle"]] - -[[!template text="""So yes, that concludes it so far.""" start="00:11:12.629" video="mainVideo-cubing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:11:12.629" video="mainVideo-cubing" id="subtitle"]]</div>[[!template text="""So yes, that concludes it so far.""" start="00:11:12.629" video="mainVideo-cubing" id="subtitle"]] [[!template text="""So what did I learn from this exercise?""" start="00:11:18.189" video="mainVideo-cubing" id="subtitle"]] [[!template text="""Well, there are still plenty of packages""" start="00:11:22.189" video="mainVideo-cubing" id="subtitle"]] [[!template text="""for Emacs to be written.""" start="00:11:24.509" video="mainVideo-cubing" id="subtitle"]] @@ -300,7 +275,7 @@ [[!template text="""And this concludes the talk.""" start="00:13:22.429" video="mainVideo-cubing" id="subtitle"]] [[!template text="""Thank you very much.""" start="00:13:26.629" video="mainVideo-cubing" id="subtitle"]] - +</div> Captioner: sachac diff --git a/2023/info/cubing-before.md b/2023/info/cubing-before.md index c1dbf0c3..3a3af241 100644 --- a/2023/info/cubing-before.md +++ b/2023/info/cubing-before.md @@ -1,13 +1,13 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 14-min talk; Q&A: IRC +Format: 14-min talk ; Q&A: IRC Status: All done -<div class="vid"><video controls preload="none" id="cubing-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="cubing-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-cubing"><source src="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-cubing" data=""" 00:00.000 Introduction 01:35.400 Cubing in Emacs 02:01.160 Prior art @@ -21,6 +21,6 @@ Status: All done 09:55.580 Book-keeping with SQLite 11:12.580 Conclusion -"""]]<div></div>Duration: 13:35 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--alternative.webm">Download --alternative.webm (16MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.opus">Download --main.opus (8.6MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.webm">Download --main.webm (57MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--presentation.webm">Download --presentation.webm (16MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--solve-demo.webm">Download --solve-demo.webm (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann.pdf">Download .pdf</a></li><li><a href="https://toobnix.org/w/2DYX2o8kB1Rv8Mqaj7H1Dx">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 13:35 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-cubing">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--alternative.webm">Download --alternative.webm (16MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.opus">Download --main.opus (8.6MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--main.webm">Download --main.webm (57MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--presentation.webm">Download --presentation.webm (16MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann--solve-demo.webm">Download --solve-demo.webm (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-cubing--speedcubing-in-emacs--vasilij-wasamasa-schneidermann.pdf">Download .pdf</a></li><li><a href="https://toobnix.org/w/2DYX2o8kB1Rv8Mqaj7H1Dx">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=Q5HPmyaiu4g">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/cubing-nav.md b/2023/info/cubing-nav.md index 3f0e5db3..b0bbb1cf 100644 --- a/2023/info/cubing-nav.md +++ b/2023/info/cubing-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/poltys">The browser in a buffer</a> Next by track: <a href="/2023/talks/emms">Emacs MultiMedia System (EMMS)</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/devel-after.md b/2023/info/devel-after.md index 297fbe3d..afb832aa 100644 --- a/2023/info/devel-after.md +++ b/2023/info/devel-after.md @@ -1,8 +1,7 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="devel-mainVideo-transcript"></a> -# Transcript (unedited) +<div class="transcript transcript-mainVideo"><a name="devel-mainVideo-transcript"></a><h1>Transcript (unedited)</h1> [[!template text="""2 seconds. All right. I think we are live.""" start="00:00:02.419" video="mainVideo-devel" id="subtitle"]] [[!template text="""Yes. So, hi again, everyone.""" start="00:00:08.480" video="mainVideo-devel" id="subtitle"]] @@ -555,7 +554,7 @@ [[!template text="""All right, John. Thank you so much.""" start="00:23:19.700" video="mainVideo-devel" id="subtitle"]] [[!template text="""Bye bye. Bye bye.""" start="00:23:20.860" video="mainVideo-devel" id="subtitle"]] -Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20devel%3A%20Emacs%20development%20updates) +</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20devel%3A%20Emacs%20development%20updates) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/devel-before.md b/2023/info/devel-before.md index 5429f360..99d2796d 100644 --- a/2023/info/devel-before.md +++ b/2023/info/devel-before.md @@ -1,12 +1,12 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 24-min talk; Q&A: BigBlueButton conference room +Format: 24-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="devel-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 23:22 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.opus">Download --main.opus (7.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.webm">Download --main.webm (38MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/57HSebb9a9JZynh2B3ehze">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-devel"><source src="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 23:22 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-devel">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=f81dbb8e579499f903915b7fbead3f1f959d3019-1701547477151">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.opus">Download --main.opus (7.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.webm">Download --main.webm (38MB)</a></li><li><a href="https://toobnix.org/w/57HSebb9a9JZynh2B3ehze">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=SPSoRZVJUf8">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/devel-nav.md b/2023/info/devel-nav.md index 451e821f..f8671bdc 100644 --- a/2023/info/devel-nav.md +++ b/2023/info/devel-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/unentangling">(Un)entangling projects and repos</a> Next by track: <a href="/2023/talks/core">Emacs core development: how it works</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/doc-after.md b/2023/info/doc-after.md index 7df3351e..761d1803 100644 --- a/2023/info/doc-after.md +++ b/2023/info/doc-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="doc-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="doc-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Hello, everyone.""" start="00:00:00.000" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Hello, everyone.""" start="00:00:00.000" video="mainVideo-doc" id="subtitle"]] [[!template text="""This talk is on literate documentation""" start="00:00:04.320" video="mainVideo-doc" id="subtitle"]] [[!template text="""with Emacs and org-mode.""" start="00:00:07.280" video="mainVideo-doc" id="subtitle"]] [[!template text="""I'm going to take just a moment here""" start="00:00:10.320" video="mainVideo-doc" id="subtitle"]] @@ -27,9 +24,7 @@ [[!template text="""It can be an outliner, a to-do list manager,""" start="00:00:51.160" video="mainVideo-doc" id="subtitle"]] [[!template text="""an agenda, organizer, and much more.""" start="00:00:54.240" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Org Babel and literate programming""" start="00:00:57.760" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Today, we're going to be demonstrating""" start="00:00:57.760" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Org Babel and literate programming""" start="00:00:57.760" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Today, we're going to be demonstrating""" start="00:00:57.760" video="mainVideo-doc" id="subtitle"]] [[!template text="""what I consider to be org-mode's killer feature called""" start="00:00:59.600" video="mainVideo-doc" id="subtitle"]] [[!template text="""Org Babel.""" start="00:01:03.360" video="mainVideo-doc" id="subtitle"]] [[!template text="""Babel allows you to take human language prose,""" start="00:01:04.840" video="mainVideo-doc" id="subtitle"]] @@ -57,9 +52,7 @@ [[!template text="""tangled out of the document and submitted to the machine""" start="00:02:04.800" video="mainVideo-doc" id="subtitle"]] [[!template text="""either to be compiled or interpreted and ultimately run.""" start="00:02:08.440" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""This presentation""" start="00:02:14.080" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Throughout this presentation, you'll""" start="00:02:14.080" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""This presentation""" start="00:02:14.080" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Throughout this presentation, you'll""" start="00:02:14.080" video="mainVideo-doc" id="subtitle"]] [[!template text="""see my browser window here on the left side of the screen.""" start="00:02:15.600" video="mainVideo-doc" id="subtitle"]] [[!template text="""And on the right side, I've got a terminal session""" start="00:02:19.400" video="mainVideo-doc" id="subtitle"]] [[!template text="""running tmux.""" start="00:02:22.240" video="mainVideo-doc" id="subtitle"]] @@ -109,9 +102,7 @@ [[!template text="""it to export a RedHat-specific version of my building""" start="00:04:44.800" video="mainVideo-doc" id="subtitle"]] [[!template text="""Emacs from source essay or a Debian-specific version.""" start="00:04:48.720" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Getting started""" start="00:04:53.480" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""All right, let's get started.""" start="00:04:53.480" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Getting started""" start="00:04:53.480" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""All right, let's get started.""" start="00:04:53.480" video="mainVideo-doc" id="subtitle"]] [[!template text="""We'll begin by firing up a new terminal Emacs session""" start="00:04:55.320" video="mainVideo-doc" id="subtitle"]] [[!template text="""on my Ubuntu machine.""" start="00:04:58.720" video="mainVideo-doc" id="subtitle"]] [[!template text="""Now, I installed Emacs on this machine using apt-get.""" start="00:05:00.640" video="mainVideo-doc" id="subtitle"]] @@ -156,9 +147,7 @@ [[!template text="""you can see all the possible completions.""" start="00:06:50.360" video="mainVideo-doc" id="subtitle"]] [[!template text="""And as you can see, there's a lot.""" start="00:06:53.120" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""README""" start="00:06:55.780" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""The next thing we're gonna do is make a README section""" start="00:06:55.780" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""README""" start="00:06:55.780" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""The next thing we're gonna do is make a README section""" start="00:06:55.780" video="mainVideo-doc" id="subtitle"]] [[!template text="""at the top of this document.""" start="00:06:58.520" video="mainVideo-doc" id="subtitle"]] [[!template text="""This section is intended for folks""" start="00:06:59.760" video="mainVideo-doc" id="subtitle"]] [[!template text="""who are looking at the org-mode document,""" start="00:07:02.240" video="mainVideo-doc" id="subtitle"]] @@ -170,9 +159,7 @@ [[!template text="""can potentially execute code""" start="00:07:17.760" video="mainVideo-doc" id="subtitle"]] [[!template text="""and just a little something about what the document is for.""" start="00:07:19.800" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Writing a code block""" start="00:07:23.500" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Okay, so now that we've written some text,""" start="00:07:23.500" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Writing a code block""" start="00:07:23.500" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Okay, so now that we've written some text,""" start="00:07:23.500" video="mainVideo-doc" id="subtitle"]] [[!template text="""let's try our hand at writing a code block.""" start="00:07:26.060" video="mainVideo-doc" id="subtitle"]] [[!template text="""I'm getting pretty sick of looking at""" start="00:07:29.600" video="mainVideo-doc" id="subtitle"]] [[!template text="""the default Emacs theme.""" start="00:07:31.289" video="mainVideo-doc" id="subtitle"]] @@ -192,9 +179,7 @@ [[!template text="""So that's great and all,""" start="00:08:06.980" video="mainVideo-doc" id="subtitle"]] [[!template text="""but there are a couple of things I don't like.""" start="00:08:08.080" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text=""":results none""" start="00:08:10.460" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""First of all, we don't need to see a #+RESULTS block here,""" start="00:08:10.460" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text=""":results none""" start="00:08:10.460" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""First of all, we don't need to see a #+RESULTS block here,""" start="00:08:10.460" video="mainVideo-doc" id="subtitle"]] [[!template text="""and that's because we're not really interested""" start="00:08:13.600" video="mainVideo-doc" id="subtitle"]] [[!template text="""in what the Emacs Lisp function `load-theme` returns.""" start="00:08:15.280" video="mainVideo-doc" id="subtitle"]] [[!template text="""I mean, it's great it returned t and all to indicate success,""" start="00:08:18.720" video="mainVideo-doc" id="subtitle"]] @@ -206,9 +191,7 @@ [[!template text="""So I'll always refer back to the org-mode manual""" start="00:08:35.360" video="mainVideo-doc" id="subtitle"]] [[!template text="""when working with them.""" start="00:08:38.920" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Confirmation""" start="00:08:40.320" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""The second thing I don't like is that""" start="00:08:40.320" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Confirmation""" start="00:08:40.320" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""The second thing I don't like is that""" start="00:08:40.320" video="mainVideo-doc" id="subtitle"]] [[!template text="""when we hit C-c C-c to execute the block,""" start="00:08:42.160" video="mainVideo-doc" id="subtitle"]] [[!template text="""Emacs prompted us if we really wanted to run the block.""" start="00:08:46.000" video="mainVideo-doc" id="subtitle"]] [[!template text="""Emacs Lisp is Emacs' mother tongue,""" start="00:08:49.600" video="mainVideo-doc" id="subtitle"]] @@ -246,9 +229,7 @@ [[!template text="""you can see that Emacs' customize tooling""" start="00:10:29.560" video="mainVideo-doc" id="subtitle"]] [[!template text="""helpfully updated this variable in our config file for us.""" start="00:10:32.520" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Running blocks automatically""" start="00:10:36.960" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Now that's great and all,""" start="00:10:36.960" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Running blocks automatically""" start="00:10:36.960" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now that's great and all,""" start="00:10:36.960" video="mainVideo-doc" id="subtitle"]] [[!template text="""but I really don't like having to hit `C-c C-c`""" start="00:10:38.120" video="mainVideo-doc" id="subtitle"]] [[!template text="""on that source block every time I open this document""" start="00:10:42.120" video="mainVideo-doc" id="subtitle"]] [[!template text="""just to bring up the Leuven theme.""" start="00:10:45.160" video="mainVideo-doc" id="subtitle"]] @@ -323,9 +304,7 @@ [[!template text="""and explain to the reader of the exported document""" start="00:13:47.880" video="mainVideo-doc" id="subtitle"]] [[!template text="""what this is all about.""" start="00:13:51.440" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Export options""" start="00:13:53.000" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Now as you can see, we've actually hard-coded""" start="00:13:53.000" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Export options""" start="00:13:53.000" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now as you can see, we've actually hard-coded""" start="00:13:53.000" video="mainVideo-doc" id="subtitle"]] [[!template text="""the name of the Linux distro in our prose.""" start="00:13:55.640" video="mainVideo-doc" id="subtitle"]] [[!template text="""I promised you a single document that could be""" start="00:13:58.280" video="mainVideo-doc" id="subtitle"]] [[!template text="""for either RedHat or Debian distros,""" start="00:14:00.880" video="mainVideo-doc" id="subtitle"]] @@ -379,9 +358,7 @@ [[!template text="""Now when we export the document again,""" start="00:16:00.980" video="mainVideo-doc" id="subtitle"]] [[!template text="""it should look a lot better.""" start="00:16:03.120" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Substituting constants""" start="00:16:05.700" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Now that we've cleaned up the look of the exported document,""" start="00:16:05.700" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Substituting constants""" start="00:16:05.700" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now that we've cleaned up the look of the exported document,""" start="00:16:05.700" video="mainVideo-doc" id="subtitle"]] [[!template text="""we'll take a look at a better way""" start="00:16:09.060" video="mainVideo-doc" id="subtitle"]] [[!template text="""of solving the problem with the introduction.""" start="00:16:10.640" video="mainVideo-doc" id="subtitle"]] [[!template text="""Thinking like a programmer for a moment,""" start="00:16:13.378" video="mainVideo-doc" id="subtitle"]] @@ -405,9 +382,7 @@ [[!template text="""And that's where we'll put the properties drawer""" start="00:17:14.000" video="mainVideo-doc" id="subtitle"]] [[!template text="""with the "distro" property.""" start="00:17:19.560" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Getting the properties""" start="00:17:25.740" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Now the question is,""" start="00:17:25.740" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Getting the properties""" start="00:17:25.740" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now the question is,""" start="00:17:25.740" video="mainVideo-doc" id="subtitle"]] [[!template text="""how do we reference these properties in the document?""" start="00:17:27.120" video="mainVideo-doc" id="subtitle"]] [[!template text="""It turns out there's an Elisp function""" start="00:17:30.100" video="mainVideo-doc" id="subtitle"]] [[!template text="""called `org-property-values`, which does what we want.""" start="00:17:32.520" video="mainVideo-doc" id="subtitle"]] @@ -466,9 +441,7 @@ [[!template text="""it looks like what we'd expect.""" start="00:19:58.240" video="mainVideo-doc" id="subtitle"]] [[!template text="""Now this is getting better, but it's still not great.""" start="00:20:00.290" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Macros""" start="00:20:03.060" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""The `call_` syntax is pretty cumbersome,""" start="00:20:03.060" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Macros""" start="00:20:03.060" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""The `call_` syntax is pretty cumbersome,""" start="00:20:03.060" video="mainVideo-doc" id="subtitle"]] [[!template text="""and it's a lot to type every time we want""" start="00:20:05.840" video="mainVideo-doc" id="subtitle"]] [[!template text="""to reference a constant""" start="00:20:08.560" video="mainVideo-doc" id="subtitle"]] [[!template text="""and not have it be marked up as verbatim.""" start="00:20:09.850" video="mainVideo-doc" id="subtitle"]] @@ -491,9 +464,7 @@ [[!template text="""That's six curly braces in total we're typing,""" start="00:20:58.700" video="mainVideo-doc" id="subtitle"]] [[!template text="""which still takes up a fair amount of space.""" start="00:21:01.280" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Properties in practice""" start="00:21:05.240" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Now let's take a look at how we might use""" start="00:21:05.240" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Properties in practice""" start="00:21:05.240" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now let's take a look at how we might use""" start="00:21:05.240" video="mainVideo-doc" id="subtitle"]] [[!template text="""these properties in practice.""" start="00:21:07.120" video="mainVideo-doc" id="subtitle"]] [[!template text="""Debian and RedHat distros differ""" start="00:21:09.160" video="mainVideo-doc" id="subtitle"]] [[!template text="""on how they install packages.""" start="00:21:11.120" video="mainVideo-doc" id="subtitle"]] @@ -516,9 +487,7 @@ [[!template text="""a bunch of different properties,""" start="00:22:05.200" video="mainVideo-doc" id="subtitle"]] [[!template text="""which is pretty janky.""" start="00:22:06.990" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Using a prefix""" start="00:22:09.020" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Luckily we can solve this problem""" start="00:22:09.020" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Using a prefix""" start="00:22:09.020" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Luckily we can solve this problem""" start="00:22:09.020" video="mainVideo-doc" id="subtitle"]] [[!template text="""with a little bit of Emacs Lisp.""" start="00:22:11.080" video="mainVideo-doc" id="subtitle"]] [[!template text="""We'll start by modifying our properties,""" start="00:22:14.440" video="mainVideo-doc" id="subtitle"]] [[!template text="""so their property names are prefixed""" start="00:22:16.880" video="mainVideo-doc" id="subtitle"]] @@ -551,9 +520,7 @@ [[!template text="""Let's see that in action.""" start="00:23:35.330" video="mainVideo-doc" id="subtitle"]] [[!template text="""All right, now we're talking.""" start="00:23:40.000" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Switching distributions""" start="00:23:42.010" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""This setup is starting to look pretty good,""" start="00:23:42.010" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Switching distributions""" start="00:23:42.010" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""This setup is starting to look pretty good,""" start="00:23:42.010" video="mainVideo-doc" id="subtitle"]] [[!template text="""but there are just a few things""" start="00:23:44.420" video="mainVideo-doc" id="subtitle"]] [[!template text="""that I want to add before we move on.""" start="00:23:46.040" video="mainVideo-doc" id="subtitle"]] [[!template text="""First of all, I think the document should have a subtitle,""" start="00:23:48.660" video="mainVideo-doc" id="subtitle"]] @@ -632,9 +599,7 @@ [[!template text="""which I hope is a point that folks take away from this talk.""" start="00:27:06.680" video="mainVideo-doc" id="subtitle"]] [[!template text="""All right, that was a lot.""" start="00:27:12.150" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""A tour""" start="00:27:14.150" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Now that we've spent the past 20 minutes or so""" start="00:27:14.150" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""A tour""" start="00:27:14.150" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now that we've spent the past 20 minutes or so""" start="00:27:14.150" video="mainVideo-doc" id="subtitle"]] [[!template text="""digging into some of the tips and tricks I used""" start="00:27:16.840" video="mainVideo-doc" id="subtitle"]] [[!template text="""when creating my build Emacs from source document,""" start="00:27:19.410" video="mainVideo-doc" id="subtitle"]] [[!template text="""we'll say goodbye to this document we've been working on""" start="00:27:22.880" video="mainVideo-doc" id="subtitle"]] @@ -704,9 +669,7 @@ [[!template text="""and the section on executing""" start="00:30:12.330" video="mainVideo-doc" id="subtitle"]] [[!template text="""the document's various code blocks.""" start="00:30:14.080" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""TeX and LaTeX""" start="00:30:16.200" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""The latter two sections we'll take a look at now.""" start="00:30:16.200" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""TeX and LaTeX""" start="00:30:16.200" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""The latter two sections we'll take a look at now.""" start="00:30:16.200" video="mainVideo-doc" id="subtitle"]] [[!template text="""Out of the box on Fedora and Ubuntu server distros,""" start="00:30:19.200" video="mainVideo-doc" id="subtitle"]] [[!template text="""the TeX typesetting system""" start="00:30:22.580" video="mainVideo-doc" id="subtitle"]] [[!template text="""also by noted computer scientist Donald Knuth""" start="00:30:24.710" video="mainVideo-doc" id="subtitle"]] @@ -725,9 +688,7 @@ [[!template text="""that knows how to run LaTeX multiple times""" start="00:31:02.400" video="mainVideo-doc" id="subtitle"]] [[!template text="""in order to properly deal with intra-document links.""" start="00:31:05.140" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Other prerequisites""" start="00:31:09.250" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""But wait, there's more.""" start="00:31:09.250" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Other prerequisites""" start="00:31:09.250" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""But wait, there's more.""" start="00:31:09.250" video="mainVideo-doc" id="subtitle"]] [[!template text="""We're also gonna need Inkscape""" start="00:31:11.070" video="mainVideo-doc" id="subtitle"]] [[!template text="""to rasterize our SeaGL vector logo""" start="00:31:12.960" video="mainVideo-doc" id="subtitle"]] [[!template text="""at different resolutions.""" start="00:31:15.520" video="mainVideo-doc" id="subtitle"]] @@ -748,9 +709,7 @@ [[!template text="""to work on bog-standard Emacs setups,""" start="00:31:55.760" video="mainVideo-doc" id="subtitle"]] [[!template text="""I didn't get around to it.""" start="00:31:58.000" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Caching""" start="00:32:00.060" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Before we get into talking about running the document,""" start="00:32:00.060" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Caching""" start="00:32:00.060" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Before we get into talking about running the document,""" start="00:32:00.060" video="mainVideo-doc" id="subtitle"]] [[!template text="""let's talk briefly about results caching.""" start="00:32:03.140" video="mainVideo-doc" id="subtitle"]] [[!template text="""We'll take a look at the section of the document""" start="00:32:06.450" video="mainVideo-doc" id="subtitle"]] [[!template text="""where we talk about Git tags for an example.""" start="00:32:08.840" video="mainVideo-doc" id="subtitle"]] @@ -838,9 +797,7 @@ [[!template text="""Ooh, those are the words I love to see in the status area,""" start="00:36:14.040" video="mainVideo-doc" id="subtitle"]] [[!template text="""PDF file produced!""" start="00:36:17.560" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Looking at the PDF""" start="00:36:20.610" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Now I can't use my web browser""" start="00:36:20.610" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Looking at the PDF""" start="00:36:20.610" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Now I can't use my web browser""" start="00:36:20.610" video="mainVideo-doc" id="subtitle"]] [[!template text="""to take a look at this PDF file""" start="00:36:22.600" video="mainVideo-doc" id="subtitle"]] [[!template text="""because I haven't set up a web server""" start="00:36:24.960" video="mainVideo-doc" id="subtitle"]] [[!template text="""or anything like that on the Ubuntu virtual machine.""" start="00:36:27.080" video="mainVideo-doc" id="subtitle"]] @@ -902,9 +859,7 @@ [[!template text="""And this is dynamically generated based on what we saw here.""" start="00:39:22.780" video="mainVideo-doc" id="subtitle"]] [[!template text="""So that's what we use here.""" start="00:39:27.480" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Errors""" start="00:39:29.440" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""In this case, we're piping standard error""" start="00:39:29.440" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Errors""" start="00:39:29.440" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""In this case, we're piping standard error""" start="00:39:29.440" video="mainVideo-doc" id="subtitle"]] [[!template text="""to where standard out goes.""" start="00:39:32.920" video="mainVideo-doc" id="subtitle"]] [[!template text="""That's another trick.""" start="00:39:35.100" video="mainVideo-doc" id="subtitle"]] [[!template text="""If you want to actually see an error get created,""" start="00:39:36.070" video="mainVideo-doc" id="subtitle"]] @@ -970,20 +925,17 @@ [[!template text="""like the file sizes of everything in the home directory.""" start="00:42:23.980" video="mainVideo-doc" id="subtitle"]] [[!template text="""And then we, you know, show the binaries that got installed.""" start="00:42:27.720" video="mainVideo-doc" id="subtitle"]] -[[!template new="1" text="""Final thoughts""" start="00:42:31.990" video="mainVideo-doc" id="subtitle"]] - -[[!template text="""Anyway, so this is the final thoughts section.""" start="00:42:31.990" video="mainVideo-doc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Final thoughts""" start="00:42:31.990" video="mainVideo-doc" id="subtitle"]]</div>[[!template text="""Anyway, so this is the final thoughts section.""" start="00:42:31.990" video="mainVideo-doc" id="subtitle"]] [[!template text="""And my final thoughts are, is I hope you enjoyed this talk""" start="00:42:35.600" video="mainVideo-doc" id="subtitle"]] [[!template text="""and I hope you actually learned a thing or two.""" start="00:42:39.220" video="mainVideo-doc" id="subtitle"]] [[!template text="""All right, thanks everybody.""" start="00:42:42.380" video="mainVideo-doc" id="subtitle"]] [[!template text="""And I'll see you all next time.""" start="00:42:43.360" video="mainVideo-doc" id="subtitle"]] - +</div> Captioner: jc -<a name="doc-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="doc-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: Well, we have about, I think,""" start="00:00:03.639" video="qanda-doc" id="subtitle"]] [[!template text="""10 or 15 minutes of on-stream Q&A time.""" start="00:00:06.339" video="qanda-doc" id="subtitle"]] @@ -1183,7 +1135,7 @@ Captioner: jc [[!template text="""watching. You""" start="00:22:45.060" video="qanda-doc" id="subtitle"]] [[!template text="""you""" start="00:23:00.260" video="qanda-doc" id="subtitle"]] -Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20doc%3A%20Literate%20Documentation%20with%20Emacs%20and%20Org%20Mode) +</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20doc%3A%20Literate%20Documentation%20with%20Emacs%20and%20Org%20Mode) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/doc-before.md b/2023/info/doc-before.md index 8e799bc4..18772fdb 100644 --- a/2023/info/doc-before.md +++ b/2023/info/doc-before.md @@ -2,7 +2,7 @@ Actually a general-audience talk; just on the development track for scheduling purposes [[!toc ]] -Format: 43-min talk; Q&A: BigBlueButton conference room +Format: 43-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -11,7 +11,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="doc-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="doc-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-doc"><source src="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-doc" data=""" 00:00.000 Introduction 00:57.760 Org Babel and literate programming 02:14.080 This presentation @@ -36,10 +36,10 @@ Status: Q&A to be extracted from the room recordings 39:29.440 Errors 42:31.990 Final thoughts -"""]]<div></div>Duration: 42:45 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.opus">Download --main.opus (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.webm">Download --main.webm (133MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/8ak16Qy1tjeFEqmcnan6MQ">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 42:45 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-doc">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=37169783fc35bab0d36d00ed912e4c31ebef8fb0-1701548380496">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.opus">Download --main.opus (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--main.webm">Download --main.webm (133MB)</a></li><li><a href="https://toobnix.org/w/8ak16Qy1tjeFEqmcnan6MQ">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=BAFZ-vTnfSo">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="doc-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="doc-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.opus"></audio></div><div></div>Duration: 11:00 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.json">Download --answers.json (1.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.opus">Download --answers.opus (18MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.webm">Download --answers.webm (69MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-doc"><source src="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-doc-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.opus"></audio></div><div></div>Duration: 11:00 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-doc">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=37169783fc35bab0d36d00ed912e4c31ebef8fb0-1701548380496">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.json">Download --answers.json (1.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.opus">Download --answers.opus (18MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-doc--literate-documentation-with-emacs-and-org-mode--mike-hamrick--answers.webm">Download --answers.webm (69MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/doc-nav.md b/2023/info/doc-nav.md index 5f8eaf6b..8c04bf51 100644 --- a/2023/info/doc-nav.md +++ b/2023/info/doc-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/repl">REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ</a> Next by track: <a href="/2023/talks/windows">Windows into Freedom</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/eat-after.md b/2023/info/eat-after.md index 41bfbc90..3358e962 100644 --- a/2023/info/eat-after.md +++ b/2023/info/eat-after.md @@ -1,20 +1,15 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="eat-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="eat-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-eat" id="subtitle"]] - -[[!template text="""Hello everyone. Welcome to my talk.""" start="00:00:00.000" video="mainVideo-eat" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""Hello everyone. Welcome to my talk.""" start="00:00:00.000" video="mainVideo-eat" id="subtitle"]] [[!template text="""I am Akib Azmain Turja and my talk is titled""" start="00:00:04.200" video="mainVideo-eat" id="subtitle"]] [[!template text=""""Eat and Eat-powered Eshell:""" start="00:00:09.360" video="mainVideo-eat" id="subtitle"]] [[!template text="""Fast, featureful terminal inside Emacs."""" start="00:00:11.520" video="mainVideo-eat" id="subtitle"]] -[[!template new="1" text="""Benchmarking""" start="00:00:15.440" video="mainVideo-eat" id="subtitle"]] - -[[!template text="""So I just claimed that Eat is a fast terminal emulator.""" start="00:00:15.440" video="mainVideo-eat" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Benchmarking""" start="00:00:15.440" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""So I just claimed that Eat is a fast terminal emulator.""" start="00:00:15.440" video="mainVideo-eat" id="subtitle"]] [[!template text="""Let me show you that. I will print a 1-megabyte sized file""" start="00:00:22.840" video="mainVideo-eat" id="subtitle"]] [[!template text="""in the terminal using this command.""" start="00:00:33.280" video="mainVideo-eat" id="subtitle"]] [[!template text="""It takes 0.76 seconds. Now let's benchmark term-mode.""" start="00:00:39.040" video="mainVideo-eat" id="subtitle"]] @@ -27,9 +22,7 @@ [[!template text="""Why? That shouldn't happen.""" start="00:01:36.160" video="mainVideo-eat" id="subtitle"]] [[!template text="""Anyway, hopefully that shows how fast Eat is.""" start="00:01:41.800" video="mainVideo-eat" id="subtitle"]] -[[!template new="1" text="""Running programs""" start="00:01:49.720" video="mainVideo-eat" id="subtitle"]] - -[[!template text="""So let's run some extra programs in Eat,""" start="00:01:49.720" video="mainVideo-eat" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Running programs""" start="00:01:49.720" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""So let's run some extra programs in Eat,""" start="00:01:49.720" video="mainVideo-eat" id="subtitle"]] [[!template text="""like top. You can also run htop or even btop.""" start="00:01:54.440" video="mainVideo-eat" id="subtitle"]] [[!template text="""There is a fancy version of top.""" start="00:02:05.640" video="mainVideo-eat" id="subtitle"]] [[!template text="""And obviously you can run Emacs in it.""" start="00:02:08.560" video="mainVideo-eat" id="subtitle"]] @@ -37,39 +30,29 @@ [[!template text="""You can show any color in the terminal""" start="00:02:33.880" video="mainVideo-eat" id="subtitle"]] [[!template text="""as long as your main display supports it.""" start="00:02:38.800" video="mainVideo-eat" id="subtitle"]] -[[!template new="1" text="""Shell integration""" start="00:02:47.080" video="mainVideo-eat" id="subtitle"]] - -[[!template text="""And then there is shell integration.""" start="00:02:47.080" video="mainVideo-eat" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Shell integration""" start="00:02:47.080" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""And then there is shell integration.""" start="00:02:47.080" video="mainVideo-eat" id="subtitle"]] [[!template text="""For example, directory tracking.""" start="00:02:50.360" video="mainVideo-eat" id="subtitle"]] [[!template text="""Like, I can switch to some other directory""" start="00:02:52.400" video="mainVideo-eat" id="subtitle"]] [[!template text="""and Emacs follows the shell directory.""" start="00:03:07.480" video="mainVideo-eat" id="subtitle"]] -[[!template new="1" text="""Prompt annotation""" start="00:03:11.920" video="mainVideo-eat" id="subtitle"]] - -[[!template text="""Then there is prompt annotation,""" start="00:03:11.920" video="mainVideo-eat" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Prompt annotation""" start="00:03:11.920" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""Then there is prompt annotation,""" start="00:03:11.920" video="mainVideo-eat" id="subtitle"]] [[!template text="""this column. These zeros indicate""" start="00:03:16.440" video="mainVideo-eat" id="subtitle"]] [[!template text="""that the command has executed successfully.""" start="00:03:20.320" video="mainVideo-eat" id="subtitle"]] [[!template text="""Then you can navigate between commands like this.""" start="00:03:27.080" video="mainVideo-eat" id="subtitle"]] -[[!template new="1" text="""Message passing""" start="00:03:37.680" video="mainVideo-eat" id="subtitle"]] - -[[!template text="""There is message passing.""" start="00:03:37.680" video="mainVideo-eat" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Message passing""" start="00:03:37.680" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""There is message passing.""" start="00:03:37.680" video="mainVideo-eat" id="subtitle"]] [[!template text="""By message passing, I mean sending something""" start="00:03:39.400" video="mainVideo-eat" id="subtitle"]] [[!template text="""from the terminal to the host Emacs.""" start="00:03:44.120" video="mainVideo-eat" id="subtitle"]] [[!template text="""By host Emacs, I mean Emacs running the terminal.""" start="00:03:46.960" video="mainVideo-eat" id="subtitle"]] [[!template text="""For example I can say "hi" and it's showing "hi"""" start="00:03:52.120" video="mainVideo-eat" id="subtitle"]] [[!template text="""in this echo area of my Emacs.""" start="00:03:57.440" video="mainVideo-eat" id="subtitle"]] -[[!template new="1" text="""Shell integration""" start="00:04:03.520" video="mainVideo-eat" id="subtitle"]] - -[[!template text="""Then let's show you the killer feature of Eat,""" start="00:04:03.520" video="mainVideo-eat" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Shell integration""" start="00:04:03.520" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""Then let's show you the killer feature of Eat,""" start="00:04:03.520" video="mainVideo-eat" id="subtitle"]] [[!template text="""Eat's shell integration.""" start="00:04:08.680" video="mainVideo-eat" id="subtitle"]] [[!template text="""You can run any program in it. For example: top, btop,""" start="00:04:20.240" video="mainVideo-eat" id="subtitle"]] [[!template text="""and obviously Emacs itself.""" start="00:04:37.840" video="mainVideo-eat" id="subtitle"]] -[[!template new="1" text="""Input modes""" start="00:04:52.160" video="mainVideo-eat" id="subtitle"]] - -[[!template text="""So let's discuss how to use Eat. There are four input modes.""" start="00:04:52.160" video="mainVideo-eat" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Input modes""" start="00:04:52.160" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""So let's discuss how to use Eat. There are four input modes.""" start="00:04:52.160" video="mainVideo-eat" id="subtitle"]] [[!template text="""The first one is semi-char mode. That is the default mode.""" start="00:05:03.160" video="mainVideo-eat" id="subtitle"]] [[!template text="""This is like vterm. All keys are the same to your terminal""" start="00:05:07.320" video="mainVideo-eat" id="subtitle"]] [[!template text="""except these keys: C-c, C-x, C-g, M-x, etc.""" start="00:05:10.920" video="mainVideo-eat" id="subtitle"]] @@ -88,9 +71,7 @@ [[!template text="""when eat-eshell integration is enabled""" start="00:06:20.160" video="mainVideo-eat" id="subtitle"]] [[!template text="""inside the eshell buffer.""" start="00:06:23.145" video="mainVideo-eat" id="subtitle"]] -[[!template new="1" text="""Documentation""" start="00:06:33.760" video="mainVideo-eat" id="subtitle"]] - -[[!template text="""There is an info manual,""" start="00:06:33.760" video="mainVideo-eat" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Documentation""" start="00:06:33.760" video="mainVideo-eat" id="subtitle"]]</div>[[!template text="""There is an info manual,""" start="00:06:33.760" video="mainVideo-eat" id="subtitle"]] [[!template text="""And also the README is quite informative""" start="00:06:36.720" video="mainVideo-eat" id="subtitle"]] [[!template text="""for you to get started.""" start="00:06:51.600" video="mainVideo-eat" id="subtitle"]] [[!template text="""If you hit any problem,""" start="00:06:55.000" video="mainVideo-eat" id="subtitle"]] @@ -107,7 +88,7 @@ [[!template text="""Hopefully you enjoyed my talk. That was all.""" start="00:08:03.480" video="mainVideo-eat" id="subtitle"]] [[!template text="""Enjoy EmacsConf. Goodbye.""" start="00:08:10.760" video="mainVideo-eat" id="subtitle"]] -Questions or comments? Please e-mail [akib@disroot.org](mailto:akib@disroot.org?subject=Comment%20for%20EmacsConf%202023%20eat%3A%20Eat%20and%20Eat%20powered%20Eshell%2C%20fast%20featureful%20terminal%20inside%20Emacs) +</div>Questions or comments? Please e-mail [akib@disroot.org](mailto:akib@disroot.org?subject=Comment%20for%20EmacsConf%202023%20eat%3A%20Eat%20and%20Eat%20powered%20Eshell%2C%20fast%20featureful%20terminal%20inside%20Emacs) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/eat-before.md b/2023/info/eat-before.md index 5620d10d..daab0281 100644 --- a/2023/info/eat-before.md +++ b/2023/info/eat-before.md @@ -1,12 +1,12 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 9-min talk; Q&A: Etherpad +Format: 9-min talk ; Q&A: Etherpad Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="eat-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 08:13 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.opus">Download --main.opus</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.webm">Download --main.webm (39MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/t4pPDtbXiZdHHEyWJVUtNs">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-eat"><source src="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 08:13 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-eat">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.opus">Download --main.opus</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.webm">Download --main.webm (39MB)</a></li><li><a href="https://toobnix.org/w/t4pPDtbXiZdHHEyWJVUtNs">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=KQ5Jt-63G9U">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/eat-nav.md b/2023/info/eat-nav.md index 3d8f174b..535ff9da 100644 --- a/2023/info/eat-nav.md +++ b/2023/info/eat-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/parallel">Parallel text replacement</a> Next by track: <a href="/2023/talks/poltys">The browser in a buffer</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/emacsconf-after.md b/2023/info/emacsconf-after.md index d84a94cd..bc5d9066 100644 --- a/2023/info/emacsconf-after.md +++ b/2023/info/emacsconf-after.md @@ -1,21 +1,16 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="emacsconf-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="emacsconf-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""Hi, I'm Sacha Chua. This presentation is a quick tour""" start="00:00:00.000" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Hi, I'm Sacha Chua. This presentation is a quick tour""" start="00:00:00.000" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""of some of the things we do to run EmacsConf.""" start="00:00:04.840" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""Since 2019, we've run it as an entirely online conference,""" start="00:00:07.960" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""and we do as much of the organization as possible""" start="00:00:12.240" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""within Emacs itself.""" start="00:00:14.700" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Reasons""" start="00:00:16.580" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""I have three reasons for making this presentation.""" start="00:00:16.580" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Reasons""" start="00:00:16.580" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""I have three reasons for making this presentation.""" start="00:00:16.580" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""The first is entirely selfish: I need to figure out""" start="00:00:19.760" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""all the stuff I built for last year's EmacsConf,""" start="00:00:22.760" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""since it was a bit of a crazy scramble.""" start="00:00:25.360" video="mainVideo-emacsconf" id="subtitle"]] @@ -35,9 +30,7 @@ [[!template text="""There are a lot of different parts,""" start="00:01:04.440" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""so I'll try to use this map to help make sense of it all.""" start="00:01:06.320" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Information""" start="00:01:09.400" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""There's so much information to work with,""" start="00:01:09.400" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Information""" start="00:01:09.400" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""There's so much information to work with,""" start="00:01:09.400" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""so it probably doesn't surprise you that we use Org Mode a lot.""" start="00:01:11.200" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""Most of the conference coordination happens over e-mail,""" start="00:01:14.920" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""which I can quickly search with notmuch.""" start="00:01:18.000" video="mainVideo-emacsconf" id="subtitle"]] @@ -62,9 +55,7 @@ [[!template text="""And there's all the other stuff that goes into running EmacsConf,""" start="00:02:03.120" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""like shell scripts and configuration files.""" start="00:02:06.320" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Properties""" start="00:02:09.160" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""First, speakers propose a talk by sending an e-mail.""" start="00:02:09.160" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Properties""" start="00:02:09.160" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""First, speakers propose a talk by sending an e-mail.""" start="00:02:09.160" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""We take the info from that e-mail and store it in Org properties""" start="00:02:12.320" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""so that we can work with it later.""" start="00:02:15.800" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""Every talk is identified with an ID,""" start="00:02:18.200" video="mainVideo-emacsconf" id="subtitle"]] @@ -101,9 +92,7 @@ [[!template text="""... then I can extract the data with `jq`""" start="00:03:48.960" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""and use it in shell scripts.""" start="00:03:51.120" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Timezones""" start="00:03:53.120" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""Another example of semi-structured information""" start="00:03:53.120" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Timezones""" start="00:03:53.120" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Another example of semi-structured information""" start="00:03:53.120" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""is speaker availability.""" start="00:03:55.640" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""We have speakers from all over the world,""" start="00:03:57.300" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""so we try to schedule live Q&A sessions when they're around.""" start="00:03:59.620" video="mainVideo-emacsconf" id="subtitle"]] @@ -118,9 +107,7 @@ [[!template text="""I can use those availability constraints to report errors""" start="00:04:24.400" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""when I'm experimenting with the schedule.""" start="00:04:27.440" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Scheduling""" start="00:04:29.720" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""Now that I have the availability information,""" start="00:04:29.720" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Scheduling""" start="00:04:29.720" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Now that I have the availability information,""" start="00:04:29.720" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""I can think about scheduling.""" start="00:04:31.680" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""When we were planning EmacsConf 2022, the schedule was so full,""" start="00:04:33.941" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""I wanted to see if we could make it more manageable""" start="00:04:38.240" video="mainVideo-emacsconf" id="subtitle"]] @@ -147,9 +134,7 @@ [[!template text="""to the speaker's local timezone when I e-mail them.""" start="00:05:34.800" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""That's mostly a matter of using `format-time-string` with a timezone.""" start="00:05:37.820" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Templates""" start="00:05:41.780" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""There's a lot of text to work with,""" start="00:05:41.780" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Templates""" start="00:05:41.780" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""There's a lot of text to work with,""" start="00:05:41.780" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""which means templates are super handy.""" start="00:05:43.160" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""There are a number of templating functions for Emacs Lisp,""" start="00:05:45.700" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""like the built-in `tempo.el` or `s-lex-format` from `s.el`.""" start="00:05:48.120" video="mainVideo-emacsconf" id="subtitle"]] @@ -174,9 +159,7 @@ [[!template text="""like when I export the organizers notebook.""" start="00:06:43.500" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""Memoize caches recent values.""" start="00:06:45.960" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Wiki""" start="00:06:48.400" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""We combine this templating function""" start="00:06:48.400" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Wiki""" start="00:06:48.400" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""We combine this templating function""" start="00:06:48.400" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""with the talk information""" start="00:06:50.240" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""to fill in the conference wiki,""" start="00:06:51.480" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""since that's a matter of writing templated strings to files.""" start="00:06:53.440" video="mainVideo-emacsconf" id="subtitle"]] @@ -211,9 +194,7 @@ [[!template text="""Then we can use the heads of those lists""" start="00:08:00.360" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""for next/previous links.""" start="00:08:02.440" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Etherpad""" start="00:08:04.380" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""Links to the next talks are also handy""" start="00:08:04.380" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Etherpad""" start="00:08:04.380" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Links to the next talks are also handy""" start="00:08:04.380" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""on the collaborative Etherpad documents""" start="00:08:06.680" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""that we use for collecting questions, answers, and notes""" start="00:08:08.640" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""during each talk.""" start="00:08:12.040" video="mainVideo-emacsconf" id="subtitle"]] @@ -225,9 +206,7 @@ [[!template text="""We can save the timestamp of the last modification""" start="00:08:22.940" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""and then compare it before overwriting.""" start="00:08:25.720" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""E-mail""" start="00:08:28.200" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""Templates are also very handy when it comes to e-mail.""" start="00:08:28.200" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""E-mail""" start="00:08:28.200" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Templates are also very handy when it comes to e-mail.""" start="00:08:28.200" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""Sometimes we send e-mails one at a time,""" start="00:08:31.240" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""like when we let a speaker know""" start="00:08:33.600" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""that we've received their proposal.""" start="00:08:35.200" video="mainVideo-emacsconf" id="subtitle"]] @@ -243,9 +222,7 @@ [[!template text="""if more than one person is associated with a talk).""" start="00:08:59.800" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""That gives me an opportunity to personalize it further.""" start="00:09:02.600" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""BigBlueButton web conferences""" start="00:09:05.920" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""Many speakers answer questions live""" start="00:09:05.920" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""BigBlueButton web conferences""" start="00:09:05.920" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Many speakers answer questions live""" start="00:09:05.920" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""in BigBlueButton web conference rooms.""" start="00:09:08.120" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""Setting up one room per group of speakers""" start="00:09:10.440" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""makes it easy to give the speakers the details""" start="00:09:12.640" video="mainVideo-emacsconf" id="subtitle"]] @@ -271,9 +248,7 @@ [[!template text="""That way, I don't have to count on Emacs being able to""" start="00:10:04.300" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""publish them over TRAMP.""" start="00:10:06.680" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Shortcuts""" start="00:10:08.121" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""During the conference, I'm often jumping from talk to talk.""" start="00:10:08.121" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Shortcuts""" start="00:10:08.121" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""During the conference, I'm often jumping from talk to talk.""" start="00:10:08.121" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""Instead of going to the Org file""" start="00:10:11.660" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""and then searching for the talk,""" start="00:10:13.200" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""I've made a little Hydra with keyboard shortcuts.""" start="00:10:14.520" video="mainVideo-emacsconf" id="subtitle"]] @@ -286,9 +261,7 @@ [[!template text="""For example, I might want to jump to the wiki page""" start="00:10:32.080" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""or e-mail the speaker.""" start="00:10:35.080" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Logbook""" start="00:10:36.700" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""I can also add notes to a talk while looking at an email,""" start="00:10:36.700" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Logbook""" start="00:10:36.700" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""I can also add notes to a talk while looking at an email,""" start="00:10:36.700" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""like when a speaker lets me know""" start="00:10:40.100" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""that their video will be late.""" start="00:10:41.640" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""Making it easy to add a note turns Emacs into""" start="00:10:43.280" video="mainVideo-emacsconf" id="subtitle"]] @@ -299,9 +272,7 @@ [[!template text="""look up the author of the current email,""" start="00:10:57.920" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""prompt the user for the talk to add the note to, and add the note.""" start="00:10:59.960" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Captions""" start="00:11:03.680" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""On to captions.""" start="00:11:03.680" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Captions""" start="00:11:03.680" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""On to captions.""" start="00:11:03.680" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""We've been doing captions for the last couple of years,""" start="00:11:04.680" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""and now we have a small army of volunteer captioners.""" start="00:11:07.240" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""They get early access to the recorded talks""" start="00:11:10.420" video="mainVideo-emacsconf" id="subtitle"]] @@ -326,9 +297,7 @@ [[!template text="""at emacsconf.org/captioning.""" start="00:12:06.680" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""I like using subed to edit subtitles within Emacs.""" start="00:12:09.040" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Crontabs and playing the talks""" start="00:12:13.220" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""Let's talk about actually playing the talks.""" start="00:12:13.220" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Crontabs and playing the talks""" start="00:12:13.220" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Let's talk about actually playing the talks.""" start="00:12:13.220" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""For EmacsConf 2022, we tried using Emacs timers""" start="00:12:16.060" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""to run the talks.""" start="00:12:19.560" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""It turns out that you can't call TRAMP from a timer""" start="00:12:20.940" video="mainVideo-emacsconf" id="subtitle"]] @@ -353,9 +322,7 @@ [[!template text="""The shell scripts we run from the crontab""" start="00:13:06.520" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""can also update the talk status themselves.""" start="00:13:08.720" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Transitions""" start="00:13:11.280" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""Then a bunch of things automatically happen based on""" start="00:13:11.280" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Transitions""" start="00:13:11.280" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""Then a bunch of things automatically happen based on""" start="00:13:11.280" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""the talk status changes.""" start="00:13:14.320" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""This uses `org-after-todo-state-change-hook`.""" start="00:13:15.600" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""We get the talk information""" start="00:13:18.960" video="mainVideo-emacsconf" id="subtitle"]] @@ -372,9 +339,7 @@ [[!template text="""because (of course!) Emacs has an IRC client.""" start="00:13:45.800" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""In fact, it has several.""" start="00:13:48.520" video="mainVideo-emacsconf" id="subtitle"]] -[[!template new="1" text="""Wrapping up""" start="00:13:49.880" video="mainVideo-emacsconf" id="subtitle"]] - -[[!template text="""It seems like a lot of automation and Emacs Lisp,""" start="00:13:49.880" video="mainVideo-emacsconf" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Wrapping up""" start="00:13:49.880" video="mainVideo-emacsconf" id="subtitle"]]</div>[[!template text="""It seems like a lot of automation and Emacs Lisp,""" start="00:13:49.880" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""but really, all of this was just built up little by little.""" start="00:13:53.140" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""And tinkering with this is *fun*, you know?""" start="00:13:56.900" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""It's like always being able to ask,""" start="00:13:59.280" video="mainVideo-emacsconf" id="subtitle"]] @@ -403,12 +368,11 @@ [[!template text="""from this talk's webpage at emacsconf.org/2023/talks/emacsconf .""" start="00:14:51.000" video="mainVideo-emacsconf" id="subtitle"]] [[!template text="""Let's figure out how to make Emacsconf even awesomer next year!""" start="00:14:59.120" video="mainVideo-emacsconf" id="subtitle"]] - +</div> Captioner: sachac -<a name="emacsconf-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="emacsconf-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: All right. I have unmuted.""" start="00:00:53.489" video="qanda-emacsconf" id="subtitle"]] [[!template text="""It's been a while since I've actually done an""" start="00:00:59.860" video="qanda-emacsconf" id="subtitle"]] @@ -3164,7 +3128,7 @@ Captioner: sachac [[!template text="""[Speaker 7]: Take care Corwin""" start="01:59:51.900" video="qanda-emacsconf" id="subtitle"]] [[!template text="""[Speaker 4]: Bye Stefan. Bye. Bye all""" start="01:59:56.520" video="qanda-emacsconf" id="subtitle"]] -Questions or comments? Please e-mail [sacha@sachachua.com](mailto:sacha@sachachua.com?subject=Comment%20for%20EmacsConf%202023%20emacsconf%3A%20EmacsConf.org%3A%20How%20we%20use%20Org%20Mode%20and%20TRAMP%20to%20organize%20and%20run%20a%20multi-track%20conference) +</div>Questions or comments? Please e-mail [sacha@sachachua.com](mailto:sacha@sachachua.com?subject=Comment%20for%20EmacsConf%202023%20emacsconf%3A%20EmacsConf.org%3A%20How%20we%20use%20Org%20Mode%20and%20TRAMP%20to%20organize%20and%20run%20a%20multi-track%20conference) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/emacsconf-before.md b/2023/info/emacsconf-before.md index 817bc045..c10d5bd4 100644 --- a/2023/info/emacsconf-before.md +++ b/2023/info/emacsconf-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 16-min talk; Q&A: BigBlueButton conference room +Format: 16-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="emacsconf-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="emacsconf-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-emacsconf"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-emacsconf" data=""" 00:00.000 Intro 00:16.580 Reasons 01:09.400 Information @@ -28,10 +28,10 @@ Status: Q&A to be extracted from the room recordings 13:11.280 Transitions 13:49.880 Wrapping up -"""]]<div></div>Duration: 15:05 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.opus">Download --main.opus (8.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.webm">Download --main.webm (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/eX2dXG3xMtUHuuBz4fssGT">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 15:05 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-emacsconf">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=5f07e2b967f71ad503ac367ea43866abeaad63b6-1701636099684">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.opus">Download --main.opus (8.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--main.webm">Download --main.webm (37MB)</a></li><li><a href="https://toobnix.org/w/eX2dXG3xMtUHuuBz4fssGT">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=uTregv3rNl0">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="emacsconf-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="emacsconf-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.opus"></audio></div><div></div>Duration: 2:00:43 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.json">Download --answers.json (5.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.opus">Download --answers.opus (71MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.webm">Download --answers.webm (317MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-emacsconf"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-emacsconf-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.opus"></audio></div><div></div>Duration: 2:00:43 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-emacsconf">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=5f07e2b967f71ad503ac367ea43866abeaad63b6-1701636099684">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.json">Download --answers.json (5.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.opus">Download --answers.opus (71MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsconf--emacsconforg-how-we-use-org-mode-and-tramp-to-organize-and-run-a-multitrack-conference--sacha-chua--answers.webm">Download --answers.webm (317MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/emacsconf-nav.md b/2023/info/emacsconf-nav.md index a633568d..04302650 100644 --- a/2023/info/emacsconf-nav.md +++ b/2023/info/emacsconf-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/test">What I learned by writing test cases for GNU Hyperbole</a> Next by track: <a href="/2023/talks/sat-open">Saturday opening remarks</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/emacsen-after.md b/2023/info/emacsen-after.md index d45b44d7..c103787e 100644 --- a/2023/info/emacsen-after.md +++ b/2023/info/emacsen-after.md @@ -1,21 +1,16 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="emacsen-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="emacsen-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-emacsen" id="subtitle"]] - -[[!template text="""Hello, my name is Fermin.""" start="00:00:00.000" video="mainVideo-emacsen" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""Hello, my name is Fermin.""" start="00:00:00.000" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""Today, I'm going to talk about the Emacsen family,""" start="00:00:03.200" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""the design of an Emacs, and the importance of Lisp.""" start="00:00:06.960" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""So we're going to talk about Lisp.""" start="00:00:11.160" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""I want to start from the end.""" start="00:00:13.520" video="mainVideo-emacsen" id="subtitle"]] -[[!template new="1" text="""Why Lisp matters""" start="00:00:17.000" video="mainVideo-emacsen" id="subtitle"]] - -[[!template text="""The first question I want to ask is""" start="00:00:17.000" video="mainVideo-emacsen" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Why Lisp matters""" start="00:00:17.000" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""The first question I want to ask is""" start="00:00:17.000" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""why I think Lisp matters.""" start="00:00:19.040" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""When I'm talking about Lisp here,""" start="00:00:21.400" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""I'm talking about the idea of Lisp,""" start="00:00:22.880" video="mainVideo-emacsen" id="subtitle"]] @@ -37,9 +32,7 @@ [[!template text="""Scheme by Guile, Common Lisp by Common Lisp,""" start="00:01:13.840" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""and Clojure by Clojure or ClojureScript.""" start="00:01:19.675" video="mainVideo-emacsen" id="subtitle"]] -[[!template new="1" text="""Why Emacs Lisp was chosen""" start="00:01:26.640" video="mainVideo-emacsen" id="subtitle"]] - -[[!template text="""So let's talk about Emacs Lisp.""" start="00:01:26.640" video="mainVideo-emacsen" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Why Emacs Lisp was chosen""" start="00:01:26.640" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""So let's talk about Emacs Lisp.""" start="00:01:26.640" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""I didn't mention Emacs Lisp.""" start="00:01:28.080" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""I'm going to talk about why Emacs Lisp""" start="00:01:29.680" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""was chosen for an Emacs editor.""" start="00:01:32.520" video="mainVideo-emacsen" id="subtitle"]] @@ -65,9 +58,7 @@ [[!template text="""It's not that bad. At that time, it was mostly nice.""" start="00:02:44.200" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""Today, it's good enough, I think.""" start="00:02:50.240" video="mainVideo-emacsen" id="subtitle"]] -[[!template new="1" text="""Other "Emacsen"""" start="00:02:54.841" video="mainVideo-emacsen" id="subtitle"]] - -[[!template text="""He wasn't the first one, the GNU Emacs,""" start="00:02:54.841" video="mainVideo-emacsen" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Other "Emacsen"""" start="00:02:54.841" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""He wasn't the first one, the GNU Emacs,""" start="00:02:54.841" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""nor the only one, of course.""" start="00:02:59.461" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""There were others: Hemlock, Zmacs, and Climacs...""" start="00:03:02.541" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""Two of them, I think, were written in Common Lisp,""" start="00:03:06.440" video="mainVideo-emacsen" id="subtitle"]] @@ -83,9 +74,7 @@ [[!template text="""Zmacs was because of the Lisp machine market crash,""" start="00:03:33.640" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""and yeah, it also failed.""" start="00:03:37.880" video="mainVideo-emacsen" id="subtitle"]] -[[!template new="1" text="""Why not Common Lisp?""" start="00:03:38.581" video="mainVideo-emacsen" id="subtitle"]] - -[[!template text="""So Emacs got alone. And in the 90s, interesting to explore,""" start="00:03:38.581" video="mainVideo-emacsen" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Why not Common Lisp?""" start="00:03:38.581" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""So Emacs got alone. And in the 90s, interesting to explore,""" start="00:03:38.581" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""some people suggest that why""" start="00:03:44.040" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""now that we have a standard Lisp, right,""" start="00:03:46.480" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""because Common Lisp was standardized in '94,""" start="00:03:49.680" video="mainVideo-emacsen" id="subtitle"]] @@ -137,9 +126,7 @@ [[!template text="""It makes sense that it's very good""" start="00:06:29.400" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""for a system administration perspective.""" start="00:06:31.080" video="mainVideo-emacsen" id="subtitle"]] -[[!template new="1" text="""Common Lisp is still not dead or is always dead""" start="00:06:39.120" video="mainVideo-emacsen" id="subtitle"]] - -[[!template text="""But I think Common Lisp is not dead yet.""" start="00:06:39.120" video="mainVideo-emacsen" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Common Lisp is still not dead or is always dead""" start="00:06:39.120" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""But I think Common Lisp is not dead yet.""" start="00:06:39.120" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""Or some people say that it's always dead,""" start="00:06:43.320" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""so you cannot kill the something that is always dead.""" start="00:06:45.720" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""So I don't always code in C,""" start="00:06:48.400" video="mainVideo-emacsen" id="subtitle"]] @@ -178,18 +165,14 @@ [[!template text="""which in today's standard is nothing.""" start="00:08:23.800" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""There's pictures in your phone larger than 20 MB.""" start="00:08:26.600" video="mainVideo-emacsen" id="subtitle"]] -[[!template new="1" text="""Lem is a nice Emacsen implementation""" start="00:08:30.080" video="mainVideo-emacsen" id="subtitle"]] - -[[!template text="""So there's a new Emacs in town--well, Emacs, not Emacs,""" start="00:08:30.080" video="mainVideo-emacsen" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Lem is a nice Emacsen implementation""" start="00:08:30.080" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""So there's a new Emacs in town--well, Emacs, not Emacs,""" start="00:08:30.080" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""Which is Lem. I think it's a very good Emacs implementation.""" start="00:08:39.240" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""What I mean by "Emacs" here is not a clone of GNU Emacs,""" start="00:08:43.440" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""but an Emacs-inspired editor with similar characteristics,""" start="00:08:46.680" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""and written in a Lisp,""" start="00:08:51.560" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""which is why I said that Lisp was very important.""" start="00:08:53.520" video="mainVideo-emacsen" id="subtitle"]] -[[!template new="1" text="""Why not just use GNU Emacs?""" start="00:08:58.260" video="mainVideo-emacsen" id="subtitle"]] - -[[!template text="""So first, I'm going to address the elephant in the room,""" start="00:08:58.260" video="mainVideo-emacsen" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Why not just use GNU Emacs?""" start="00:08:58.260" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""So first, I'm going to address the elephant in the room,""" start="00:08:58.260" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""and the question that maybe most""" start="00:09:01.560" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""of you are now thinking.""" start="00:09:05.040" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""Why not just use GNU Emacs? It's the project.""" start="00:09:06.160" video="mainVideo-emacsen" id="subtitle"]] @@ -218,9 +201,7 @@ [[!template text="""Getting this out of the way.""" start="00:10:27.760" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""Why I think Lem is interesting.""" start="00:10:29.200" video="mainVideo-emacsen" id="subtitle"]] -[[!template new="1" text="""Why Lem""" start="00:10:31.080" video="mainVideo-emacsen" id="subtitle"]] - -[[!template text="""I'm going to show why Lem.""" start="00:10:31.080" video="mainVideo-emacsen" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Why Lem""" start="00:10:31.080" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""I'm going to show why Lem.""" start="00:10:31.080" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""Why? You can try Lem, and maybe you like it.""" start="00:10:32.360" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""First thing, these are the features""" start="00:10:37.760" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""that I really like from it.""" start="00:10:41.320" video="mainVideo-emacsen" id="subtitle"]] @@ -292,9 +273,7 @@ [[!template text="""So yeah, that's the thing that I think Lem brings to""" start="00:13:59.160" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""the table and that's really interesting.""" start="00:14:01.960" video="mainVideo-emacsen" id="subtitle"]] -[[!template new="1" text="""Similarities and differences""" start="00:14:03.080" video="mainVideo-emacsen" id="subtitle"]] - -[[!template text="""So I'm going to do a small demo of Lem, a Emacs example.""" start="00:14:03.080" video="mainVideo-emacsen" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Similarities and differences""" start="00:14:03.080" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""So I'm going to do a small demo of Lem, a Emacs example.""" start="00:14:03.080" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""First, the similarities,""" start="00:14:10.520" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""the nomenclature is very similar: modes, buffers,""" start="00:14:11.680" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""commands... The commands are very similar in nature.""" start="00:14:14.120" video="mainVideo-emacsen" id="subtitle"]] @@ -332,9 +311,7 @@ [[!template text="""one of the best-documented software ever.""" start="00:15:39.720" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""We're trying to go there, but we're still not there.""" start="00:15:41.760" video="mainVideo-emacsen" id="subtitle"]] -[[!template new="1" text="""Demo""" start="00:15:49.600" video="mainVideo-emacsen" id="subtitle"]] - -[[!template text="""Let's do the demo. So to open Lem, you compile it,""" start="00:15:49.600" video="mainVideo-emacsen" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:15:49.600" video="mainVideo-emacsen" id="subtitle"]]</div>[[!template text="""Let's do the demo. So to open Lem, you compile it,""" start="00:15:49.600" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""and then you have it available,""" start="00:15:54.080" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""and you open Lem. As you can see,""" start="00:15:55.760" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""we have the temporary buffer. On the top left is the mode--""" start="00:15:57.720" video="mainVideo-emacsen" id="subtitle"]] @@ -390,12 +367,11 @@ [[!template text="""So thank you all very much.""" start="00:18:21.200" video="mainVideo-emacsen" id="subtitle"]] [[!template text="""I'll be answering the question now. And happy hacking.""" start="00:18:23.120" video="mainVideo-emacsen" id="subtitle"]] - +</div> Captioner: sachac -<a name="emacsen-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="emacsen-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: Here.""" start="00:00:00.040" video="qanda-emacsen" id="subtitle"]] [[!template text="""[Speaker 1]: All right. Yeah. So thanks,""" start="00:00:05.140" video="qanda-emacsen" id="subtitle"]] @@ -1665,7 +1641,7 @@ Captioner: sachac [[!template text="""I'm going to go do that.""" start="01:08:09.360" video="qanda-emacsen" id="subtitle"]] [[!template text="""[Speaker 0]: See you.""" start="01:08:10.640" video="qanda-emacsen" id="subtitle"]] -Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20emacsen%3A%20The%20Emacsen%20family%2C%20the%20design%20of%20an%20Emacs%20and%20the%20importance%20of%20Lisp) +</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20emacsen%3A%20The%20Emacsen%20family%2C%20the%20design%20of%20an%20Emacs%20and%20the%20importance%20of%20Lisp) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/emacsen-before.md b/2023/info/emacsen-before.md index 151dac9d..4334b31b 100644 --- a/2023/info/emacsen-before.md +++ b/2023/info/emacsen-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 19-min talk; Q&A: BigBlueButton conference room +Format: 19-min talk ; Q&A: BigBlueButton conference room Status: TO_INDEX_QA @@ -9,7 +9,7 @@ Status: TO_INDEX_QA # Talk -<div class="vid"><video controls preload="none" id="emacsen-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="emacsen-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-emacsen"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-emacsen" data=""" 00:00.000 Introduction 00:17.000 Why Lisp matters 01:26.640 Why Emacs Lisp was chosen @@ -22,10 +22,10 @@ Status: TO_INDEX_QA 14:03.080 Similarities and differences 15:49.600 Demo -"""]]<div></div>Duration: 18:28 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.opus">Download --main.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/qgJ84RLV2FZYyeSusDskwU">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 18:28 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-emacsen">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=93478b7dbe4fb34ded741ea7c8dfefa78a3ce8fd-1701620297196">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.opus">Download --main.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://toobnix.org/w/qgJ84RLV2FZYyeSusDskwU">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=7SGcLpjC5CE">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="emacsen-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="emacsen-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.opus"></audio></div><div></div>Duration: 1:08:14 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.opus">Download --answers.opus (39MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.webm">Download --answers.webm (253MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-emacsen"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-emacsen-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.opus"></audio></div><div></div>Duration: 1:08:14 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-emacsen">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=93478b7dbe4fb34ded741ea7c8dfefa78a3ce8fd-1701620297196">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.opus">Download --answers.opus (39MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emacsen--the-emacsen-family-the-design-of-an-emacs-and-the-importance-of-lisp--fermin--answers.webm">Download --answers.webm (253MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/emacsen-nav.md b/2023/info/emacsen-nav.md index 976d9935..c89089bd 100644 --- a/2023/info/emacsen-nav.md +++ b/2023/info/emacsen-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/flat">A modern Emacs look-and-feel without pain</a> Next by track: <a href="/2023/talks/gc">emacs-gc-stats: Does garbage collection actually slow down Emacs?</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/emms-after.md b/2023/info/emms-after.md index a9b97368..532fc6a2 100644 --- a/2023/info/emms-after.md +++ b/2023/info/emms-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="emms-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="emms-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""The Sound of Emacs, Emms, The Emacs Multimedia System.""" start="00:00:00.000" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The Sound of Emacs, Emms, The Emacs Multimedia System.""" start="00:00:00.000" video="mainVideo-emms" id="subtitle"]] [[!template text="""Hi, I'm Yoni Rabkin and I'll be talking about Emms;""" start="00:00:05.400" video="mainVideo-emms" id="subtitle"]] [[!template text="""the Emacs Multimedia System.""" start="00:00:09.160" video="mainVideo-emms" id="subtitle"]] [[!template text="""What is Emms?""" start="00:00:11.520" video="mainVideo-emms" id="subtitle"]] @@ -27,17 +24,13 @@ [[!template text="""and gets ever more features.""" start="00:00:56.560" video="mainVideo-emms" id="subtitle"]] [[!template text="""Perhaps Emms will one day even have a text editor.""" start="00:00:58.480" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""The structure of this talk""" start="00:01:03.320" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""The structure of this talk:""" start="00:01:03.320" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The structure of this talk""" start="00:01:03.320" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The structure of this talk:""" start="00:01:03.320" video="mainVideo-emms" id="subtitle"]] [[!template text="""We'll start with an introduction to Emms.""" start="00:01:05.600" video="mainVideo-emms" id="subtitle"]] [[!template text="""This is the practical part.""" start="00:01:08.160" video="mainVideo-emms" id="subtitle"]] [[!template text="""Then, a bit about how Emms works. That's the technical part.""" start="00:01:10.560" video="mainVideo-emms" id="subtitle"]] [[!template text="""Finally, how we work. All about Emms development.""" start="00:01:15.880" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""Introduction to Emms: The practical part""" start="00:01:21.320" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""Introduction to Emms: The practical part:""" start="00:01:21.320" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction to Emms: The practical part""" start="00:01:21.320" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Introduction to Emms: The practical part:""" start="00:01:21.320" video="mainVideo-emms" id="subtitle"]] [[!template text="""I want this talk to be of immediate use to people,""" start="00:01:25.021" video="mainVideo-emms" id="subtitle"]] [[!template text="""so I'm going to present a quick TL;DR of the Emms manual""" start="00:01:28.680" video="mainVideo-emms" id="subtitle"]] [[!template text="""concerning installation and use.""" start="00:01:33.520" video="mainVideo-emms" id="subtitle"]] @@ -137,9 +130,7 @@ [[!template text="""than the ability to play, stop, and seek,""" start="00:07:56.600" video="mainVideo-emms" id="subtitle"]] [[!template text="""but others may implement a plethora of commands.""" start="00:07:59.560" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""The modeline""" start="00:08:04.240" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""The Modeline: Emms will by default display""" start="00:08:04.240" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The modeline""" start="00:08:04.240" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The Modeline: Emms will by default display""" start="00:08:04.240" video="mainVideo-emms" id="subtitle"]] [[!template text="""the name of the currently playing track in the mode line""" start="00:08:08.880" video="mainVideo-emms" id="subtitle"]] [[!template text="""with information such as playing time.""" start="00:08:11.840" video="mainVideo-emms" id="subtitle"]] [[!template text="""The mode line format is controlled""" start="00:08:15.000" video="mainVideo-emms" id="subtitle"]] @@ -190,9 +181,7 @@ [[!template text="""and that URL will be passed on to the media player backend,""" start="00:10:52.640" video="mainVideo-emms" id="subtitle"]] [[!template text="""which can play it, if any.""" start="00:10:56.720" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""Meta-playlist mode""" start="00:11:01.200" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""Meta-playlist mode:""" start="00:11:01.200" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Meta-playlist mode""" start="00:11:01.200" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Meta-playlist mode:""" start="00:11:01.200" video="mainVideo-emms" id="subtitle"]] [[!template text="""Emms also has meta-playlist mode""" start="00:11:03.680" video="mainVideo-emms" id="subtitle"]] [[!template text="""to help manage multiple playlists.""" start="00:11:08.300" video="mainVideo-emms" id="subtitle"]] [[!template text="""When you invoke meta-playlist mode,""" start="00:11:11.960" video="mainVideo-emms" id="subtitle"]] @@ -200,9 +189,7 @@ [[!template text="""and this mode binds a handful of useful keybindings""" start="00:11:16.960" video="mainVideo-emms" id="subtitle"]] [[!template text="""to help manage those playlists.""" start="00:11:22.000" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""The browser""" start="00:11:29.860" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""The Browser:""" start="00:11:29.860" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The browser""" start="00:11:29.860" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The Browser:""" start="00:11:29.860" video="mainVideo-emms" id="subtitle"]] [[!template text="""Music doesn't always lend itself to being viewed""" start="00:11:31.760" video="mainVideo-emms" id="subtitle"]] [[!template text="""as a series of discrete files.""" start="00:11:35.440" video="mainVideo-emms" id="subtitle"]] [[!template text="""While there may be a good taxonomy of music""" start="00:11:38.200" video="mainVideo-emms" id="subtitle"]] @@ -238,9 +225,7 @@ [[!template text="""bookmarks, GNU FM, and Dbus/Mpris support.""" start="00:13:07.040" video="mainVideo-emms" id="subtitle"]] [[!template text="""I hope this was a useful introduction to Emms.""" start="00:13:13.360" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""How Emms works: The technical part""" start="00:13:19.920" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""How Emms Works: The technical part:""" start="00:13:19.920" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""How Emms works: The technical part""" start="00:13:19.920" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""How Emms Works: The technical part:""" start="00:13:19.920" video="mainVideo-emms" id="subtitle"]] [[!template text="""This part is an overview of how Emms works.""" start="00:13:23.220" video="mainVideo-emms" id="subtitle"]] [[!template text="""By the end of this, you should be familiar enough""" start="00:13:26.820" video="mainVideo-emms" id="subtitle"]] [[!template text="""with Emms internals to hack on it. Hint hint.""" start="00:13:29.760" video="mainVideo-emms" id="subtitle"]] @@ -295,16 +280,12 @@ [[!template text="""if you want to hack on Emacs.""" start="00:16:18.880" video="mainVideo-emms" id="subtitle"]] [[!template text="""Another hint.""" start="00:16:21.560" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""The Emms core""" start="00:16:23.820" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""The Emms core.""" start="00:16:23.820" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The Emms core""" start="00:16:23.820" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The Emms core.""" start="00:16:23.820" video="mainVideo-emms" id="subtitle"]] [[!template text="""The core defines tracks, playlists,""" start="00:16:25.360" video="mainVideo-emms" id="subtitle"]] [[!template text="""a way to start and stop playback,""" start="00:16:29.080" video="mainVideo-emms" id="subtitle"]] [[!template text="""as well as ways to proceed to the next track.""" start="00:16:31.760" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""Tracks""" start="00:16:36.440" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""Tracks:""" start="00:16:36.440" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Tracks""" start="00:16:36.440" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Tracks:""" start="00:16:36.440" video="mainVideo-emms" id="subtitle"]] [[!template text="""Emms tracks consist of a list whose CAR is the symbol track,""" start="00:16:38.460" video="mainVideo-emms" id="subtitle"]] [[!template text="""and CADR is an alist starting with""" start="00:16:44.780" video="mainVideo-emms" id="subtitle"]] [[!template text="""the association of `type'.""" start="00:16:47.080" video="mainVideo-emms" id="subtitle"]] @@ -316,9 +297,7 @@ [[!template text="""from the perspective of computational steps required""" start="00:17:11.080" video="mainVideo-emms" id="subtitle"]] [[!template text="""to find any particular association.""" start="00:17:14.200" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""Playlist""" start="00:17:18.460" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""Playlist:""" start="00:17:18.460" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Playlist""" start="00:17:18.460" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Playlist:""" start="00:17:18.460" video="mainVideo-emms" id="subtitle"]] [[!template text="""An Emms playlist consists of an Emacs buffer""" start="00:17:20.620" video="mainVideo-emms" id="subtitle"]] [[!template text="""with a buffer-local non-nil variable,""" start="00:17:23.480" video="mainVideo-emms" id="subtitle"]] [[!template text="""`emms-playlist-buffer-p`.""" start="00:17:26.460" video="mainVideo-emms" id="subtitle"]] @@ -336,9 +315,7 @@ [[!template text="""to look like anything as long as that anything consists of""" start="00:18:11.600" video="mainVideo-emms" id="subtitle"]] [[!template text="""one or more `emms-track` text properties.""" start="00:18:15.320" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""Sources""" start="00:18:22.080" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""Sources:""" start="00:18:22.080" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Sources""" start="00:18:22.080" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Sources:""" start="00:18:22.080" video="mainVideo-emms" id="subtitle"]] [[!template text="""A source is how you tell Emms:""" start="00:18:23.580" video="mainVideo-emms" id="subtitle"]] [[!template text=""""Go and get those things and turn them into tracks."""" start="00:18:25.840" video="mainVideo-emms" id="subtitle"]] [[!template text="""More specifically, an Emms source is a function called in""" start="00:18:29.780" video="mainVideo-emms" id="subtitle"]] @@ -357,9 +334,7 @@ [[!template text="""playlists of various formats,""" start="00:19:15.040" video="mainVideo-emms" id="subtitle"]] [[!template text="""files from dired mode, and etc.""" start="00:19:17.320" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""Players""" start="00:19:22.160" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""Players:""" start="00:19:22.160" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Players""" start="00:19:22.160" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Players:""" start="00:19:22.160" video="mainVideo-emms" id="subtitle"]] [[!template text="""An Emms player is, at its simplest, a data structure""" start="00:19:24.880" video="mainVideo-emms" id="subtitle"]] [[!template text="""with three functions.""" start="00:19:28.960" video="mainVideo-emms" id="subtitle"]] [[!template text="""One to start playing, one to stop,""" start="00:19:30.840" video="mainVideo-emms" id="subtitle"]] @@ -376,9 +351,7 @@ [[!template text="""on each file in our playlist""" start="00:20:12.960" video="mainVideo-emms" id="subtitle"]] [[!template text="""with the image file extension we listed.""" start="00:20:15.640" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""Info""" start="00:20:20.520" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""Info:""" start="00:20:20.520" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Info""" start="00:20:20.520" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Info:""" start="00:20:20.520" video="mainVideo-emms" id="subtitle"]] [[!template text="""As previously described, Emms comes with info methods,""" start="00:20:23.060" video="mainVideo-emms" id="subtitle"]] [[!template text="""which are functions to add""" start="00:20:28.020" video="mainVideo-emms" id="subtitle"]] [[!template text="""descriptive information to tracks.""" start="00:20:29.640" video="mainVideo-emms" id="subtitle"]] @@ -400,9 +373,7 @@ [[!template text="""the binary data in the media file headers""" start="00:21:29.320" video="mainVideo-emms" id="subtitle"]] [[!template text="""and parsing the data layout specifications.""" start="00:21:32.040" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""The cache""" start="00:21:36.660" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""The Cache:""" start="00:21:36.660" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The cache""" start="00:21:36.660" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The Cache:""" start="00:21:36.660" video="mainVideo-emms" id="subtitle"]] [[!template text="""The Emms cache is a mapping between a full path name""" start="00:21:38.880" video="mainVideo-emms" id="subtitle"]] [[!template text="""and its associated information.""" start="00:21:43.280" video="mainVideo-emms" id="subtitle"]] [[!template text="""Once information is extracted from a file""" start="00:21:45.720" video="mainVideo-emms" id="subtitle"]] @@ -429,9 +400,7 @@ [[!template text="""for the majority of situations.""" start="00:22:45.000" video="mainVideo-emms" id="subtitle"]] [[!template text="""Which is to say, nobody complained.""" start="00:22:47.060" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""Healthy back and forth: mpv, mpd, and GNU.FM""" start="00:22:51.620" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""Healthy back and forth. MPV, MPD, GNU.FM""" start="00:22:51.620" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Healthy back and forth: mpv, mpd, and GNU.FM""" start="00:22:51.620" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Healthy back and forth. MPV, MPD, GNU.FM""" start="00:22:51.620" video="mainVideo-emms" id="subtitle"]] [[!template text="""Process communication with a simple media player""" start="00:22:56.240" video="mainVideo-emms" id="subtitle"]] [[!template text="""can be as straightforward""" start="00:23:00.120" video="mainVideo-emms" id="subtitle"]] [[!template text="""as starting an asynchronous process""" start="00:23:01.760" video="mainVideo-emms" id="subtitle"]] @@ -444,9 +413,7 @@ [[!template text="""A simple example of this would be sending strings""" start="00:23:20.300" video="mainVideo-emms" id="subtitle"]] [[!template text="""to a running process such as the pause command to VLC.""" start="00:23:23.960" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""MPV""" start="00:23:31.560" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""MPV:""" start="00:23:31.560" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""MPV""" start="00:23:31.560" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""MPV:""" start="00:23:31.560" video="mainVideo-emms" id="subtitle"]] [[!template text="""MPV is a popular media player forked""" start="00:23:33.380" video="mainVideo-emms" id="subtitle"]] [[!template text="""in a roundabout way from mplayer.""" start="00:23:37.040" video="mainVideo-emms" id="subtitle"]] [[!template text="""One of its most notable features is""" start="00:23:39.900" video="mainVideo-emms" id="subtitle"]] @@ -467,9 +434,7 @@ [[!template text="""in fewer than 1,000 lines of legible Emacs Lisp""" start="00:24:37.920" video="mainVideo-emms" id="subtitle"]] [[!template text="""is a testament to some serious coding ability.""" start="00:24:42.640" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""MPD""" start="00:24:47.470" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""MPD:""" start="00:24:47.470" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""MPD""" start="00:24:47.470" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""MPD:""" start="00:24:47.470" video="mainVideo-emms" id="subtitle"]] [[!template text="""Similar to MPV but potentially""" start="00:24:49.610" video="mainVideo-emms" id="subtitle"]] [[!template text="""on a completely different machine""" start="00:24:52.400" video="mainVideo-emms" id="subtitle"]] [[!template text="""is Emms support for the Music Player Daemon.""" start="00:24:54.120" video="mainVideo-emms" id="subtitle"]] @@ -491,9 +456,7 @@ [[!template text="""Unless of course someone volunteers to beat me to it.""" start="00:26:01.510" video="mainVideo-emms" id="subtitle"]] [[!template text="""Hint hint.""" start="00:26:05.340" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""GNU FM and Libre FM""" start="00:26:07.440" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""GNU FM and Libre FM:""" start="00:26:07.440" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""GNU FM and Libre FM""" start="00:26:07.440" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""GNU FM and Libre FM:""" start="00:26:07.440" video="mainVideo-emms" id="subtitle"]] [[!template text="""Libre FM is a music community which allows you""" start="00:26:10.960" video="mainVideo-emms" id="subtitle"]] [[!template text="""to share your listening habits with other users of the site.""" start="00:26:13.640" video="mainVideo-emms" id="subtitle"]] [[!template text="""A kind of online listening party.""" start="00:26:17.450" video="mainVideo-emms" id="subtitle"]] @@ -514,9 +477,7 @@ [[!template text="""while interacting with a remote network server.""" start="00:27:07.040" video="mainVideo-emms" id="subtitle"]] [[!template text="""How myopic!""" start="00:27:09.820" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""How we work: Emms development""" start="00:27:12.560" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""How we work: Emms development:""" start="00:27:12.560" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""How we work: Emms development""" start="00:27:12.560" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""How we work: Emms development:""" start="00:27:12.560" video="mainVideo-emms" id="subtitle"]] [[!template text="""This part is an overview of how Emms is developed.""" start="00:27:15.700" video="mainVideo-emms" id="subtitle"]] [[!template text="""By the end of this part you should be able to understand""" start="00:27:19.620" video="mainVideo-emms" id="subtitle"]] [[!template text="""how we hacked this project, and how you can too.""" start="00:27:23.900" video="mainVideo-emms" id="subtitle"]] @@ -543,17 +504,13 @@ [[!template text="""but didn't feel like the volume of incoming patches""" start="00:28:45.560" video="mainVideo-emms" id="subtitle"]] [[!template text="""justified a separate mailing list.""" start="00:28:48.280" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""The Rime Of The Ancient Maintainer""" start="00:28:52.590" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""The Rime Of The Ancient Maintainer:""" start="00:28:52.590" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The Rime Of The Ancient Maintainer""" start="00:28:52.590" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The Rime Of The Ancient Maintainer:""" start="00:28:52.590" video="mainVideo-emms" id="subtitle"]] [[!template text="""There are a number of activities""" start="00:28:55.720" video="mainVideo-emms" id="subtitle"]] [[!template text="""particular to being a maintainer.""" start="00:28:57.480" video="mainVideo-emms" id="subtitle"]] [[!template text="""These are all part of a project's lifecycle.""" start="00:29:00.100" video="mainVideo-emms" id="subtitle"]] [[!template text="""Let's review some of them.""" start="00:29:03.390" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""The life and times of an Emms patch""" start="00:29:06.080" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""The life and times of an Emms patch:""" start="00:29:06.080" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The life and times of an Emms patch""" start="00:29:06.080" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""The life and times of an Emms patch:""" start="00:29:06.080" video="mainVideo-emms" id="subtitle"]] [[!template text="""A maintainer needs to be able to accept, critique,""" start="00:29:10.000" video="mainVideo-emms" id="subtitle"]] [[!template text="""and integrate patches from contributors and developers.""" start="00:29:13.240" video="mainVideo-emms" id="subtitle"]] [[!template text="""This means, among other things, that the maintainer""" start="00:29:17.560" video="mainVideo-emms" id="subtitle"]] @@ -595,9 +552,7 @@ [[!template text="""If you have ever sent a patch, feature request,""" start="00:31:13.630" video="mainVideo-emms" id="subtitle"]] [[!template text="""or bug report into Emms (small or large), we thank you.""" start="00:31:16.880" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""Let It Go: The release process""" start="00:31:24.080" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""Let It Go, The Release Process:""" start="00:31:24.080" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Let It Go: The release process""" start="00:31:24.080" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Let It Go, The Release Process:""" start="00:31:24.080" video="mainVideo-emms" id="subtitle"]] [[!template text="""The maintainer is responsible for the release process.""" start="00:31:27.790" video="mainVideo-emms" id="subtitle"]] [[!template text="""I found that a consistent schedule works well,""" start="00:31:31.610" video="mainVideo-emms" id="subtitle"]] [[!template text="""which is not to say that we have to release on schedule,""" start="00:31:35.130" video="mainVideo-emms" id="subtitle"]] @@ -615,9 +570,7 @@ [[!template text="""will remain safely in their branch on the Git repo""" start="00:32:13.500" video="mainVideo-emms" id="subtitle"]] [[!template text="""until after the ELPA release.""" start="00:32:18.200" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""It Is Not In Our Stars, But In Ourselves: Future directions""" start="00:32:23.400" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""It Is Not In Our Stars, But In Ourselves; Future Directions:""" start="00:32:23.400" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""It Is Not In Our Stars, But In Ourselves: Future directions""" start="00:32:23.400" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""It Is Not In Our Stars, But In Ourselves; Future Directions:""" start="00:32:23.400" video="mainVideo-emms" id="subtitle"]] [[!template text="""One aspect of Emms that needs to improve is ease of setup.""" start="00:32:29.630" video="mainVideo-emms" id="subtitle"]] [[!template text="""Now that might surprise you, since at the time of writing,""" start="00:32:34.900" video="mainVideo-emms" id="subtitle"]] [[!template text="""it's already pretty easy.""" start="00:32:37.720" video="mainVideo-emms" id="subtitle"]] @@ -665,9 +618,7 @@ [[!template text="""It is typical of the kind of issue you have to have in mind""" start="00:34:38.020" video="mainVideo-emms" id="subtitle"]] [[!template text="""when you're maintaining a package.""" start="00:34:41.560" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""Development policies: Interface language""" start="00:34:44.849" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""Development Policies: Interface Language.""" start="00:34:44.849" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Development policies: Interface language""" start="00:34:44.849" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Development Policies: Interface Language.""" start="00:34:44.849" video="mainVideo-emms" id="subtitle"]] [[!template text="""A maintainer of an interactive program such as Emms""" start="00:34:49.160" video="mainVideo-emms" id="subtitle"]] [[!template text="""needs to think about user interaction.""" start="00:34:52.360" video="mainVideo-emms" id="subtitle"]] [[!template text="""Emms doesn't use key bindings which are familiar""" start="00:34:55.360" video="mainVideo-emms" id="subtitle"]] @@ -692,9 +643,7 @@ [[!template text="""and should integrate into Emacs,""" start="00:35:59.440" video="mainVideo-emms" id="subtitle"]] [[!template text="""and serve Emacs users first and foremost.""" start="00:36:01.400" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""Development policies: Freedom""" start="00:36:05.980" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""Development policies: Freedom.""" start="00:36:05.980" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Development policies: Freedom""" start="00:36:05.980" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Development policies: Freedom.""" start="00:36:05.980" video="mainVideo-emms" id="subtitle"]] [[!template text="""Another maintainer job is to think of Emms' posture""" start="00:36:10.290" video="mainVideo-emms" id="subtitle"]] [[!template text="""in regards to software freedom.""" start="00:36:15.000" video="mainVideo-emms" id="subtitle"]] [[!template text="""Here are a few examples.""" start="00:36:17.380" video="mainVideo-emms" id="subtitle"]] @@ -735,9 +684,7 @@ [[!template text="""chances are that there is something you can do for Emms.""" start="00:38:06.760" video="mainVideo-emms" id="subtitle"]] [[!template text="""Just saying.""" start="00:38:09.940" video="mainVideo-emms" id="subtitle"]] -[[!template new="1" text="""Acknowledgements""" start="00:38:12.370" video="mainVideo-emms" id="subtitle"]] - -[[!template text="""Acknowledgements:""" start="00:38:12.370" video="mainVideo-emms" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Acknowledgements""" start="00:38:12.370" video="mainVideo-emms" id="subtitle"]]</div>[[!template text="""Acknowledgements:""" start="00:38:12.370" video="mainVideo-emms" id="subtitle"]] [[!template text="""I'd like to express my deep gratitude for all of the people""" start="00:38:14.190" video="mainVideo-emms" id="subtitle"]] [[!template text="""who have hacked on Emms""" start="00:38:18.080" video="mainVideo-emms" id="subtitle"]] [[!template text="""during my time as a maintainer and before it.""" start="00:38:19.560" video="mainVideo-emms" id="subtitle"]] @@ -748,12 +695,11 @@ [[!template text="""which actually moves the ship forward.""" start="00:38:33.180" video="mainVideo-emms" id="subtitle"]] [[!template text="""Thank you to all.""" start="00:38:36.370" video="mainVideo-emms" id="subtitle"]] - +</div> Captioner: yoni -<a name="emms-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="emms-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: And I think we are live.""" start="00:00:06.140" video="qanda-emms" id="subtitle"]] [[!template text="""Hi, Yanny, how are you doing?""" start="00:00:07.580" video="qanda-emms" id="subtitle"]] @@ -1365,7 +1311,7 @@ Captioner: yoni [[!template text="""see.""" start="00:31:09.020" video="qanda-emms" id="subtitle"]] [[!template text="""[Speaker 2]: You""" start="00:31:15.060" video="qanda-emms" id="subtitle"]] -Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20emms%3A%20Emacs%20MultiMedia%20System%20%28EMMS%29) +</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20emms%3A%20Emacs%20MultiMedia%20System%20%28EMMS%29) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/emms-before.md b/2023/info/emms-before.md index d45449c6..876b22c8 100644 --- a/2023/info/emms-before.md +++ b/2023/info/emms-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 39-min talk; Q&A: BigBlueButton conference room +Format: 39-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="emms-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="emms-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-emms"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-emms" data=""" 00:00.000 Introduction 01:03.320 The structure of this talk 01:21.320 Introduction to Emms: The practical part @@ -37,10 +37,10 @@ Status: Q&A to be extracted from the room recordings 36:05.980 Development policies: Freedom 38:12.370 Acknowledgements -"""]]<div></div>Duration: 38:38 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.opus">Download --main.opus (21MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.webm">Download --main.webm (139MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin.outline">Download .outline</a></li><li><a href="https://toobnix.org/w/ppdF62LysvxpXgZVaeF9wk">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 38:38 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-emms">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=8b33cba3581e35350526d5dfcaf8fdacae21884f-1701622838637">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.opus">Download --main.opus (21MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--main.webm">Download --main.webm (139MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin.outline">Download .outline</a></li><li><a href="https://toobnix.org/w/ppdF62LysvxpXgZVaeF9wk">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=kII413hkyis">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="emms-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="emms-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.opus"></audio></div><div></div>Duration: 32:38 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.json">Download --answers.json (1.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.opus">Download --answers.opus (19MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.webm">Download --answers.webm (52MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-emms"><source src="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-emms-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.opus"></audio></div><div></div>Duration: 32:38 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-emms">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=8b33cba3581e35350526d5dfcaf8fdacae21884f-1701622838637">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.json">Download --answers.json (1.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.opus">Download --answers.opus (19MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-emms--emacs-multimedia-system-emms--yoni-rabkin--answers.webm">Download --answers.webm (52MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/emms-nav.md b/2023/info/emms-nav.md index 31d2bfad..b38582cc 100644 --- a/2023/info/emms-nav.md +++ b/2023/info/emms-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/cubing">Speedcubing in Emacs</a> Next by track: <a href="/2023/talks/steno">Programming with steno</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/eval-after.md b/2023/info/eval-after.md index d82abf2a..780cdf3c 100644 --- a/2023/info/eval-after.md +++ b/2023/info/eval-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="eval-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="eval-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:04.880" video="mainVideo-eval" id="subtitle"]] - -[[!template text="""Hello, and welcome to EmacsConf 2023!""" start="00:00:04.880" video="mainVideo-eval" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:04.880" video="mainVideo-eval" id="subtitle"]]</div>[[!template text="""Hello, and welcome to EmacsConf 2023!""" start="00:00:04.880" video="mainVideo-eval" id="subtitle"]] [[!template text="""My name is Musa Al-hassy,""" start="00:00:10.001" video="mainVideo-eval" id="subtitle"]] [[!template text="""and I will be talking about "REPL-driven development."""" start="00:00:12.109" video="mainVideo-eval" id="subtitle"]] [[!template text="""I like programming languages so much.""" start="00:00:15.549" video="mainVideo-eval" id="subtitle"]] @@ -19,9 +16,7 @@ [[!template text="""Links to longer videos and GIFs""" start="00:00:31.309" video="mainVideo-eval" id="subtitle"]] [[!template text="""for those who are interested.""" start="00:00:33.469" video="mainVideo-eval" id="subtitle"]] -[[!template new="1" text="""The wonders of C-x C-e""" start="00:00:35.989" video="mainVideo-eval" id="subtitle"]] - -[[!template text="""So the wonderful thing about Emacs""" start="00:00:35.989" video="mainVideo-eval" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The wonders of C-x C-e""" start="00:00:35.989" video="mainVideo-eval" id="subtitle"]]</div>[[!template text="""So the wonderful thing about Emacs""" start="00:00:35.989" video="mainVideo-eval" id="subtitle"]] [[!template text="""is that you can execute Lisp anywhere.""" start="00:00:37.309" video="mainVideo-eval" id="subtitle"]] [[!template text="""For example, I can go to this piece of Lisp,""" start="00:00:40.589" video="mainVideo-eval" id="subtitle"]] [[!template text="""press Ctrl-x Ctrl-e (`C-x C-e`)""" start="00:00:42.829" video="mainVideo-eval" id="subtitle"]] @@ -89,9 +84,7 @@ [[!template text="""you can insert them, and do as you like.""" start="00:03:28.343" video="mainVideo-eval" id="subtitle"]] [[!template text="""I think that's really neat.""" start="00:03:30.789" video="mainVideo-eval" id="subtitle"]] -[[!template new="1" text="""An overview of REPL Driven Development""" start="00:03:35.809" video="mainVideo-eval" id="subtitle"]] - -[[!template text="""This package allows you to do""" start="00:03:35.809" video="mainVideo-eval" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""An overview of REPL Driven Development""" start="00:03:35.809" video="mainVideo-eval" id="subtitle"]]</div>[[!template text="""This package allows you to do""" start="00:03:35.809" video="mainVideo-eval" id="subtitle"]] [[!template text="""REPL driven development.""" start="00:03:37.209" video="mainVideo-eval" id="subtitle"]] [[!template text="""In that, you can use it to grow your program.""" start="00:03:39.109" video="mainVideo-eval" id="subtitle"]] [[!template text="""You don't need to restart it.""" start="00:03:42.309" video="mainVideo-eval" id="subtitle"]] @@ -121,9 +114,7 @@ [[!template text="""but unfortunately, we're running short on time.""" start="00:04:43.909" video="mainVideo-eval" id="subtitle"]] [[!template text="""Apologies.""" start="00:04:46.509" video="mainVideo-eval" id="subtitle"]] -[[!template new="1" text="""REPL Driven Development with Java""" start="00:04:51.143" video="mainVideo-eval" id="subtitle"]] - -[[!template text="""The neat thing here is: this package tries to""" start="00:04:51.143" video="mainVideo-eval" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""REPL Driven Development with Java""" start="00:04:51.143" video="mainVideo-eval" id="subtitle"]]</div>[[!template text="""The neat thing here is: this package tries to""" start="00:04:51.143" video="mainVideo-eval" id="subtitle"]] [[!template text="""bring the feeling of Lisp to other languages.""" start="00:04:56.209" video="mainVideo-eval" id="subtitle"]] [[!template text="""So the idea of a REPL, or a Read Eval Print Loop""" start="00:05:00.269" video="mainVideo-eval" id="subtitle"]] [[!template text="""is R and P are data interchange protocols.""" start="00:05:03.509" video="mainVideo-eval" id="subtitle"]] @@ -171,9 +162,7 @@ [[!template text="""In a browser, in a LaTeX file, in an Org mode (file),""" start="00:07:22.229" video="mainVideo-eval" id="subtitle"]] [[!template text="""however we really desire.""" start="00:07:26.749" video="mainVideo-eval" id="subtitle"]] -[[!template new="1" text="""Bring your own Read Protocol""" start="00:07:28.029" video="mainVideo-eval" id="subtitle"]] - -[[!template text="""And if our language doesn't have an easy protocol,""" start="00:07:28.029" video="mainVideo-eval" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Bring your own Read Protocol""" start="00:07:28.029" video="mainVideo-eval" id="subtitle"]]</div>[[!template text="""And if our language doesn't have an easy protocol,""" start="00:07:28.029" video="mainVideo-eval" id="subtitle"]] [[!template text="""so what I did for Java in particular was:""" start="00:07:32.989" video="mainVideo-eval" id="subtitle"]] [[!template text="""you take a blob, and you use some""" start="00:07:36.143" video="mainVideo-eval" id="subtitle"]] [[!template text="""parsing expression grammars, or if you really want""" start="00:07:38.643" video="mainVideo-eval" id="subtitle"]] @@ -184,9 +173,7 @@ [[!template text="""It's nice that you can do these kind of things""" start="00:07:53.149" video="mainVideo-eval" id="subtitle"]] [[!template text="""and that this software encourages you to do them.""" start="00:07:56.749" video="mainVideo-eval" id="subtitle"]] -[[!template new="1" text="""Use Case: RDD & Job Interviews""" start="00:07:59.669" video="mainVideo-eval" id="subtitle"]] - -[[!template text="""So one use case I actually use""" start="00:07:59.669" video="mainVideo-eval" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Use Case: RDD & Job Interviews""" start="00:07:59.669" video="mainVideo-eval" id="subtitle"]]</div>[[!template text="""So one use case I actually use""" start="00:07:59.669" video="mainVideo-eval" id="subtitle"]] [[!template text="""besides learning things is…""" start="00:08:07.549" video="mainVideo-eval" id="subtitle"]] [[!template text="""oops oops oopsies oopsies showing you metadata""" start="00:08:10.909" video="mainVideo-eval" id="subtitle"]] [[!template text="""you shouldn't be looking at.""" start="00:08:14.776" video="mainVideo-eval" id="subtitle"]] @@ -221,7 +208,7 @@ [[!template text="""And have a wonderful December Saturday.""" start="00:09:29.069" video="mainVideo-eval" id="subtitle"]] [[!template text="""Take care! Bye bye, everyone.""" start="00:09:34.389" video="mainVideo-eval" id="subtitle"]] - +</div> Captioner: bhavin192 diff --git a/2023/info/eval-before.md b/2023/info/eval-before.md index 3ea735b8..18c605cc 100644 --- a/2023/info/eval-before.md +++ b/2023/info/eval-before.md @@ -1,13 +1,13 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 10-min talk; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference +Format: 10-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Status: All done -<div class="vid"><video controls preload="none" id="eval-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="eval-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-eval"><source src="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-eval" data=""" 00:04.880 Introduction 00:35.989 The wonders of C-x C-e 03:35.809 An overview of REPL Driven Development @@ -15,6 +15,6 @@ Status: All done 07:28.029 Bring your own Read Protocol 07:59.669 Use Case: RDD & Job Interviews -"""]]<div></div>Duration: 09:37 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.opus">Download --main.opus (4.2MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.webm">Download --main.webm (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/74srjNx1cgMr5MsJ9NWNNi">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 09:37 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-eval">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.opus">Download --main.opus (4.2MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-eval--editor-integrated-repl-driven-development-for-all-languages--musa-alhassy--main.webm">Download --main.webm (29MB)</a></li><li><a href="https://toobnix.org/w/74srjNx1cgMr5MsJ9NWNNi">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=1bk0pqpMCfQ">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/eval-nav.md b/2023/info/eval-nav.md index 346bbc65..2a1de627 100644 --- a/2023/info/eval-nav.md +++ b/2023/info/eval-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/overlay">Improving compiler diagnostics with overlays</a> Next by track: <a href="/2023/talks/repl">REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/flat-after.md b/2023/info/flat-after.md index c743ddf6..8135bc6c 100644 --- a/2023/info/flat-after.md +++ b/2023/info/flat-after.md @@ -1,8 +1,7 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="flat-mainVideo-transcript"></a> -# Transcript (unedited) +<div class="transcript transcript-mainVideo"><a name="flat-mainVideo-transcript"></a><h1>Transcript (unedited)</h1> [[!template text="""That's how I came into this.""" start="00:00:01.880" video="mainVideo-flat" id="subtitle"]] [[!template text="""Finally, the next big thing was starting""" start="00:00:10.120" video="mainVideo-flat" id="subtitle"]] @@ -256,7 +255,7 @@ [[!template text="""Awesome. Take care. Bye.""" start="00:22:01.640" video="mainVideo-flat" id="subtitle"]] [[!template text="""Bye. Bye.""" start="00:22:02.720" video="mainVideo-flat" id="subtitle"]] -Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20flat%3A%20A%20modern%20Emacs%20look-and-feel%20without%20pain) +</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20flat%3A%20A%20modern%20Emacs%20look-and-feel%20without%20pain) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/flat-before.md b/2023/info/flat-before.md index fdae80b7..d3827603 100644 --- a/2023/info/flat-before.md +++ b/2023/info/flat-before.md @@ -1,12 +1,12 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 23-min talk; Q&A: BigBlueButton conference room +Format: 23-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="flat-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 22:20 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.opus">Download --main.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.webm">Download --main.webm (121MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/1DRDY8vZK3SW5M8zAPJQSp">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-flat"><source src="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 22:20 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-flat">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=865d185560bbda4ee85399dc236c6f7eb2ee635d-1701616925579">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.opus">Download --main.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-flat--a-modern-emacs-lookandfeel-without-pain--pedro-a-aranda--main.webm">Download --main.webm (121MB)</a></li><li><a href="https://toobnix.org/w/1DRDY8vZK3SW5M8zAPJQSp">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=E1u6DcHis9M">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/flat-nav.md b/2023/info/flat-nav.md index 02ba0748..a3ff71bc 100644 --- a/2023/info/flat-nav.md +++ b/2023/info/flat-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/world">GNU Emacs: A World of Possibilities</a> Next by track: <a href="/2023/talks/emacsen">The Emacsen family, the design of an Emacs and the importance of Lisp</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/gc-after.md b/2023/info/gc-after.md index 90c0a853..f4eef3e2 100644 --- a/2023/info/gc-after.md +++ b/2023/info/gc-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="gc-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="gc-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-gc" id="subtitle"]] - -[[!template text="""Hello everyone, my name is Ihor Radchenko,""" start="00:00:00.000" video="mainVideo-gc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-gc" id="subtitle"]]</div>[[!template text="""Hello everyone, my name is Ihor Radchenko,""" start="00:00:00.000" video="mainVideo-gc" id="subtitle"]] [[!template text="""and you may know me from Org Mailing List.""" start="00:00:04.640" video="mainVideo-gc" id="subtitle"]] [[!template text="""However, today I'm not going to talk about Org Mode.""" start="00:00:07.600" video="mainVideo-gc" id="subtitle"]] [[!template text="""Today I'm going to talk about""" start="00:00:09.800" video="mainVideo-gc" id="subtitle"]] @@ -22,9 +19,7 @@ [[!template text="""to optimize Emacs performance""" start="00:00:44.720" video="mainVideo-gc" id="subtitle"]] [[!template text="""and when it's necessary or not to do.""" start="00:00:47.480" video="mainVideo-gc" id="subtitle"]] -[[!template new="1" text="""About garbage collection in Emacs""" start="00:00:51.080" video="mainVideo-gc" id="subtitle"]] - -[[!template text="""Let's begin. What is garbage collection?""" start="00:00:51.080" video="mainVideo-gc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""About garbage collection in Emacs""" start="00:00:51.080" video="mainVideo-gc" id="subtitle"]]</div>[[!template text="""Let's begin. What is garbage collection?""" start="00:00:51.080" video="mainVideo-gc" id="subtitle"]] [[!template text="""To understand what is garbage collection,""" start="00:00:54.520" video="mainVideo-gc" id="subtitle"]] [[!template text="""we need to realize that anything you do in Emacs""" start="00:00:56.520" video="mainVideo-gc" id="subtitle"]] [[!template text="""is some kind of command. Any command is most likely""" start="00:00:59.040" video="mainVideo-gc" id="subtitle"]] @@ -51,9 +46,7 @@ [[!template text="""The first term of the list is not used""" start="00:02:05.000" video="mainVideo-gc" id="subtitle"]] [[!template text="""and it might be cleared at some point.""" start="00:02:07.680" video="mainVideo-gc" id="subtitle"]] -[[!template new="1" text="""Garbage collection in Emacs""" start="00:02:09.760" video="mainVideo-gc" id="subtitle"]] - -[[!template text="""So that's what Emacs does.""" start="00:02:09.760" video="mainVideo-gc" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Garbage collection in Emacs""" start="00:02:09.760" video="mainVideo-gc" id="subtitle"]]</div>[[!template text="""So that's what Emacs does.""" start="00:02:09.760" video="mainVideo-gc" id="subtitle"]] [[!template text="""Every now and then, Emacs goes through all the memory""" start="00:02:12.240" video="mainVideo-gc" id="subtitle"]] [[!template text="""and identifies which part of the memory are not used""" start="00:02:15.920" video="mainVideo-gc" id="subtitle"]] [[!template text="""and then clear them so that it can free up the RAM.""" start="00:02:19.120" video="mainVideo-gc" id="subtitle"]] @@ -605,360 +598,7 @@ [[!template text="""and you can reproduce all the statistic graphs if you wish""" start="00:33:11.840" video="mainVideo-gc" id="subtitle"]] [[!template text="""and thank you for attention""" start="00:33:17.080" video="mainVideo-gc" id="subtitle"]] -<a name="gc-qanda-transcript"></a> -# Q&A transcript (unedited) - -[[!template text="""[Speaker 0]: And then, hi everyone.""" start="00:00:01.620" video="qanda-gc" id="subtitle"]] -[[!template text="""Thank you for your nice talk,""" start="00:00:03.760" video="qanda-gc" id="subtitle"]] -[[!template text="""I can say it's the Emacs GC.""" start="00:00:05.900" video="qanda-gc" id="subtitle"]] -[[!template text="""We have some questions on the pad and maybe""" start="00:00:09.280" video="qanda-gc" id="subtitle"]] -[[!template text="""before I would like to ask you something to""" start="00:00:11.580" video="qanda-gc" id="subtitle"]] -[[!template text="""the last 1 you have said,""" start="00:00:12.780" video="qanda-gc" id="subtitle"]] -[[!template text="""concerning changing the GC strategy,""" start="00:00:15.200" video="qanda-gc" id="subtitle"]] -[[!template text="""that it's unlikely that it will be happening""" start="00:00:18.500" video="qanda-gc" id="subtitle"]] -[[!template text="""in the next time. Yeah.""" start="00:00:20.380" video="qanda-gc" id="subtitle"]] -[[!template text="""Is there any discussion going on or why does""" start="00:00:22.760" video="qanda-gc" id="subtitle"]] -[[!template text="""the case it's not changing the strategy?""" start="00:00:24.320" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: It's mostly because it's difficult.""" start="00:00:26.640" video="qanda-gc" id="subtitle"]] -[[!template text="""I think, yesterday you heard from,""" start="00:00:29.439" video="qanda-gc" id="subtitle"]] -[[!template text="""1 of the dev talks that like there was 1""" start="00:00:33.400" video="qanda-gc" id="subtitle"]] -[[!template text="""small, short comment that,""" start="00:00:34.980" video="qanda-gc" id="subtitle"]] -[[!template text="""oh yeah, it would be nice to change this""" start="00:00:36.780" video="qanda-gc" id="subtitle"]] -[[!template text="""algorithm but it's hard.""" start="00:00:39.059" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: So I""" start="00:00:40.760" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: mean it's hard not because the algorithm is""" start="00:00:43.260" video="qanda-gc" id="subtitle"]] -[[!template text="""that hard but because it's a very low level""" start="00:00:45.400" video="qanda-gc" id="subtitle"]] -[[!template text="""code and it must be like very carefully""" start="00:00:48.000" video="qanda-gc" id="subtitle"]] -[[!template text="""weighted. So that can be,""" start="00:00:49.960" video="qanda-gc" id="subtitle"]] -[[!template text="""it needs to be made sure that the carousel""" start="00:00:53.239" video="qanda-gc" id="subtitle"]] -[[!template text="""will work. It's all bugs.""" start="00:00:55.280" video="qanda-gc" id="subtitle"]] -[[!template text="""If you have bugs and you can see that,""" start="00:00:57.440" video="qanda-gc" id="subtitle"]] -[[!template text="""so it's nothing to work anymore.""" start="00:00:58.660" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: So We have a lot of RAM usage.""" start="00:01:00.720" video="qanda-gc" id="subtitle"]] -[[!template text="""Yeah. Maybe sometime.""" start="00:01:02.240" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: There was like years ago,""" start="00:01:06.180" video="qanda-gc" id="subtitle"]] -[[!template text="""there was a branch on generational DC,""" start="00:01:09.640" video="qanda-gc" id="subtitle"]] -[[!template text="""if I remember correctly,""" start="00:01:11.100" video="qanda-gc" id="subtitle"]] -[[!template text="""but they didn't go anywhere,""" start="00:01:13.380" video="qanda-gc" id="subtitle"]] -[[!template text="""unfortunately.""" start="00:01:14.760" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: That's a pity. But let's come to the""" start="00:01:18.900" video="qanda-gc" id="subtitle"]] -[[!template text="""questions on the pad. So the first 1 is,""" start="00:01:21.500" video="qanda-gc" id="subtitle"]] -[[!template text="""are the GC duration statistics correlated""" start="00:01:24.340" video="qanda-gc" id="subtitle"]] -[[!template text="""with users? I mean, does the same user""" start="00:01:27.340" video="qanda-gc" id="subtitle"]] -[[!template text="""experience GC of various durations?""" start="00:01:29.440" video="qanda-gc" id="subtitle"]] -[[!template text="""Or Do some users experience GC of a greater""" start="00:01:32.900" video="qanda-gc" id="subtitle"]] -[[!template text="""0.26 exclusively, while others never""" start="00:01:36.680" video="qanda-gc" id="subtitle"]] -[[!template text="""experience them? So is it correlated to user""" start="00:01:40.440" video="qanda-gc" id="subtitle"]] -[[!template text="""behavior? I guess you said it in your talk.""" start="00:01:43.780" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: Well, If you talk formally,""" start="00:01:46.160" video="qanda-gc" id="subtitle"]] -[[!template text="""then almost every user has like 1 or 2""" start="00:01:49.340" video="qanda-gc" id="subtitle"]] -[[!template text="""occasions when GC takes more than 0.2""" start="00:01:51.500" video="qanda-gc" id="subtitle"]] -[[!template text="""seconds, but it's like,""" start="00:01:53.040" video="qanda-gc" id="subtitle"]] -[[!template text="""maybe something else is using CPU and that's""" start="00:01:56.720" video="qanda-gc" id="subtitle"]] -[[!template text="""why, but in practice, there are users who""" start="00:02:00.720" video="qanda-gc" id="subtitle"]] -[[!template text="""don't have problem. Half of them that that's""" start="00:02:04.200" video="qanda-gc" id="subtitle"]] -[[!template text="""who that's what I looked from statistics.""" start="00:02:05.800" video="qanda-gc" id="subtitle"]] -[[!template text="""And dry users who have like really big""" start="00:02:10.240" video="qanda-gc" id="subtitle"]] -[[!template text="""problems, like 1 second GC time.""" start="00:02:12.520" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: This is dependent on you make some comments""" start="00:02:17.280" video="qanda-gc" id="subtitle"]] -[[!template text="""on us in the talk, but could you like extract""" start="00:02:19.960" video="qanda-gc" id="subtitle"]] -[[!template text="""on if it's a package, that's a problem or we""" start="00:02:23.000" video="qanda-gc" id="subtitle"]] -[[!template text="""as a user behavior are there.""" start="00:02:24.780" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: Usually it's something that is,""" start="00:02:30.720" video="qanda-gc" id="subtitle"]] -[[!template text="""okay. I'm sharing my screen now,""" start="00:02:33.760" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: It's coming on, give it like 2 to 3 seconds.""" start="00:02:37.580" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: right? Yeah. So I can just click through""" start="00:02:41.480" video="qanda-gc" id="subtitle"]] -[[!template text="""different user statistics.""" start="00:02:42.940" video="qanda-gc" id="subtitle"]] -[[!template text="""So like you can see this duration for each""" start="00:02:48.840" video="qanda-gc" id="subtitle"]] -[[!template text="""individual user basically.""" start="00:02:49.960" video="qanda-gc" id="subtitle"]] -[[!template text="""So you can see like here for example it's""" start="00:02:54.240" video="qanda-gc" id="subtitle"]] -[[!template text="""like averages around 0.25""" start="00:02:56.320" video="qanda-gc" id="subtitle"]] -[[!template text="""seconds which is noticeable and here is like""" start="00:03:00.040" video="qanda-gc" id="subtitle"]] -[[!template text="""0.1 like someone is all over the place,""" start="00:03:03.640" video="qanda-gc" id="subtitle"]] -[[!template text="""probably some. Then like,""" start="00:03:09.560" video="qanda-gc" id="subtitle"]] -[[!template text="""what else can we see here?""" start="00:03:11.520" video="qanda-gc" id="subtitle"]] -[[!template text="""Yeah, some users like have sub 0.1,""" start="00:03:15.140" video="qanda-gc" id="subtitle"]] -[[!template text="""no problem at all. And I have seen some that""" start="00:03:23.320" video="qanda-gc" id="subtitle"]] -[[!template text="""really, really bad. I mean,""" start="00:03:30.180" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: if it's noticeable, it's all bad.""" start="00:03:31.880" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: So yeah. For example, here it's like 0.8""" start="00:03:36.960" video="qanda-gc" id="subtitle"]] -[[!template text="""seconds, 0.5 seconds. I don't know how that""" start="00:03:41.680" video="qanda-gc" id="subtitle"]] -[[!template text="""guy uses ZMax. Yeah. you can see it varies.""" start="00:03:48.600" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: So It varies quite a lot.""" start="00:03:51.160" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: What it depends on, like,""" start="00:03:52.760" video="qanda-gc" id="subtitle"]] -[[!template text="""usually the number of packages,""" start="00:03:54.120" video="qanda-gc" id="subtitle"]] -[[!template text="""like all kinds of timers going on under the""" start="00:03:58.440" video="qanda-gc" id="subtitle"]] -[[!template text="""hood. I think I tried to list...""" start="00:04:01.720" video="qanda-gc" id="subtitle"]] -[[!template text="""I'll go through this. I briefly outlined some""" start="00:04:12.520" video="qanda-gc" id="subtitle"]] -[[!template text="""important parts. Here,""" start="00:04:15.440" video="qanda-gc" id="subtitle"]] -[[!template text="""when you have something like an org agenda,""" start="00:04:18.480" video="qanda-gc" id="subtitle"]] -[[!template text="""it will most likely trigger a lot of GCs.""" start="00:04:20.680" video="qanda-gc" id="subtitle"]] -[[!template text="""When you have a lot of timers,""" start="00:04:23.900" video="qanda-gc" id="subtitle"]] -[[!template text="""when you have something calculated on""" start="00:04:27.800" video="qanda-gc" id="subtitle"]] -[[!template text="""modline, it will be frequently triggered.""" start="00:04:29.700" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Well,""" start="00:04:30.900" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: yeah. When you have so many packages and""" start="00:04:34.080" video="qanda-gc" id="subtitle"]] -[[!template text="""these packages are using a lot of memory.""" start="00:04:35.760" video="qanda-gc" id="subtitle"]] -[[!template text="""Like I remember I was surprised by this,""" start="00:04:41.120" video="qanda-gc" id="subtitle"]] -[[!template text="""package, home org that was,""" start="00:04:44.640" video="qanda-gc" id="subtitle"]] -[[!template text="""caching all the results.""" start="00:04:46.560" video="qanda-gc" id="subtitle"]] -[[!template text="""And for large org files,""" start="00:04:48.960" video="qanda-gc" id="subtitle"]] -[[!template text="""it was like several hundred megabytes of""" start="00:04:51.540" video="qanda-gc" id="subtitle"]] -[[!template text="""data. Well, it just becomes slower.""" start="00:04:55.160" video="qanda-gc" id="subtitle"]] -[[!template text="""Yeah.""" start="00:04:55.900" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Yeah. Maybe, maybe a short side note.""" start="00:05:00.020" video="qanda-gc" id="subtitle"]] -[[!template text="""Someone asks, what software you're using for""" start="00:05:02.600" video="qanda-gc" id="subtitle"]] -[[!template text="""flipping through the PNGs.""" start="00:05:03.480" video="qanda-gc" id="subtitle"]] -[[!template text="""Maybe you could shortly throws it in.""" start="00:05:06.660" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: What do you mean? Here,""" start="00:05:08.800" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: I guess it was just simply,""" start="00:05:11.000" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: this, It's it's far. Yeah.""" start="00:05:13.480" video="qanda-gc" id="subtitle"]] -[[!template text="""So""" start="00:05:16.660" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: yeah. So, question 1 and 2 answered.""" start="00:05:23.900" video="qanda-gc" id="subtitle"]] -[[!template text="""To 1 statement you have made,""" start="00:05:35.740" video="qanda-gc" id="subtitle"]] -[[!template text="""there was a question concerning the timings.""" start="00:05:37.500" video="qanda-gc" id="subtitle"]] -[[!template text="""So you said, okay, everything above 0.1""" start="00:05:41.180" video="qanda-gc" id="subtitle"]] -[[!template text="""second is fine. Maybe There's a short story""" start="00:05:45.800" video="qanda-gc" id="subtitle"]] -[[!template text="""of someone who asked a question.""" start="00:05:48.480" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: I see the question is about scrolling,""" start="00:05:50.380" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Yeah, exactly.""" start="00:05:51.820" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: right? Again, there's not much you can do in""" start="00:05:55.580" video="qanda-gc" id="subtitle"]] -[[!template text="""terms of trying to adjust the GC time.""" start="00:05:58.620" video="qanda-gc" id="subtitle"]] -[[!template text="""I mean, if you make GCs less frequent,""" start="00:06:02.320" video="qanda-gc" id="subtitle"]] -[[!template text="""you increase the individual GC time.""" start="00:06:07.540" video="qanda-gc" id="subtitle"]] -[[!template text="""If you make them more frequent,""" start="00:06:08.860" video="qanda-gc" id="subtitle"]] -[[!template text="""you decrease the individual GC time,""" start="00:06:11.280" video="qanda-gc" id="subtitle"]] -[[!template text="""but then they are more frequent.""" start="00:06:12.400" video="qanda-gc" id="subtitle"]] -[[!template text="""So what is the point? I think the way to go""" start="00:06:15.920" video="qanda-gc" id="subtitle"]] -[[!template text="""here is you can rise to see the short for the""" start="00:06:19.940" video="qanda-gc" id="subtitle"]] -[[!template text="""duration of scrolling,""" start="00:06:20.740" video="qanda-gc" id="subtitle"]] -[[!template text="""like just for a comment.""" start="00:06:22.500" video="qanda-gc" id="subtitle"]] -[[!template text="""I think it's a recommendation from Emacs""" start="00:06:26.320" video="qanda-gc" id="subtitle"]] -[[!template text="""devs. So like You do something along the""" start="00:06:31.480" video="qanda-gc" id="subtitle"]] -[[!template text="""lines.""" start="00:06:31.660" video="qanda-gc" id="subtitle"]] -[[!template text="""Yeah, I'm surely doing something on my screen""" start="00:06:53.480" video="qanda-gc" id="subtitle"]] -[[!template text="""and I forgot that I'm not sharing anything.""" start="00:06:55.680" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Exactly.""" start="00:06:56.680" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: Simply something like this.""" start="00:07:00.700" video="qanda-gc" id="subtitle"]] -[[!template text="""So, basically, if you have some command that""" start="00:07:08.140" video="qanda-gc" id="subtitle"]] -[[!template text="""is very important that it should run very""" start="00:07:10.920" video="qanda-gc" id="subtitle"]] -[[!template text="""quickly. You temporary increase that""" start="00:07:13.860" video="qanda-gc" id="subtitle"]] -[[!template text="""threshold, you run that comment,""" start="00:07:15.740" video="qanda-gc" id="subtitle"]] -[[!template text="""then that's all. That's probably the best.""" start="00:07:19.940" video="qanda-gc" id="subtitle"]] -[[!template text="""So basically, the best you can do is to delay""" start="00:07:21.660" video="qanda-gc" id="subtitle"]] -[[!template text="""it after the command.""" start="00:07:23.760" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: So afterwards, it takes a lot of time to do""" start="00:07:27.500" video="qanda-gc" id="subtitle"]] -[[!template text="""its stuff. OK. The third 1 has been already""" start="00:07:36.140" video="qanda-gc" id="subtitle"]] -[[!template text="""answered, but I just want to get your""" start="00:07:40.520" video="qanda-gc" id="subtitle"]] -[[!template text="""information from it. Opinions on the GCMH""" start="00:07:42.780" video="qanda-gc" id="subtitle"]] -[[!template text="""mode.""" start="00:07:43.940" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: Okay. Yeah, I see that problem,""" start="00:07:48.280" video="qanda-gc" id="subtitle"]] -[[!template text="""but that's more like a technical problem.""" start="00:07:49.920" video="qanda-gc" id="subtitle"]] -[[!template text="""But there's another problem there.""" start="00:07:52.360" video="qanda-gc" id="subtitle"]] -[[!template text="""Yeah, I prepared a small snippet here.""" start="00:07:57.340" video="qanda-gc" id="subtitle"]] -[[!template text="""So if you look at the GCMH mode,""" start="00:08:02.160" video="qanda-gc" id="subtitle"]] -[[!template text="""it has this concept of low threshold and high""" start="00:08:05.800" video="qanda-gc" id="subtitle"]] -[[!template text="""threshold and most of the time it's running""" start="00:08:08.200" video="qanda-gc" id="subtitle"]] -[[!template text="""high threshold and then when Emacs is idle,""" start="00:08:14.120" video="qanda-gc" id="subtitle"]] -[[!template text="""it falls back to lower threshold and then it""" start="00:08:17.320" video="qanda-gc" id="subtitle"]] -[[!template text="""does the GC while Emacs is not used.""" start="00:08:19.400" video="qanda-gc" id="subtitle"]] -[[!template text="""That's a good idea, of course.""" start="00:08:22.040" video="qanda-gc" id="subtitle"]] -[[!template text="""That's the core idea of GCMH mode.""" start="00:08:24.380" video="qanda-gc" id="subtitle"]] -[[!template text="""Unfortunately, the most annoying GC is when""" start="00:08:30.520" video="qanda-gc" id="subtitle"]] -[[!template text="""you're actively using max.""" start="00:08:31.760" video="qanda-gc" id="subtitle"]] -[[!template text="""And then you have this huge value of GC""" start="00:08:37.120" video="qanda-gc" id="subtitle"]] -[[!template text="""counter show and look at the doc stream.""" start="00:08:38.799" video="qanda-gc" id="subtitle"]] -[[!template text="""This would be sector value that makes GC""" start="00:08:41.760" video="qanda-gc" id="subtitle"]] -[[!template text="""unlikely but does not cost OSP Asian.""" start="00:08:43.980" video="qanda-gc" id="subtitle"]] -[[!template text="""So yeah, no wonder like if you don't do GC,""" start="00:08:46.480" video="qanda-gc" id="subtitle"]] -[[!template text="""your arm usage will skyrocket.""" start="00:08:49.640" video="qanda-gc" id="subtitle"]] -[[!template text="""So they don't, they cannot put it too much,""" start="00:08:54.360" video="qanda-gc" id="subtitle"]] -[[!template text="""but this is like already like,""" start="00:08:57.720" video="qanda-gc" id="subtitle"]] -[[!template text="""how much was it?""" start="00:08:59.220" video="qanda-gc" id="subtitle"]] -[[!template text="""1 gigabyte, that's the default.""" start="00:09:10.800" video="qanda-gc" id="subtitle"]] -[[!template text="""And the problem is when you have 1 gigabyte""" start="00:09:15.220" video="qanda-gc" id="subtitle"]] -[[!template text="""to garbage collect, it causes really long GC""" start="00:09:18.680" video="qanda-gc" id="subtitle"]] -[[!template text="""time. So in GC image mode,""" start="00:09:22.040" video="qanda-gc" id="subtitle"]] -[[!template text="""when you're actually using Emacs,""" start="00:09:23.560" video="qanda-gc" id="subtitle"]] -[[!template text="""really heavily, the GCs become terrible,""" start="00:09:28.860" video="qanda-gc" id="subtitle"]] -[[!template text="""terribly slow. So it may help in case you""" start="00:09:34.640" video="qanda-gc" id="subtitle"]] -[[!template text="""don't have too much problems with GC,""" start="00:09:37.200" video="qanda-gc" id="subtitle"]] -[[!template text="""but I will say that in such situation,""" start="00:09:39.280" video="qanda-gc" id="subtitle"]] -[[!template text="""you can simply increase GC cost percentage,""" start="00:09:41.920" video="qanda-gc" id="subtitle"]] -[[!template text="""as I recommend, and it should do it.""" start="00:09:44.540" video="qanda-gc" id="subtitle"]] -[[!template text="""But in case of really big problems with""" start="00:09:48.480" video="qanda-gc" id="subtitle"]] -[[!template text="""garbage collection, no,""" start="00:09:50.080" video="qanda-gc" id="subtitle"]] -[[!template text="""I don't think that will help much.""" start="00:09:51.740" video="qanda-gc" id="subtitle"]] -[[!template text="""I used it myself and it didn't help much for""" start="00:09:54.800" video="qanda-gc" id="subtitle"]] -[[!template text="""my stuff.""" start="00:09:55.200" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: All right. The next question is concerning""" start="00:09:59.680" video="qanda-gc" id="subtitle"]] -[[!template text="""freeing up memory. Is there some way to free""" start="00:10:04.600" video="qanda-gc" id="subtitle"]] -[[!template text="""up memory such as via unload feature on""" start="00:10:07.200" video="qanda-gc" id="subtitle"]] -[[!template text="""Emacs? Often I only need a package loaded for""" start="00:10:09.960" video="qanda-gc" id="subtitle"]] -[[!template text="""a single task or short period by the""" start="00:10:12.240" video="qanda-gc" id="subtitle"]] -[[!template text="""persistent memory afterwards.""" start="00:10:13.320" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: So the packages are usually not that much of""" start="00:10:19.780" video="qanda-gc" id="subtitle"]] -[[!template text="""a problem. I mean, the libraries,""" start="00:10:22.060" video="qanda-gc" id="subtitle"]] -[[!template text="""the problem is some extra,""" start="00:10:25.280" video="qanda-gc" id="subtitle"]] -[[!template text="""like some variable contents or some""" start="00:10:30.060" video="qanda-gc" id="subtitle"]] -[[!template text="""histories, some caches.""" start="00:10:31.800" video="qanda-gc" id="subtitle"]] -[[!template text="""That's what's eating most of the memory.""" start="00:10:35.280" video="qanda-gc" id="subtitle"]] -[[!template text="""There is a package called memory usage and""" start="00:10:40.240" video="qanda-gc" id="subtitle"]] -[[!template text="""built in MX memory report.""" start="00:10:45.440" video="qanda-gc" id="subtitle"]] -[[!template text="""They allow to see which variables take a lot""" start="00:10:50.900" video="qanda-gc" id="subtitle"]] -[[!template text="""of memory. And that way you can try to see""" start="00:10:56.000" video="qanda-gc" id="subtitle"]] -[[!template text="""which packages are actually problematic.""" start="00:10:58.520" video="qanda-gc" id="subtitle"]] -[[!template text="""So for example, I recall,""" start="00:11:03.340" video="qanda-gc" id="subtitle"]] -[[!template text="""and that was not exactly,""" start="00:11:05.640" video="qanda-gc" id="subtitle"]] -[[!template text="""I remember there was a package that was""" start="00:11:09.720" video="qanda-gc" id="subtitle"]] -[[!template text="""literally in command line,""" start="00:11:11.040" video="qanda-gc" id="subtitle"]] -[[!template text="""like prompt history. I think it was in""" start="00:11:14.020" video="qanda-gc" id="subtitle"]] -[[!template text="""command. And when you do like,""" start="00:11:17.540" video="qanda-gc" id="subtitle"]] -[[!template text="""when you save every message in your chart""" start="00:11:20.440" video="qanda-gc" id="subtitle"]] -[[!template text="""into prompt history, that can grow very fast""" start="00:11:25.280" video="qanda-gc" id="subtitle"]] -[[!template text="""and can go to several hundred megabytes just""" start="00:11:29.220" video="qanda-gc" id="subtitle"]] -[[!template text="""in that history. And that can cause major""" start="00:11:31.720" video="qanda-gc" id="subtitle"]] -[[!template text="""problems. So, yes, profiling the largest""" start="00:11:37.960" video="qanda-gc" id="subtitle"]] -[[!template text="""variables with the largest buffers that might""" start="00:11:41.200" video="qanda-gc" id="subtitle"]] -[[!template text="""give some clues. Again,""" start="00:11:42.660" video="qanda-gc" id="subtitle"]] -[[!template text="""there is no silver bullet.""" start="00:11:43.740" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Right. I think the last question on the""" start="00:11:49.080" video="qanda-gc" id="subtitle"]] -[[!template text="""patterns. At first, very nice presentation.""" start="00:11:51.000" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: I can""" start="00:11:51.620" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: also only agree with that.""" start="00:11:53.980" video="qanda-gc" id="subtitle"]] -[[!template text="""I just experienced with a threshold and""" start="00:11:56.480" video="qanda-gc" id="subtitle"]] -[[!template text="""lowered my GCE lapse from 1.1""" start="00:11:58.200" video="qanda-gc" id="subtitle"]] -[[!template text="""to 0.06 seconds during startup.""" start="00:12:01.440" video="qanda-gc" id="subtitle"]] -[[!template text="""Interestingly, going to 10 megabytes""" start="00:12:03.600" video="qanda-gc" id="subtitle"]] -[[!template text="""increased the time. 4 megabytes was a sweet""" start="00:12:06.100" video="qanda-gc" id="subtitle"]] -[[!template text="""spot for my system. What is the recommended""" start="00:12:07.800" video="qanda-gc" id="subtitle"]] -[[!template text="""way to lower the value back to the default""" start="00:12:10.840" video="qanda-gc" id="subtitle"]] -[[!template text="""value after startup is completed?""" start="00:12:12.340" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: I think you just use after init hook.""" start="00:12:16.160" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: This was a relatively fast answer.""" start="00:12:23.940" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: So basically for example Doom does this,""" start="00:12:29.180" video="qanda-gc" id="subtitle"]] -[[!template text="""it temporary writes a gcconcert hold during""" start="00:12:31.940" video="qanda-gc" id="subtitle"]] -[[!template text="""startup and yeah after init hook the code is""" start="00:12:37.260" video="qanda-gc" id="subtitle"]] -[[!template text="""like it's 1 of the commonly suggested""" start="00:12:39.880" video="qanda-gc" id="subtitle"]] -[[!template text="""approaches and is I believe it's the right 1.""" start="00:12:43.940" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Right. To have joined us 1 was a microphone.""" start="00:12:49.180" video="qanda-gc" id="subtitle"]] -[[!template text="""So Peter, do you have any questions that you""" start="00:12:52.200" video="qanda-gc" id="subtitle"]] -[[!template text="""want to question? And maybe as a side note,""" start="00:12:55.240" video="qanda-gc" id="subtitle"]] -[[!template text="""we only have 4 minutes left and afterwards""" start="00:12:57.380" video="qanda-gc" id="subtitle"]] -[[!template text="""this happy weekend will still be open,""" start="00:12:59.240" video="qanda-gc" id="subtitle"]] -[[!template text="""but we will switch back to the talks.""" start="00:13:01.400" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 2]: Yeah, no more questions on garbage""" start="00:13:05.380" video="qanda-gc" id="subtitle"]] -[[!template text="""collection, but I just wanted to thank Ihor""" start="00:13:07.640" video="qanda-gc" id="subtitle"]] -[[!template text="""for his engagement in the community.""" start="00:13:10.440" video="qanda-gc" id="subtitle"]] -[[!template text="""And especially with, I'm a co-maintainer on""" start="00:13:15.300" video="qanda-gc" id="subtitle"]] -[[!template text="""orgnotor and he's helped us a lot with""" start="00:13:17.600" video="qanda-gc" id="subtitle"]] -[[!template text="""getting us up to date with newer versions of""" start="00:13:21.680" video="qanda-gc" id="subtitle"]] -[[!template text="""org and stuff like that.""" start="00:13:22.680" video="qanda-gc" id="subtitle"]] -[[!template text="""So just wanted to thank you in person.""" start="00:13:24.680" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: Right.""" start="00:13:25.140" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Maybe 1 question for me,""" start="00:13:33.540" video="qanda-gc" id="subtitle"]] -[[!template text="""you had some bit talked about memory""" start="00:13:35.460" video="qanda-gc" id="subtitle"]] -[[!template text="""fragmentation. So is there any way to or is""" start="00:13:40.640" video="qanda-gc" id="subtitle"]] -[[!template text="""it fixed by Emacs itself?""" start="00:13:42.080" video="qanda-gc" id="subtitle"]] -[[!template text="""So you have like""" start="00:13:43.740" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: a chunk of memory fragmentation is basically""" start="00:13:46.520" video="qanda-gc" id="subtitle"]] -[[!template text="""your OS. Yeah, Emacs releases the memory and""" start="00:13:51.420" video="qanda-gc" id="subtitle"]] -[[!template text="""then OS can rearrange it depending on the""" start="00:13:55.020" video="qanda-gc" id="subtitle"]] -[[!template text="""implementation of its memory manager.""" start="00:13:58.320" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Okay, so the GC just releases it really and""" start="00:14:01.520" video="qanda-gc" id="subtitle"]] -[[!template text="""not so it could be that a mix is like""" start="00:14:04.400" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: doing it. You have like memory pages,""" start="00:14:07.420" video="qanda-gc" id="subtitle"]] -[[!template text="""right? Yeah. And you see,""" start="00:14:09.560" video="qanda-gc" id="subtitle"]] -[[!template text="""can release a part of this page just like""" start="00:14:12.140" video="qanda-gc" id="subtitle"]] -[[!template text="""here and there. And depending on the exact""" start="00:14:14.760" video="qanda-gc" id="subtitle"]] -[[!template text="""situation is your arm at each moment of time,""" start="00:14:17.720" video="qanda-gc" id="subtitle"]] -[[!template text="""or as may or may not be able to arrange""" start="00:14:20.240" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: so""" start="00:14:25.160" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: things. So, how the exact the data you cannot""" start="00:14:27.620" video="qanda-gc" id="subtitle"]] -[[!template text="""really predict it. It really varies like you""" start="00:14:30.160" video="qanda-gc" id="subtitle"]] -[[!template text="""use Windows, you use Linux,""" start="00:14:31.120" video="qanda-gc" id="subtitle"]] -[[!template text="""you use like malloc, something else,""" start="00:14:33.240" video="qanda-gc" id="subtitle"]] -[[!template text="""but it has nothing to do with Emacs.""" start="00:14:36.260" video="qanda-gc" id="subtitle"]] -[[!template text="""It's just something you have to deal with.""" start="00:14:38.040" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Yeah, but my question was in the way that we""" start="00:14:41.780" video="qanda-gc" id="subtitle"]] -[[!template text="""are giving the memory back to the operating""" start="00:14:43.460" video="qanda-gc" id="subtitle"]] -[[!template text="""system, not just holding it as used and then""" start="00:14:46.020" video="qanda-gc" id="subtitle"]] -[[!template text="""to our own memory, like stuff as Emacs that""" start="00:14:49.960" video="qanda-gc" id="subtitle"]] -[[!template text="""we do not need to interact with the operating""" start="00:14:51.680" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: Yeah. Emacs does not really hold anything.""" start="00:14:56.040" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: system. That was the question.""" start="00:14:59.160" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: Okay. I was really hoping it does,""" start="00:15:01.920" video="qanda-gc" id="subtitle"]] -[[!template text="""but yeah, unfortunately,""" start="00:15:02.760" video="qanda-gc" id="subtitle"]] -[[!template text="""because nothing much can be done on Emacs.""" start="00:15:05.640" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Okay. it's not Probably a lot faster if it's""" start="00:15:08.800" video="qanda-gc" id="subtitle"]] -[[!template text="""just holding it and when it needs more,""" start="00:15:10.580" video="qanda-gc" id="subtitle"]] -[[!template text="""then just get more from the OS.""" start="00:15:12.380" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: There are certain caveats,""" start="00:15:14.220" video="qanda-gc" id="subtitle"]] -[[!template text="""for example, there's something called image""" start="00:15:16.720" video="qanda-gc" id="subtitle"]] -[[!template text="""cache. And because Emacs stores images in""" start="00:15:20.560" video="qanda-gc" id="subtitle"]] -[[!template text="""uncompressed format, it can occupy quite a""" start="00:15:23.720" video="qanda-gc" id="subtitle"]] -[[!template text="""lot of memory. In particular,""" start="00:15:25.020" video="qanda-gc" id="subtitle"]] -[[!template text="""when you will like view PDFs,""" start="00:15:26.520" video="qanda-gc" id="subtitle"]] -[[!template text="""like you open 10, like 20 PDFs in 1 session,""" start="00:15:30.140" video="qanda-gc" id="subtitle"]] -[[!template text="""you may have like some image cache blowing""" start="00:15:33.460" video="qanda-gc" id="subtitle"]] -[[!template text="""up, But that's not common for people.""" start="00:15:36.720" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: So, guess we are on our time exactly.""" start="00:15:41.420" video="qanda-gc" id="subtitle"]] -[[!template text="""So in the next""" start="00:15:43.580" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: I think I was not exactly accurate.""" start="00:15:46.680" video="qanda-gc" id="subtitle"]] -[[!template text="""This 1 command, which is,""" start="00:15:49.200" video="qanda-gc" id="subtitle"]] -[[!template text="""I think, Nemax 30, is called a malloc trim.""" start="00:15:53.500" video="qanda-gc" id="subtitle"]] -[[!template text="""A max malloc trim. It's interactive.""" start="00:15:57.520" video="qanda-gc" id="subtitle"]] -[[!template text="""So that can help to release some memory.""" start="00:16:04.080" video="qanda-gc" id="subtitle"]] -[[!template text="""I think the way it works is like forces OS to""" start="00:16:08.200" video="qanda-gc" id="subtitle"]] -[[!template text="""make use of the released memory.""" start="00:16:12.040" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Okay. That would be like,""" start="00:16:14.960" video="qanda-gc" id="subtitle"]] -[[!template text="""we are by the way, switch back to the next""" start="00:16:18.420" video="qanda-gc" id="subtitle"]] -[[!template text="""talk. But""" start="00:16:21.420" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: so basically what happens here is that OS may""" start="00:16:24.220" video="qanda-gc" id="subtitle"]] -[[!template text="""not release like, even Emacs says,""" start="00:16:27.440" video="qanda-gc" id="subtitle"]] -[[!template text="""okay, this memory is free,""" start="00:16:28.740" video="qanda-gc" id="subtitle"]] -[[!template text="""depending on the implementation,""" start="00:16:30.060" video="qanda-gc" id="subtitle"]] -[[!template text="""I might think, okay, but I still hold that""" start="00:16:32.760" video="qanda-gc" id="subtitle"]] -[[!template text="""memory associated with Emacs just in case""" start="00:16:34.860" video="qanda-gc" id="subtitle"]] -[[!template text="""Emacs needs more memories,""" start="00:16:35.800" video="qanda-gc" id="subtitle"]] -[[!template text="""and I can immediately put the data there""" start="00:16:38.940" video="qanda-gc" id="subtitle"]] -[[!template text="""without like more arrangement to allocate""" start="00:16:41.420" video="qanda-gc" id="subtitle"]] -[[!template text="""more. And this analog stream basically forces""" start="00:16:45.480" video="qanda-gc" id="subtitle"]] -[[!template text="""the OS to release it, like no matter what.""" start="00:16:48.740" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Because most people, when they are using""" start="00:16:52.360" video="qanda-gc" id="subtitle"]] -[[!template text="""Emacs, I have the feeling they are only using""" start="00:16:54.320" video="qanda-gc" id="subtitle"]] -[[!template text="""Emacs. So it would be kind of interesting if""" start="00:16:56.160" video="qanda-gc" id="subtitle"]] -[[!template text="""you just take like, I don't know,""" start="00:16:57.880" video="qanda-gc" id="subtitle"]] -[[!template text="""2 gigabytes or something of memory and Emacs""" start="00:17:00.060" video="qanda-gc" id="subtitle"]] -[[!template text="""like does what it wants on that and the OS""" start="00:17:02.900" video="qanda-gc" id="subtitle"]] -[[!template text="""cannot really take it back.""" start="00:17:04.079" video="qanda-gc" id="subtitle"]] -[[!template text="""This was my idea when I""" start="00:17:05.920" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: was So when you see 2 gigabytes in OS,""" start="00:17:08.000" video="qanda-gc" id="subtitle"]] -[[!template text="""it doesn't mean that OS cannot take it back.""" start="00:17:10.359" video="qanda-gc" id="subtitle"]] -[[!template text="""It may still like allocate certain portion,""" start="00:17:13.859" video="qanda-gc" id="subtitle"]] -[[!template text="""even technically free,""" start="00:17:15.640" video="qanda-gc" id="subtitle"]] -[[!template text="""but just for future. So this is where Malloc""" start="00:17:20.940" video="qanda-gc" id="subtitle"]] -[[!template text="""Dream works. It's like,""" start="00:17:22.339" video="qanda-gc" id="subtitle"]] -[[!template text="""it says, yes, OS, I really not going to hold""" start="00:17:25.319" video="qanda-gc" id="subtitle"]] -[[!template text="""this for this free memory.""" start="00:17:26.500" video="qanda-gc" id="subtitle"]] -[[!template text="""For sure. If you try this MX Malloc Gene,""" start="00:17:31.700" video="qanda-gc" id="subtitle"]] -[[!template text="""you will see like a few times to hundreds of""" start="00:17:33.960" video="qanda-gc" id="subtitle"]] -[[!template text="""megabytes of read immediately.""" start="00:17:35.200" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: Have a look when I have the time.""" start="00:17:38.560" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: I""" start="00:17:41.480" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 0]: guess if nobody has any questions,""" start="00:17:43.260" video="qanda-gc" id="subtitle"]] -[[!template text="""I guess on the pad, there was Nothing else.""" start="00:17:45.660" video="qanda-gc" id="subtitle"]] -[[!template text="""I guess we can just close it.""" start="00:17:47.900" video="qanda-gc" id="subtitle"]] -[[!template text="""Thanks for the discussion.""" start="00:17:49.140" video="qanda-gc" id="subtitle"]] -[[!template text="""Thanks for answering the questions.""" start="00:17:50.640" video="qanda-gc" id="subtitle"]] -[[!template text="""[Speaker 1]: Thank you for the great conference.""" start="00:17:56.020" video="qanda-gc" id="subtitle"]] -[[!template text="""And yeah, for your volunteer work.""" start="00:17:59.340" video="qanda-gc" id="subtitle"]] -[[!template text="""And yeah, for quietly panicking in the""" start="00:18:02.230" video="qanda-gc" id="subtitle"]] -[[!template text="""background, right? Yeah,""" start="00:18:02.262" video="qanda-gc" id="subtitle"]] -[[!template text="""I mean... You have to be quiet,""" start="00:18:02.337" video="qanda-gc" id="subtitle"]] -[[!template text="""you're panicking in the background.""" start="00:18:02.560" video="qanda-gc" id="subtitle"]] - -Questions or comments? Please e-mail [yantar92@posteo.net](mailto:yantar92@posteo.net?subject=Comment%20for%20EmacsConf%202023%20gc%3A%20emacs-gc-stats%3A%20Does%20garbage%20collection%20actually%20slow%20down%20Emacs%3F) +</div>Questions or comments? Please e-mail [yantar92@posteo.net](mailto:yantar92@posteo.net?subject=Comment%20for%20EmacsConf%202023%20gc%3A%20emacs-gc-stats%3A%20Does%20garbage%20collection%20actually%20slow%20down%20Emacs%3F) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/gc-before.md b/2023/info/gc-before.md index 035db20a..8167b2a4 100644 --- a/2023/info/gc-before.md +++ b/2023/info/gc-before.md @@ -1,12 +1,12 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 34-min talk; Q&A: BigBlueButton conference room +Format: 34-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="gc-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 33:22 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.opus">Download --main.opus (22MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.webm">Download --main.webm (80MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/ngenUPBLDDkZGmsxK8vimJ">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-gc"><source src="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 33:22 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-gc">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=b0f325d396963155a01854970e055fe7440abf61-1701624602181">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.opus">Download --main.opus (22MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-gc--emacsgcstats-does-garbage-collection-actually-slow-down-emacs--ihor-radchenko--main.webm">Download --main.webm (80MB)</a></li><li><a href="https://toobnix.org/w/ngenUPBLDDkZGmsxK8vimJ">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=YA1RJxH4xfQ">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/gc-nav.md b/2023/info/gc-nav.md index 0bef707f..59675d1e 100644 --- a/2023/info/gc-nav.md +++ b/2023/info/gc-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/emacsen">The Emacsen family, the design of an Emacs and the importance of Lisp</a> Next by track: <a href="/2023/talks/hyperdrive">hyperdrive.el: Peer-to-peer filesystem in Emacs</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/hyperamp-after.md b/2023/info/hyperamp-after.md index 051a5dad..044bc930 100644 --- a/2023/info/hyperamp-after.md +++ b/2023/info/hyperamp-after.md @@ -1,8 +1,7 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="hyperamp-mainVideo-transcript"></a> -# Transcript (unedited) +<div class="transcript transcript-mainVideo"><a name="hyperamp-mainVideo-transcript"></a><h1>Transcript (unedited)</h1> [[!template text="""[Speaker 0]: 5 seconds. Oh, actually,""" start="00:00:01.719" video="mainVideo-hyperamp" id="subtitle"]] [[!template text="""[Speaker 1]: Sorry, I keep delaying.""" start="00:00:07.279" video="mainVideo-hyperamp" id="subtitle"]] @@ -1345,7 +1344,7 @@ [[!template text="""Thanks a lot. Bye-bye.""" start="01:05:15.060" video="mainVideo-hyperamp" id="subtitle"]] [[!template text="""Bye-bye.""" start="01:05:15.750" video="mainVideo-hyperamp" id="subtitle"]] -Questions or comments? Please e-mail [rsw@gnu.org](mailto:rsw@gnu.org?subject=Comment%20for%20EmacsConf%202023%20hyperamp%3A%20Top%2010%20ways%20Hyperbole%20amps%20up%20Emacs) +</div>Questions or comments? Please e-mail [rsw@gnu.org](mailto:rsw@gnu.org?subject=Comment%20for%20EmacsConf%202023%20hyperamp%3A%20Top%2010%20ways%20Hyperbole%20amps%20up%20Emacs) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/hyperamp-before.md b/2023/info/hyperamp-before.md index 12a070f0..5d534f44 100644 --- a/2023/info/hyperamp-before.md +++ b/2023/info/hyperamp-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 66-min talk; Q&A: BigBlueButton conference room +Format: 66-min talk ; Q&A: BigBlueButton conference room Status: TO_REVIEW_QA @@ -9,10 +9,10 @@ Status: TO_REVIEW_QA # Talk -<div class="vid"><video controls preload="none" id="hyperamp-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 1:05:16 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.json">Download --main.json (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.opus">Download --main.opus (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm">Download --main.webm (234MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/4Cpb89zHKgQjob3gHUs73C">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-hyperamp"><source src="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 1:05:16 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-hyperamp">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=b91c2833d3add0175ea8f55e9026f1ba6e744918-1701610376838">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.json">Download --main.json (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.opus">Download --main.opus (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm">Download --main.webm (234MB)</a></li><li><a href="https://toobnix.org/w/4Cpb89zHKgQjob3gHUs73C">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=BysjfL25Nlc">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.json">Download --main.json (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.opus">Download --main.opus (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm">Download --main.webm (234MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--pad.md">Download --pad.md</a></li></ul></div></div> +<div class="vid qanda"><div></div><div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-hyperamp">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=b91c2833d3add0175ea8f55e9026f1ba6e744918-1701610376838">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.json">Download --main.json (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.opus">Download --main.opus (37MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperamp--top-10-ways-hyperbole-amps-up-emacs--robert-weiner--main.webm">Download --main.webm (234MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/hyperamp-nav.md b/2023/info/hyperamp-nav.md index f56bde9c..f72e2832 100644 --- a/2023/info/hyperamp-nav.md +++ b/2023/info/hyperamp-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/core">Emacs core development: how it works</a> Next by track: <a href="/2023/talks/koutline">Using Koutline for stream of thought journaling</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/hyperdrive-after.md b/2023/info/hyperdrive-after.md index 8c26acc8..f93b30c5 100644 --- a/2023/info/hyperdrive-after.md +++ b/2023/info/hyperdrive-after.md @@ -1,8 +1,7 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="hyperdrive-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="hyperdrive-mainVideo-transcript"></a><h1>Transcript</h1> [[!template text="""Hello, I'm Joseph Turner.""" start="00:00:00.000" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""This talk is about hyperdrive.el,""" start="00:00:02.600" video="mainVideo-hyperdrive" id="subtitle"]] @@ -12,9 +11,7 @@ [[!template text="""for sharing files on a peer-to-peer network.""" start="00:00:13.360" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""It's released under the Apache 2.0 license.""" start="00:00:16.500" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""Hyperdrives introduction""" start="00:00:19.840" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""Here's how it works.""" start="00:00:19.840" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Hyperdrives introduction""" start="00:00:19.840" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Here's how it works.""" start="00:00:19.840" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""To participate as a peer, you run a node,""" start="00:00:21.640" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""a lightweight local server that allows you""" start="00:00:24.581" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""to connect with other nodes on the network.""" start="00:00:27.281" video="mainVideo-hyperdrive" id="subtitle"]] @@ -76,9 +73,7 @@ [[!template text="""of the hyperdrive when the file still existed""" start="00:02:55.067" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""or existed in a previous state.""" start="00:02:58.167" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""About USHIN and the contributors""" start="00:03:04.600" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""I'm presenting this talk on behalf of USHIN.""" start="00:03:04.600" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""About USHIN and the contributors""" start="00:03:04.600" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""I'm presenting this talk on behalf of USHIN.""" start="00:03:04.600" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""USHIN is a tiny nonprofit whose mission is to""" start="00:03:07.380" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""promote personal, community and global health""" start="00:03:10.680" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""through free and open universal shared information""" start="00:03:14.032" video="mainVideo-hyperdrive" id="subtitle"]] @@ -112,9 +107,7 @@ [[!template text="""but he created a wonderful""" start="00:04:25.000" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""basic introduction to Hyperdrive. Take a look.""" start="00:04:27.120" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""Basic introduction to Hyperdrive""" start="00:04:32.646" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""[Prot]: Hello everyone!""" start="00:04:32.646" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Basic introduction to Hyperdrive""" start="00:04:32.646" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""[Prot]: Hello everyone!""" start="00:04:32.646" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""My name is Protesilaos, also known as Prot.""" start="00:04:33.586" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""In this video, I want to show you""" start="00:04:36.366" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""the basics of hyperdrive.el.""" start="00:04:37.806" video="mainVideo-hyperdrive" id="subtitle"]] @@ -144,9 +137,7 @@ [[!template text="""I won't cover everything in that regard,""" start="00:06:00.053" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""but please bear this fact in mind.""" start="00:06:02.980" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""Managing files with Hyperdrive.el""" start="00:06:06.133" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""Let's start then with what I have here""" start="00:06:06.133" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Managing files with Hyperdrive.el""" start="00:06:06.133" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Let's start then with what I have here""" start="00:06:06.133" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""in this other tab, which is a set of files.""" start="00:06:09.213" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""I have prepared in my local file system - a hyperdrive.""" start="00:06:13.853" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""This contains a set of files""" start="00:06:18.473" video="mainVideo-hyperdrive" id="subtitle"]] @@ -278,9 +269,7 @@ [[!template text="""This will take me to the parent directory,""" start="00:12:50.513" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""in this case, the root directory of my hyperdrive.""" start="00:12:53.173" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""Dired like interface""" start="00:12:56.573" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""Let me do it a bit differently.""" start="00:12:56.573" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Dired like interface""" start="00:12:56.573" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Let me do it a bit differently.""" start="00:12:56.573" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""The same idea, a bit differently.""" start="00:12:58.353" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""For those of you who are familiar with""" start="00:13:00.193" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""Dired and the `dired-jump` command,""" start="00:13:02.733" video="mainVideo-hyperdrive" id="subtitle"]] @@ -325,9 +314,7 @@ [[!template text="""And then you can jump to it,""" start="00:14:55.994" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""the way bookmarks in Emacs always work.""" start="00:14:57.734" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""History in hyperdrive""" start="00:15:01.234" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""What I want to show you now""" start="00:15:01.234" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""History in hyperdrive""" start="00:15:01.234" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""What I want to show you now""" start="00:15:01.234" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""a little bit is the history.""" start="00:15:02.893" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""History in Hyperdrive""" start="00:15:06.313" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""has to do with the drive itself.""" start="00:15:09.013" video="mainVideo-hyperdrive" id="subtitle"]] @@ -376,9 +363,7 @@ [[!template text="""at that version of the hyperdrive.""" start="00:17:31.214" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""So this is the basic idea of it, folks.""" start="00:17:35.973" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""Use case of sharing large files""" start="00:17:39.973" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""What I want to do then is""" start="00:17:39.973" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Use case of sharing large files""" start="00:17:39.973" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""What I want to do then is""" start="00:17:39.973" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""continue with my process here.""" start="00:17:42.234" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""Let me actually do it like this so that you can see.""" start="00:17:46.254" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""Continue with the process of""" start="00:17:51.973" video="mainVideo-hyperdrive" id="subtitle"]] @@ -415,9 +400,7 @@ [[!template text="""That's all for today. Take care. Goodbye.""" start="00:19:13.073" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""[Joseph]: Thank you, Prot.""" start="00:19:19.461" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""Drive creation with hyperdrive.el""" start="00:19:20.913" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""Another fundamental feature of hyperdrive.el""" start="00:19:20.913" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Drive creation with hyperdrive.el""" start="00:19:20.913" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Another fundamental feature of hyperdrive.el""" start="00:19:20.913" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""is drive creation.""" start="00:19:23.980" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""The first step, as always,""" start="00:19:26.319" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""is to make sure that the gateway is running.""" start="00:19:28.339" video="mainVideo-hyperdrive" id="subtitle"]] @@ -496,9 +479,7 @@ [[!template text="""at the top of the screen,""" start="00:23:19.459" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""I see that it's identified with the petname "Prot."""" start="00:23:20.539" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""hyperdrive-mirror""" start="00:23:26.199" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""Now I'll show off `hyperdrive-mirror`.""" start="00:23:26.199" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""hyperdrive-mirror""" start="00:23:26.199" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Now I'll show off `hyperdrive-mirror`.""" start="00:23:26.199" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""`hyperdrive-mirror` is like `hyperdrive-upload-file`,""" start="00:23:28.719" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""except that it allows you to upload""" start="00:23:32.159" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""an entire directory full of files recursively.""" start="00:23:33.879" video="mainVideo-hyperdrive" id="subtitle"]] @@ -614,9 +595,7 @@ [[!template text="""There's going to be a link to the USHIN hyperdrive""" start="00:30:00.319" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""as well as the website at the end of the video.""" start="00:30:03.019" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""hyperdrive history""" start="00:30:06.819" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""Now I'll go into a little more detail""" start="00:30:06.819" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""hyperdrive history""" start="00:30:06.819" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Now I'll go into a little more detail""" start="00:30:06.819" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""about the Hyperdrive history buffer""" start="00:30:09.079" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""by showing off the README file in Prot's hyperdrive.""" start="00:30:11.219" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""I'll press `C-c h` to open the menu,""" start="00:30:15.819" video="mainVideo-hyperdrive" id="subtitle"]] @@ -693,9 +672,7 @@ [[!template text="""Prot changed the link to his own hyperdrive""" start="00:34:14.220" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""to be a relative link.""" start="00:34:17.340" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""Streaming video from hyperdrive""" start="00:34:20.880" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""Now, I'll stream a video from the USHIN hyperdrive""" start="00:34:20.880" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Streaming video from hyperdrive""" start="00:34:20.880" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Now, I'll stream a video from the USHIN hyperdrive""" start="00:34:20.880" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""that shows off a prototype interface we created""" start="00:34:24.300" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""for exploring networks of sources of information.""" start="00:34:27.900" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""I'll open up `hyperdrive-menu`.""" start="00:34:31.720" video="mainVideo-hyperdrive" id="subtitle"]] @@ -711,9 +688,7 @@ [[!template text="""[Joseph]: There it is.""" start="00:35:02.500" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""Streaming a video from Hyperdrive.""" start="00:35:04.080" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""hyperdrive.el under the hood""" start="00:35:08.746" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""Here's how hyperdrive.el works under the hood.""" start="00:35:08.746" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""hyperdrive.el under the hood""" start="00:35:08.746" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Here's how hyperdrive.el works under the hood.""" start="00:35:08.746" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""It uses plz [Please],""" start="00:35:13.027" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""the HTTP library that Adam Porter wrote,""" start="00:35:14.727" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""to send requests via curl to hyper-gateway.""" start="00:35:18.080" video="mainVideo-hyperdrive" id="subtitle"]] @@ -771,9 +746,7 @@ [[!template text="""because it's built-in, and it has some features""" start="00:38:44.941" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""that persist.el doesn't have.""" start="00:38:50.161" video="mainVideo-hyperdrive" id="subtitle"]] -[[!template new="1" text="""Next steps""" start="00:38:57.541" video="mainVideo-hyperdrive" id="subtitle"]] - -[[!template text="""Thank you for listening to this talk.""" start="00:38:57.541" video="mainVideo-hyperdrive" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Next steps""" start="00:38:57.541" video="mainVideo-hyperdrive" id="subtitle"]]</div>[[!template text="""Thank you for listening to this talk.""" start="00:38:57.541" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""I hope you get a chance to try out hyperdrive.el.""" start="00:39:00.001" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""Here is a link to the hyperdrive.el manual""" start="00:39:03.681" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""in the USHIN hyperdrive.""" start="00:39:08.621" video="mainVideo-hyperdrive" id="subtitle"]] @@ -793,12 +766,11 @@ [[!template text="""and I look forward to hearing the rest of the talks.""" start="00:39:55.161" video="mainVideo-hyperdrive" id="subtitle"]] [[!template text="""Have a good day.""" start="00:39:57.614" video="mainVideo-hyperdrive" id="subtitle"]] - +</div> Captioner: bhavin192 -<a name="hyperdrive-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="hyperdrive-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: I guess we are now live.""" start="00:00:12.660" video="qanda-hyperdrive" id="subtitle"]] [[!template text="""So Joseph, thanks for being here.""" start="00:00:15.360" video="qanda-hyperdrive" id="subtitle"]] @@ -1332,7 +1304,7 @@ Captioner: bhavin192 [[!template text="""you know, upstream how they develop it as""" start="00:28:09.920" video="qanda-hyperdrive" id="subtitle"]] [[!template text="""well and yeah, so exciting times.""" start="00:28:14.340" video="qanda-hyperdrive" id="subtitle"]] -Questions or comments? Please e-mail [joseph@ushin.org](mailto:joseph@ushin.org?subject=Comment%20for%20EmacsConf%202023%20hyperdrive%3A%20hyperdrive.el%3A%20Peer-to-peer%20filesystem%20in%20Emacs) +</div>Questions or comments? Please e-mail [joseph@ushin.org](mailto:joseph@ushin.org?subject=Comment%20for%20EmacsConf%202023%20hyperdrive%3A%20hyperdrive.el%3A%20Peer-to-peer%20filesystem%20in%20Emacs) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/hyperdrive-before.md b/2023/info/hyperdrive-before.md index 944b9184..f5b9cca5 100644 --- a/2023/info/hyperdrive-before.md +++ b/2023/info/hyperdrive-before.md @@ -2,7 +2,7 @@ Actually a general-audience talk; just on the development track for scheduling purposes [[!toc ]] -Format: 41-min talk; Q&A: BigBlueButton conference room +Format: 41-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -11,10 +11,25 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="hyperdrive-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 40:03 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--intro.webm">Download --intro.webm (996kB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.opus">Download --main.opus (18MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.webm">Download --main.webm (149MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/9wLA55XACiGnS3nNBNwsV5">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-hyperdrive"><source src="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-hyperdrive" data=""" +00:19.840 Hyperdrives introduction +03:04.600 About USHIN and the contributors +04:32.646 Basic introduction to Hyperdrive +06:06.133 Managing files with Hyperdrive.el +12:56.573 Dired like interface +15:01.234 History in hyperdrive +17:39.973 Use case of sharing large files +19:20.913 Drive creation with hyperdrive.el +23:26.199 hyperdrive-mirror +30:06.819 hyperdrive history +34:20.880 Streaming video from hyperdrive +35:08.746 hyperdrive.el under the hood +38:57.541 Next steps + +"""]]<div></div>Duration: 40:03 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-hyperdrive">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=c241079bd42ae794ee15bbe2b1d3f3670e4247a8-1701629401873">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--intro.webm">Download --intro.webm (996kB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.opus">Download --main.opus (18MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--main.webm">Download --main.webm (149MB)</a></li><li><a href="https://toobnix.org/w/9wLA55XACiGnS3nNBNwsV5">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=OOA9rs5qteU">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="hyperdrive-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="hyperdrive-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.opus"></audio></div><div></div>Duration: 28:15 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.json">Download --answers.json (1.1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.opus">Download --answers.opus (9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.webm">Download --answers.webm (48MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-hyperdrive"><source src="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-hyperdrive-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.opus"></audio></div><div></div>Duration: 28:15 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-hyperdrive">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=c241079bd42ae794ee15bbe2b1d3f3670e4247a8-1701629401873">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.json">Download --answers.json (1.1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.opus">Download --answers.opus (9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-hyperdrive--hyperdriveel-peertopeer-filesystem-in-emacs--joseph-turner--answers.webm">Download --answers.webm (48MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/hyperdrive-nav.md b/2023/info/hyperdrive-nav.md index 9634dd75..f8521281 100644 --- a/2023/info/hyperdrive-nav.md +++ b/2023/info/hyperdrive-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/gc">emacs-gc-stats: Does garbage collection actually slow down Emacs?</a> Next by track: <a href="/2023/talks/lspocaml">Writing a language server in OCaml for Emacs, fun, and profit</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/koutline-after.md b/2023/info/koutline-after.md index a48d8b9d..ea86bfa9 100644 --- a/2023/info/koutline-after.md +++ b/2023/info/koutline-after.md @@ -1,8 +1,7 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="koutline-mainVideo-transcript"></a> -# Transcript (unedited) +<div class="transcript transcript-mainVideo"><a name="koutline-mainVideo-transcript"></a><h1>Transcript (unedited)</h1> [[!template text="""Today I will share a nice workflow I have""" start="00:00:03.340" video="mainVideo-koutline" id="subtitle"]] [[!template text="""developed for stream of consciousness""" start="00:00:04.400" video="mainVideo-koutline" id="subtitle"]] @@ -122,7 +121,7 @@ [[!template text="""will reliably fix itself to the center when""" start="00:06:33.420" video="mainVideo-koutline" id="subtitle"]] [[!template text="""the cursor position is not there.""" start="00:06:36.280" video="mainVideo-koutline" id="subtitle"]] -Questions or comments? Please e-mail [plasmastrike@voiddragon.me](mailto:plasmastrike@voiddragon.me?subject=Comment%20for%20EmacsConf%202023%20koutline%3A%20Using%20Koutline%20for%20stream%20of%20thought%20journaling) +</div>Questions or comments? Please e-mail [plasmastrike@voiddragon.me](mailto:plasmastrike@voiddragon.me?subject=Comment%20for%20EmacsConf%202023%20koutline%3A%20Using%20Koutline%20for%20stream%20of%20thought%20journaling) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/koutline-before.md b/2023/info/koutline-before.md index f6b7cc81..07f01166 100644 --- a/2023/info/koutline-before.md +++ b/2023/info/koutline-before.md @@ -1,12 +1,12 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 7-min talk; Q&A: BigBlueButton conference room +Format: 7-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="koutline-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 06:44 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.opus">Download --main.opus (4.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.webm">Download --main.webm (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/vV7qtK176DVE6RLXrZ18Ee">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-koutline"><source src="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 06:44 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-koutline">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.opus">Download --main.opus (4.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-koutline--using-koutline-for-stream-of-thought-journaling--matthew-jorgensen-plasmastrike--main.webm">Download --main.webm (23MB)</a></li><li><a href="https://toobnix.org/w/vV7qtK176DVE6RLXrZ18Ee">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=dO-gv898Vmg">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/koutline-nav.md b/2023/info/koutline-nav.md index 247cf825..6a814ef9 100644 --- a/2023/info/koutline-nav.md +++ b/2023/info/koutline-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/hyperamp">Top 10 ways Hyperbole amps up Emacs</a> Next by track: <a href="/2023/talks/parallel">Parallel text replacement</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/llm-after.md b/2023/info/llm-after.md index 5a020a0b..506f010d 100644 --- a/2023/info/llm-after.md +++ b/2023/info/llm-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="llm-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="llm-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Intro to the Talk""" start="00:00:00.000" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""Hello, I'm Andrew Hyatt and I'm going to talk to you""" start="00:00:00.000" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Intro to the Talk""" start="00:00:00.000" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""Hello, I'm Andrew Hyatt and I'm going to talk to you""" start="00:00:00.000" video="mainVideo-llm" id="subtitle"]] [[!template text="""about large language models and how""" start="00:00:04.160" video="mainVideo-llm" id="subtitle"]] [[!template text="""they relate to Emacs.""" start="00:00:06.440" video="mainVideo-llm" id="subtitle"]] [[!template text="""And I'm going to talk to you about the technology""" start="00:00:11.080" video="mainVideo-llm" id="subtitle"]] @@ -16,9 +13,7 @@ [[!template text="""I'll finish up by kind of talking about where""" start="00:00:21.160" video="mainVideo-llm" id="subtitle"]] [[!template text="""I think this should go in the future.""" start="00:00:22.880" video="mainVideo-llm" id="subtitle"]] -[[!template new="1" text="""What are LLMs?""" start="00:00:25.080" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""So to start off with, let's just talk like,""" start="00:00:25.080" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""What are LLMs?""" start="00:00:25.080" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""So to start off with, let's just talk like,""" start="00:00:25.080" video="mainVideo-llm" id="subtitle"]] [[!template text="""I just want to make sure everyone's on the same page.""" start="00:00:28.240" video="mainVideo-llm" id="subtitle"]] [[!template text="""What are large language models?""" start="00:00:29.760" video="mainVideo-llm" id="subtitle"]] [[!template text="""Not everyone may be caught up on this.""" start="00:00:30.920" video="mainVideo-llm" id="subtitle"]] @@ -51,9 +46,7 @@ [[!template text="""probably in my lifetime,""" start="00:01:49.080" video="mainVideo-llm" id="subtitle"]] [[!template text="""or at least my lifetime as my working lifetime.""" start="00:01:51.560" video="mainVideo-llm" id="subtitle"]] -[[!template new="1" text="""Power of LLMs (Magit Demo)""" start="00:01:56.360" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""So let me give you a demonstration of""" start="00:01:56.360" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Power of LLMs (Magit Demo)""" start="00:01:56.360" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""So let me give you a demonstration of""" start="00:01:56.360" video="mainVideo-llm" id="subtitle"]] [[!template text="""what kinds of stuff it could do in Emacs.""" start="00:02:02.560" video="mainVideo-llm" id="subtitle"]] [[!template text="""So here I have a Emacs file.""" start="00:02:06.680" video="mainVideo-llm" id="subtitle"]] [[!template text="""So this is my Emacs init file.""" start="00:02:09.040" video="mainVideo-llm" id="subtitle"]] @@ -87,9 +80,7 @@ [[!template text="""understanding something and outputting text based on that,""" start="00:03:27.760" video="mainVideo-llm" id="subtitle"]] [[!template text="""which is just useful for Emacs.""" start="00:03:30.320" video="mainVideo-llm" id="subtitle"]] -[[!template new="1" text="""Drawbacks of LLMs (regex demo)""" start="00:03:32.240" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""So the drawback is, yeah, it's good,""" start="00:03:32.240" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Drawbacks of LLMs (regex demo)""" start="00:03:32.240" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""So the drawback is, yeah, it's good,""" start="00:03:32.240" video="mainVideo-llm" id="subtitle"]] [[!template text="""but it's not that reliable.""" start="00:03:39.920" video="mainVideo-llm" id="subtitle"]] [[!template text="""And you'd think it's very easy to get caught up in like,""" start="00:03:43.360" video="mainVideo-llm" id="subtitle"]] [[!template text="""oh my gosh, like this is so powerful.""" start="00:03:45.680" video="mainVideo-llm" id="subtitle"]] @@ -130,9 +121,7 @@ [[!template text="""that is repeatably, that's, that is always good.""" start="00:05:09.000" video="mainVideo-llm" id="subtitle"]] [[!template text="""So yeah, that's currently the problem.""" start="00:05:13.880" video="mainVideo-llm" id="subtitle"]] -[[!template new="1" text="""Embeddings""" start="00:05:20.120" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""So I want to talk about embeddings.""" start="00:05:20.120" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Embeddings""" start="00:05:20.120" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""So I want to talk about embeddings.""" start="00:05:20.120" video="mainVideo-llm" id="subtitle"]] [[!template text="""They're another thing that LLMs offer""" start="00:05:23.400" video="mainVideo-llm" id="subtitle"]] [[!template text="""and that are extremely useful.""" start="00:05:26.920" video="mainVideo-llm" id="subtitle"]] [[!template text="""They are, what they do is they encode from""" start="00:05:28.600" video="mainVideo-llm" id="subtitle"]] @@ -181,9 +170,7 @@ [[!template text="""So no one has done this yet,""" start="00:07:28.720" video="mainVideo-llm" id="subtitle"]] [[!template text="""but that should not be hard to do.""" start="00:07:30.000" video="mainVideo-llm" id="subtitle"]] -[[!template new="1" text="""Image Generation""" start="00:07:32.800" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""Image generation is something that's, you know,""" start="00:07:32.800" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Image Generation""" start="00:07:32.800" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""Image generation is something that's, you know,""" start="00:07:32.800" video="mainVideo-llm" id="subtitle"]] [[!template text="""it's not quite an LLM in the sense of...""" start="00:07:34.880" video="mainVideo-llm" id="subtitle"]] [[!template text="""These are... It's a different technology,""" start="00:07:38.480" video="mainVideo-llm" id="subtitle"]] [[!template text="""but these things are kind of packaged together""" start="00:07:43.080" video="mainVideo-llm" id="subtitle"]] @@ -212,9 +199,7 @@ [[!template text="""but instead of outputting a text,""" start="00:08:43.360" video="mainVideo-llm" id="subtitle"]] [[!template text="""you're outputting a picture.""" start="00:08:44.800" video="mainVideo-llm" id="subtitle"]] -[[!template new="1" text="""Fine-tuning""" start="00:08:48.480" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""There's also, I want to mention the concept of fine-tuning.""" start="00:08:48.480" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Fine-tuning""" start="00:08:48.480" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""There's also, I want to mention the concept of fine-tuning.""" start="00:08:48.480" video="mainVideo-llm" id="subtitle"]] [[!template text="""Fine-tuning is a way to take your--""" start="00:08:51.080" video="mainVideo-llm" id="subtitle"]] [[!template text="""take a corpus of inputs and outputs and just from""" start="00:08:55.200" video="mainVideo-llm" id="subtitle"]] [[!template text="""a large language model, you're like, okay,""" start="00:08:59.760" video="mainVideo-llm" id="subtitle"]] @@ -267,9 +252,7 @@ [[!template text="""to do the correct calculations.""" start="00:10:59.600" video="mainVideo-llm" id="subtitle"]] [[!template text="""So pretty, pretty useful stuff.""" start="00:11:01.040" video="mainVideo-llm" id="subtitle"]] -[[!template new="1" text="""Open Source""" start="00:11:08.160" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""So I also want to mention open source""" start="00:11:08.160" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Open Source""" start="00:11:08.160" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""So I also want to mention open source""" start="00:11:08.160" video="mainVideo-llm" id="subtitle"]] [[!template text="""and basically free software here.""" start="00:11:10.400" video="mainVideo-llm" id="subtitle"]] [[!template text="""These LLMs are mostly not free software.""" start="00:11:12.680" video="mainVideo-llm" id="subtitle"]] [[!template text="""They're sometimes open source,""" start="00:11:17.600" video="mainVideo-llm" id="subtitle"]] @@ -291,9 +274,7 @@ [[!template text="""They're just not as good yet.""" start="00:11:58.000" video="mainVideo-llm" id="subtitle"]] [[!template text="""And I think that might change in the future.""" start="00:11:59.520" video="mainVideo-llm" id="subtitle"]] -[[!template new="1" text="""The Future""" start="00:12:02.840" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""So speaking of the future,""" start="00:12:02.840" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The Future""" start="00:12:02.840" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""So speaking of the future,""" start="00:12:02.840" video="mainVideo-llm" id="subtitle"]] [[!template text="""one of the things I'd like to point out""" start="00:12:04.120" video="mainVideo-llm" id="subtitle"]] [[!template text="""is that like the demos I showed you are based on,""" start="00:12:07.520" video="mainVideo-llm" id="subtitle"]] [[!template text="""I'm using OpenAI 3.5 model.""" start="00:12:09.640" video="mainVideo-llm" id="subtitle"]] @@ -342,9 +323,7 @@ [[!template text="""I think this is why we should be""" start="00:14:01.240" video="mainVideo-llm" id="subtitle"]] [[!template text="""paying attention to this stuff.""" start="00:14:02.280" video="mainVideo-llm" id="subtitle"]] -[[!template new="1" text="""LLMs in Emacs - existing packages""" start="00:14:08.200" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""Let's talk about the existing packages.""" start="00:14:08.200" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""LLMs in Emacs - existing packages""" start="00:14:08.200" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""Let's talk about the existing packages.""" start="00:14:08.200" video="mainVideo-llm" id="subtitle"]] [[!template text="""Because there's a lot out there, people have,""" start="00:14:11.040" video="mainVideo-llm" id="subtitle"]] [[!template text="""I think people have been integrating with""" start="00:14:13.200" video="mainVideo-llm" id="subtitle"]] [[!template text="""these LLMs that often have a relatively easy to use API.""" start="00:14:17.040" video="mainVideo-llm" id="subtitle"]] @@ -432,9 +411,7 @@ [[!template text="""It's really just there as a library""" start="00:18:09.880" video="mainVideo-llm" id="subtitle"]] [[!template text="""to use by other things offering functionality. Okay.""" start="00:18:11.720" video="mainVideo-llm" id="subtitle"]] -[[!template new="1" text="""Abstracting LLM challenges""" start="00:18:15.960" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""And it's a little bit difficult to abstract.""" start="00:18:15.960" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Abstracting LLM challenges""" start="00:18:15.960" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""And it's a little bit difficult to abstract.""" start="00:18:15.960" video="mainVideo-llm" id="subtitle"]] [[!template text="""I want to point this out""" start="00:18:19.840" video="mainVideo-llm" id="subtitle"]] [[!template text="""because I think it's an important point""" start="00:18:21.160" video="mainVideo-llm" id="subtitle"]] [[!template text="""is that the, it's, some of these LLMs, for example,""" start="00:18:23.600" video="mainVideo-llm" id="subtitle"]] @@ -455,9 +432,7 @@ [[!template text="""So it's compatible, but there's definitely""" start="00:18:57.521" video="mainVideo-llm" id="subtitle"]] [[!template text="""limits to that compatibility.""" start="00:19:02.161" video="mainVideo-llm" id="subtitle"]] -[[!template new="1" text="""Emacs is the ideal interface for LLMs""" start="00:19:04.080" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""I want to point out just to finish off,""" start="00:19:04.080" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Emacs is the ideal interface for LLMs""" start="00:19:04.080" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""I want to point out just to finish off,""" start="00:19:04.080" video="mainVideo-llm" id="subtitle"]] [[!template text="""Emacs is the, Emacs has real power here""" start="00:19:06.161" video="mainVideo-llm" id="subtitle"]] [[!template text="""that nothing else I think in the industry is offering.""" start="00:19:12.880" video="mainVideo-llm" id="subtitle"]] [[!template text="""First of all, people that use Emacs""" start="00:19:15.680" video="mainVideo-llm" id="subtitle"]] @@ -483,9 +458,7 @@ [[!template text="""as your agent in the editor.""" start="00:19:57.080" video="mainVideo-llm" id="subtitle"]] [[!template text="""I think we need to explore ideas like this.""" start="00:19:58.680" video="mainVideo-llm" id="subtitle"]] -[[!template new="1" text="""Outro""" start="00:20:01.960" video="mainVideo-llm" id="subtitle"]] - -[[!template text="""And I think we need to share these ideas""" start="00:20:01.960" video="mainVideo-llm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Outro""" start="00:20:01.960" video="mainVideo-llm" id="subtitle"]]</div>[[!template text="""And I think we need to share these ideas""" start="00:20:01.960" video="mainVideo-llm" id="subtitle"]] [[!template text="""and we need to make sure that we're pushing the""" start="00:20:04.280" video="mainVideo-llm" id="subtitle"]] [[!template text="""envelope for Emacs and actually, you know, doing things,""" start="00:20:07.040" video="mainVideo-llm" id="subtitle"]] [[!template text="""sharing ideas, sharing progress,""" start="00:20:10.520" video="mainVideo-llm" id="subtitle"]] @@ -494,12 +467,11 @@ [[!template text="""take advantage of this super powerful technique.""" start="00:20:20.640" video="mainVideo-llm" id="subtitle"]] [[!template text="""Thank you for listening.""" start="00:20:24.520" video="mainVideo-llm" id="subtitle"]] - +</div> Captioner: bala -<a name="llm-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="llm-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: Okay. Hello, everyone.""" start="00:00:13.099" video="qanda-llm" id="subtitle"]] [[!template text="""I think this is the start of the Q&A session.""" start="00:00:16.560" video="qanda-llm" id="subtitle"]] @@ -1138,7 +1110,7 @@ Captioner: bala [[!template text="""So thank""" start="00:28:19.620" video="qanda-llm" id="subtitle"]] [[!template text="""you""" start="00:28:30.060" video="qanda-llm" id="subtitle"]] -Questions or comments? Please e-mail [ahyatt@gmail.com](mailto:ahyatt@gmail.com?subject=Comment%20for%20EmacsConf%202023%20llm%3A%20LLM%20clients%20in%20Emacs%2C%20functionality%20and%20standardization) +</div>Questions or comments? Please e-mail [ahyatt@gmail.com](mailto:ahyatt@gmail.com?subject=Comment%20for%20EmacsConf%202023%20llm%3A%20LLM%20clients%20in%20Emacs%2C%20functionality%20and%20standardization) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/llm-before.md b/2023/info/llm-before.md index 2371bd44..5ec20c14 100644 --- a/2023/info/llm-before.md +++ b/2023/info/llm-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 21-min talk; Q&A: BigBlueButton conference room +Format: 21-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="llm-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="llm-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-llm"><source src="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-llm" data=""" 00:00.000 Intro to the Talk 00:25.080 What are LLMs? 01:56.360 Power of LLMs (Magit Demo) @@ -24,10 +24,10 @@ Status: Q&A to be extracted from the room recordings 19:04.080 Emacs is the ideal interface for LLMs 20:01.960 Outro -"""]]<div></div>Duration: 20:26 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.opus">Download --main.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.webm">Download --main.webm (50MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/ck1LWXvRiAGNLWFA8s4Ymi">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 20:26 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-llm">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=1d02948a0834c0b349de5931bf9535b534b39d27-1701533045559">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.opus">Download --main.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--main.webm">Download --main.webm (50MB)</a></li><li><a href="https://toobnix.org/w/ck1LWXvRiAGNLWFA8s4Ymi">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=HN3Y75D4tEs">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="llm-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="llm-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.opus"></audio></div><div></div>Duration: 28:32 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.json">Download --answers.json (1.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.opus">Download --answers.opus (17MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.webm">Download --answers.webm (46MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-llm"><source src="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-llm-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.opus"></audio></div><div></div>Duration: 28:32 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-llm">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=1d02948a0834c0b349de5931bf9535b534b39d27-1701533045559">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.json">Download --answers.json (1.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.opus">Download --answers.opus (17MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-llm--llm-clients-in-emacs-functionality-and-standardization--andrew-hyatt--answers.webm">Download --answers.webm (46MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/llm-nav.md b/2023/info/llm-nav.md index 13555b70..92173270 100644 --- a/2023/info/llm-nav.md +++ b/2023/info/llm-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/voice">Enhancing productivity with voice computing</a> Next by track: <a href="/2023/talks/overlay">Improving compiler diagnostics with overlays</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/lspocaml-after.md b/2023/info/lspocaml-after.md index 56d6ba54..bc5bdc22 100644 --- a/2023/info/lspocaml-after.md +++ b/2023/info/lspocaml-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="lspocaml-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="lspocaml-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""Hi, I'm Austin Theriault,""" start="00:00:00.000" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""Hi, I'm Austin Theriault,""" start="00:00:00.000" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""and this is writing a language server in OCaml""" start="00:00:01.840" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""for Emacs, fun, and profit.""" start="00:00:04.160" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""Real quick, who am I?""" start="00:00:07.640" video="mainVideo-lspocaml" id="subtitle"]] @@ -16,9 +13,7 @@ [[!template text="""and I love working on programming languages, editors,""" start="00:00:13.240" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""and cryptography.""" start="00:00:15.360" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""What is Semgrep?""" start="00:00:16.540" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""What is Semgrep?""" start="00:00:16.540" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""What is Semgrep?""" start="00:00:16.540" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""What is Semgrep?""" start="00:00:16.540" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""We're a small cybersecurity startup""" start="00:00:17.800" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""whose core product is a SaaS tool,""" start="00:00:20.040" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""which is static application security testing.""" start="00:00:21.920" video="mainVideo-lspocaml" id="subtitle"]] @@ -30,9 +25,7 @@ [[!template text="""and we have lots of customers all using different IDEs.""" start="00:00:36.960" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""Why does that matter?""" start="00:00:39.320" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""How do we show security bugs early?""" start="00:00:40.720" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""Well, our goal is to show security bugs""" start="00:00:40.720" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""How do we show security bugs early?""" start="00:00:40.720" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""Well, our goal is to show security bugs""" start="00:00:40.720" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""as early as possible in the development cycle.""" start="00:00:42.780" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""In the industry, we call this shifting left.""" start="00:00:45.240" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""And so how far left can we shift? The editor.""" start="00:00:48.480" video="mainVideo-lspocaml" id="subtitle"]] @@ -55,9 +48,7 @@ [[!template text="""and then plug it into all of them.""" start="00:01:33.880" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""So how can we do that, though?""" start="00:01:35.800" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""What is the Language Server Protocol?""" start="00:01:37.880" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""Well, in the process of working on this stuff,""" start="00:01:37.880" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""What is the Language Server Protocol?""" start="00:01:37.880" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""Well, in the process of working on this stuff,""" start="00:01:37.880" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""I found out about""" start="00:01:40.680" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""the Language Server Protocol.""" start="00:01:43.000" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""And what's great about the Language Server Protocol is""" start="00:01:44.880" video="mainVideo-lspocaml" id="subtitle"]] @@ -76,9 +67,7 @@ [[!template text="""and you can hook it up to a bunch of language clients""" start="00:02:25.440" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""and it'll just work.""" start="00:02:27.440" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""Case study: Rust Analyzer""" start="00:02:29.040" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""So let's do a quick case study on language servers in LSP,""" start="00:02:29.040" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Case study: Rust Analyzer""" start="00:02:29.040" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""So let's do a quick case study on language servers in LSP,""" start="00:02:29.040" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""just so you get an idea of why this is super cool.""" start="00:02:34.040" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""So there's this language server called Rust Analyzer.""" start="00:02:37.240" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""It's a language server for the Rust language.""" start="00:02:40.440" video="mainVideo-lspocaml" id="subtitle"]] @@ -105,9 +94,7 @@ [[!template text="""So you can develop Rust in a way that's relatively efficient""" start="00:03:35.240" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""without having to give up your favorite editor.""" start="00:03:39.080" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""Rust Analyzer in action""" start="00:03:42.760" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""So here's a quick little demo""" start="00:03:42.760" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Rust Analyzer in action""" start="00:03:42.760" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""So here's a quick little demo""" start="00:03:42.760" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""of all the cool things it can do.""" start="00:03:44.400" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""So you can see I typed an error.""" start="00:03:46.320" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""It tells me that I wrote an error.""" start="00:03:48.120" video="mainVideo-lspocaml" id="subtitle"]] @@ -122,9 +109,7 @@ [[!template text="""I didn't have to go and type any commands or anything.""" start="00:04:05.440" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""It just worked.""" start="00:04:07.840" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""Why is this useful?""" start="00:04:09.960" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""So why is this just useful in general for a user?""" start="00:04:09.960" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Why is this useful?""" start="00:04:09.960" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""So why is this just useful in general for a user?""" start="00:04:09.960" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""Well, you get the same experience across editors.""" start="00:04:13.400" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""Like I was saying, you don't have to give up""" start="00:04:15.800" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""one editor for another""" start="00:04:17.120" video="mainVideo-lspocaml" id="subtitle"]] @@ -160,9 +145,7 @@ [[!template text="""It's great to have just one set of tests""" start="00:05:31.960" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""that you have to pass.""" start="00:05:33.840" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""So what about Emacs?""" start="00:05:36.220" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""So why does a language server protocol matter with Emacs?""" start="00:05:36.220" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""So what about Emacs?""" start="00:05:36.220" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""So why does a language server protocol matter with Emacs?""" start="00:05:36.220" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""Well, like I was saying before,""" start="00:05:40.160" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""Emacs gets the benefit from work put into other editors.""" start="00:05:42.380" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""So we get all this language support,""" start="00:05:45.480" video="mainVideo-lspocaml" id="subtitle"]] @@ -188,9 +171,7 @@ [[!template text="""but I would imagine a lot of this stuff is very similar.""" start="00:06:33.300" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""Here's a list of some supported languages.""" start="00:06:37.780" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""Technical part - Brief communication overview""" start="00:06:40.700" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""Now let's get into the technical part.""" start="00:06:40.700" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Technical part - Brief communication overview""" start="00:06:40.700" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""Now let's get into the technical part.""" start="00:06:40.700" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""How does LSP actually work?""" start="00:06:42.640" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""So let's go over how it communicates first.""" start="00:06:45.040" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""It uses JSONRPC,""" start="00:06:47.160" video="mainVideo-lspocaml" id="subtitle"]] @@ -226,14 +207,10 @@ [[!template text="""and the communication is relatively simple,""" start="00:07:55.400" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""which is great.""" start="00:07:57.720" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""Example request""" start="00:07:58.760" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""This is what it looks like, what a request looks like.""" start="00:07:58.760" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Example request""" start="00:07:58.760" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""This is what it looks like, what a request looks like.""" start="00:07:58.760" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""Notifications look somewhat similar.""" start="00:08:01.240" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""LSP capabilities""" start="00:08:03.380" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""So now we know how LSP communication works,""" start="00:08:03.380" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""LSP capabilities""" start="00:08:03.380" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""So now we know how LSP communication works,""" start="00:08:03.380" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""but how does the actual protocol work?""" start="00:08:05.880" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""Well, almost all of the protocol is opt-in,""" start="00:08:09.860" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""meaning you don't have to support the entire specification,""" start="00:08:12.400" video="mainVideo-lspocaml" id="subtitle"]] @@ -267,9 +244,7 @@ [[!template text="""And that's a little bit more work,""" start="00:09:18.700" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""but it's better than where we were without LSP.""" start="00:09:20.400" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""Tips on writing a LS""" start="00:09:23.380" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""So some quick tips on writing a language server.""" start="00:09:23.380" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Tips on writing a LS""" start="00:09:23.380" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""So some quick tips on writing a language server.""" start="00:09:23.380" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""I'm not going to get too into this""" start="00:09:25.440" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""because it's very application-specific.""" start="00:09:27.480" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""I wrote Semgrep's in OCaml""" start="00:09:30.800" video="mainVideo-lspocaml" id="subtitle"]] @@ -312,9 +287,7 @@ [[!template text="""this stuff is really easy.""" start="00:11:00.320" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""You're basically just wiring stuff up.""" start="00:11:01.680" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""Supporting a LS through LSP mode in Emacs""" start="00:11:03.480" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""But, yeah. So, now we know all about""" start="00:11:03.480" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Supporting a LS through LSP mode in Emacs""" start="00:11:03.480" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""But, yeah. So, now we know all about""" start="00:11:03.480" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""LSP and language servers.""" start="00:11:08.360" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""Say you want to actually""" start="00:11:10.800" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""add support for a language server in Emacs.""" start="00:11:11.880" video="mainVideo-lspocaml" id="subtitle"]] @@ -337,9 +310,7 @@ [[!template text="""to the list of clients, and then do some documentation,""" start="00:12:01.320" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""because documentation's great.""" start="00:12:03.720" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""Create a client""" start="00:12:06.000" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""First, creating a client.""" start="00:12:06.000" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Create a client""" start="00:12:06.000" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""First, creating a client.""" start="00:12:06.000" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""In the `clients/` folder in `lsp-mode/`,""" start="00:12:07.640" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""literally just add, like, `lsp-` whatever it is,""" start="00:12:09.640" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""`require` the library, and register a client.""" start="00:12:12.920" video="mainVideo-lspocaml" id="subtitle"]] @@ -363,9 +334,7 @@ [[!template text="""but just know that these aren't your only options,""" start="00:13:01.200" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""and then finally provide your client.""" start="00:13:03.800" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""Add to list of client packages""" start="00:13:07.300" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""Next, you just have to add your client""" start="00:13:07.300" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Add to list of client packages""" start="00:13:07.300" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""Next, you just have to add your client""" start="00:13:07.300" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""to the list of clients that `lsp-mode` supports,""" start="00:13:09.800" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""and now you've added support for a whole new language,""" start="00:13:12.160" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""whole new framework, whole new tool to Emacs,""" start="00:13:15.640" video="mainVideo-lspocaml" id="subtitle"]] @@ -392,14 +361,10 @@ [[!template text="""and it's similar to LSP but for debuggers,""" start="00:14:07.320" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""which is very cool,""" start="00:14:09.680" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""Add documentation!""" start="00:14:11.680" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""and then finally link to your documentation.""" start="00:14:11.680" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Add documentation!""" start="00:14:11.680" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""and then finally link to your documentation.""" start="00:14:11.680" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""Please, please document your stuff.""" start="00:14:14.600" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""Adding commands and custom capabilities""" start="00:14:17.880" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""If you want to add, like, a custom Emacs function""" start="00:14:17.880" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Adding commands and custom capabilities""" start="00:14:17.880" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""If you want to add, like, a custom Emacs function""" start="00:14:17.880" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""or custom capabilities, it's super easy.""" start="00:14:20.480" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""It's literally just, like, calling a normal Emacs function.""" start="00:14:22.680" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""For example, Semgrep normally only scans files""" start="00:14:27.640" video="mainVideo-lspocaml" id="subtitle"]] @@ -414,9 +379,7 @@ [[!template text="""and do something with the result,""" start="00:14:56.080" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""and so that's adding custom capabilities.""" start="00:14:58.460" video="mainVideo-lspocaml" id="subtitle"]] -[[!template new="1" text="""Thanks for listening""" start="00:15:01.360" video="mainVideo-lspocaml" id="subtitle"]] - -[[!template text="""That's pretty much it. Thank you for listening.""" start="00:15:01.360" video="mainVideo-lspocaml" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Thanks for listening""" start="00:15:01.360" video="mainVideo-lspocaml" id="subtitle"]]</div>[[!template text="""That's pretty much it. Thank you for listening.""" start="00:15:01.360" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""Some resources here.""" start="00:15:04.320" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""These links are clickable if you get the PDF,""" start="00:15:05.640" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""if you get the slides. Semgrep: we're hiring!""" start="00:15:08.240" video="mainVideo-lspocaml" id="subtitle"]] @@ -440,12 +403,11 @@ [[!template text="""but hopefully this is sufficient for y'all,""" start="00:15:58.440" video="mainVideo-lspocaml" id="subtitle"]] [[!template text="""and now it's time for some Q&A.""" start="00:16:01.480" video="mainVideo-lspocaml" id="subtitle"]] - +</div> Captioner: sachac -<a name="lspocaml-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="lspocaml-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: I would invite all on the,""" start="00:00:03.540" video="qanda-lspocaml" id="subtitle"]] [[!template text="""who are currently watching,""" start="00:00:04.600" video="qanda-lspocaml" id="subtitle"]] @@ -787,7 +749,7 @@ Captioner: sachac [[!template text="""[Speaker 1]: Oh yeah, definitely.""" start="00:14:21.560" video="qanda-lspocaml" id="subtitle"]] [[!template text="""[Speaker 0]: Dan?""" start="00:14:23.500" video="qanda-lspocaml" id="subtitle"]] -Questions or comments? Please e-mail [austin@cutedogs.org](mailto:austin@cutedogs.org?subject=Comment%20for%20EmacsConf%202023%20lspocaml%3A%20Writing%20a%20language%20server%20in%20OCaml%20for%20Emacs%2C%20fun%2C%20and%20profit) +</div>Questions or comments? Please e-mail [austin@cutedogs.org](mailto:austin@cutedogs.org?subject=Comment%20for%20EmacsConf%202023%20lspocaml%3A%20Writing%20a%20language%20server%20in%20OCaml%20for%20Emacs%2C%20fun%2C%20and%20profit) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/lspocaml-before.md b/2023/info/lspocaml-before.md index d3f225c8..cdb010e5 100644 --- a/2023/info/lspocaml-before.md +++ b/2023/info/lspocaml-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 17-min talk; Q&A: BigBlueButton conference room +Format: 17-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="lspocaml-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="lspocaml-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-lspocaml"><source src="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-lspocaml" data=""" 00:00.000 Introduction 00:16.540 What is Semgrep? 00:40.720 How do we show security bugs early? @@ -29,10 +29,10 @@ Status: Q&A to be extracted from the room recordings 14:17.880 Adding commands and custom capabilities 15:01.360 Thanks for listening -"""]]<div></div>Duration: 16:04 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.opus">Download --main.opus (8.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.webm">Download --main.webm (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault.pdf">Download .pdf (87MB)</a></li><li><a href="https://toobnix.org/w/jgMzmGyx4H1YDwc5n1eRZu">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 16:04 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-lspocaml">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=6c21ce25eae19932bf370829bd0e9dcba9e18e27-1701631387142">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.opus">Download --main.opus (8.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--main.webm">Download --main.webm (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault.pdf">Download .pdf (87MB)</a></li><li><a href="https://toobnix.org/w/jgMzmGyx4H1YDwc5n1eRZu">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=VhUIS55UbQs">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="lspocaml-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="lspocaml-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.opus"></audio></div><div></div>Duration: 14:24 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.opus">Download --answers.opus (8.2MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.webm">Download --answers.webm (23MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-lspocaml"><source src="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-lspocaml-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.opus"></audio></div><div></div>Duration: 14:24 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-lspocaml">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=6c21ce25eae19932bf370829bd0e9dcba9e18e27-1701631387142">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.opus">Download --answers.opus (8.2MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-lspocaml--writing-a-language-server-in-ocaml-for-emacs-fun-and-profit--austin-theriault--answers.webm">Download --answers.webm (23MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/lspocaml-nav.md b/2023/info/lspocaml-nav.md index a705e389..73a7feb2 100644 --- a/2023/info/lspocaml-nav.md +++ b/2023/info/lspocaml-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/hyperdrive">hyperdrive.el: Peer-to-peer filesystem in Emacs</a> Next by track: <a href="/2023/talks/test">What I learned by writing test cases for GNU Hyperbole</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/matplotllm-after.md b/2023/info/matplotllm-after.md index 2471df19..b498528d 100644 --- a/2023/info/matplotllm-after.md +++ b/2023/info/matplotllm-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="matplotllm-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="matplotllm-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-matplotllm" id="subtitle"]] - -[[!template text="""Hi, my name is Abhinav and I'm going to talk about""" start="00:00:00.000" video="mainVideo-matplotllm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-matplotllm" id="subtitle"]]</div>[[!template text="""Hi, my name is Abhinav and I'm going to talk about""" start="00:00:00.000" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""this tool that I've been working on called MatplotLLM.""" start="00:00:03.040" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""MatplotLLM is a natural language interface""" start="00:00:06.200" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""over matplotlib, which is a library I use a lot""" start="00:00:09.520" video="mainVideo-matplotllm" id="subtitle"]] @@ -46,9 +43,7 @@ [[!template text="""to get rid of the complexity of the library""" start="00:01:35.200" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""by working via an LLM.""" start="00:01:38.480" video="mainVideo-matplotllm" id="subtitle"]] -[[!template new="1" text="""What is an LLM?""" start="00:01:40.720" video="mainVideo-matplotllm" id="subtitle"]] - -[[!template text="""So an LLM is a large language model.""" start="00:01:40.720" video="mainVideo-matplotllm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""What is an LLM?""" start="00:01:40.720" video="mainVideo-matplotllm" id="subtitle"]]</div>[[!template text="""So an LLM is a large language model.""" start="00:01:40.720" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""These are models which are""" start="00:01:43.400" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""trained to produce text, generate text.""" start="00:01:45.080" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""And just by doing that,""" start="00:01:49.400" video="mainVideo-matplotllm" id="subtitle"]] @@ -65,9 +60,7 @@ [[!template text="""So that's a problem that it has.""" start="00:02:17.920" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""But for this version, we are going to use that.""" start="00:02:21.120" video="mainVideo-matplotllm" id="subtitle"]] -[[!template new="1" text="""Using this library""" start="00:02:23.600" video="mainVideo-matplotllm" id="subtitle"]] - -[[!template text="""Using this library is pretty simple.""" start="00:02:23.600" video="mainVideo-matplotllm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Using this library""" start="00:02:23.600" video="mainVideo-matplotllm" id="subtitle"]]</div>[[!template text="""Using this library is pretty simple.""" start="00:02:23.600" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""You basically require the library""" start="00:02:25.480" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""and then you set up your OpenAI API key here.""" start="00:02:27.400" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""Then you get a code block""" start="00:02:30.720" video="mainVideo-matplotllm" id="subtitle"]] @@ -122,9 +115,7 @@ [[!template text="""which is plotting what I specified it to do,""" start="00:05:04.120" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""though it looks a little dense.""" start="00:05:08.880" video="mainVideo-matplotllm" id="subtitle"]] -[[!template new="1" text="""Further instructions""" start="00:05:11.701" video="mainVideo-matplotllm" id="subtitle"]] - -[[!template text="""What I can do is""" start="00:05:11.701" video="mainVideo-matplotllm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Further instructions""" start="00:05:11.701" video="mainVideo-matplotllm" id="subtitle"]]</div>[[!template text="""What I can do is""" start="00:05:11.701" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""I can provide further instructions as feedback.""" start="00:05:12.641" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""I try to feed back on this. So I can say,""" start="00:05:16.001" video="mainVideo-matplotllm" id="subtitle"]] [[!template text=""""Can you only show points where year is the multiple of 50?"""" start="00:05:18.401" video="mainVideo-matplotllm" id="subtitle"]] @@ -175,9 +166,7 @@ [[!template text="""so probably it could be done better,""" start="00:07:56.680" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""but the box is removed.""" start="00:07:58.560" video="mainVideo-matplotllm" id="subtitle"]] -[[!template new="1" text="""Room for improvement""" start="00:08:00.160" video="mainVideo-matplotllm" id="subtitle"]] - -[[!template text="""Now, as you can see, the system is...""" start="00:08:00.160" video="mainVideo-matplotllm" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Room for improvement""" start="00:08:00.160" video="mainVideo-matplotllm" id="subtitle"]]</div>[[!template text="""Now, as you can see, the system is...""" start="00:08:00.160" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""You will be able to see this""" start="00:08:03.360" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""that the system is not really robust.""" start="00:08:04.880" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""So the GitHub repository has some examples""" start="00:08:07.480" video="mainVideo-matplotllm" id="subtitle"]] @@ -217,7 +206,7 @@ [[!template text="""You can find more details in the repository link.""" start="00:09:27.600" video="mainVideo-matplotllm" id="subtitle"]] [[!template text="""Thank you for listening. Goodbye.""" start="00:09:29.760" video="mainVideo-matplotllm" id="subtitle"]] - +</div> Captioner: sachac diff --git a/2023/info/matplotllm-before.md b/2023/info/matplotllm-before.md index 8286a486..3359850a 100644 --- a/2023/info/matplotllm-before.md +++ b/2023/info/matplotllm-before.md @@ -1,19 +1,19 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 10-min talk; Q&A: Etherpad +Format: 10-min talk ; Q&A: Etherpad Status: All done -<div class="vid"><video controls preload="none" id="matplotllm-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="matplotllm-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-matplotllm"><source src="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-matplotllm" data=""" 00:00.000 Introduction 01:40.720 What is an LLM? 02:23.600 Using this library 05:11.701 Further instructions 08:00.160 Room for improvement -"""]]<div></div>Duration: 09:34 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.opus">Download --main.opus (5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.webm">Download --main.webm (49MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/7bwq1vAqYzY24iEMYAdcB1">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 09:34 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-matplotllm">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.opus">Download --main.opus (5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-matplotllm--matplotllm-iterative-natural-language-data-visualization-in-orgbabel--abhinav-tushar--main.webm">Download --main.webm (49MB)</a></li><li><a href="https://toobnix.org/w/7bwq1vAqYzY24iEMYAdcB1">View on Toobnix</a></li><li><a href="https://youtu.be/LhhFA5i_Os4">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/matplotllm-nav.md b/2023/info/matplotllm-nav.md index 340c24f0..ea8b8b70 100644 --- a/2023/info/matplotllm-nav.md +++ b/2023/info/matplotllm-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/sharing">Sharing Emacs is Caring Emacs: Emacs education and why I embraced video</a> Next by track: <a href="/2023/talks/voice">Enhancing productivity with voice computing</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/mentor-after.md b/2023/info/mentor-after.md index f51dfa88..80185de8 100644 --- a/2023/info/mentor-after.md +++ b/2023/info/mentor-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="mentor-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="mentor-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:01.380" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""Hi everyone, my name is Jeremy Friesen, pronouns are he/him,""" start="00:00:01.380" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:01.380" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Hi everyone, my name is Jeremy Friesen, pronouns are he/him,""" start="00:00:01.380" video="mainVideo-mentor" id="subtitle"]] [[!template text="""and today I'll be talking about""" start="00:00:06.320" video="mainVideo-mentor" id="subtitle"]] [[!template text="""mentoring VS Coders as an Emacs-ian.""" start="00:00:07.880" video="mainVideo-mentor" id="subtitle"]] [[!template text="""A little bit of background, since 2015, I've mentored""" start="00:00:11.520" video="mainVideo-mentor" id="subtitle"]] @@ -16,17 +13,13 @@ [[!template text="""oftentimes from boot camps.""" start="00:00:19.240" video="mainVideo-mentor" id="subtitle"]] [[!template text="""I've also managed a couple of small software development teams.""" start="00:00:21.740" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Framing approaches""" start="00:00:26.740" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""So I want to think about mentoring and the framing approaches.""" start="00:00:26.740" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Framing approaches""" start="00:00:26.740" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""So I want to think about mentoring and the framing approaches.""" start="00:00:26.740" video="mainVideo-mentor" id="subtitle"]] [[!template text="""We all don't know what we don't know.""" start="00:00:30.600" video="mainVideo-mentor" id="subtitle"]] [[!template text="""So while mentoring, I like to be curious---asking questions,""" start="00:00:32.940" video="mainVideo-mentor" id="subtitle"]] [[!template text="""I like to be visible,""" start="00:00:36.420" video="mainVideo-mentor" id="subtitle"]] [[!template text="""and I also like to pair so that we can share.""" start="00:00:37.660" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""What are you looking to learn?""" start="00:00:41.940" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""When I start, I like to ask the following type of question:""" start="00:00:41.940" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""What are you looking to learn?""" start="00:00:41.940" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""When I start, I like to ask the following type of question:""" start="00:00:41.940" video="mainVideo-mentor" id="subtitle"]] [[!template text=""""What have you been wanting to learn more of,""" start="00:00:45.300" video="mainVideo-mentor" id="subtitle"]] [[!template text="""get better at, and improve on?"""" start="00:00:47.120" video="mainVideo-mentor" id="subtitle"]] [[!template text="""Then I like to ask further questions to get an understanding""" start="00:00:49.360" video="mainVideo-mentor" id="subtitle"]] @@ -36,9 +29,7 @@ [[!template text=""""where are you getting stuck,"""" start="00:01:00.140" video="mainVideo-mentor" id="subtitle"]] [[!template text="""and "if you change one thing, what would it be?"""" start="00:01:01.420" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Make the work visible""" start="00:01:06.000" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""So like many people, I shifted to remote work in 2020,""" start="00:01:06.000" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Make the work visible""" start="00:01:06.000" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""So like many people, I shifted to remote work in 2020,""" start="00:01:06.000" video="mainVideo-mentor" id="subtitle"]] [[!template text="""and I've noticed a higher collaboration in remote work,""" start="00:01:09.840" video="mainVideo-mentor" id="subtitle"]] [[!template text="""when folks make their work visible.""" start="00:01:13.160" video="mainVideo-mentor" id="subtitle"]] [[!template text="""So to do that I host office hours,""" start="00:01:15.920" video="mainVideo-mentor" id="subtitle"]] @@ -46,9 +37,7 @@ [[!template text="""and I'll open up a Slack huddle and just code by myself,""" start="00:01:20.680" video="mainVideo-mentor" id="subtitle"]] [[!template text="""but let folks know, please hop in.""" start="00:01:23.440" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Hop in and be curious""" start="00:01:29.320" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""I like to pay attention to other huddles that start.""" start="00:01:29.320" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Hop in and be curious""" start="00:01:29.320" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""I like to pay attention to other huddles that start.""" start="00:01:29.320" video="mainVideo-mentor" id="subtitle"]] [[!template text="""If they're going still for, like, 45 minutes or so,""" start="00:01:32.040" video="mainVideo-mentor" id="subtitle"]] [[!template text="""I'll hop in and say hello.""" start="00:01:35.240" video="mainVideo-mentor" id="subtitle"]] [[!template text="""It's even odds that they're moving along just fine""" start="00:01:36.800" video="mainVideo-mentor" id="subtitle"]] @@ -66,9 +55,7 @@ [[!template text="""with yes... an agenda, but just to say hi,""" start="00:02:07.160" video="mainVideo-mentor" id="subtitle"]] [[!template text="""is crucial to help the team members move along.""" start="00:02:10.360" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Pairing is for sharing""" start="00:02:15.880" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""Pairing is for sharing.""" start="00:02:15.880" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Pairing is for sharing""" start="00:02:15.880" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Pairing is for sharing.""" start="00:02:15.880" video="mainVideo-mentor" id="subtitle"]] [[!template text="""When I pair, I like to let others drive.""" start="00:02:17.240" video="mainVideo-mentor" id="subtitle"]] [[!template text="""They're typing and working to resolve the problem.""" start="00:02:19.920" video="mainVideo-mentor" id="subtitle"]] [[!template text="""I'm giving guidance, asking questions,""" start="00:02:22.240" video="mainVideo-mentor" id="subtitle"]] @@ -87,9 +74,7 @@ [[!template text="""I could learn?"""" start="00:02:58.760" video="mainVideo-mentor" id="subtitle"]] [[!template text="""I'm working on getting to that point.""" start="00:03:00.960" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Editor functions""" start="00:03:03.860" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""While pairing, I like to pay attention""" start="00:03:03.860" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Editor functions""" start="00:03:03.860" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""While pairing, I like to pay attention""" start="00:03:03.860" video="mainVideo-mentor" id="subtitle"]] [[!template text="""to how folks handle the following.""" start="00:03:05.200" video="mainVideo-mentor" id="subtitle"]] [[!template text="""Where do they want to go?""" start="00:03:07.440" video="mainVideo-mentor" id="subtitle"]] [[!template text="""How do they get there?""" start="00:03:08.560" video="mainVideo-mentor" id="subtitle"]] @@ -99,9 +84,7 @@ [[!template text="""and I assume that VS Code can do something similar.""" start="00:03:15.240" video="mainVideo-mentor" id="subtitle"]] [[!template text="""It's a matter of helping the mentees find those packages and plugins.""" start="00:03:17.400" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Where do they want to go?""" start="00:03:23.240" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""Where to go?""" start="00:03:23.240" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Where do they want to go?""" start="00:03:23.240" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Where to go?""" start="00:03:23.240" video="mainVideo-mentor" id="subtitle"]] [[!template text="""Search within a project.""" start="00:03:24.240" video="mainVideo-mentor" id="subtitle"]] [[!template text="""Everybody knows about this, but one thing""" start="00:03:25.760" video="mainVideo-mentor" id="subtitle"]] [[!template text="""that has been really critical for me""" start="00:03:28.000" video="mainVideo-mentor" id="subtitle"]] @@ -132,9 +115,7 @@ [[!template text="""I can type `p` and jump to a different project,""" start="00:04:43.080" video="mainVideo-mentor" id="subtitle"]] [[!template text="""so it's a quick navigation tool that I've not seen in VS Code.""" start="00:04:47.720" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""How do they get there?""" start="00:04:53.440" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""Next up is how do they get there?""" start="00:04:53.440" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""How do they get there?""" start="00:04:53.440" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Next up is how do they get there?""" start="00:04:53.440" video="mainVideo-mentor" id="subtitle"]] [[!template text="""I like to use LSP for the languages,""" start="00:04:56.520" video="mainVideo-mentor" id="subtitle"]] [[!template text="""and I bound `M-.` to this""" start="00:04:58.960" video="mainVideo-mentor" id="subtitle"]] [[!template text="""and jump back and forth to definitions.""" start="00:05:02.880" video="mainVideo-mentor" id="subtitle"]] @@ -148,9 +129,7 @@ [[!template text="""especially in Ruby, there's an idiom for that.""" start="00:05:28.520" video="mainVideo-mentor" id="subtitle"]] [[!template text="""There is plugins in VS Code that does this correctly.""" start="00:05:32.120" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Here they are, now what?""" start="00:05:36.640" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""Next up, now I'm here, what do I do?""" start="00:05:36.640" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Here they are, now what?""" start="00:05:36.640" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Next up, now I'm here, what do I do?""" start="00:05:36.640" video="mainVideo-mentor" id="subtitle"]] [[!template text="""Word completion, Emacs just knocks everything out of the park:""" start="00:05:39.400" video="mainVideo-mentor" id="subtitle"]] [[!template text="""`dabbrev`, `templates`, `hippie-expand`, `completion-at-point`.""" start="00:05:44.600" video="mainVideo-mentor" id="subtitle"]] [[!template text="""Sometimes it just hurts to watch people type stuff""" start="00:05:48.200" video="mainVideo-mentor" id="subtitle"]] @@ -183,9 +162,7 @@ [[!template text="""but I'm used to the Textmate in it.""" start="00:07:01.640" video="mainVideo-mentor" id="subtitle"]] [[!template text="""I just love it.""" start="00:07:03.840" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""How do they summarize?""" start="00:07:06.640" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""Next up is how they summarize.""" start="00:07:06.640" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""How do they summarize?""" start="00:07:06.640" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Next up is how they summarize.""" start="00:07:06.640" video="mainVideo-mentor" id="subtitle"]] [[!template text="""I've seen a lot of bootcamp graduates write commit messages""" start="00:07:08.680" video="mainVideo-mentor" id="subtitle"]] [[!template text="""by going to the command line.""" start="00:07:11.720" video="mainVideo-mentor" id="subtitle"]] [[!template text="""In my experience, commit messages written in the command line""" start="00:07:14.380" video="mainVideo-mentor" id="subtitle"]] @@ -200,14 +177,10 @@ [[!template text="""the interface for VS Code's commit is trash.""" start="00:07:35.920" video="mainVideo-mentor" id="subtitle"]] [[!template text="""It is why I stepped away from VS Code when I was exploring editors.""" start="00:07:38.960" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""General strategies""" start="00:07:44.440" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""Next up, my goal is to encourage folks to use editors for writing,""" start="00:07:44.440" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""General strategies""" start="00:07:44.440" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Next up, my goal is to encourage folks to use editors for writing,""" start="00:07:44.440" video="mainVideo-mentor" id="subtitle"]] [[!template text="""to think about owning that tool.""" start="00:07:48.440" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Commit to one item of learning each week""" start="00:07:52.060" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""I have them try to learn one thing a week.""" start="00:07:52.060" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Commit to one item of learning each week""" start="00:07:52.060" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""I have them try to learn one thing a week.""" start="00:07:52.060" video="mainVideo-mentor" id="subtitle"]] [[!template text="""Maybe they aren't going to learn it,""" start="00:07:54.680" video="mainVideo-mentor" id="subtitle"]] [[!template text="""but just not to overwhelm them""" start="00:07:55.920" video="mainVideo-mentor" id="subtitle"]] [[!template text="""and find those high-value things.""" start="00:07:57.800" video="mainVideo-mentor" id="subtitle"]] @@ -218,9 +191,7 @@ [[!template text="""what you're trying to test and what you're trying to define,""" start="00:08:12.760" video="mainVideo-mentor" id="subtitle"]] [[!template text="""which can get lost if you do the tree navigation.""" start="00:08:15.480" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Practice within your knowledge domain""" start="00:08:18.960" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""Also I encourage people to practice their domain knowledge.""" start="00:08:18.960" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Practice within your knowledge domain""" start="00:08:18.960" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Also I encourage people to practice their domain knowledge.""" start="00:08:18.960" video="mainVideo-mentor" id="subtitle"]] [[!template text="""I learned a lot about programming by doing a bunch of things""" start="00:08:22.880" video="mainVideo-mentor" id="subtitle"]] [[!template text="""related to RPGs---role-playing games.""" start="00:08:27.160" video="mainVideo-mentor" id="subtitle"]] [[!template text="""I did this previously in Ruby---dice rollers, note takers,""" start="00:08:30.020" video="mainVideo-mentor" id="subtitle"]] @@ -229,9 +200,7 @@ [[!template text="""and then explore how I code""" start="00:08:40.520" video="mainVideo-mentor" id="subtitle"]] [[!template text="""and how I can implement things differently.""" start="00:08:42.000" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Note-taking""" start="00:08:47.120" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""Note-taking: pay attention to how folks create a fleeting note.""" start="00:08:47.120" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Note-taking""" start="00:08:47.120" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Note-taking: pay attention to how folks create a fleeting note.""" start="00:08:47.120" video="mainVideo-mentor" id="subtitle"]] [[!template text="""It can be excruciating as they try to figure out""" start="00:08:51.240" video="mainVideo-mentor" id="subtitle"]] [[!template text=""""where am I going to put this?"""" start="00:08:54.640" video="mainVideo-mentor" id="subtitle"]] [[!template text=""""What file?"""" start="00:08:55.600" video="mainVideo-mentor" id="subtitle"]] @@ -239,9 +208,7 @@ [[!template text="""Emacs, we have the *scratch* buffer or anything else,""" start="00:08:57.660" video="mainVideo-mentor" id="subtitle"]] [[!template text="""but ask them about their note-taking habits""" start="00:09:01.760" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Help them navigate the proprietary software tar pits""" start="00:09:07.120" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""and help them navigate the proprietary software tar pits.""" start="00:09:07.120" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Help them navigate the proprietary software tar pits""" start="00:09:07.120" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""and help them navigate the proprietary software tar pits.""" start="00:09:07.120" video="mainVideo-mentor" id="subtitle"]] [[!template text="""We know that anything that is venture-capital funded""" start="00:09:11.640" video="mainVideo-mentor" id="subtitle"]] [[!template text="""will eventually collapse.""" start="00:09:14.360" video="mainVideo-mentor" id="subtitle"]] [[!template text="""We know that things that don't have a sustainable business model""" start="00:09:16.040" video="mainVideo-mentor" id="subtitle"]] @@ -252,14 +219,10 @@ [[!template text="""or are they things that are kind of ephemeral?""" start="00:09:30.640" video="mainVideo-mentor" id="subtitle"]] [[!template text="""And then help them find the thing that makes sense for them.""" start="00:09:33.120" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Help show the joy of holisting computering""" start="00:09:38.520" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""Put another way, I want people to think holistically""" start="00:09:38.520" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Help show the joy of holisting computering""" start="00:09:38.520" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""Put another way, I want people to think holistically""" start="00:09:38.520" video="mainVideo-mentor" id="subtitle"]] [[!template text="""about their generalized "computering" environment.""" start="00:09:43.240" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Playing is for staying""" start="00:09:47.740" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""And I also think about the reason why""" start="00:09:47.740" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Playing is for staying""" start="00:09:47.740" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""And I also think about the reason why""" start="00:09:47.740" video="mainVideo-mentor" id="subtitle"]] [[!template text="""I've stayed a software developer for 25-years plus""" start="00:09:50.080" video="mainVideo-mentor" id="subtitle"]] [[!template text="""is because I approach all of this as play and storytelling.""" start="00:09:53.680" video="mainVideo-mentor" id="subtitle"]] [[!template text="""Sometimes happy byproduct is that I ship features and documentation""" start="00:09:58.000" video="mainVideo-mentor" id="subtitle"]] @@ -268,9 +231,7 @@ [[!template text="""Instead, I'm doing my best to show a myriad of reasons""" start="00:10:07.960" video="mainVideo-mentor" id="subtitle"]] [[!template text="""for why folks should consider Emacs.""" start="00:10:10.720" video="mainVideo-mentor" id="subtitle"]] -[[!template new="1" text="""Conclusion""" start="00:10:14.900" video="mainVideo-mentor" id="subtitle"]] - -[[!template text="""In conclusion, ask questions.""" start="00:10:14.900" video="mainVideo-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:10:14.900" video="mainVideo-mentor" id="subtitle"]]</div>[[!template text="""In conclusion, ask questions.""" start="00:10:14.900" video="mainVideo-mentor" id="subtitle"]] [[!template text="""Find a person who is a VS Coder and just say,""" start="00:10:18.740" video="mainVideo-mentor" id="subtitle"]] [[!template text=""""hey, I learned something new."""" start="00:10:22.400" video="mainVideo-mentor" id="subtitle"]] [[!template text="""We play this game all the time, me and my coworker Kirk.""" start="00:10:23.880" video="mainVideo-mentor" id="subtitle"]] @@ -281,12 +242,11 @@ [[!template text="""but then again, that's Emacs.""" start="00:10:36.680" video="mainVideo-mentor" id="subtitle"]] [[!template text="""Thank you, and I look forward to your questions.""" start="00:10:38.720" video="mainVideo-mentor" id="subtitle"]] - +</div> Captioner: hannah -<a name="mentor-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="mentor-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: 2 seconds. And I think we are live.""" start="00:00:09.480" video="qanda-mentor" id="subtitle"]] [[!template text="""Hi, Jeremy, how are you doing?""" start="00:00:10.760" video="qanda-mentor" id="subtitle"]] @@ -784,9 +744,7 @@ Captioner: hannah [[!template text="""[Speaker 1]: Absolutely. Thank you.""" start="00:23:19.040" video="qanda-mentor" id="subtitle"]] [[!template text="""[Speaker 0]: Bye-bye. Bye.""" start="00:23:21.220" video="qanda-mentor" id="subtitle"]] -[[!template new="1" text="""Start of section to review""" start="00:23:26.400" video="qanda-mentor" id="subtitle"]] - -[[!template text="""[Speaker 2]: See you. Hello. One of the things with Emacs is""" start="00:23:26.400" video="qanda-mentor" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Start of section to review""" start="00:23:26.400" video="qanda-mentor" id="subtitle"]]</div>[[!template text="""[Speaker 2]: See you. Hello. One of the things with Emacs is""" start="00:23:26.400" video="qanda-mentor" id="subtitle"]] [[!template text="""it's not... It's like when you change the""" start="00:23:28.740" video="qanda-mentor" id="subtitle"]] [[!template text="""file management, you just change very,""" start="00:23:30.860" video="qanda-mentor" id="subtitle"]] [[!template text="""very small amounts of what exactly you need,""" start="00:23:33.480" video="qanda-mentor" id="subtitle"]] @@ -1786,7 +1744,7 @@ Captioner: hannah [[!template text="""And now have a good rest of your Sunday.""" start="01:13:41.760" video="qanda-mentor" id="subtitle"]] [[!template text="""Bye.""" start="01:13:43.100" video="qanda-mentor" id="subtitle"]] -Questions or comments? Please e-mail [jeremy@jeremyfriesen.com](mailto:jeremy@jeremyfriesen.com?subject=Comment%20for%20EmacsConf%202023%20mentor%3A%20Mentoring%20VS-Coders%20as%20an%20Emacsian%20%28or%20How%20to%20show%20not%20tell%20people%20about%20the%20wonders%20of%20Emacs%29) +</div>Questions or comments? Please e-mail [jeremy@jeremyfriesen.com](mailto:jeremy@jeremyfriesen.com?subject=Comment%20for%20EmacsConf%202023%20mentor%3A%20Mentoring%20VS-Coders%20as%20an%20Emacsian%20%28or%20How%20to%20show%20not%20tell%20people%20about%20the%20wonders%20of%20Emacs%29) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/mentor-before.md b/2023/info/mentor-before.md index bcf457eb..114baf27 100644 --- a/2023/info/mentor-before.md +++ b/2023/info/mentor-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 11-min talk; Q&A: BigBlueButton conference room +Format: 11-min talk ; Q&A: BigBlueButton conference room Status: TO_INDEX_QA @@ -9,10 +9,10 @@ Status: TO_INDEX_QA # Talk -<div class="vid"><video controls preload="none" id="mentor-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 10:44 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.opus">Download --main.opus (6.2MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.webm">Download --main.webm (26MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen.pdf">Download .pdf</a></li><li><a href="https://toobnix.org/w/sV9eKtGiPYZi5urxjoqerv">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-mentor"><source src="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 10:44 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-mentor">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=d3faf3bd5abcc5316e6a997b22b29d962480ad5c-1701630488401">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.opus">Download --main.opus (6.2MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.webm">Download --main.webm (26MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen.pdf">Download .pdf</a></li><li><a href="https://toobnix.org/w/sV9eKtGiPYZi5urxjoqerv">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=44rt1f1llhQ">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="mentor-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="mentor-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.opus"></audio></div><div></div>Duration: 1:13:43 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers--trimmed.webm">Download --answers--trimmed.webm (176MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.opus">Download --answers.opus (25MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.webm">Download --answers.webm (176MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-mentor"><source src="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-mentor-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.opus"></audio></div><div></div>Duration: 1:13:43 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-mentor">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=d3faf3bd5abcc5316e6a997b22b29d962480ad5c-1701630488401">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers--trimmed.webm">Download --answers--trimmed.webm (176MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.opus">Download --answers.opus (25MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--answers.webm">Download --answers.webm (176MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/mentor-nav.md b/2023/info/mentor-nav.md index 86a45646..66cf8ef4 100644 --- a/2023/info/mentor-nav.md +++ b/2023/info/mentor-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/steno">Programming with steno</a> Next by track: <a href="/2023/talks/web">Emacs saves the Web (maybe)</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/nabokov-after.md b/2023/info/nabokov-after.md index 0e1ccfe4..1e45bfcc 100644 --- a/2023/info/nabokov-after.md +++ b/2023/info/nabokov-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="nabokov-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="nabokov-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-nabokov" id="subtitle"]] - -[[!template text="""Hello, fellow Emacs enthusiasts.""" start="00:00:00.000" video="mainVideo-nabokov" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-nabokov" id="subtitle"]]</div>[[!template text="""Hello, fellow Emacs enthusiasts.""" start="00:00:00.000" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""My name is Edmund Jorgensen.""" start="00:00:05.240" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""I'm a software engineer by day,""" start="00:00:06.800" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""but by night I love to write novels,""" start="00:00:08.520" video="mainVideo-nabokov" id="subtitle"]] @@ -32,9 +29,7 @@ [[!template text="""with an interest in literature or Emacs""" start="00:00:42.040" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""will find something to take away.""" start="00:00:44.080" video="mainVideo-nabokov" id="subtitle"]] -[[!template new="1" text="""Nabokov's process of writing novels""" start="00:00:45.760" video="mainVideo-nabokov" id="subtitle"]] - -[[!template text="""So let's get to it.""" start="00:00:45.760" video="mainVideo-nabokov" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Nabokov's process of writing novels""" start="00:00:45.760" video="mainVideo-nabokov" id="subtitle"]]</div>[[!template text="""So let's get to it.""" start="00:00:45.760" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""Here's a picture of a man lying on a bed,""" start="00:00:51.120" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""writing something on an index card.""" start="00:00:53.920" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""If we didn't know any better,""" start="00:00:56.000" video="mainVideo-nabokov" id="subtitle"]] @@ -77,9 +72,7 @@ [[!template text="""to three of the most pressing practical problems""" start="00:02:15.200" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""that every novelist faces.""" start="00:02:18.000" video="mainVideo-nabokov" id="subtitle"]] -[[!template new="1" text="""Three practical problems novelists face""" start="00:02:24.080" video="mainVideo-nabokov" id="subtitle"]] - -[[!template text="""Writing a good novel""" start="00:02:24.080" video="mainVideo-nabokov" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Three practical problems novelists face""" start="00:02:24.080" video="mainVideo-nabokov" id="subtitle"]]</div>[[!template text="""Writing a good novel""" start="00:02:24.080" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""is artistically difficult, of course.""" start="00:02:25.307" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""You have to write something interesting""" start="00:02:27.480" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""with a good story,""" start="00:02:28.960" video="mainVideo-nabokov" id="subtitle"]] @@ -146,9 +139,7 @@ [[!template text="""So that's why Nabokov loved index cards""" start="00:04:42.000" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""for writing novels.""" start="00:04:45.307" video="mainVideo-nabokov" id="subtitle"]] -[[!template new="1" text="""Org mode for writing novels""" start="00:04:46.560" video="mainVideo-nabokov" id="subtitle"]] - -[[!template text="""Now I'd love to talk about""" start="00:04:46.560" video="mainVideo-nabokov" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Org mode for writing novels""" start="00:04:46.560" video="mainVideo-nabokov" id="subtitle"]]</div>[[!template text="""Now I'd love to talk about""" start="00:04:46.560" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""why I love Org mode so much for writing novels""" start="00:04:48.760" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""and how it helps me tackle those same challenges.""" start="00:04:51.280" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""The first practical challenge,""" start="00:04:54.000" video="mainVideo-nabokov" id="subtitle"]] @@ -247,9 +238,7 @@ [[!template text="""novels and other long-form prose,""" start="00:08:51.880" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""and how Org mode can help tackle them.""" start="00:08:53.600" video="mainVideo-nabokov" id="subtitle"]] -[[!template new="1" text="""Takeaways and next steps""" start="00:08:55.600" video="mainVideo-nabokov" id="subtitle"]] - -[[!template text="""I'd like to leave you with a couple takeaways""" start="00:08:55.600" video="mainVideo-nabokov" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Takeaways and next steps""" start="00:08:55.600" video="mainVideo-nabokov" id="subtitle"]]</div>[[!template text="""I'd like to leave you with a couple takeaways""" start="00:08:55.600" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""and next steps for those who are interested.""" start="00:08:57.880" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""First, if you're writing a novel""" start="00:08:59.760" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""or other long-form prose,""" start="00:09:01.907" video="mainVideo-nabokov" id="subtitle"]] @@ -272,12 +261,11 @@ [[!template text="""I'll put a link here below. [ewj.io/emacs]""" start="00:09:37.760" video="mainVideo-nabokov" id="subtitle"]] [[!template text="""Thanks for listening, and Emacs on!""" start="00:09:44.000" video="mainVideo-nabokov" id="subtitle"]] - +</div> Captioner: bhavin192 -<a name="nabokov-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="nabokov-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: About 3""" start="00:00:03.560" video="qanda-nabokov" id="subtitle"]] [[!template text="""seconds. And I believe we are live.""" start="00:00:16.020" video="qanda-nabokov" id="subtitle"]] @@ -506,7 +494,7 @@ Captioner: bhavin192 [[!template text="""and thank you again, Edmund.""" start="00:09:19.900" video="qanda-nabokov" id="subtitle"]] [[!template text="""[Speaker 1]: Cheers.""" start="00:09:20.720" video="qanda-nabokov" id="subtitle"]] -Questions or comments? Please e-mail [ewj@inkwellandoften.com](mailto:ewj@inkwellandoften.com?subject=Comment%20for%20EmacsConf%202023%20nabokov%3A%20Why%20Nabokov%20would%20use%20Org-Mode%20if%20he%20were%20writing%20today) +</div>Questions or comments? Please e-mail [ewj@inkwellandoften.com](mailto:ewj@inkwellandoften.com?subject=Comment%20for%20EmacsConf%202023%20nabokov%3A%20Why%20Nabokov%20would%20use%20Org-Mode%20if%20he%20were%20writing%20today) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/nabokov-before.md b/2023/info/nabokov-before.md index e9aa2951..b24c82de 100644 --- a/2023/info/nabokov-before.md +++ b/2023/info/nabokov-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 10-min talk; Q&A: BigBlueButton conference room +Format: 10-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,17 +9,17 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="nabokov-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="nabokov-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-nabokov"><source src="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-nabokov" data=""" 00:00.000 Introduction 00:45.760 Nabokov's process of writing novels 02:24.080 Three practical problems novelists face 04:46.560 Org mode for writing novels 08:55.600 Takeaways and next steps -"""]]<div></div>Duration: 09:51 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.opus">Download --main.opus (6.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.webm">Download --main.webm (22MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--silence.mkv">Download --silence.mkv (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen.org">Download .org</a></li><li><a href="https://toobnix.org/w/bDou9TDETryMt18KcdB56A">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 09:51 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-nabokov">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=d4fb146b412ea04565adc44dfe1a9162d553b956-1701540322974">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.opus">Download --main.opus (6.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--main.webm">Download --main.webm (22MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--silence.mkv">Download --silence.mkv (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen.org">Download .org</a></li><li><a href="https://toobnix.org/w/bDou9TDETryMt18KcdB56A">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=-E_uNxwL2_I">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="nabokov-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="nabokov-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.opus"></audio></div><div></div>Duration: 09:21 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.opus">Download --answers.opus (3.1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.webm">Download --answers.webm (9.1MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-nabokov"><source src="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-nabokov-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.opus"></audio></div><div></div>Duration: 09:21 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-nabokov">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=d4fb146b412ea04565adc44dfe1a9162d553b956-1701540322974">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.opus">Download --answers.opus (3.1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-nabokov--why-nabokov-would-use-orgmode-if-he-were-writing-today--edmund-jorgensen--answers.webm">Download --answers.webm (9.1MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/nabokov-nav.md b/2023/info/nabokov-nav.md index f7ef3f32..c0a6997d 100644 --- a/2023/info/nabokov-nav.md +++ b/2023/info/nabokov-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/writing">Emacs turbo-charges my writing</a> Next by track: <a href="/2023/talks/collab">Collaborative data processing and documenting using org-babel</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/one-after.md b/2023/info/one-after.md index e7b63c57..7af4f390 100644 --- a/2023/info/one-after.md +++ b/2023/info/one-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="one-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="one-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-one" id="subtitle"]] - -[[!template text="""Hi, everybody. Welcome to the EmacsConf 2023.""" start="00:00:00.000" video="mainVideo-one" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Hi, everybody. Welcome to the EmacsConf 2023.""" start="00:00:00.000" video="mainVideo-one" id="subtitle"]] [[!template text="""I hope you're doing well and you're having fun.""" start="00:00:04.160" video="mainVideo-one" id="subtitle"]] [[!template text="""I'm Tony Aldon, and in this talk,""" start="00:00:06.400" video="mainVideo-one" id="subtitle"]] [[!template text="""we are going to see how to build a static website""" start="00:00:08.360" video="mainVideo-one" id="subtitle"]] @@ -16,9 +13,7 @@ [[!template text="""all the people who organized that conference,""" start="00:00:17.600" video="mainVideo-one" id="subtitle"]] [[!template text="""so thank you all for the great work.""" start="00:00:20.560" video="mainVideo-one" id="subtitle"]] -[[!template new="1" text="""Documentation""" start="00:00:24.000" video="mainVideo-one" id="subtitle"]] - -[[!template text="""Now let's jump into the documentation of one.el,""" start="00:00:24.000" video="mainVideo-one" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Documentation""" start="00:00:24.000" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now let's jump into the documentation of one.el,""" start="00:00:24.000" video="mainVideo-one" id="subtitle"]] [[!template text="""which is built with one.el. In the install page,""" start="00:00:27.720" video="mainVideo-one" id="subtitle"]] [[!template text="""we can see that we have a sidebar""" start="00:00:31.680" video="mainVideo-one" id="subtitle"]] [[!template text="""with all of the pages in the documentation,""" start="00:00:33.080" video="mainVideo-one" id="subtitle"]] @@ -52,9 +47,7 @@ [[!template text="""and if we want to change the layout, CSS and Emacs Lisp.""" start="00:01:55.120" video="mainVideo-one" id="subtitle"]] [[!template text="""This is one.el.""" start="00:01:58.680" video="mainVideo-one" id="subtitle"]] -[[!template new="1" text="""Starting a new project""" start="00:02:02.200" video="mainVideo-one" id="subtitle"]] - -[[!template text="""Now let's go to our node,""" start="00:02:02.200" video="mainVideo-one" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Starting a new project""" start="00:02:02.200" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now let's go to our node,""" start="00:02:02.200" video="mainVideo-one" id="subtitle"]] [[!template text="""and we are going to start a new project.""" start="00:02:03.880" video="mainVideo-one" id="subtitle"]] [[!template text="""How do we do that?""" start="00:02:07.160" video="mainVideo-one" id="subtitle"]] [[!template text="""In a new empty directory,""" start="00:02:09.600" video="mainVideo-one" id="subtitle"]] @@ -64,9 +57,7 @@ [[!template text="""five default type of pages that we have,""" start="00:02:22.320" video="mainVideo-one" id="subtitle"]] [[!template text="""and one CSS file.""" start="00:02:25.760" video="mainVideo-one" id="subtitle"]] -[[!template new="1" text="""Building""" start="00:02:27.400" video="mainVideo-one" id="subtitle"]] - -[[!template text="""How to build that website?""" start="00:02:27.400" video="mainVideo-one" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Building""" start="00:02:27.400" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""How to build that website?""" start="00:02:27.400" video="mainVideo-one" id="subtitle"]] [[!template text="""Okay, so we call the function `one-build`.""" start="00:02:29.440" video="mainVideo-one" id="subtitle"]] [[!template text="""This builds the website.""" start="00:02:32.840" video="mainVideo-one" id="subtitle"]] [[!template text="""We jump into a terminal, and now if we run tree,""" start="00:02:33.960" video="mainVideo-one" id="subtitle"]] @@ -84,9 +75,7 @@ [[!template text="""this will be reloaded in the browser.""" start="00:03:11.760" video="mainVideo-one" id="subtitle"]] [[!template text="""So one, this is that website, is now this one.""" start="00:03:14.320" video="mainVideo-one" id="subtitle"]] -[[!template new="1" text="""Side by side""" start="00:03:19.760" video="mainVideo-one" id="subtitle"]] - -[[!template text="""So let's put them side by side.""" start="00:03:19.760" video="mainVideo-one" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Side by side""" start="00:03:19.760" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""So let's put them side by side.""" start="00:03:19.760" video="mainVideo-one" id="subtitle"]] [[!template text="""We go there, and we may do something like that.""" start="00:03:22.560" video="mainVideo-one" id="subtitle"]] [[!template text="""So one.el, the home page, so our custom ID""" start="00:03:26.320" video="mainVideo-one" id="subtitle"]] [[!template text="""with the value just a /,""" start="00:03:30.240" video="mainVideo-one" id="subtitle"]] @@ -108,9 +97,7 @@ [[!template text="""We do a grep in that files,""" start="00:04:25.680" video="mainVideo-one" id="subtitle"]] [[!template text="""and we see the different default render function.""" start="00:04:28.360" video="mainVideo-one" id="subtitle"]] -[[!template new="1" text="""Writing a render function""" start="00:04:32.160" video="mainVideo-one" id="subtitle"]] - -[[!template text="""In the second part of that talk,""" start="00:04:32.160" video="mainVideo-one" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Writing a render function""" start="00:04:32.160" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""In the second part of that talk,""" start="00:04:32.160" video="mainVideo-one" id="subtitle"]] [[!template text="""we are going to write a render function.""" start="00:04:34.840" video="mainVideo-one" id="subtitle"]] [[!template text="""So we are going to see that after.""" start="00:04:38.400" video="mainVideo-one" id="subtitle"]] [[!template text="""Now maybe we can go to the default page,""" start="00:04:41.080" video="mainVideo-one" id="subtitle"]] @@ -129,9 +116,7 @@ [[!template text="""If we use that one, this just renders the current page.""" start="00:05:34.080" video="mainVideo-one" id="subtitle"]] [[!template text="""So we see that we have again "foo bar baz" in the page.""" start="00:05:39.480" video="mainVideo-one" id="subtitle"]] -[[!template new="1" text="""New page""" start="00:05:44.680" video="mainVideo-one" id="subtitle"]] - -[[!template text="""Now let's add a new page. To add a new page,""" start="00:05:44.680" video="mainVideo-one" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""New page""" start="00:05:44.680" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now let's add a new page. To add a new page,""" start="00:05:44.680" video="mainVideo-one" id="subtitle"]] [[!template text="""we just have to copy one of them, maybe the default page.""" start="00:05:47.920" video="mainVideo-one" id="subtitle"]] [[!template text="""We are going to call it maybe emacsconf-2023.""" start="00:05:52.200" video="mainVideo-one" id="subtitle"]] [[!template text="""We still use one default render function to render it,""" start="00:05:58.320" video="mainVideo-one" id="subtitle"]] @@ -145,9 +130,7 @@ [[!template text="""and pass it the path `/blog/emacsconf-2023/.""" start="00:06:33.600" video="mainVideo-one" id="subtitle"]] [[!template text="""So we have that new page.""" start="00:06:39.280" video="mainVideo-one" id="subtitle"]] -[[!template new="1" text="""Linking between pages""" start="00:06:41.720" video="mainVideo-one" id="subtitle"]] - -[[!template text="""Now, how to link between pages?""" start="00:06:41.720" video="mainVideo-one" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Linking between pages""" start="00:06:41.720" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now, how to link between pages?""" start="00:06:41.720" video="mainVideo-one" id="subtitle"]] [[!template text="""So we are going to write a link""" start="00:06:44.160" video="mainVideo-one" id="subtitle"]] [[!template text="""that links to the last page,""" start="00:06:46.080" video="mainVideo-one" id="subtitle"]] [[!template text="""so a page with the table of contents.""" start="00:06:48.000" video="mainVideo-one" id="subtitle"]] @@ -184,9 +167,7 @@ [[!template text="""that works inside Emacs""" start="00:08:34.440" video="mainVideo-one" id="subtitle"]] [[!template text="""and that works well also in the browser.""" start="00:08:36.320" video="mainVideo-one" id="subtitle"]] -[[!template new="1" text="""CSS""" start="00:08:40.000" video="mainVideo-one" id="subtitle"]] - -[[!template text="""Now let's say that we want to change the CSS.""" start="00:08:40.000" video="mainVideo-one" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""CSS""" start="00:08:40.000" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now let's say that we want to change the CSS.""" start="00:08:40.000" video="mainVideo-one" id="subtitle"]] [[!template text="""So we've added a page with specific content,""" start="00:08:44.520" video="mainVideo-one" id="subtitle"]] [[!template text="""and we've done some links.""" start="00:08:50.720" video="mainVideo-one" id="subtitle"]] [[!template text="""Now we want to modify the CSS file""" start="00:08:51.720" video="mainVideo-one" id="subtitle"]] @@ -214,9 +195,7 @@ [[!template text="""and this is the user experience""" start="00:10:16.120" video="mainVideo-one" id="subtitle"]] [[!template text="""that we have with one.el and the default function.""" start="00:10:18.880" video="mainVideo-one" id="subtitle"]] -[[!template new="1" text="""How to write a render function""" start="00:10:23.160" video="mainVideo-one" id="subtitle"]] - -[[!template text="""Now that we've seen that,""" start="00:10:23.160" video="mainVideo-one" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""How to write a render function""" start="00:10:23.160" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now that we've seen that,""" start="00:10:23.160" video="mainVideo-one" id="subtitle"]] [[!template text="""we've done all of that part,""" start="00:10:26.280" video="mainVideo-one" id="subtitle"]] [[!template text="""and now we are going to see""" start="00:10:30.461" video="mainVideo-one" id="subtitle"]] [[!template text="""how to write a render function.""" start="00:10:31.920" video="mainVideo-one" id="subtitle"]] @@ -350,9 +329,7 @@ [[!template text="""and we have access to the date.""" start="00:18:56.560" video="mainVideo-one" id="subtitle"]] [[!template text="""Really, we can do whatever we want.""" start="00:18:58.800" video="mainVideo-one" id="subtitle"]] -[[!template new="1" text="""Rendering content""" start="00:19:03.200" video="mainVideo-one" id="subtitle"]] - -[[!template text="""Now, we want the content. So far,""" start="00:19:03.200" video="mainVideo-one" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Rendering content""" start="00:19:03.200" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""Now, we want the content. So far,""" start="00:19:03.200" video="mainVideo-one" id="subtitle"]] [[!template text="""we get the property, but what about the content,""" start="00:19:06.760" video="mainVideo-one" id="subtitle"]] [[!template text="""so h1, and now we put "Org content",""" start="00:19:11.600" video="mainVideo-one" id="subtitle"]] [[!template text="""and this is going to be something in the variable content,""" start="00:19:17.040" video="mainVideo-one" id="subtitle"]] @@ -377,9 +354,7 @@ [[!template text="""there was this `org-element-contents`, I think,""" start="00:20:27.040" video="mainVideo-one" id="subtitle"]] [[!template text="""and now we build it, and we must see it here.""" start="00:20:32.840" video="mainVideo-one" id="subtitle"]] -[[!template new="1" text="""Rendering CSS""" start="00:20:37.160" video="mainVideo-one" id="subtitle"]] - -[[!template text="""So we have the content,""" start="00:20:37.160" video="mainVideo-one" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Rendering CSS""" start="00:20:37.160" video="mainVideo-one" id="subtitle"]]</div>[[!template text="""So we have the content,""" start="00:20:37.160" video="mainVideo-one" id="subtitle"]] [[!template text="""we have the Org values,""" start="00:20:39.960" video="mainVideo-one" id="subtitle"]] [[!template text="""and last thing that we can do maybe is to put some CSS.""" start="00:20:43.320" video="mainVideo-one" id="subtitle"]] [[!template text="""Let's have a look to `one-default` function.""" start="00:20:48.400" video="mainVideo-one" id="subtitle"]] @@ -400,12 +375,11 @@ [[!template text="""I hope you enjoyed the talk, and have a nice day,""" start="00:22:08.960" video="mainVideo-one" id="subtitle"]] [[!template text="""and a nice conference.""" start="00:22:14.880" video="mainVideo-one" id="subtitle"]] - +</div> Captioner: sachac -<a name="one-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="one-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: So, will you, when I'm looking at my,""" start="00:00:00.459" video="qanda-one" id="subtitle"]] [[!template text="""the other screen, I don't see the chat,""" start="00:00:06.279" video="qanda-one" id="subtitle"]] @@ -898,7 +872,7 @@ Captioner: sachac [[!template text="""stream. I'm going to need to...""" start="00:27:33.520" video="qanda-one" id="subtitle"]] [[!template text="""Sorry. I'm going to stop.""" start="00:27:36.160" video="qanda-one" id="subtitle"]] -Questions or comments? Please e-mail [tony@tonyaldon.com](mailto:tony@tonyaldon.com?subject=Comment%20for%20EmacsConf%202023%20one%3A%20one.el%3A%20the%20static%20site%20generator%20for%20Emacs%20Lisp%20Programmers) +</div>Questions or comments? Please e-mail [tony@tonyaldon.com](mailto:tony@tonyaldon.com?subject=Comment%20for%20EmacsConf%202023%20one%3A%20one.el%3A%20the%20static%20site%20generator%20for%20Emacs%20Lisp%20Programmers) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/one-before.md b/2023/info/one-before.md index 04ae447f..5c64f269 100644 --- a/2023/info/one-before.md +++ b/2023/info/one-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 23-min talk; Q&A: BigBlueButton conference room +Format: 23-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="one-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="one-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-one"><source src="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-one" data=""" 00:00.000 Introduction 00:24.000 Documentation 02:02.200 Starting a new project @@ -23,10 +23,10 @@ Status: Q&A to be extracted from the room recordings 19:03.200 Rendering content 20:37.160 Rendering CSS -"""]]<div></div>Duration: 22:18 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.opus">Download --main.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.webm">Download --main.webm (54MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/x2yYYWLHQe75FTV8sWiDmy">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 22:18 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-one">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=62b4e0d50b581001f2d6526461e9ffb754b38371-1701534084270">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.opus">Download --main.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--main.webm">Download --main.webm (54MB)</a></li><li><a href="https://toobnix.org/w/x2yYYWLHQe75FTV8sWiDmy">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=GGP2mxZn4mY">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="one-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="one-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.opus"></audio></div><div></div>Duration: 27:39 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.json">Download --answers.json (1.1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.opus">Download --answers.opus (15MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.webm">Download --answers.webm (96MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-one"><source src="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-one-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.opus"></audio></div><div></div>Duration: 27:39 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-one">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=62b4e0d50b581001f2d6526461e9ffb754b38371-1701534084270">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.json">Download --answers.json (1.1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.opus">Download --answers.opus (15MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-one--oneel-the-static-site-generator-for-emacs-lisp-programmers--tony-aldon--answers.webm">Download --answers.webm (96MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/one-nav.md b/2023/info/one-nav.md index fe3eb334..2fe56716 100644 --- a/2023/info/one-nav.md +++ b/2023/info/one-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/table">Who needs Excel? Managing your students qualifications with org-table</a> Next by track: <a href="/2023/talks/writing">Emacs turbo-charges my writing</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/overlay-after.md b/2023/info/overlay-after.md index 7db881e5..3d710d06 100644 --- a/2023/info/overlay-after.md +++ b/2023/info/overlay-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="overlay-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="overlay-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""Hi, I'm Jeff Trull, and today I'm going to talk to you""" start="00:00:00.000" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Hi, I'm Jeff Trull, and today I'm going to talk to you""" start="00:00:00.000" video="mainVideo-overlay" id="subtitle"]] [[!template text="""about improving C++ compiler diagnostics""" start="00:00:04.898" video="mainVideo-overlay" id="subtitle"]] [[!template text="""using overlays and other features from Emacs.""" start="00:00:08.460" video="mainVideo-overlay" id="subtitle"]] [[!template text="""First an overview of my talk.""" start="00:00:13.600" video="mainVideo-overlay" id="subtitle"]] @@ -19,9 +16,7 @@ [[!template text="""and build a new minor mode""" start="00:00:26.751" video="mainVideo-overlay" id="subtitle"]] [[!template text="""using overlays and other Emacs features.""" start="00:00:28.448" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Overlays and what they can do""" start="00:00:33.560" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""First of all, overlays.""" start="00:00:33.560" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Overlays and what they can do""" start="00:00:33.560" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""First of all, overlays.""" start="00:00:33.560" video="mainVideo-overlay" id="subtitle"]] [[!template text="""What are they?""" start="00:00:35.520" video="mainVideo-overlay" id="subtitle"]] [[!template text="""They are objects consisting of a buffer range""" start="00:00:36.680" video="mainVideo-overlay" id="subtitle"]] [[!template text="""and a set of properties.""" start="00:00:39.125" video="mainVideo-overlay" id="subtitle"]] @@ -54,9 +49,7 @@ [[!template text="""it's still there, because it's hidden by an overlay.""" start="00:01:55.205" video="mainVideo-overlay" id="subtitle"]] [[!template text="""And that's kind of the essence of what overlays are.""" start="00:01:58.220" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Simple overlay example - creating an overlay""" start="00:02:02.500" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""Let's do a simple overlay example.""" start="00:02:02.500" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Simple overlay example - creating an overlay""" start="00:02:02.500" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Let's do a simple overlay example.""" start="00:02:02.500" video="mainVideo-overlay" id="subtitle"]] [[!template text="""We have some text on the right here,""" start="00:02:04.780" video="mainVideo-overlay" id="subtitle"]] [[!template text="""which is a famous poem by William Carlos Williams,""" start="00:02:06.720" video="mainVideo-overlay" id="subtitle"]] [[!template text="""which has been the subject of many memes.""" start="00:02:09.340" video="mainVideo-overlay" id="subtitle"]] @@ -67,9 +60,7 @@ [[!template text="""You can see we've created an overlay""" start="00:02:29.540" video="mainVideo-overlay" id="subtitle"]] [[!template text="""from position 74 to 224.""" start="00:02:33.277" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Adding properties""" start="00:02:35.700" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""Now we can take that overlay that we already created""" start="00:02:35.700" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Adding properties""" start="00:02:35.700" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Now we can take that overlay that we already created""" start="00:02:35.700" video="mainVideo-overlay" id="subtitle"]] [[!template text="""and add a property, in this case a `face` property,""" start="00:02:38.064" video="mainVideo-overlay" id="subtitle"]] [[!template text="""to change the appearance of the text.""" start="00:02:41.212" video="mainVideo-overlay" id="subtitle"]] [[!template text="""This is a poem, and it's currently using""" start="00:02:43.540" video="mainVideo-overlay" id="subtitle"]] @@ -82,9 +73,7 @@ [[!template text="""Now you can see that the poem looks quite a bit different.""" start="00:03:01.140" video="mainVideo-overlay" id="subtitle"]] [[!template text="""It looks more like what we'd see in a book.""" start="00:03:03.700" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Deleting an overlay""" start="00:03:10.940" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""We can also delete overlays.""" start="00:03:10.940" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Deleting an overlay""" start="00:03:10.940" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""We can also delete overlays.""" start="00:03:10.940" video="mainVideo-overlay" id="subtitle"]] [[!template text="""So I've named this one.""" start="00:03:13.100" video="mainVideo-overlay" id="subtitle"]] [[!template text="""So we can just go down and run `delete-overlay`""" start="00:03:15.140" video="mainVideo-overlay" id="subtitle"]] [[!template text="""and get rid of it, and it'll go back to""" start="00:03:17.766" video="mainVideo-overlay" id="subtitle"]] @@ -92,9 +81,7 @@ [[!template text="""And there it is.""" start="00:03:22.660" video="mainVideo-overlay" id="subtitle"]] [[!template text="""It's back to normal.""" start="00:03:23.660" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Setting fonts the right way""" start="00:03:24.660" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""Now, if you're interested in changing all of the verses""" start="00:03:24.660" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Setting fonts the right way""" start="00:03:24.660" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Now, if you're interested in changing all of the verses""" start="00:03:24.660" video="mainVideo-overlay" id="subtitle"]] [[!template text="""inside an Org Mode file to a different face""" start="00:03:28.474" video="mainVideo-overlay" id="subtitle"]] [[!template text="""or a different font family,""" start="00:03:31.109" video="mainVideo-overlay" id="subtitle"]] [[!template text="""this isn't the way you'd really do it.""" start="00:03:32.786" video="mainVideo-overlay" id="subtitle"]] @@ -107,16 +94,12 @@ [[!template text="""Let's give it a try.""" start="00:03:56.100" video="mainVideo-overlay" id="subtitle"]] [[!template text="""It worked!""" start="00:03:58.340" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""More properties""" start="00:03:59.540" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""There are more advanced things that you can do""" start="00:03:59.540" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""More properties""" start="00:03:59.540" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""There are more advanced things that you can do""" start="00:03:59.540" video="mainVideo-overlay" id="subtitle"]] [[!template text="""other than just changing fonts.""" start="00:04:01.806" video="mainVideo-overlay" id="subtitle"]] [[!template text="""There's a whole long list of them in the manual,""" start="00:04:03.300" video="mainVideo-overlay" id="subtitle"]] [[!template text="""but let's talk about the ones we're going to use today.""" start="00:04:05.544" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Visibility""" start="00:04:12.580" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""You can make text invisible, just like `org-present` did.""" start="00:04:12.580" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Visibility""" start="00:04:12.580" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""You can make text invisible, just like `org-present` did.""" start="00:04:12.580" video="mainVideo-overlay" id="subtitle"]] [[!template text="""The simplest way is to set the `invisible` property to true,""" start="00:04:17.380" video="mainVideo-overlay" id="subtitle"]] [[!template text="""so here's a code snippet that will do that.""" start="00:04:21.820" video="mainVideo-overlay" id="subtitle"]] [[!template text="""What we're going to do is""" start="00:04:24.500" video="mainVideo-overlay" id="subtitle"]] @@ -132,9 +115,7 @@ [[!template text="""I suggest reading the manual""" start="00:04:44.220" video="mainVideo-overlay" id="subtitle"]] [[!template text="""if you'd like to know more about that.""" start="00:04:46.627" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Adding text""" start="00:04:49.780" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""Another thing we can do with properties""" start="00:04:49.780" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Adding text""" start="00:04:49.780" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Another thing we can do with properties""" start="00:04:49.780" video="mainVideo-overlay" id="subtitle"]] [[!template text="""is to add text either before or after an overlay.""" start="00:04:52.118" video="mainVideo-overlay" id="subtitle"]] [[!template text="""Since we've made the word "plums" invisible,""" start="00:04:54.980" video="mainVideo-overlay" id="subtitle"]] [[!template text="""or anything that you make invisible in the buffer,""" start="00:04:57.348" video="mainVideo-overlay" id="subtitle"]] @@ -149,18 +130,14 @@ [[!template text="""There it is.""" start="00:05:19.580" video="mainVideo-overlay" id="subtitle"]] [[!template text="""So that's how you can replace words using overlays.""" start="00:05:22.020" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Custom properties""" start="00:05:27.820" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""You can also have custom properties""" start="00:05:27.820" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Custom properties""" start="00:05:27.820" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""You can also have custom properties""" start="00:05:27.820" video="mainVideo-overlay" id="subtitle"]] [[!template text="""that you name and then use yourself.""" start="00:05:29.761" video="mainVideo-overlay" id="subtitle"]] [[!template text="""For example, you can use it to mark regions in the buffer.""" start="00:05:31.700" video="mainVideo-overlay" id="subtitle"]] [[!template text="""You can also use it to add information""" start="00:05:35.320" video="mainVideo-overlay" id="subtitle"]] [[!template text="""to regions in the buffer for your own tracking""" start="00:05:38.009" video="mainVideo-overlay" id="subtitle"]] [[!template text="""in a minor mode or something like that, which we will use.""" start="00:05:41.180" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Notes on properties""" start="00:05:45.380" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""Finally, two notes on properties.""" start="00:05:45.380" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Notes on properties""" start="00:05:45.380" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Finally, two notes on properties.""" start="00:05:45.380" video="mainVideo-overlay" id="subtitle"]] [[!template text="""We've been talking about overlay properties,""" start="00:05:49.620" video="mainVideo-overlay" id="subtitle"]] [[!template text="""but there's also something called text properties.""" start="00:05:51.951" video="mainVideo-overlay" id="subtitle"]] [[!template text="""Text properties are attached to text in a buffer.""" start="00:05:54.540" video="mainVideo-overlay" id="subtitle"]] @@ -179,9 +156,7 @@ [[!template text="""if you're going to make heavy use of them.""" start="00:06:28.893" video="mainVideo-overlay" id="subtitle"]] [[!template text="""I prefer overlays because they're just easier to use.""" start="00:06:31.060" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Improving C++ compiler output""" start="00:06:36.100" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""C++ compiler output.""" start="00:06:36.100" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Improving C++ compiler output""" start="00:06:36.100" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""C++ compiler output.""" start="00:06:36.100" video="mainVideo-overlay" id="subtitle"]] [[!template text="""So my day job is C++ programmer,""" start="00:06:37.540" video="mainVideo-overlay" id="subtitle"]] [[!template text="""and although I've been an Emacser for many years,""" start="00:06:41.171" video="mainVideo-overlay" id="subtitle"]] [[!template text="""it can be a little bit of a chore dealing with errors.""" start="00:06:46.561" video="mainVideo-overlay" id="subtitle"]] @@ -216,16 +191,12 @@ [[!template text="""Okay.""" start="00:08:11.000" video="mainVideo-overlay" id="subtitle"]] [[!template text="""Back to our presentation.""" start="00:08:12.000" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""The problem with C++ error messages""" start="00:08:17.680" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""So it's often this way in C++""" start="00:08:17.680" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The problem with C++ error messages""" start="00:08:17.680" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""So it's often this way in C++""" start="00:08:17.680" video="mainVideo-overlay" id="subtitle"]] [[!template text="""because we compose types from other types.""" start="00:08:20.064" video="mainVideo-overlay" id="subtitle"]] [[!template text="""They can be long to begin with,""" start="00:08:23.400" video="mainVideo-overlay" id="subtitle"]] [[!template text="""but then a couple of other factors come into play.""" start="00:08:26.217" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Many standard class templates have default arguments""" start="00:08:30.240" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""First of all, we can have default template arguments.""" start="00:08:30.240" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Many standard class templates have default arguments""" start="00:08:30.240" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""First of all, we can have default template arguments.""" start="00:08:30.240" video="mainVideo-overlay" id="subtitle"]] [[!template text="""These are arguments you didn't write,""" start="00:08:33.280" video="mainVideo-overlay" id="subtitle"]] [[!template text="""but that are implicitly there""" start="00:08:35.364" video="mainVideo-overlay" id="subtitle"]] [[!template text="""and can sometimes refer""" start="00:08:37.009" video="mainVideo-overlay" id="subtitle"]] @@ -233,9 +204,7 @@ [[!template text="""which causes them to get a bit bigger,""" start="00:08:40.301" video="mainVideo-overlay" id="subtitle"]] [[!template text="""such as these allocator arguments here and here.""" start="00:08:42.441" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Some types are aliases for longer things, too""" start="00:08:47.520" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""Then there are type aliases.""" start="00:08:47.520" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Some types are aliases for longer things, too""" start="00:08:47.520" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Then there are type aliases.""" start="00:08:47.520" video="mainVideo-overlay" id="subtitle"]] [[!template text="""For example, `std::string` here expands to""" start="00:08:49.360" video="mainVideo-overlay" id="subtitle"]] [[!template text="""a type with three template arguments.""" start="00:08:54.015" video="mainVideo-overlay" id="subtitle"]] [[!template text="""So you can imagine, when we combine""" start="00:08:58.320" video="mainVideo-overlay" id="subtitle"]] @@ -245,9 +214,7 @@ [[!template text="""Let's run the comparison.""" start="00:09:14.258" video="mainVideo-overlay" id="subtitle"]] [[!template text="""Yeah.""" start="00:09:18.360" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Reporting type information accurately means long lines""" start="00:09:20.960" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""So in summary, to properly understand an error""" start="00:09:20.960" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Reporting type information accurately means long lines""" start="00:09:20.960" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""So in summary, to properly understand an error""" start="00:09:20.960" video="mainVideo-overlay" id="subtitle"]] [[!template text="""when you're a C++ programmer""" start="00:09:24.925" video="mainVideo-overlay" id="subtitle"]] [[!template text="""requires knowing the exact types""" start="00:09:27.371" video="mainVideo-overlay" id="subtitle"]] [[!template text="""that were supplied to your function.""" start="00:09:29.719" video="mainVideo-overlay" id="subtitle"]] @@ -272,9 +239,7 @@ [[!template text="""But there's a better way.""" start="00:10:13.240" video="mainVideo-overlay" id="subtitle"]] [[!template text="""Now, anyway.""" start="00:10:15.240" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Emacs can help - Treat C++ type names as just another kind of balanced expression""" start="00:10:18.240" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""So what can Emacs do to help us with this problem?""" start="00:10:18.240" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Emacs can help - Treat C++ type names as just another kind of balanced expression""" start="00:10:18.240" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""So what can Emacs do to help us with this problem?""" start="00:10:18.240" video="mainVideo-overlay" id="subtitle"]] [[!template text="""First of all, if you think about a type name,""" start="00:10:23.960" video="mainVideo-overlay" id="subtitle"]] [[!template text="""it's a lot like what we call S-expressions""" start="00:10:28.871" video="mainVideo-overlay" id="subtitle"]] [[!template text="""or balanced expressions.""" start="00:10:33.080" video="mainVideo-overlay" id="subtitle"]] @@ -305,9 +270,7 @@ [[!template text="""as though they were balanced expressions or S-expressions,""" start="00:11:41.815" video="mainVideo-overlay" id="subtitle"]] [[!template text="""the same kind that Emacs is really good at handling.""" start="00:11:44.313" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Add overlays to improve readability""" start="00:11:49.320" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""Secondly, we can use overlays""" start="00:11:49.320" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Add overlays to improve readability""" start="00:11:49.320" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Secondly, we can use overlays""" start="00:11:49.320" video="mainVideo-overlay" id="subtitle"]] [[!template text="""to improve the readability of errors.""" start="00:11:51.980" video="mainVideo-overlay" id="subtitle"]] [[!template text="""We can take long lines and break and indent them""" start="00:11:55.260" video="mainVideo-overlay" id="subtitle"]] [[!template text="""using `before-string`s, so the same thing""" start="00:11:58.013" video="mainVideo-overlay" id="subtitle"]] @@ -318,9 +281,7 @@ [[!template text="""We can also use the `invisible` property""" start="00:12:15.160" video="mainVideo-overlay" id="subtitle"]] [[!template text="""to hide unwanted detail.""" start="00:12:19.642" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Create a minor mode that runs during compilation""" start="00:12:22.400" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""Last of all, we can create a minor mode.""" start="00:12:22.400" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Create a minor mode that runs during compilation""" start="00:12:22.400" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Last of all, we can create a minor mode.""" start="00:12:22.400" video="mainVideo-overlay" id="subtitle"]] [[!template text="""When we're compiling things in Emacs,""" start="00:12:24.960" video="mainVideo-overlay" id="subtitle"]] [[!template text="""we often use `compilation-mode`.""" start="00:12:27.855" video="mainVideo-overlay" id="subtitle"]] [[!template text="""`compilation-mode` allows you to install""" start="00:12:30.140" video="mainVideo-overlay" id="subtitle"]] @@ -334,9 +295,7 @@ [[!template text="""so that we can see a simplified version""" start="00:12:50.177" video="mainVideo-overlay" id="subtitle"]] [[!template text="""or a more detailed version of a type, depending on our needs.""" start="00:12:53.907" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Parsing types as balanced expressions""" start="00:12:59.500" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""First of all, parsing types as balanced expressions.""" start="00:12:59.500" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Parsing types as balanced expressions""" start="00:12:59.500" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""First of all, parsing types as balanced expressions.""" start="00:12:59.500" video="mainVideo-overlay" id="subtitle"]] [[!template text="""We need to be able to quickly locate""" start="00:13:03.980" video="mainVideo-overlay" id="subtitle"]] [[!template text="""the boundaries and the contents""" start="00:13:05.687" video="mainVideo-overlay" id="subtitle"]] [[!template text="""of parenthesized expressions,""" start="00:13:07.163" video="mainVideo-overlay" id="subtitle"]] @@ -362,9 +321,7 @@ [[!template text="""can be used now with our angle brackets""" start="00:14:08.708" video="mainVideo-overlay" id="subtitle"]] [[!template text="""and inside of our types.""" start="00:14:11.486" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Indent and fill with overlays - Use ancient "pretty printing" algorithms"""" start="00:14:16.100" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""The next thing we can do is""" start="00:14:16.100" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Indent and fill with overlays - Use ancient "pretty printing" algorithms"""" start="00:14:16.100" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""The next thing we can do is""" start="00:14:16.100" video="mainVideo-overlay" id="subtitle"]] [[!template text="""perform indent and fill with overlays.""" start="00:14:18.463" video="mainVideo-overlay" id="subtitle"]] [[!template text="""We're going to use `before-string` properties""" start="00:14:21.540" video="mainVideo-overlay" id="subtitle"]] [[!template text="""to break lines and create indentation""" start="00:14:23.736" video="mainVideo-overlay" id="subtitle"]] @@ -376,18 +333,14 @@ [[!template text="""Back in the day, they had algorithms that could do both.""" start="00:14:43.940" video="mainVideo-overlay" id="subtitle"]] [[!template text="""Those are what we're going to leverage.""" start="00:14:47.080" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Overlays can mimic line breaks and indentation""" start="00:14:52.260" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""We can use the `before-string` property""" start="00:14:52.260" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Overlays can mimic line breaks and indentation""" start="00:14:52.260" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""We can use the `before-string` property""" start="00:14:52.260" video="mainVideo-overlay" id="subtitle"]] [[!template text="""to insert a new line in the correct number of spaces""" start="00:14:54.583" video="mainVideo-overlay" id="subtitle"]] [[!template text="""to emulate indentation.""" start="00:14:57.760" video="mainVideo-overlay" id="subtitle"]] [[!template text="""As a simplified example, here's some code""" start="00:15:00.240" video="mainVideo-overlay" id="subtitle"]] [[!template text="""that will indent 4 upon each open angle bracket.""" start="00:15:03.526" video="mainVideo-overlay" id="subtitle"]] [[!template text="""Let's give it a try.""" start="00:15:07.280" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Hiding details - Marking depths with overlays""" start="00:15:14.520" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""The next thing we're going to need to do is hide details.""" start="00:15:14.520" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Hiding details - Marking depths with overlays""" start="00:15:14.520" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""The next thing we're going to need to do is hide details.""" start="00:15:14.520" video="mainVideo-overlay" id="subtitle"]] [[!template text="""So we have nested types, and the user is going to want to""" start="00:15:18.280" video="mainVideo-overlay" id="subtitle"]] [[!template text="""be able to reveal lower-level or hide lower-level parts""" start="00:15:22.689" video="mainVideo-overlay" id="subtitle"]] [[!template text="""of the nested type interactively""" start="00:15:27.372" video="mainVideo-overlay" id="subtitle"]] @@ -425,9 +378,7 @@ [[!template text="""So it's reasonable that there should be two,""" start="00:17:07.660" video="mainVideo-overlay" id="subtitle"]] [[!template text="""and that's what we expect.""" start="00:17:10.830" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Hiding to a target depth""" start="00:17:12.660" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""Now that we've marked the nested types with their depths,""" start="00:17:12.660" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Hiding to a target depth""" start="00:17:12.660" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Now that we've marked the nested types with their depths,""" start="00:17:12.660" video="mainVideo-overlay" id="subtitle"]] [[!template text="""let's experiment with hiding details.""" start="00:17:17.354" video="mainVideo-overlay" id="subtitle"]] [[!template text="""This fragment of code takes a user-supplied depth,""" start="00:17:21.380" video="mainVideo-overlay" id="subtitle"]] [[!template text="""in this case 2, and will hide,""" start="00:17:26.774" video="mainVideo-overlay" id="subtitle"]] @@ -444,9 +395,7 @@ [[!template text="""Now if we put it back to 3, it should reveal everything.""" start="00:17:54.540" video="mainVideo-overlay" id="subtitle"]] [[!template text="""So that's what we're going to use in our minor mode.""" start="00:17:59.660" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Demo""" start="00:18:04.900" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""Let's have a demo.""" start="00:18:04.900" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:18:04.900" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""Let's have a demo.""" start="00:18:04.900" video="mainVideo-overlay" id="subtitle"]] [[!template text="""We're going to revisit the initial example""" start="00:18:05.900" video="mainVideo-overlay" id="subtitle"]] [[!template text="""with the minor mode installed.""" start="00:18:08.539" video="mainVideo-overlay" id="subtitle"]] [[!template text="""Now we're going to have a compilation filter""" start="00:18:10.380" video="mainVideo-overlay" id="subtitle"]] @@ -488,9 +437,7 @@ [[!template text="""Let's go back to our presentation.""" start="00:20:04.540" video="mainVideo-overlay" id="subtitle"]] [[!template text="""All right.""" start="00:20:08.340" video="mainVideo-overlay" id="subtitle"]] -[[!template new="1" text="""Conclusion""" start="00:20:10.220" video="mainVideo-overlay" id="subtitle"]] - -[[!template text="""In conclusion, we saw how we could solve""" start="00:20:10.220" video="mainVideo-overlay" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:20:10.220" video="mainVideo-overlay" id="subtitle"]]</div>[[!template text="""In conclusion, we saw how we could solve""" start="00:20:10.220" video="mainVideo-overlay" id="subtitle"]] [[!template text="""a real problem for C++ programmers""" start="00:20:12.997" video="mainVideo-overlay" id="subtitle"]] [[!template text="""by combining several Emacs features: overlays,""" start="00:20:15.368" video="mainVideo-overlay" id="subtitle"]] [[!template text="""compilation mode extensions,""" start="00:20:18.535" video="mainVideo-overlay" id="subtitle"]] @@ -505,12 +452,11 @@ [[!template text="""In short, there's plenty of hope for Emacs.""" start="00:20:48.020" video="mainVideo-overlay" id="subtitle"]] [[!template text="""Thank you.""" start="00:20:50.860" video="mainVideo-overlay" id="subtitle"]] - +</div> Captioner: sachac -<a name="overlay-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="overlay-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: Out here or also you can continue discussing""" start="00:00:02.899" video="qanda-overlay" id="subtitle"]] [[!template text="""on IRC.""" start="00:00:06.200" video="qanda-overlay" id="subtitle"]] @@ -725,7 +671,7 @@ Captioner: sachac [[!template text="""3 3 4 1 2 1""" start="00:22:28.100" video="qanda-overlay" id="subtitle"]] [[!template text="""You""" start="00:24:41.445" video="qanda-overlay" id="subtitle"]] -Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20overlay%3A%20Improving%20compiler%20diagnostics%20with%20overlays) +</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20overlay%3A%20Improving%20compiler%20diagnostics%20with%20overlays) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/overlay-before.md b/2023/info/overlay-before.md index 03bcd74e..8c8f8611 100644 --- a/2023/info/overlay-before.md +++ b/2023/info/overlay-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 21-min talk; Q&A: BigBlueButton conference room +Format: 21-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="overlay-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="overlay-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-overlay"><source src="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-overlay" data=""" 00:00.000 Introduction 00:33.560 Overlays and what they can do 02:02.500 Simple overlay example - creating an overlay @@ -37,10 +37,10 @@ Status: Q&A to be extracted from the room recordings 18:04.900 Demo 20:10.220 Conclusion -"""]]<div></div>Duration: 20:57 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--expr_depth.svg">Download --expr_depth.svg</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.opus">Download --main.opus (15MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.webm">Download --main.webm (63MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--testdata.org">Download --testdata.org</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull.org">Download .org</a></li><li><a href="https://toobnix.org/w/5fJkawU4R9b1dJq5BcDykx">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 20:57 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-overlay">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=57788b1709264f016c76ee375746aab6fdcba006-1701539189569">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--expr_depth.svg">Download --expr_depth.svg</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.opus">Download --main.opus (15MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--main.webm">Download --main.webm (63MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--testdata.org">Download --testdata.org</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull.org">Download .org</a></li><li><a href="https://toobnix.org/w/5fJkawU4R9b1dJq5BcDykx">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=g7mwN5QtcmA">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="overlay-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="overlay-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.opus"></audio></div><div></div>Duration: 11:48 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.opus">Download --answers.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.webm">Download --answers.webm (20MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-overlay"><source src="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-overlay-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.opus"></audio></div><div></div>Duration: 11:48 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-overlay">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=57788b1709264f016c76ee375746aab6fdcba006-1701539189569">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.opus">Download --answers.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-overlay--improving-compiler-diagnostics-with-overlays--jeff-trull--answers.webm">Download --answers.webm (20MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/overlay-nav.md b/2023/info/overlay-nav.md index ba04cc37..d06b5a15 100644 --- a/2023/info/overlay-nav.md +++ b/2023/info/overlay-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/llm">LLM clients in Emacs, functionality and standardization</a> Next by track: <a href="/2023/talks/eval">Editor Integrated REPL Driven Development for all languages</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/parallel-after.md b/2023/info/parallel-after.md index 2f390ff8..77006241 100644 --- a/2023/info/parallel-after.md +++ b/2023/info/parallel-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="parallel-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="parallel-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""Hi everyone!""" start="00:00:00.000" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Hi everyone!""" start="00:00:00.000" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Welcome to our talk on Parallel Text Replacement.""" start="00:00:01.640" video="mainVideo-parallel" id="subtitle"]] [[!template text="""My name is Lovro, and I'll be telling you about an""" start="00:00:04.640" video="mainVideo-parallel" id="subtitle"]] [[!template text="""interesting problem that my friend Valentino and I""" start="00:00:07.040" video="mainVideo-parallel" id="subtitle"]] @@ -18,9 +15,7 @@ [[!template text="""with a quick overview of the implementation.""" start="00:00:19.080" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Let's get straight into it!""" start="00:00:21.520" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Problem: Goal""" start="00:00:23.440" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""Here is a problem that most of us have dealt with""" start="00:00:23.440" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Problem: Goal""" start="00:00:23.440" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Here is a problem that most of us have dealt with""" start="00:00:23.440" video="mainVideo-parallel" id="subtitle"]] [[!template text="""at some point.""" start="00:00:25.800" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Assume we have a piece of code such as the following.""" start="00:00:27.040" video="mainVideo-parallel" id="subtitle"]] [[!template text="""We use a code example here, but in general what we're""" start="00:00:29.880" video="mainVideo-parallel" id="subtitle"]] @@ -43,9 +38,7 @@ [[!template text="""We should object to doing things that the computer""" start="00:01:08.280" video="mainVideo-parallel" id="subtitle"]] [[!template text="""can do for us.""" start="00:01:10.280" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Problem: Naive Multi-pass""" start="00:01:12.360" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""So, one way to automate it is by using our old friend""" start="00:01:12.360" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Problem: Naive Multi-pass""" start="00:01:12.360" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""So, one way to automate it is by using our old friend""" start="00:01:12.360" video="mainVideo-parallel" id="subtitle"]] [[!template text="""query-replace (M-%) multiple times in a sequence.""" start="00:01:15.560" video="mainVideo-parallel" id="subtitle"]] [[!template text="""We first do a pass where we replace "foo" with "bar",""" start="00:01:19.040" video="mainVideo-parallel" id="subtitle"]] [[!template text="""then we do another pass where we replace "bar" with "foo".""" start="00:01:22.240" video="mainVideo-parallel" id="subtitle"]] @@ -54,9 +47,7 @@ [[!template text="""doesn't work because it results in interference""" start="00:01:29.160" video="mainVideo-parallel" id="subtitle"]] [[!template text="""between the two replacements.""" start="00:01:31.560" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Problem: Clever Multi-pass""" start="00:01:34.200" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""Instead, we have to be a bit more clever.""" start="00:01:34.200" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Problem: Clever Multi-pass""" start="00:01:34.200" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Instead, we have to be a bit more clever.""" start="00:01:34.200" video="mainVideo-parallel" id="subtitle"]] [[!template text="""We should first replace "foo" with a temporary string,""" start="00:01:36.800" video="mainVideo-parallel" id="subtitle"]] [[!template text="""in this case "oof", that we will call a "token".""" start="00:01:39.840" video="mainVideo-parallel" id="subtitle"]] [[!template text="""To avoid interference, we must be careful to ensure""" start="00:01:42.120" video="mainVideo-parallel" id="subtitle"]] @@ -66,9 +57,7 @@ [[!template text="""and finally a third pass to replace the token with "bar".""" start="00:01:52.720" video="mainVideo-parallel" id="subtitle"]] [[!template text="""This gives us the result we want.""" start="00:01:56.080" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Problem: Terminology""" start="00:01:57.720" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""Putting the implementation aside for a moment, this style""" start="00:01:57.720" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Problem: Terminology""" start="00:01:57.720" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Putting the implementation aside for a moment, this style""" start="00:01:57.720" video="mainVideo-parallel" id="subtitle"]] [[!template text="""of text replacement, where we replace multiple sources""" start="00:02:01.920" video="mainVideo-parallel" id="subtitle"]] [[!template text="""with their targets, without running into interference""" start="00:02:05.600" video="mainVideo-parallel" id="subtitle"]] [[!template text="""issues between replacement pairs, is what we call""" start="00:02:09.040" video="mainVideo-parallel" id="subtitle"]] @@ -90,9 +79,7 @@ [[!template text="""the previously substituted targets of any other pair.""" start="00:02:56.760" video="mainVideo-parallel" id="subtitle"]] [[!template text="""This is what we mean by "no interference".""" start="00:03:00.200" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Problem: Scaling Multi-pass""" start="00:03:04.440" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""However, manually invoking multiple carefully chosen""" start="00:03:04.440" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Problem: Scaling Multi-pass""" start="00:03:04.440" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""However, manually invoking multiple carefully chosen""" start="00:03:04.440" video="mainVideo-parallel" id="subtitle"]] [[!template text="""query-replace commands gets old very quickly.""" start="00:03:08.000" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Say we scaled up the problem and wanted to perform n""" start="00:03:11.520" video="mainVideo-parallel" id="subtitle"]] [[!template text="""swaps instead of just two, e.g. to swap, or rather,""" start="00:03:14.200" video="mainVideo-parallel" id="subtitle"]] @@ -111,9 +98,7 @@ [[!template text="""and two, might slow down the search if they're overly long.""" start="00:03:50.280" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Can we do better?""" start="00:03:53.480" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Solution: Single-pass""" start="00:03:55.920" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""Yes we can!""" start="00:03:55.920" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Solution: Single-pass""" start="00:03:55.920" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Yes we can!""" start="00:03:55.920" video="mainVideo-parallel" id="subtitle"]] [[!template text="""We can actually perform just a single pass.""" start="00:03:56.840" video="mainVideo-parallel" id="subtitle"]] [[!template text="""The trick is to alternate between the replacement""" start="00:03:59.680" video="mainVideo-parallel" id="subtitle"]] [[!template text="""pairs, replacing whichever source occurs the earliest,""" start="00:04:02.280" video="mainVideo-parallel" id="subtitle"]] @@ -122,9 +107,7 @@ [[!template text="""This interleaving of replacements is not something""" start="00:04:12.280" video="mainVideo-parallel" id="subtitle"]] [[!template text="""that's easy to do by hand with query-replace.""" start="00:04:14.520" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Solution: Existing""" start="00:04:18.240" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""Since this is Emacs we're talking about, of course""" start="00:04:18.240" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Solution: Existing""" start="00:04:18.240" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Since this is Emacs we're talking about, of course""" start="00:04:18.240" video="mainVideo-parallel" id="subtitle"]] [[!template text="""there already exist solutions that implement this idea.""" start="00:04:20.960" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Here are few that we could find.""" start="00:04:23.560" video="mainVideo-parallel" id="subtitle"]] [[!template text="""The EmacsWiki has a page dedicated to this problem.""" start="00:04:25.960" video="mainVideo-parallel" id="subtitle"]] @@ -171,9 +154,7 @@ [[!template text="""regexes and consolidates all of the existing ideas""" start="00:06:24.240" video="mainVideo-parallel" id="subtitle"]] [[!template text="""into a single package.""" start="00:06:27.120" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Solution: query-replace-parallel""" start="00:06:29.080" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""We call it query-replace-parallel.""" start="00:06:29.080" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Solution: query-replace-parallel""" start="00:06:29.080" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""We call it query-replace-parallel.""" start="00:06:29.080" video="mainVideo-parallel" id="subtitle"]] [[!template text="""The package is free and open-source and can currently""" start="00:06:31.360" video="mainVideo-parallel" id="subtitle"]] [[!template text="""be found on GitHub under hokomo/query-replace-parallel.""" start="00:06:34.160" video="mainVideo-parallel" id="subtitle"]] [[!template text="""The name is not yet finalized and we're open to any""" start="00:06:37.400" video="mainVideo-parallel" id="subtitle"]] @@ -184,9 +165,7 @@ [[!template text="""With all of that said, let's go through a few demos""" start="00:06:48.900" video="mainVideo-parallel" id="subtitle"]] [[!template text="""to illustrate some use cases and see how to use the package.""" start="00:06:51.400" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Demonstration: Swap""" start="00:06:55.240" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""Our first demo is a simple swap, like the one we""" start="00:06:55.240" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demonstration: Swap""" start="00:06:55.240" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Our first demo is a simple swap, like the one we""" start="00:06:55.240" video="mainVideo-parallel" id="subtitle"]] [[!template text="""showed at the beginning of the presentation.""" start="00:06:57.560" video="mainVideo-parallel" id="subtitle"]] [[!template text="""This chunk of text is actually one of the tests""" start="00:06:59.240" video="mainVideo-parallel" id="subtitle"]] [[!template text="""from our package's code.""" start="00:07:02.160" video="mainVideo-parallel" id="subtitle"]] @@ -209,9 +188,7 @@ [[!template text="""execute them until the end,""" start="00:07:49.203" video="mainVideo-parallel" id="subtitle"]] [[!template text="""and so on.""" start="00:07:50.240" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Demonstration: LaTeX""" start="00:07:53.970" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""The second demo shows our first regex use case.""" start="00:07:53.970" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demonstration: LaTeX""" start="00:07:53.970" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""The second demo shows our first regex use case.""" start="00:07:53.970" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Imagine we have the following LaTeX code.""" start="00:07:56.280" video="mainVideo-parallel" id="subtitle"]] [[!template text="""We realize that we haven't been completely consistent""" start="00:07:58.720" video="mainVideo-parallel" id="subtitle"]] [[!template text="""in our use and naming of macros, so we decide to""" start="00:08:01.480" video="mainVideo-parallel" id="subtitle"]] @@ -233,9 +210,7 @@ [[!template text="""There we go, the fixes are done and we didn't have""" start="00:08:42.280" video="mainVideo-parallel" id="subtitle"]] [[!template text="""to think about in which order to apply them.""" start="00:08:44.480" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Demonstration: Regex""" start="00:08:48.700" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""We now take a look at a more complicated regex""" start="00:08:48.700" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demonstration: Regex""" start="00:08:48.700" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""We now take a look at a more complicated regex""" start="00:08:48.700" video="mainVideo-parallel" id="subtitle"]] [[!template text="""example to demonstrate that even advanced query-replace""" start="00:08:51.000" video="mainVideo-parallel" id="subtitle"]] [[!template text="""features are supported.""" start="00:08:53.680" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Each "foo" and "bar" in this example is followed by""" start="00:08:55.100" video="mainVideo-parallel" id="subtitle"]] @@ -252,9 +227,7 @@ [[!template text="""Performing the replacements, we can see how each""" start="00:09:27.040" video="mainVideo-parallel" id="subtitle"]] [[!template text="""number is incremented or decremented appropriately.""" start="00:09:29.120" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Demonstration: Order""" start="00:09:36.320" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""We haven't covered it explicitly so some of you may""" start="00:09:36.320" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demonstration: Order""" start="00:09:36.320" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""We haven't covered it explicitly so some of you may""" start="00:09:36.320" video="mainVideo-parallel" id="subtitle"]] [[!template text="""be wondering how parallel replacement deals with""" start="00:09:38.760" video="mainVideo-parallel" id="subtitle"]] [[!template text="""overlapping matches and whether the order of the""" start="00:09:41.360" video="mainVideo-parallel" id="subtitle"]] [[!template text="""replacement pairs is significant.""" start="00:09:43.840" video="mainVideo-parallel" id="subtitle"]] @@ -280,9 +253,7 @@ [[!template text="""The order only matters when two or more sources""" start="00:10:46.760" video="mainVideo-parallel" id="subtitle"]] [[!template text="""share the same prefix, as in this example.""" start="00:10:49.960" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Demonstration: Fun""" start="00:10:54.440" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""The final demo tests the limits of the package and""" start="00:10:54.440" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demonstration: Fun""" start="00:10:54.440" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""The final demo tests the limits of the package and""" start="00:10:54.440" video="mainVideo-parallel" id="subtitle"]] [[!template text="""shows that it fully integrates with query-replace.""" start="00:10:56.960" video="mainVideo-parallel" id="subtitle"]] [[!template text="""It is really just for fun and can even serve as a""" start="00:10:59.760" video="mainVideo-parallel" id="subtitle"]] [[!template text="""small Emacs brainteaser.""" start="00:11:03.040" video="mainVideo-parallel" id="subtitle"]] @@ -310,9 +281,7 @@ [[!template text="""We confirm the prompt and finally rename our directories.""" start="00:12:16.300" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Wow, that really paid off.""" start="00:12:25.360" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""Implementation""" start="00:12:29.120" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""Before we finish, a few quick words about the""" start="00:12:29.120" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Implementation""" start="00:12:29.120" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""Before we finish, a few quick words about the""" start="00:12:29.120" video="mainVideo-parallel" id="subtitle"]] [[!template text="""implementation for the curious.""" start="00:12:31.480" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Both query-replace-parallel and query-replace-parallel-regexp""" start="00:12:33.300" video="mainVideo-parallel" id="subtitle"]] [[!template text="""delegate to the complex perform-replace function""" start="00:12:36.480" video="mainVideo-parallel" id="subtitle"]] @@ -354,9 +323,7 @@ [[!template text="""tried to do it in the simplest and least intrusive way""" start="00:14:14.040" video="mainVideo-parallel" id="subtitle"]] [[!template text="""possible.""" start="00:14:16.680" video="mainVideo-parallel" id="subtitle"]] -[[!template new="1" text="""End""" start="00:14:18.740" video="mainVideo-parallel" id="subtitle"]] - -[[!template text="""In conclusion, go download and play with the package.""" start="00:14:18.740" video="mainVideo-parallel" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""End""" start="00:14:18.740" video="mainVideo-parallel" id="subtitle"]]</div>[[!template text="""In conclusion, go download and play with the package.""" start="00:14:18.740" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Even if you're not performing overlapping replacements,""" start="00:14:21.680" video="mainVideo-parallel" id="subtitle"]] [[!template text="""you can still use query-replace-parallel for the""" start="00:14:24.560" video="mainVideo-parallel" id="subtitle"]] [[!template text="""peace of mind knowing that things won't go wrong if""" start="00:14:26.880" video="mainVideo-parallel" id="subtitle"]] @@ -366,8 +333,7 @@ [[!template text="""improvements or bugs that make it only a 99% solution.""" start="00:14:37.560" video="mainVideo-parallel" id="subtitle"]] [[!template text="""Thanks for listening and have a great EmacsConf!""" start="00:14:40.640" video="mainVideo-parallel" id="subtitle"]] -<a name="parallel-qanda-transcript"></a> -# Q&A transcript (unedited) +</div><div class="transcript transcript-qanda"><a name="parallel-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: And I think we are live.""" start="00:00:08.620" video="qanda-parallel" id="subtitle"]] [[!template text="""Hello again, everyone.""" start="00:00:09.620" video="qanda-parallel" id="subtitle"]] @@ -625,7 +591,7 @@ [[!template text="""[Speaker 1]: Bye, thank you, see you.""" start="00:10:11.160" video="qanda-parallel" id="subtitle"]] [[!template text="""[Speaker 2]: You""" start="00:10:15.060" video="qanda-parallel" id="subtitle"]] -Questions or comments? Please e-mail [hokomo@disroot.org](mailto:hokomo@disroot.org?subject=Comment%20for%20EmacsConf%202023%20parallel%3A%20Parallel%20text%20replacement) +</div>Questions or comments? Please e-mail [hokomo@disroot.org](mailto:hokomo@disroot.org?subject=Comment%20for%20EmacsConf%202023%20parallel%3A%20Parallel%20text%20replacement) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/parallel-before.md b/2023/info/parallel-before.md index 54bb132d..b8b4f3f2 100644 --- a/2023/info/parallel-before.md +++ b/2023/info/parallel-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 15-min talk; Q&A: BigBlueButton conference room +Format: 15-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="parallel-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="parallel-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-parallel"><source src="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-parallel" data=""" 00:00.000 Introduction 00:23.440 Problem: Goal 01:12.360 Problem: Naive Multi-pass @@ -27,10 +27,10 @@ Status: Q&A to be extracted from the room recordings 12:29.120 Implementation 14:18.740 End -"""]]<div></div>Duration: 14:46 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main-vp8.webm">Download --main-vp8.webm (95MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.opus">Download --main.opus</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.webm">Download --main.webm (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/t3G5zo35epS6HvVot9MdZv">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 14:46 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-parallel">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=986da908da3b47da66e25ee3d0c4253749004ad5-1701613668042">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main-vp8.webm">Download --main-vp8.webm (95MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.opus">Download --main.opus</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--main.webm">Download --main.webm (29MB)</a></li><li><a href="https://toobnix.org/w/t3G5zo35epS6HvVot9MdZv">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=fUbBIWOJFh4">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="parallel-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="parallel-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.opus"></audio></div><div></div>Duration: 10:16 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.opus">Download --answers.opus (6.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.webm">Download --answers.webm (10MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-parallel"><source src="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-parallel-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.opus"></audio></div><div></div>Duration: 10:16 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-parallel">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=986da908da3b47da66e25ee3d0c4253749004ad5-1701613668042">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.opus">Download --answers.opus (6.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-parallel--parallel-text-replacement--lovro-valentino-picotti--answers.webm">Download --answers.webm (10MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/parallel-nav.md b/2023/info/parallel-nav.md index 5d255eff..c1f1b543 100644 --- a/2023/info/parallel-nav.md +++ b/2023/info/parallel-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/koutline">Using Koutline for stream of thought journaling</a> Next by track: <a href="/2023/talks/eat">Eat and Eat powered Eshell, fast featureful terminal inside Emacs</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/poltys-before.md b/2023/info/poltys-before.md index b5eb7ada..7dbe2c8d 100644 --- a/2023/info/poltys-before.md +++ b/2023/info/poltys-before.md @@ -1,12 +1,12 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 35-min talk; Q&A: BigBlueButton conference room +Format: 35-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="poltys-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--main.webm" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 34:30 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--main.opus">Download --main.opus (20MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--main.webm">Download --main.webm (185MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/1quXfJqC9bh9VxkA9UC21x">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-poltys"><source src="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--main.webm" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 34:30 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-poltys">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=823df2a9c2b725271129cfe0301fcc7e631c2e63-1701617796009">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--main.opus">Download --main.opus (20MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-poltys--the-browser-in-a-buffer--michael-bauer--main.webm">Download --main.webm (185MB)</a></li><li><a href="https://toobnix.org/w/1quXfJqC9bh9VxkA9UC21x">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=mp6gaVjmKIU">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/poltys-nav.md b/2023/info/poltys-nav.md index dd2be68d..54de7074 100644 --- a/2023/info/poltys-nav.md +++ b/2023/info/poltys-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/eat">Eat and Eat powered Eshell, fast featureful terminal inside Emacs</a> Next by track: <a href="/2023/talks/cubing">Speedcubing in Emacs</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/ref-after.md b/2023/info/ref-after.md index 9af1f6ff..2a145fdb 100644 --- a/2023/info/ref-after.md +++ b/2023/info/ref-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="ref-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="ref-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-ref" id="subtitle"]] - -[[!template text="""Hello, this is Christopher Howard,""" start="00:00:00.000" video="mainVideo-ref" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-ref" id="subtitle"]]</div>[[!template text="""Hello, this is Christopher Howard,""" start="00:00:00.000" video="mainVideo-ref" id="subtitle"]] [[!template text="""and welcome to my talk,""" start="00:00:04.940" video="mainVideo-ref" id="subtitle"]] [[!template text=""""Informal Reference Tracking."""" start="00:00:06.520" video="mainVideo-ref" id="subtitle"]] [[!template text="""This is a workflow talk,""" start="00:00:08.800" video="mainVideo-ref" id="subtitle"]] @@ -50,9 +47,7 @@ [[!template text="""So there are better systems,""" start="00:02:00.800" video="mainVideo-ref" id="subtitle"]] [[!template text="""but this is what worked for me and what was easy.""" start="00:02:02.440" video="mainVideo-ref" id="subtitle"]] -[[!template new="1" text="""Tip about completion frameworks""" start="00:02:06.040" video="mainVideo-ref" id="subtitle"]] - -[[!template text="""I do want to emphasize that if you haven't,""" start="00:02:06.040" video="mainVideo-ref" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Tip about completion frameworks""" start="00:02:06.040" video="mainVideo-ref" id="subtitle"]]</div>[[!template text="""I do want to emphasize that if you haven't,""" start="00:02:06.040" video="mainVideo-ref" id="subtitle"]] [[!template text="""you really want to learn how to use helm-mode""" start="00:02:11.320" video="mainVideo-ref" id="subtitle"]] [[!template text="""H-E-L-M, or one of the similar systems in Emacs""" start="00:02:14.640" video="mainVideo-ref" id="subtitle"]] [[!template text="""that does fuzzy search on Emacs commands.""" start="00:02:20.440" video="mainVideo-ref" id="subtitle"]] @@ -72,9 +67,7 @@ [[!template text="""So if you haven't learned Helm""" start="00:03:06.960" video="mainVideo-ref" id="subtitle"]] [[!template text="""or a similar system for Emacs, you really want to.""" start="00:03:09.120" video="mainVideo-ref" id="subtitle"]] -[[!template new="1" text="""References file overview""" start="00:03:14.920" video="mainVideo-ref" id="subtitle"]] - -[[!template text="""So what is my approach?""" start="00:03:14.920" video="mainVideo-ref" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""References file overview""" start="00:03:14.920" video="mainVideo-ref" id="subtitle"]]</div>[[!template text="""So what is my approach?""" start="00:03:14.920" video="mainVideo-ref" id="subtitle"]] [[!template text="""Well, basically, what it comes down to is really""" start="00:03:18.240" video="mainVideo-ref" id="subtitle"]] [[!template text="""fundamentally nothing more than just a list""" start="00:03:24.880" video="mainVideo-ref" id="subtitle"]] [[!template text="""of Org entries in a file.""" start="00:03:27.307" video="mainVideo-ref" id="subtitle"]] @@ -121,9 +114,7 @@ [[!template text="""to make this go a lot faster""" start="00:05:35.240" video="mainVideo-ref" id="subtitle"]] [[!template text="""rather than typing all this out.""" start="00:05:37.080" video="mainVideo-ref" id="subtitle"]] -[[!template new="1" text="""The Emacs Lisp code""" start="00:05:39.320" video="mainVideo-ref" id="subtitle"]] - -[[!template text="""For that, I'll switch back to my init.el file.""" start="00:05:39.320" video="mainVideo-ref" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The Emacs Lisp code""" start="00:05:39.320" video="mainVideo-ref" id="subtitle"]]</div>[[!template text="""For that, I'll switch back to my init.el file.""" start="00:05:39.320" video="mainVideo-ref" id="subtitle"]] [[!template text="""There's really just five functions.""" start="00:05:45.880" video="mainVideo-ref" id="subtitle"]] [[!template text="""The first two here are ones""" start="00:05:49.480" video="mainVideo-ref" id="subtitle"]] [[!template text="""that I've adapted off the Internet.""" start="00:05:52.840" video="mainVideo-ref" id="subtitle"]] @@ -167,9 +158,7 @@ [[!template text="""So if I really do want to edit those other references,""" start="00:07:55.040" video="mainVideo-ref" id="subtitle"]] [[!template text="""I've got a function to quickly make that possible.""" start="00:07:58.120" video="mainVideo-ref" id="subtitle"]] -[[!template new="1" text="""Example reference to Elfeed article""" start="00:08:02.720" video="mainVideo-ref" id="subtitle"]] - -[[!template text="""Let me give an example of this.""" start="00:08:02.720" video="mainVideo-ref" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Example reference to Elfeed article""" start="00:08:02.720" video="mainVideo-ref" id="subtitle"]]</div>[[!template text="""Let me give an example of this.""" start="00:08:02.720" video="mainVideo-ref" id="subtitle"]] [[!template text="""I type in here, new reference.""" start="00:08:07.500" video="mainVideo-ref" id="subtitle"]] [[!template text="""Now I've jumped to the end of my references file.""" start="00:08:13.980" video="mainVideo-ref" id="subtitle"]] [[!template text="""See, it's ready to take the title.""" start="00:08:16.440" video="mainVideo-ref" id="subtitle"]] @@ -231,9 +220,7 @@ [[!template text="""that only takes 20 seconds or so, or 30 seconds.""" start="00:11:31.000" video="mainVideo-ref" id="subtitle"]] [[!template text="""Pretty quick. Pretty easy.""" start="00:11:37.500" video="mainVideo-ref" id="subtitle"]] -[[!template new="1" text="""Searching the references""" start="00:11:41.540" video="mainVideo-ref" id="subtitle"]] - -[[!template text="""What about searching later?""" start="00:11:41.540" video="mainVideo-ref" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Searching the references""" start="00:11:41.540" video="mainVideo-ref" id="subtitle"]]</div>[[!template text="""What about searching later?""" start="00:11:41.540" video="mainVideo-ref" id="subtitle"]] [[!template text="""Well, often the easiest thing is just do a simple,""" start="00:11:45.540" video="mainVideo-ref" id="subtitle"]] [[!template text="""boring incremental search.""" start="00:11:50.474" video="mainVideo-ref" id="subtitle"]] [[!template text="""I usually know roughly""" start="00:11:54.640" video="mainVideo-ref" id="subtitle"]] @@ -288,7 +275,7 @@ [[!template text="""or you can reach out to me by email if you'd like.""" start="00:14:58.260" video="mainVideo-ref" id="subtitle"]] [[!template text="""Thank you very much.""" start="00:15:01.920" video="mainVideo-ref" id="subtitle"]] - +</div> Captioner: bhavin192 diff --git a/2023/info/ref-before.md b/2023/info/ref-before.md index 165a4e1b..474b823a 100644 --- a/2023/info/ref-before.md +++ b/2023/info/ref-before.md @@ -1,13 +1,13 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 16-min talk; Q&A: IRC +Format: 16-min talk ; Q&A: IRC Status: All done -<div class="vid"><video controls preload="none" id="ref-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="ref-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-ref"><source src="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-ref" data=""" 00:00.000 Introduction 02:06.040 Tip about completion frameworks 03:14.920 References file overview @@ -15,6 +15,6 @@ Status: All done 08:02.720 Example reference to Elfeed article 11:41.540 Searching the references -"""]]<div></div>Duration: 15:04 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.ogg">Download --main.ogg (7.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.opus">Download --main.opus (7.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.webm">Download --main.webm (38MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/cYpEatASFWXLzDfKH4Fhec">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 15:04 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-ref">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.ogg">Download --main.ogg (7.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.opus">Download --main.opus (7.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-ref--orgmode-workflow-informal-reference-tracking--christopher-howard--main.webm">Download --main.webm (38MB)</a></li><li><a href="https://toobnix.org/w/cYpEatASFWXLzDfKH4Fhec">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=qx1yeJ1Exrw">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/ref-nav.md b/2023/info/ref-nav.md index a370300e..7fd597c3 100644 --- a/2023/info/ref-nav.md +++ b/2023/info/ref-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/solo">How I play TTRPGs in Emacs</a> Next by track: <a href="/2023/talks/unentangling">(Un)entangling projects and repos</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/repl-after.md b/2023/info/repl-after.md index d0a895ad..5acd31f5 100644 --- a/2023/info/repl-after.md +++ b/2023/info/repl-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="repl-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="repl-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-repl" id="subtitle"]] - -[[!template text="""Hi! My name is Eduardo Ochs""" start="00:00:00.000" video="mainVideo-repl" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""Hi! My name is Eduardo Ochs""" start="00:00:00.000" video="mainVideo-repl" id="subtitle"]] [[!template text="""and the title of this talk is: REPLs""" start="00:00:03.080" video="mainVideo-repl" id="subtitle"]] [[!template text="""in strange places - Lua, LateX, LPeg, LPegRex,""" start="00:00:05.520" video="mainVideo-repl" id="subtitle"]] [[!template text="""and TikZ. I'm the author of an Emacs""" start="00:00:09.400" video="mainVideo-repl" id="subtitle"]] @@ -15,9 +12,7 @@ [[!template text="""at the EmacsConf 2023, that is happening in""" start="00:00:14.880" video="mainVideo-repl" id="subtitle"]] [[!template text="""December 2023, at the internets.""" start="00:00:18.480" video="mainVideo-repl" id="subtitle"]] -[[!template new="1" text="""Diagrams""" start="00:00:22.520" video="mainVideo-repl" id="subtitle"]] - -[[!template text="""This is one of the""" start="00:00:22.520" video="mainVideo-repl" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Diagrams""" start="00:00:22.520" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""This is one of the""" start="00:00:22.520" video="mainVideo-repl" id="subtitle"]] [[!template text="""examples of diagrams that we are""" start="00:00:23.080" video="mainVideo-repl" id="subtitle"]] [[!template text="""going to see - let me show how I generate""" start="00:00:24.920" video="mainVideo-repl" id="subtitle"]] [[!template text="""it... one second,""" start="00:00:27.640" video="mainVideo-repl" id="subtitle"]] @@ -31,9 +26,7 @@ [[!template text="""generates a PDF, and if I type f8 here it""" start="00:00:53.960" video="mainVideo-repl" id="subtitle"]] [[!template text="""shows the PDF in the lower right window.""" start="00:00:58.120" video="mainVideo-repl" id="subtitle"]] -[[!template new="1" text="""eev""" start="00:01:03.920" video="mainVideo-repl" id="subtitle"]] - -[[!template text="""Let me start by explaining""" start="00:01:03.920" video="mainVideo-repl" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""eev""" start="00:01:03.920" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""Let me start by explaining""" start="00:01:03.920" video="mainVideo-repl" id="subtitle"]] [[!template text="""briefly what is eev.""" start="00:01:06.080" video="mainVideo-repl" id="subtitle"]] [[!template text="""First: it is something that""" start="00:01:09.840" video="mainVideo-repl" id="subtitle"]] [[!template text="""appeared by accident in the mid-90s - I""" start="00:01:12.240" video="mainVideo-repl" id="subtitle"]] @@ -72,9 +65,7 @@ [[!template text="""without black boxes - I'm going to explain""" start="00:02:46.160" video="mainVideo-repl" id="subtitle"]] [[!template text="""many of these things very soon.""" start="00:02:48.840" video="mainVideo-repl" id="subtitle"]] -[[!template new="1" text="""Another figure""" start="00:02:50.320" video="mainVideo-repl" id="subtitle"]] - -[[!template text="""This is a figure that that I'm going""" start="00:02:50.320" video="mainVideo-repl" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Another figure""" start="00:02:50.320" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""This is a figure that that I'm going""" start="00:02:50.320" video="mainVideo-repl" id="subtitle"]] [[!template text="""to show in details soon, that is""" start="00:02:52.800" video="mainVideo-repl" id="subtitle"]] [[!template text="""about something important about Lua...""" start="00:02:57.120" video="mainVideo-repl" id="subtitle"]] [[!template text="""the font is very bad now, so let me""" start="00:02:59.960" video="mainVideo-repl" id="subtitle"]] @@ -345,9 +336,7 @@ [[!template text="""understand what their source code do...""" start="00:16:03.800" video="mainVideo-repl" id="subtitle"]] [[!template text="""they use lots of dirty tricks.""" start="00:16:06.160" video="mainVideo-repl" id="subtitle"]] -[[!template new="1" text="""Object orientation in Lua""" start="00:16:08.520" video="mainVideo-repl" id="subtitle"]] - -[[!template text="""Let me talk a bit about object""" start="00:16:08.520" video="mainVideo-repl" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Object orientation in Lua""" start="00:16:08.520" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""Let me talk a bit about object""" start="00:16:08.520" video="mainVideo-repl" id="subtitle"]] [[!template text="""orientation in Lua. It can be done in""" start="00:16:12.480" video="mainVideo-repl" id="subtitle"]] [[!template text="""many ways...""" start="00:16:14.960" video="mainVideo-repl" id="subtitle"]] [[!template text="""the main book about Lua, called""" start="00:16:15.880" video="mainVideo-repl" id="subtitle"]] @@ -411,9 +400,7 @@ [[!template text="""changed at all times.""" start="00:19:12.680" video="mainVideo-repl" id="subtitle"]] [[!template text="""Of course most people hate that...""" start="00:19:14.920" video="mainVideo-repl" id="subtitle"]] -[[!template new="1" text="""My init file""" start="00:19:19.120" video="mainVideo-repl" id="subtitle"]] - -[[!template text="""My init file has lots of classes... by the""" start="00:19:19.120" video="mainVideo-repl" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""My init file""" start="00:19:19.120" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""My init file has lots of classes... by the""" start="00:19:19.120" video="mainVideo-repl" id="subtitle"]] [[!template text="""way, instead of keeping many small files""" start="00:19:22.600" video="mainVideo-repl" id="subtitle"]] [[!template text="""with many things I put lots of stuff""" start="00:19:26.080" video="mainVideo-repl" id="subtitle"]] [[!template text="""in just one big init file.""" start="00:19:29.640" video="mainVideo-repl" id="subtitle"]] @@ -438,9 +425,7 @@ [[!template text="""and other languages, especially the""" start="00:20:28.160" video="mainVideo-repl" id="subtitle"]] [[!template text="""diagrams... so the code is not so important.""" start="00:20:32.280" video="mainVideo-repl" id="subtitle"]] -[[!template new="1" text="""LaTeX and LuaLaTeX""" start="00:20:35.280" video="mainVideo-repl" id="subtitle"]] - -[[!template text="""Now let me talk a bit about LuaLaTeX,""" start="00:20:35.280" video="mainVideo-repl" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""LaTeX and LuaLaTeX""" start="00:20:35.280" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""Now let me talk a bit about LuaLaTeX,""" start="00:20:35.280" video="mainVideo-repl" id="subtitle"]] [[!template text="""that is LaTeX with a Lua interpreter""" start="00:20:39.040" video="mainVideo-repl" id="subtitle"]] [[!template text="""embedded inside, and two ways""" start="00:20:41.360" video="mainVideo-repl" id="subtitle"]] [[!template text="""of generating pictures in LaTeX: TikZ,""" start="00:20:44.560" video="mainVideo-repl" id="subtitle"]] @@ -532,9 +517,7 @@ [[!template text="""diagram directly in the .tex file like""" start="00:25:22.560" video="mainVideo-repl" id="subtitle"]] [[!template text="""that...""" start="00:25:27.520" video="mainVideo-repl" id="subtitle"]] -[[!template new="1" text="""Manim""" start="00:25:28.080" video="mainVideo-repl" id="subtitle"]] - -[[!template text="""These diagrams were inspired""" start="00:25:28.080" video="mainVideo-repl" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Manim""" start="00:25:28.080" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""These diagrams were inspired""" start="00:25:28.080" video="mainVideo-repl" id="subtitle"]] [[!template text="""by something called my Manim, that...""" start="00:25:30.200" video="mainVideo-repl" id="subtitle"]] [[!template text="""I forgot the name of the guy, but""" start="00:25:33.040" video="mainVideo-repl" id="subtitle"]] [[!template text="""it's a guy that makes many videos about""" start="00:25:37.560" video="mainVideo-repl" id="subtitle"]] @@ -551,9 +534,7 @@ [[!template text="""things were fun for me, because my laptop""" start="00:26:13.640" video="mainVideo-repl" id="subtitle"]] [[!template text="""is very very slow, and my Manim was not fun.""" start="00:26:18.680" video="mainVideo-repl" id="subtitle"]] -[[!template new="1" text="""Generating diagrams from REPLs""" start="00:26:24.360" video="mainVideo-repl" id="subtitle"]] - -[[!template text="""Anyway, writing code like this""" start="00:26:24.360" video="mainVideo-repl" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Generating diagrams from REPLs""" start="00:26:24.360" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""Anyway, writing code like this""" start="00:26:24.360" video="mainVideo-repl" id="subtitle"]] [[!template text="""inside a .tex file was not very""" start="00:26:27.360" video="mainVideo-repl" id="subtitle"]] [[!template text="""fun because it was hard to""" start="00:26:32.720" video="mainVideo-repl" id="subtitle"]] [[!template text="""debug... so in 2022 I started to play""" start="00:26:35.520" video="mainVideo-repl" id="subtitle"]] @@ -634,9 +615,7 @@ [[!template text="""example. The :show() is""" start="00:30:44.360" video="mainVideo-repl" id="subtitle"]] [[!template text="""here... it generates a 3D diagram.""" start="00:30:51.360" video="mainVideo-repl" id="subtitle"]] -[[!template new="1" text="""Parsers""" start="00:30:56.440" video="mainVideo-repl" id="subtitle"]] - -[[!template text="""Now let me talk about parsers and""" start="00:30:56.440" video="mainVideo-repl" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Parsers""" start="00:30:56.440" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""Now let me talk about parsers and""" start="00:30:56.440" video="mainVideo-repl" id="subtitle"]] [[!template text="""REPLs in VERY strange places... I mean,""" start="00:31:06.280" video="mainVideo-repl" id="subtitle"]] [[!template text="""using REPLs to build parsers step by step""" start="00:31:09.560" video="mainVideo-repl" id="subtitle"]] [[!template text="""and" replacing parts by more complex""" start="00:31:13.360" video="mainVideo-repl" id="subtitle"]] @@ -793,9 +772,7 @@ [[!template text="""was modular, and I could replace any""" start="00:39:30.640" video="mainVideo-repl" id="subtitle"]] [[!template text="""part of the module from a REPL...""" start="00:39:33.760" video="mainVideo-repl" id="subtitle"]] -[[!template new="1" text="""ELpeg1.lua""" start="00:39:35.400" video="mainVideo-repl" id="subtitle"]] - -[[!template text="""My version of it was called ELpeg1.lua...""" start="00:39:35.400" video="mainVideo-repl" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""ELpeg1.lua""" start="00:39:35.400" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""My version of it was called ELpeg1.lua...""" start="00:39:35.400" video="mainVideo-repl" id="subtitle"]] [[!template text="""and I decided that in my version I""" start="00:39:43.680" video="mainVideo-repl" id="subtitle"]] [[!template text="""wouldn't have the part that""" start="00:39:47.680" video="mainVideo-repl" id="subtitle"]] [[!template text="""receives a grammar specified as a string""" start="00:39:49.640" video="mainVideo-repl" id="subtitle"]] @@ -983,9 +960,7 @@ [[!template text=""""d"... and then here's another constant""" start="00:49:57.640" video="mainVideo-repl" id="subtitle"]] [[!template text="""capture.""" start="00:50:03.280" video="mainVideo-repl" id="subtitle"]] -[[!template new="1" text="""Building lists""" start="00:50:03.720" video="mainVideo-repl" id="subtitle"]] - -[[!template text="""And I realized that these things""" start="00:50:03.720" video="mainVideo-repl" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Building lists""" start="00:50:03.720" video="mainVideo-repl" id="subtitle"]]</div>[[!template text="""And I realized that these things""" start="00:50:03.720" video="mainVideo-repl" id="subtitle"]] [[!template text="""here were similar to how Lua""" start="00:50:05.680" video="mainVideo-repl" id="subtitle"]] [[!template text="""specifies building lists...""" start="00:50:08.600" video="mainVideo-repl" id="subtitle"]] [[!template text="""when we build... sorry, tables. When""" start="00:50:09.840" video="mainVideo-repl" id="subtitle"]] @@ -1140,7 +1115,7 @@ [[!template text="""present much more but I wasn't able to""" start="00:59:04.960" video="mainVideo-repl" id="subtitle"]] [[!template text="""prepare it... so: sorry, thanks, bye! =)""" start="00:59:07.160" video="mainVideo-repl" id="subtitle"]] -Questions or comments? Please e-mail [eduardoochs@gmail.com](mailto:eduardoochs@gmail.com?subject=Comment%20for%20EmacsConf%202023%20repl%3A%20REPLs%20in%20strange%20places%3A%20Lua%2C%20LaTeX%2C%20LPeg%2C%20LPegRex%2C%20TikZ) +</div>Questions or comments? Please e-mail [eduardoochs@gmail.com](mailto:eduardoochs@gmail.com?subject=Comment%20for%20EmacsConf%202023%20repl%3A%20REPLs%20in%20strange%20places%3A%20Lua%2C%20LaTeX%2C%20LPeg%2C%20LPegRex%2C%20TikZ) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/repl-before.md b/2023/info/repl-before.md index 0266527b..9b9e2efa 100644 --- a/2023/info/repl-before.md +++ b/2023/info/repl-before.md @@ -1,13 +1,13 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 60-min talk; Q&A: IRC +Format: 60-min talk ; Q&A: IRC Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="repl-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="repl-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-repl"><source src="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-repl" data=""" 00:00.000 Intro 00:21.560 Diagrams 01:03.320 eev @@ -23,6 +23,6 @@ Status: Q&A to be extracted from the room recordings 39:03.200 ELpeg1.lua 50:04.160 Building lists -"""]]<div></div>Duration: 59:10 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.opus">Download --main.opus (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.webm">Download --main.webm (187MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/oAjqkLNfo9B63EE1G6cJJV">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 59:10 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-repl">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.opus">Download --main.opus (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-repl--repls-in-strange-places-lua-latex-lpeg-lpegrex-tikz--eduardo-ochs--main.webm">Download --main.webm (187MB)</a></li><li><a href="https://toobnix.org/w/oAjqkLNfo9B63EE1G6cJJV">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=lGjfzfC1CH0">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/repl-nav.md b/2023/info/repl-nav.md index 7ef1a2a2..a2bde0f3 100644 --- a/2023/info/repl-nav.md +++ b/2023/info/repl-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/eval">Editor Integrated REPL Driven Development for all languages</a> Next by track: <a href="/2023/talks/doc">Literate Documentation with Emacs and Org Mode</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/sat-close-after.md b/2023/info/sat-close-after.md index a40a2ed3..caa994ab 100644 --- a/2023/info/sat-close-after.md +++ b/2023/info/sat-close-after.md @@ -1,8 +1,7 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="sat-close-mainVideo-transcript"></a> -# Transcript (unedited) +<div class="transcript transcript-mainVideo"><a name="sat-close-mainVideo-transcript"></a><h1>Transcript (unedited)</h1> [[!template text="""[Speaker 0]: Session is being recorded.""" start="00:00:05.200" video="mainVideo-sat-close" id="subtitle"]] [[!template text="""Just waiting for Corwin and Leo.""" start="00:00:06.819" video="mainVideo-sat-close" id="subtitle"]] @@ -172,7 +171,7 @@ [[!template text="""don't have permission to do that in this""" start="00:08:52.540" video="mainVideo-sat-close" id="subtitle"]] [[!template text="""room.""" start="00:08:54.280" video="mainVideo-sat-close" id="subtitle"]] -Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-close%3A%20Saturday%20closing%20remarks) +</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-close%3A%20Saturday%20closing%20remarks) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/sat-close-before.md b/2023/info/sat-close-before.md index d44b5b4b..3b574968 100644 --- a/2023/info/sat-close-before.md +++ b/2023/info/sat-close-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 9-min talk; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference +Format: 9-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Status: Q&A to be extracted from the room recordings @@ -9,10 +9,10 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="sat-close-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 09:00 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.opus">Download --main.opus (4.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.md">Download --pad.md</a></li><li><a href="https://www.youtube.com/playlist?list=PLomc4HLgvuCUdrW3JkugtKv8xPelUoOyP">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sat-close"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 09:00 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sat-close">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=bb384a46db00ac8a0175df0a0668c94a9992b663-1701554802497">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.opus">Download --main.opus (4.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://www.youtube.com/playlist?list=PLomc4HLgvuCUdrW3JkugtKv8xPelUoOyP">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=6OOUfBF6t7k">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.opus">Download --main.opus (4.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--pad.md">Download --pad.md</a></li></ul></div></div> +<div class="vid qanda"><div></div><div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sat-close">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=bb384a46db00ac8a0175df0a0668c94a9992b663-1701554802497">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.opus">Download --main.opus (4.7MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-close--saturday-closing-remarks--main.webm">Download --main.webm (32MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/sat-close-nav.md b/2023/info/sat-close-nav.md index 219f76fc..e175a40c 100644 --- a/2023/info/sat-close-nav.md +++ b/2023/info/sat-close-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/sat-open">Saturday opening remarks</a> Next by track: <a href="/2023/talks/sun-open">Sunday opening remarks</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/sat-open-after.md b/2023/info/sat-open-after.md index aee69d2e..417922c4 100644 --- a/2023/info/sat-open-after.md +++ b/2023/info/sat-open-after.md @@ -1,8 +1,7 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="sat-open-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="sat-open-mainVideo-transcript"></a><h1>Transcript</h1> [[!template text="""Welcome to EmacsConf 2023, where we get to find out""" start="00:00:00.000" video="mainVideo-sat-open" id="subtitle"]] [[!template text="""just how much we can do with a text editor.""" start="00:00:04.559" video="mainVideo-sat-open" id="subtitle"]] @@ -126,7 +125,7 @@ [[!template text="""who make EmacsConf even possible.""" start="00:05:18.724" video="mainVideo-sat-open" id="subtitle"]] [[!template text="""Thanks for coming to EmacsConf 2023.""" start="00:05:21.763" video="mainVideo-sat-open" id="subtitle"]] -Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-open%3A%20Saturday%20opening%20remarks) +</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-open%3A%20Saturday%20opening%20remarks) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/sat-open-before.md b/2023/info/sat-open-before.md index c812c4c6..df86ddb8 100644 --- a/2023/info/sat-open-before.md +++ b/2023/info/sat-open-before.md @@ -1,12 +1,12 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 6-min talk; Q&A: Etherpad +Format: 6-min talk ; Q&A: Etherpad Status: All done -<div class="vid"><video controls preload="none" id="sat-open-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sat-open--saturday-opening-remarks--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 05:25 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--main.opus">Download --main.opus (2.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--main.webm">Download --main.webm (18MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/wEZX2JkDFpFqNFXnYeQTyb">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sat-open"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sat-open--saturday-opening-remarks--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 05:25 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sat-open">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--main.opus">Download --main.opus (2.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sat-open--saturday-opening-remarks--main.webm">Download --main.webm (18MB)</a></li><li><a href="https://toobnix.org/w/wEZX2JkDFpFqNFXnYeQTyb">View on Toobnix</a></li><li><a href="https://youtu.be/piEHmLVtG6A">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/sat-open-nav.md b/2023/info/sat-open-nav.md index c1355bfc..9d1a5ef9 100644 --- a/2023/info/sat-open-nav.md +++ b/2023/info/sat-open-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/emacsconf">EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference</a> Next by track: <a href="/2023/talks/sat-close">Saturday closing remarks</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/scheme-after.md b/2023/info/scheme-after.md index 17b95b51..a466d69a 100644 --- a/2023/info/scheme-after.md +++ b/2023/info/scheme-after.md @@ -1,22 +1,17 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="scheme-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="scheme-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:02.120" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""Hello and welcome everyone on EmacsConf 2023.""" start="00:00:02.120" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:02.120" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Hello and welcome everyone on EmacsConf 2023.""" start="00:00:02.120" video="mainVideo-scheme" id="subtitle"]] [[!template text="""I'm Andrew Tropin.""" start="00:00:07.400" video="mainVideo-scheme" id="subtitle"]] [[!template text="""I work on operating systems and programming languages.""" start="00:00:08.720" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Today, we discuss Lisps, Schemes, REPLs,""" start="00:00:11.920" video="mainVideo-scheme" id="subtitle"]] [[!template text="""interactive development,""" start="00:00:16.640" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and how to make your own cozy development environment.""" start="00:00:18.140" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Interactive development""" start="00:00:23.280" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""Let's start from interactive development.""" start="00:00:23.280" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Interactive development""" start="00:00:23.280" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Let's start from interactive development.""" start="00:00:23.280" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Lisps are famous for a nice""" start="00:00:26.320" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Interactive Development Experience.""" start="00:00:29.520" video="mainVideo-scheme" id="subtitle"]] [[!template text="""They have REPLs.""" start="00:00:32.480" video="mainVideo-scheme" id="subtitle"]] @@ -33,9 +28,7 @@ [[!template text="""but is it enough?""" start="00:01:14.600" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Let's see.""" start="00:01:16.680" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""REPL: Read Eval Print Loop""" start="00:01:18.180" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""We know that Emacs is very good for Lisps and REPL.""" start="00:01:18.180" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""REPL: Read Eval Print Loop""" start="00:01:18.180" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""We know that Emacs is very good for Lisps and REPL.""" start="00:01:18.180" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Lisp and Emacs should be a perfect setup.""" start="00:01:22.840" video="mainVideo-scheme" id="subtitle"]] [[!template text="""But let's see how REPL basically works.""" start="00:01:26.040" video="mainVideo-scheme" id="subtitle"]] [[!template text="""It's an event loop which does three things.""" start="00:01:30.080" video="mainVideo-scheme" id="subtitle"]] @@ -66,9 +59,7 @@ [[!template text="""So you can evaluate expressions inside your text editor""" start="00:02:46.080" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and see the result here.""" start="00:02:51.600" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Long-lasting loops""" start="00:02:53.720" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""Works good so far, but what happens""" start="00:02:53.720" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Long-lasting loops""" start="00:02:53.720" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Works good so far, but what happens""" start="00:02:53.720" video="mainVideo-scheme" id="subtitle"]] [[!template text="""if we run a long-lasting loop,""" start="00:02:56.680" video="mainVideo-scheme" id="subtitle"]] [[!template text="""which does a lot of operations.""" start="00:03:02.300" video="mainVideo-scheme" id="subtitle"]] [[!template text="""As you can see here with a simple example,""" start="00:03:05.000" video="mainVideo-scheme" id="subtitle"]] @@ -91,9 +82,7 @@ [[!template text="""And even if you do it,""" start="00:04:02.920" video="mainVideo-scheme" id="subtitle"]] [[!template text="""you have a lot of downsides, usually.""" start="00:04:04.321" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Not interruptible""" start="00:04:07.600" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""First of all, the process is not interruptible.""" start="00:04:07.600" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Not interruptible""" start="00:04:07.600" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""First of all, the process is not interruptible.""" start="00:04:07.600" video="mainVideo-scheme" id="subtitle"]] [[!template text="""If you have a remote process which listens on the socket""" start="00:04:13.680" video="mainVideo-scheme" id="subtitle"]] [[!template text="""to which you connect from your development environment,""" start="00:04:18.480" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and you run some infinite loop, for example,""" start="00:04:21.940" video="mainVideo-scheme" id="subtitle"]] @@ -102,9 +91,7 @@ [[!template text="""and signals to remote processes are not usually""" start="00:04:31.240" video="mainVideo-scheme" id="subtitle"]] [[!template text="""the thing in such integrations.""" start="00:04:35.040" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Output is not interactive""" start="00:04:38.760" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""Output is also not interactive.""" start="00:04:38.760" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Output is not interactive""" start="00:04:38.760" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Output is also not interactive.""" start="00:04:38.760" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Usually, for example, here you can see""" start="00:04:41.160" video="mainVideo-scheme" id="subtitle"]] [[!template text="""when I evaluate the expression,""" start="00:04:45.320" video="mainVideo-scheme" id="subtitle"]] [[!template text="""the output is captured on the evaluation side,""" start="00:04:47.800" video="mainVideo-scheme" id="subtitle"]] @@ -116,9 +103,7 @@ [[!template text="""only after 5 seconds of evaluation.""" start="00:05:13.781" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Okay, what else?""" start="00:05:17.040" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""No protocol""" start="00:05:23.160" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""When you do such integrations, you have no protocol,""" start="00:05:23.160" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""No protocol""" start="00:05:23.160" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""When you do such integrations, you have no protocol,""" start="00:05:23.160" video="mainVideo-scheme" id="subtitle"]] [[!template text="""you have just stdin and stdout.""" start="00:05:26.120" video="mainVideo-scheme" id="subtitle"]] [[!template text="""You print to stdin from your text editor.""" start="00:05:29.760" video="mainVideo-scheme" id="subtitle"]] [[!template text="""You read from stdout of the process.""" start="00:05:32.920" video="mainVideo-scheme" id="subtitle"]] @@ -126,9 +111,7 @@ [[!template text="""if it requires stdin, and how to extend the REPL""" start="00:05:40.340" video="mainVideo-scheme" id="subtitle"]] [[!template text="""to make it more featureful, and so on.""" start="00:05:47.320" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Not scalable""" start="00:05:51.480" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""And also, such integrations are usually not very scalable.""" start="00:05:51.480" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Not scalable""" start="00:05:51.480" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""And also, such integrations are usually not very scalable.""" start="00:05:51.480" video="mainVideo-scheme" id="subtitle"]] [[!template text="""For example, if you want to have a completion,""" start="00:05:57.360" video="mainVideo-scheme" id="subtitle"]] [[!template text="""you type something, you have the completion. Cool.""" start="00:06:14.700" video="mainVideo-scheme" id="subtitle"]] [[!template text="""But if you run the process and at the same time""" start="00:06:17.461" video="mainVideo-scheme" id="subtitle"]] @@ -150,9 +133,7 @@ [[!template text="""so you need something else""" start="00:07:18.420" video="mainVideo-scheme" id="subtitle"]] [[!template text="""to make the work comfortable.""" start="00:07:21.380" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""nREPL""" start="00:07:25.860" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""There is already a solution called nREPL.""" start="00:07:25.860" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""nREPL""" start="00:07:25.860" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""There is already a solution called nREPL.""" start="00:07:25.860" video="mainVideo-scheme" id="subtitle"]] [[!template text="""It's a synchronous protocol which allows""" start="00:07:28.980" video="mainVideo-scheme" id="subtitle"]] [[!template text="""to send operations to the server""" start="00:07:31.120" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and receive responses in a synchronous manner.""" start="00:07:34.020" video="mainVideo-scheme" id="subtitle"]] @@ -179,9 +160,7 @@ [[!template text="""was not satisfying. I decided""" start="00:08:57.300" video="mainVideo-scheme" id="subtitle"]] [[!template text="""to just implement nREPL protocol.""" start="00:08:59.400" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Arei, Ares, and how to try""" start="00:09:01.740" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""First of all, I implemented nREPL server in Guile.""" start="00:09:01.740" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Arei, Ares, and how to try""" start="00:09:01.740" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""First of all, I implemented nREPL server in Guile.""" start="00:09:01.740" video="mainVideo-scheme" id="subtitle"]] [[!template text="""I called it `guile-ares-rs`, and used it""" start="00:09:05.720" video="mainVideo-scheme" id="subtitle"]] [[!template text="""with a generic nREPL client for Emacs.""" start="00:09:11.340" video="mainVideo-scheme" id="subtitle"]] [[!template text="""It worked.""" start="00:09:13.960" video="mainVideo-scheme" id="subtitle"]] @@ -204,9 +183,7 @@ [[!template text="""that README will be complete enough""" start="00:10:27.680" video="mainVideo-scheme" id="subtitle"]] [[!template text="""so you will be able to try it yourself.""" start="00:10:30.200" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Demo""" start="00:10:34.180" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""Let's see what is possible with it already.""" start="00:10:34.180" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:10:34.180" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Let's see what is possible with it already.""" start="00:10:34.180" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Let's connect to nREPL server.""" start="00:10:42.680" video="mainVideo-scheme" id="subtitle"]] [[!template text="""After that, you can evaluate the expression.""" start="00:10:51.900" video="mainVideo-scheme" id="subtitle"]] [[!template text="""And you see the stdout and the result.""" start="00:10:56.281" video="mainVideo-scheme" id="subtitle"]] @@ -221,9 +198,7 @@ [[!template text="""which is very convenient if you accidentally""" start="00:11:21.960" video="mainVideo-scheme" id="subtitle"]] [[!template text="""run an infinite loop.""" start="00:11:25.160" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Continuations""" start="00:11:27.640" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""Also, do you remember here we have a few more examples""" start="00:11:27.640" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Continuations""" start="00:11:27.640" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Also, do you remember here we have a few more examples""" start="00:11:27.640" video="mainVideo-scheme" id="subtitle"]] [[!template text="""that we didn't try yet?""" start="00:11:32.940" video="mainVideo-scheme" id="subtitle"]] [[!template text="""For example, on usual REPL implementation,""" start="00:11:34.080" video="mainVideo-scheme" id="subtitle"]] [[!template text="""if I evaluate this expression, I get return value.""" start="00:11:39.160" video="mainVideo-scheme" id="subtitle"]] @@ -243,9 +218,7 @@ [[!template text="""and you can see at the top of the screen""" start="00:12:27.280" video="mainVideo-scheme" id="subtitle"]] [[!template text="""that it works perfectly fine.""" start="00:12:30.140" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Reading from stdin""" start="00:12:32.460" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""Also, with a usual REPL implementation,""" start="00:12:32.460" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Reading from stdin""" start="00:12:32.460" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Also, with a usual REPL implementation,""" start="00:12:32.460" video="mainVideo-scheme" id="subtitle"]] [[!template text="""let's see what happens when we have a process""" start="00:12:35.560" video="mainVideo-scheme" id="subtitle"]] [[!template text="""which reads from stdin.""" start="00:12:40.320" video="mainVideo-scheme" id="subtitle"]] [[!template text="""I evaluate the expression and nothing visible happens.""" start="00:12:41.920" video="mainVideo-scheme" id="subtitle"]] @@ -260,9 +233,7 @@ [[!template text="""and unspecified was returned""" start="00:13:26.100" video="mainVideo-scheme" id="subtitle"]] [[!template text="""as a result of this expression.""" start="00:13:28.680" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Fancy example with continuations""" start="00:13:33.420" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""Let's make some fancy example with continuations.""" start="00:13:33.420" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Fancy example with continuations""" start="00:13:33.420" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Let's make some fancy example with continuations.""" start="00:13:33.420" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Continuations is a very cool mechanism""" start="00:13:37.320" video="mainVideo-scheme" id="subtitle"]] [[!template text="""which is not the topic of today's talk,""" start="00:13:45.080" video="mainVideo-scheme" id="subtitle"]] [[!template text="""but you can find a lot of interesting information""" start="00:13:48.000" video="mainVideo-scheme" id="subtitle"]] @@ -290,9 +261,7 @@ another value for it.""" start="00:14:27.680" video="mainVideo-scheme" id="subti [[!template text="""Very nice.""" start="00:15:07.520" video="mainVideo-scheme" id="subtitle"]] [[!template text="""And every time we could easily interrupt it.""" start="00:15:08.040" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Guix API""" start="00:15:13.160" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""Okay, what most annoying thing that I had previously""" start="00:15:13.160" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Guix API""" start="00:15:13.160" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Okay, what most annoying thing that I had previously""" start="00:15:13.160" video="mainVideo-scheme" id="subtitle"]] [[!template text="""with the usual REPL implementation""" start="00:15:17.320" video="mainVideo-scheme" id="subtitle"]] [[!template text="""that I have a quite nice Guix API""" start="00:15:19.340" video="mainVideo-scheme" id="subtitle"]] [[!template text="""where I can build packages, systems and other stuff.""" start="00:15:22.760" video="mainVideo-scheme" id="subtitle"]] @@ -328,16 +297,12 @@ another value for it.""" start="00:14:27.680" video="mainVideo-scheme" id="subti [[!template text="""while the infinite loop is running.""" start="00:17:33.660" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Okay.""" start="00:17:40.260" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Support""" start="00:17:42.060" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""Actually it took me around two months""" start="00:17:42.060" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Support""" start="00:17:42.060" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""Actually it took me around two months""" start="00:17:42.060" video="mainVideo-scheme" id="subtitle"]] [[!template text="""of full-time work funded by my own savings,""" start="00:17:44.920" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and you can support and help to the project""" start="00:17:48.040" video="mainVideo-scheme" id="subtitle"]] [[!template text="""using OpenCollective or by contributing on SourceHut.""" start="00:17:51.600" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Future steps - Multiple simultaneous evaluations in different contexts""" start="00:17:57.020" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""The future steps for the project""" start="00:17:57.020" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Future steps - Multiple simultaneous evaluations in different contexts""" start="00:17:57.020" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""The future steps for the project""" start="00:17:57.020" video="mainVideo-scheme" id="subtitle"]] [[!template text="""include an experimental workflow where you have""" start="00:17:58.700" video="mainVideo-scheme" id="subtitle"]] [[!template text="""multiple simultaneous evaluation in different contexts.""" start="00:18:03.675" video="mainVideo-scheme" id="subtitle"]] [[!template text="""For example, you have Fibers, you have Goblins,""" start="00:18:07.540" video="mainVideo-scheme" id="subtitle"]] @@ -351,15 +316,11 @@ another value for it.""" start="00:14:27.680" video="mainVideo-scheme" id="subti [[!template text="""You want to see the stderr and stdout""" start="00:18:39.240" video="mainVideo-scheme" id="subtitle"]] [[!template text="""of those long-running processes and so on.""" start="00:18:42.520" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Tree-sitter integration""" start="00:18:46.220" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""The second thing is tree-sitter integration""" start="00:18:46.220" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Tree-sitter integration""" start="00:18:46.220" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""The second thing is tree-sitter integration""" start="00:18:46.220" video="mainVideo-scheme" id="subtitle"]] [[!template text="""for better syntax highlighting, code navigation,""" start="00:18:50.240" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and other features.""" start="00:18:53.400" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Full-fledged debugger""" start="00:18:56.880" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""And after that, probably we will do a full-fledged debugger""" start="00:18:56.880" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Full-fledged debugger""" start="00:18:56.880" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""And after that, probably we will do a full-fledged debugger""" start="00:18:56.880" video="mainVideo-scheme" id="subtitle"]] [[!template text="""so you can jump expressions one by one""" start="00:19:01.400" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and see the results and see some intermediate values""" start="00:19:06.240" video="mainVideo-scheme" id="subtitle"]] [[!template text="""during the evaluation.""" start="00:19:10.780" video="mainVideo-scheme" id="subtitle"]] @@ -368,9 +329,7 @@ another value for it.""" start="00:14:27.680" video="mainVideo-scheme" id="subti [[!template text="""and you can implement""" start="00:19:17.080" video="mainVideo-scheme" id="subtitle"]] [[!template text="""whatever you want on top of it.""" start="00:19:18.200" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""FAQ - Does it support other Scheme implementations?""" start="00:19:22.760" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""I will answer two probably very frequent questions.""" start="00:19:22.760" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""FAQ - Does it support other Scheme implementations?""" start="00:19:22.760" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""I will answer two probably very frequent questions.""" start="00:19:22.760" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Does it support other Scheme implementations?""" start="00:19:27.080" video="mainVideo-scheme" id="subtitle"]] [[!template text="""At the moment, it doesn't,""" start="00:19:30.500" video="mainVideo-scheme" id="subtitle"]] [[!template text="""but the Scheme implementation is not restricted.""" start="00:19:32.280" video="mainVideo-scheme" id="subtitle"]] @@ -380,9 +339,7 @@ another value for it.""" start="00:14:27.680" video="mainVideo-scheme" id="subti [[!template text="""So if you implement nREPL server in a different language,""" start="00:19:48.320" video="mainVideo-scheme" id="subtitle"]] [[!template text="""it should work with already implemented `arei` client.""" start="00:19:52.360" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Is it possible to use it with other text editors?""" start="00:19:58.380" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""And is it possible to use the same functionality""" start="00:19:58.380" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Is it possible to use it with other text editors?""" start="00:19:58.380" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""And is it possible to use the same functionality""" start="00:19:58.380" video="mainVideo-scheme" id="subtitle"]] [[!template text="""in other text editors, for example in VS Code,""" start="00:20:04.080" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Vim, whatever?""" start="00:20:07.000" video="mainVideo-scheme" id="subtitle"]] [[!template text="""Yes, it's possible and the case is similar here.""" start="00:20:08.680" video="mainVideo-scheme" id="subtitle"]] @@ -390,154 +347,23 @@ another value for it.""" start="00:14:27.680" video="mainVideo-scheme" id="subti [[!template text="""and you can write your own nREPL client""" start="00:20:16.600" video="mainVideo-scheme" id="subtitle"]] [[!template text="""in a different text editor and it will work.""" start="00:20:19.360" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Conclusion""" start="00:20:22.121" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""I would like to thank the authors and maintainers""" start="00:20:22.121" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:20:22.121" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""I would like to thank the authors and maintainers""" start="00:20:22.121" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and contributors of Guile, Geiser, CIDER, Clojure,""" start="00:20:26.760" video="mainVideo-scheme" id="subtitle"]] [[!template text="""and Emacs, and all other people""" start="00:20:30.440" video="mainVideo-scheme" id="subtitle"]] [[!template text="""who are somehow related to the work on those projects""" start="00:20:33.360" video="mainVideo-scheme" id="subtitle"]] [[!template text="""involved in this talk.""" start="00:20:38.780" video="mainVideo-scheme" id="subtitle"]] [[!template text="""And I hope the Scheme programming will be enjoyable.""" start="00:20:42.080" video="mainVideo-scheme" id="subtitle"]] -[[!template new="1" text="""Contacts""" start="00:20:45.880" video="mainVideo-scheme" id="subtitle"]] - -[[!template text="""If you want to contact me,""" start="00:20:45.880" video="mainVideo-scheme" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Contacts""" start="00:20:45.880" video="mainVideo-scheme" id="subtitle"]]</div>[[!template text="""If you want to contact me,""" start="00:20:45.880" video="mainVideo-scheme" id="subtitle"]] [[!template text="""join #tropin IRC channel at libera.chat,""" start="00:20:47.240" video="mainVideo-scheme" id="subtitle"]] [[!template text="""or drop me a message via email or feediverse""" start="00:20:49.800" video="mainVideo-scheme" id="subtitle"]] [[!template text="""using `andrew@trop.in` handle.""" start="00:20:53.040" video="mainVideo-scheme" id="subtitle"]] [[!template text="""I will see you in a bit in Q&A session.""" start="00:20:55.880" video="mainVideo-scheme" id="subtitle"]] - +</div> Captioner: sachac -<a name="scheme-qanda-transcript"></a> -# Q&A transcript (unedited) - -[[!template text="""[Speaker 0]: I see 2 questions on the panel already.""" start="00:00:16.200" video="qanda-scheme" id="subtitle"]] -[[!template text="""Let's see, 1 asking how much Andrew uses""" start="00:00:22.660" video="qanda-scheme" id="subtitle"]] -[[!template text="""these ripples remotely or versus on their own""" start="00:00:26.320" video="qanda-scheme" id="subtitle"]] -[[!template text="""desktop. And another asking if this can be""" start="00:00:29.240" video="qanda-scheme" id="subtitle"]] -[[!template text="""integrated with EGLOT.""" start="00:00:31.160" video="qanda-scheme" id="subtitle"]] -[[!template text="""And I will note that it is very cool that""" start="00:00:34.840" video="qanda-scheme" id="subtitle"]] -[[!template text="""this year we've had so many talks on Ripples.""" start="00:00:36.580" video="qanda-scheme" id="subtitle"]] -[[!template text="""Just goes to show how powerful Emacs is and""" start="00:00:40.920" video="qanda-scheme" id="subtitle"]] -[[!template text="""just how much or how far you can push it and""" start="00:00:42.980" video="qanda-scheme" id="subtitle"]] -[[!template text="""how much you can do with it.""" start="00:00:44.040" video="qanda-scheme" id="subtitle"]] -[[!template text="""And so see someone asking on IRC,""" start="00:00:53.460" video="qanda-scheme" id="subtitle"]] -[[!template text="""if or how many people use GnuGeeks.""" start="00:00:57.780" video="qanda-scheme" id="subtitle"]] -[[!template text="""Since we are talking about Scheme,""" start="00:01:01.400" video="qanda-scheme" id="subtitle"]] -[[!template text="""GnuGeeks is a great platform slash operating""" start="00:01:05.740" video="qanda-scheme" id="subtitle"]] -[[!template text="""system or distro for your test house,""" start="00:01:10.380" video="qanda-scheme" id="subtitle"]] -[[!template text="""but also for servers and such.""" start="00:01:11.920" video="qanda-scheme" id="subtitle"]] -[[!template text="""They do some impressive,""" start="00:01:13.320" video="qanda-scheme" id="subtitle"]] -[[!template text="""amazing work. And it's all,""" start="00:01:15.240" video="qanda-scheme" id="subtitle"]] -[[!template text="""pretty much all done in Gindugal's scheme.""" start="00:01:19.400" video="qanda-scheme" id="subtitle"]] -[[!template text="""So very cool stuff. Bye.""" start="00:01:30.260" video="qanda-scheme" id="subtitle"]] -[[!template text="""You""" start="00:01:45.260" video="qanda-scheme" id="subtitle"]] -[[!template text="""I see another interesting question on the""" start="00:03:19.940" video="qanda-scheme" id="subtitle"]] -[[!template text="""pad. How hard is it to add support for""" start="00:03:23.440" video="qanda-scheme" id="subtitle"]] -[[!template text="""something other than Guile?""" start="00:03:24.960" video="qanda-scheme" id="subtitle"]] -[[!template text="""And if it makes sense to contribute at this""" start="00:03:28.040" video="qanda-scheme" id="subtitle"]] -[[!template text="""early stage of development?""" start="00:03:28.940" video="qanda-scheme" id="subtitle"]] -[[!template text="""They said that they've written several""" start="00:03:31.960" video="qanda-scheme" id="subtitle"]] -[[!template text="""packages for chicken skin before and they""" start="00:03:34.000" video="qanda-scheme" id="subtitle"]] -[[!template text="""would like to try this 1 as well.""" start="00:03:35.400" video="qanda-scheme" id="subtitle"]] -[[!template text="""I guess since Andrew isn't still here,""" start="00:05:26.380" video="qanda-scheme" id="subtitle"]] -[[!template text="""and there was some chatter about GnuGeeks in""" start="00:05:29.480" video="qanda-scheme" id="subtitle"]] -[[!template text="""the chat, maybe it might be nice for me to""" start="00:05:32.400" video="qanda-scheme" id="subtitle"]] -[[!template text="""share my screen and plug Inukis for a little""" start="00:05:35.520" video="qanda-scheme" id="subtitle"]] -[[!template text="""bit and introduce it or at least show its""" start="00:05:38.800" video="qanda-scheme" id="subtitle"]] -[[!template text="""website to folks who may not have seen it yet""" start="00:05:41.720" video="qanda-scheme" id="subtitle"]] -[[!template text="""so I'm going to try and do that now.""" start="00:05:43.380" video="qanda-scheme" id="subtitle"]] -[[!template text="""You""" start="00:05:45.260" video="qanda-scheme" id="subtitle"]] -[[!template text="""Okay, let's see if this works.""" start="00:06:19.760" video="qanda-scheme" id="subtitle"]] -[[!template text="""Okay, so this is GNU Geeks' website.""" start="00:06:33.540" video="qanda-scheme" id="subtitle"]] -[[!template text="""You can go to geeks.gnu.org.""" start="00:06:35.000" video="qanda-scheme" id="subtitle"]] -[[!template text="""And they introduced it at the top.""" start="00:06:38.820" video="qanda-scheme" id="subtitle"]] -[[!template text="""So it's a wholly free operating system or""" start="00:06:43.480" video="qanda-scheme" id="subtitle"]] -[[!template text="""distribution of GNU Linux.""" start="00:06:45.100" video="qanda-scheme" id="subtitle"]] -[[!template text="""Meaning that it only has free software""" start="00:06:48.600" video="qanda-scheme" id="subtitle"]] -[[!template text="""packaged and no non-free packages,""" start="00:06:50.840" video="qanda-scheme" id="subtitle"]] -[[!template text="""so it is endorsed by the FSF and the GNU""" start="00:06:53.560" video="qanda-scheme" id="subtitle"]] -[[!template text="""project. As someone said in the chat,""" start="00:06:56.640" video="qanda-scheme" id="subtitle"]] -[[!template text="""it's kind of like Nix,""" start="00:06:57.740" video="qanda-scheme" id="subtitle"]] -[[!template text="""but instead built on GNU Gallop scheme.""" start="00:07:01.360" video="qanda-scheme" id="subtitle"]] -[[!template text="""It has transactional upgrades and rollbacks.""" start="00:07:05.320" video="qanda-scheme" id="subtitle"]] -[[!template text="""So if you do upgrade your system and let's""" start="00:07:10.160" video="qanda-scheme" id="subtitle"]] -[[!template text="""say in the middle of it,""" start="00:07:11.180" video="qanda-scheme" id="subtitle"]] -[[!template text="""your hardware fails or your power goes out,""" start="00:07:13.200" video="qanda-scheme" id="subtitle"]] -[[!template text="""the likelihood of things being corrupted is""" start="00:07:16.560" video="qanda-scheme" id="subtitle"]] -[[!template text="""very low because the upgrade is essentially""" start="00:07:18.840" video="qanda-scheme" id="subtitle"]] -[[!template text="""prepared like in the background.""" start="00:07:21.560" video="qanda-scheme" id="subtitle"]] -[[!template text="""And then pretty much atomically,""" start="00:07:24.140" video="qanda-scheme" id="subtitle"]] -[[!template text="""the system is switched to it.""" start="00:07:26.780" video="qanda-scheme" id="subtitle"]] -[[!template text="""And also if there is some kind of,""" start="00:07:30.400" video="qanda-scheme" id="subtitle"]] -[[!template text="""sorry, I'm losing my voice here.""" start="00:07:32.400" video="qanda-scheme" id="subtitle"]] -[[!template text="""If there is some kind of issue that makes""" start="00:07:34.840" video="qanda-scheme" id="subtitle"]] -[[!template text="""your system unbootable,""" start="00:07:35.800" video="qanda-scheme" id="subtitle"]] -[[!template text="""you could always go back to booting the""" start="00:07:41.480" video="qanda-scheme" id="subtitle"]] -[[!template text="""previous revision of your system when you""" start="00:07:44.600" video="qanda-scheme" id="subtitle"]] -[[!template text="""restart in the Grub bootloader.""" start="00:07:46.100" video="qanda-scheme" id="subtitle"]] -[[!template text="""Yeah, so they have a nice blog where they""" start="00:07:56.740" video="qanda-scheme" id="subtitle"]] -[[!template text="""regularly post updates and what's new in the""" start="00:07:59.340" video="qanda-scheme" id="subtitle"]] -[[!template text="""project. You can go check that out.""" start="00:08:01.000" video="qanda-scheme" id="subtitle"]] -[[!template text="""We also have a packages archive where you can""" start="00:08:07.240" video="qanda-scheme" id="subtitle"]] -[[!template text="""see a list of all the software that has been""" start="00:08:09.360" video="qanda-scheme" id="subtitle"]] -[[!template text="""packaged for GNU Geeks.""" start="00:08:11.060" video="qanda-scheme" id="subtitle"]] -[[!template text="""It is an impressive list.""" start="00:08:13.620" video="qanda-scheme" id="subtitle"]] -[[!template text="""I don't know how many tens of thousands of""" start="00:08:16.440" video="qanda-scheme" id="subtitle"]] -[[!template text="""packages there are. Geeks has been growing""" start="00:08:19.720" video="qanda-scheme" id="subtitle"]] -[[!template text="""very well. And you can search the packages""" start="00:08:22.360" video="qanda-scheme" id="subtitle"]] -[[!template text="""here. And yeah, all kinds of things are""" start="00:08:29.380" video="qanda-scheme" id="subtitle"]] -[[!template text="""packaged. Of course, GNU Emacs is packaged,""" start="00:08:31.800" video="qanda-scheme" id="subtitle"]] -[[!template text="""along with many extensions or packages,""" start="00:08:37.260" video="qanda-scheme" id="subtitle"]] -[[!template text="""GNU Emacs packages that are packaged as""" start="00:08:41.039" video="qanda-scheme" id="subtitle"]] -[[!template text="""system packages for Geeks.""" start="00:08:42.840" video="qanda-scheme" id="subtitle"]] -[[!template text="""Yeah, so definitely go check it out.""" start="00:08:46.960" video="qanda-scheme" id="subtitle"]] -[[!template text="""You can use Geeks both as a standalone""" start="00:08:55.680" video="qanda-scheme" id="subtitle"]] -[[!template text="""package manager, let's say on a Debian-based""" start="00:08:59.340" video="qanda-scheme" id="subtitle"]] -[[!template text="""distribution like Triscale,""" start="00:09:00.780" video="qanda-scheme" id="subtitle"]] -[[!template text="""for example, or you could install it like as""" start="00:09:06.180" video="qanda-scheme" id="subtitle"]] -[[!template text="""a complete system distribution on its own.""" start="00:09:08.900" video="qanda-scheme" id="subtitle"]] -[[!template text="""So the former is useful if you want to maybe""" start="00:09:15.560" video="qanda-scheme" id="subtitle"]] -[[!template text="""get a taste for Geeks and try it out before""" start="00:09:18.080" video="qanda-scheme" id="subtitle"]] -[[!template text="""fully committing to it and switching to it as""" start="00:09:21.140" video="qanda-scheme" id="subtitle"]] -[[!template text="""your main distro. You can try it on top of""" start="00:09:24.620" video="qanda-scheme" id="subtitle"]] -[[!template text="""any other distro pretty much and then you can""" start="00:09:27.720" video="qanda-scheme" id="subtitle"]] -[[!template text="""of course install it on its own as well as a""" start="00:09:31.080" video="qanda-scheme" id="subtitle"]] -[[!template text="""system distribution.""" start="00:09:31.560" video="qanda-scheme" id="subtitle"]] -[[!template text="""Yeah, there are a bunch of manuals and""" start="00:09:50.940" video="qanda-scheme" id="subtitle"]] -[[!template text="""reference cards and videos that you're""" start="00:09:53.040" video="qanda-scheme" id="subtitle"]] -[[!template text="""welcome to watch. They have several mailing""" start="00:09:55.920" video="qanda-scheme" id="subtitle"]] -[[!template text="""lists. It sounds like they have a wiki now as""" start="00:09:59.240" video="qanda-scheme" id="subtitle"]] -[[!template text="""well. And the development is done on Gnu""" start="00:10:04.020" video="qanda-scheme" id="subtitle"]] -[[!template text="""Savannah. If we go to savannah.gnu.org""" start="00:10:09.680" video="qanda-scheme" id="subtitle"]] -[[!template text="""slash projects slash geeks,""" start="00:10:12.780" video="qanda-scheme" id="subtitle"]] -[[!template text="""Yeah, the project is developed here and they""" start="00:10:18.640" video="qanda-scheme" id="subtitle"]] -[[!template text="""have a bunch of repositories including the""" start="00:10:21.300" video="qanda-scheme" id="subtitle"]] -[[!template text="""main 1 which is geeks.git""" start="00:10:24.340" video="qanda-scheme" id="subtitle"]] -[[!template text="""itself. So yeah, folks are welcome to go""" start="00:10:28.200" video="qanda-scheme" id="subtitle"]] -[[!template text="""check it out. Let's see,""" start="00:10:32.380" video="qanda-scheme" id="subtitle"]] -[[!template text="""maybe we can go have a look at some package""" start="00:10:35.860" video="qanda-scheme" id="subtitle"]] -[[!template text="""definitions, although I think we're almost""" start="00:10:37.540" video="qanda-scheme" id="subtitle"]] -[[!template text="""out of time on the live stream.""" start="00:10:38.940" video="qanda-scheme" id="subtitle"]] -[[!template text="""So, yeah, just quickly.""" start="00:10:42.600" video="qanda-scheme" id="subtitle"]] -[[!template text="""Emacs to the CM has all the,""" start="00:10:45.280" video="qanda-scheme" id="subtitle"]] -[[!template text="""Emacs packages or Emacs itself.""" start="00:10:48.640" video="qanda-scheme" id="subtitle"]] -[[!template text="""And Emacs-xyz is where you'll find all the""" start="00:10:52.120" video="qanda-scheme" id="subtitle"]] -[[!template text="""Emacs like ELPA packages,""" start="00:10:54.480" video="qanda-scheme" id="subtitle"]] -[[!template text="""but package for use on GNU Geeks system or""" start="00:10:57.980" video="qanda-scheme" id="subtitle"]] -[[!template text="""with GNU Geeks. And I think that's all the""" start="00:11:01.220" video="qanda-scheme" id="subtitle"]] -[[!template text="""time that we have. So yeah,""" start="00:11:04.080" video="qanda-scheme" id="subtitle"]] -[[!template text="""thanks for tuning in, folks.""" start="00:11:06.000" video="qanda-scheme" id="subtitle"]] -[[!template text="""Please post your questions on the pad.""" start="00:11:07.800" video="qanda-scheme" id="subtitle"]] -[[!template text="""We'll pass them on to Andrew.""" start="00:11:09.280" video="qanda-scheme" id="subtitle"]] -[[!template text="""And yeah, hope you enjoy this.""" start="00:11:12.400" video="qanda-scheme" id="subtitle"]] -[[!template text="""Definitely go check out Andrew's work and Gnu""" start="00:11:15.140" video="qanda-scheme" id="subtitle"]] -[[!template text="""geeks as well. You are currently the only""" start="00:11:25.320" video="qanda-scheme" id="subtitle"]] -[[!template text="""person in this conference.""" start="00:11:26.280" video="qanda-scheme" id="subtitle"]] - Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20scheme%3A%20Bringing%20joy%20to%20Scheme%20programming) diff --git a/2023/info/scheme-before.md b/2023/info/scheme-before.md index 24969b28..5aed745d 100644 --- a/2023/info/scheme-before.md +++ b/2023/info/scheme-before.md @@ -1,13 +1,13 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 22-min talk; Q&A: BigBlueButton conference room +Format: 22-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="scheme-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="scheme-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-scheme"><source src="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-scheme" data=""" 00:02.120 Introduction 00:23.280 Interactive development 01:18.180 REPL: Read Eval Print Loop @@ -31,6 +31,6 @@ Status: Q&A to be extracted from the room recordings 20:22.121 Conclusion 20:45.880 Contacts -"""]]<div></div>Duration: 21:01 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.opus">Download --main.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.webm">Download --main.webm (54MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/4moUfTEo2G8we5JuLGArWx">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 21:01 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-scheme">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=b4a8670e0b530ee32705d58e7f7bcb5ebb49f86a-1701613648364">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.opus">Download --main.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-scheme--bringing-joy-to-scheme-programming--andrew-tropin--main.webm">Download --main.webm (54MB)</a></li><li><a href="https://toobnix.org/w/4moUfTEo2G8we5JuLGArWx">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=F-H3YQywr-4">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/scheme-nav.md b/2023/info/scheme-nav.md index fa791c87..58a922aa 100644 --- a/2023/info/scheme-nav.md +++ b/2023/info/scheme-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/windows">Windows into Freedom</a> Next by track: <a href="/2023/talks/world">GNU Emacs: A World of Possibilities</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/sharing-after.md b/2023/info/sharing-after.md index 2b5a7b58..c338e069 100644 --- a/2023/info/sharing-after.md +++ b/2023/info/sharing-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="sharing-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="sharing-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""Hello everyone, I'm Jacob Boxerman.""" start="00:00:00.000" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""Hello everyone, I'm Jacob Boxerman.""" start="00:00:00.000" video="mainVideo-sharing" id="subtitle"]] [[!template text="""I'm a sophomore at Columbia University""" start="00:00:02.440" video="mainVideo-sharing" id="subtitle"]] [[!template text="""studying computer science.""" start="00:00:04.320" video="mainVideo-sharing" id="subtitle"]] [[!template text="""I'm so excited to be here today""" start="00:00:06.140" video="mainVideo-sharing" id="subtitle"]] @@ -16,9 +13,7 @@ [[!template text="""EmacsConf is really the epitome for me""" start="00:00:13.720" video="mainVideo-sharing" id="subtitle"]] [[!template text="""of sharing and of learning about Emacs.""" start="00:00:16.747" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Today's talk""" start="00:00:20.100" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""And in my closing keynote""" start="00:00:20.100" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Today's talk""" start="00:00:20.100" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""And in my closing keynote""" start="00:00:20.100" video="mainVideo-sharing" id="subtitle"]] [[!template text="""titled "Sharing Emacs is Caring Emacs,"""" start="00:00:21.540" video="mainVideo-sharing" id="subtitle"]] [[!template text="""I want to drive that home,""" start="00:00:24.420" video="mainVideo-sharing" id="subtitle"]] [[!template text="""and I want to make every day""" start="00:00:25.820" video="mainVideo-sharing" id="subtitle"]] @@ -31,9 +26,7 @@ [[!template text="""to both grow our community""" start="00:00:42.420" video="mainVideo-sharing" id="subtitle"]] [[!template text="""and to increase our own personal joy in Emacs.""" start="00:00:44.340" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""My history with Emacs""" start="00:00:48.900" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""My journey of sharing begins with my journey of learning.""" start="00:00:48.900" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""My history with Emacs""" start="00:00:48.900" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""My journey of sharing begins with my journey of learning.""" start="00:00:48.900" video="mainVideo-sharing" id="subtitle"]] [[!template text="""So I'll start by spending a bit of time on that.""" start="00:00:52.460" video="mainVideo-sharing" id="subtitle"]] [[!template text="""I use Emacs every day for personal organization""" start="00:00:55.300" video="mainVideo-sharing" id="subtitle"]] [[!template text="""and to-dos -- you know, schoolwork, projects,""" start="00:00:57.780" video="mainVideo-sharing" id="subtitle"]] @@ -56,9 +49,7 @@ [[!template text="""a few watchers, a few forks on GitHub.""" start="00:01:39.220" video="mainVideo-sharing" id="subtitle"]] [[!template text="""Pretty straightforward.""" start="00:01:40.540" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Self-exploration vs learning from others""" start="00:01:42.380" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""But what exactly was that learning process like?""" start="00:01:42.380" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Self-exploration vs learning from others""" start="00:01:42.380" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""But what exactly was that learning process like?""" start="00:01:42.380" video="mainVideo-sharing" id="subtitle"]] [[!template text="""Now, Emacs was such a beast to me at first.""" start="00:01:46.420" video="mainVideo-sharing" id="subtitle"]] [[!template text="""I was familiar with Python,""" start="00:01:49.460" video="mainVideo-sharing" id="subtitle"]] [[!template text="""with C, Java, languages like that.""" start="00:01:51.060" video="mainVideo-sharing" id="subtitle"]] @@ -85,9 +76,7 @@ [[!template text="""My own process started""" start="00:02:48.580" video="mainVideo-sharing" id="subtitle"]] [[!template text="""with a lot of Googling, blog posts, YouTube, and Reddit.""" start="00:02:50.300" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Learning process""" start="00:02:53.220" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""I actually found Emacs on YouTube.""" start="00:02:53.220" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Learning process""" start="00:02:53.220" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""I actually found Emacs on YouTube.""" start="00:02:53.220" video="mainVideo-sharing" id="subtitle"]] [[!template text="""Seeing how other people used it""" start="00:02:55.420" video="mainVideo-sharing" id="subtitle"]] [[!template text="""was what really convinced me to try it for myself.""" start="00:02:58.140" video="mainVideo-sharing" id="subtitle"]] [[!template text="""At a certain point when my confidence grew,""" start="00:03:01.420" video="mainVideo-sharing" id="subtitle"]] @@ -96,9 +85,7 @@ [[!template text="""learn from it, and expand, making it my own.""" start="00:03:09.980" video="mainVideo-sharing" id="subtitle"]] [[!template text="""And through that time, I learned Emacs.""" start="00:03:13.860" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Emacs learning (not just learning Emacs)""" start="00:03:17.020" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""But I also participated in Emacs learning.""" start="00:03:17.020" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Emacs learning (not just learning Emacs)""" start="00:03:17.020" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""But I also participated in Emacs learning.""" start="00:03:17.020" video="mainVideo-sharing" id="subtitle"]] [[!template text="""What's the difference?""" start="00:03:21.020" video="mainVideo-sharing" id="subtitle"]] [[!template text="""We often discuss the former,""" start="00:03:22.580" video="mainVideo-sharing" id="subtitle"]] [[!template text="""grappling with key binds, commands.""" start="00:03:24.220" video="mainVideo-sharing" id="subtitle"]] @@ -116,16 +103,12 @@ [[!template text="""Emacs learning is much, much harder to do alone.""" start="00:03:56.980" video="mainVideo-sharing" id="subtitle"]] [[!template text="""And I wanted to help with that.""" start="00:04:00.260" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""My YouTube journey""" start="00:04:03.300" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""So this brings me to the second part of my talk,""" start="00:04:03.300" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""My YouTube journey""" start="00:04:03.300" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""So this brings me to the second part of my talk,""" start="00:04:03.300" video="mainVideo-sharing" id="subtitle"]] [[!template text="""my Emacs journey, how I got started""" start="00:04:05.740" video="mainVideo-sharing" id="subtitle"]] [[!template text="""and where I am today with my YouTube channel,""" start="00:04:08.660" video="mainVideo-sharing" id="subtitle"]] [[!template text="""my Straightforward Emacs series with nearly 200,000 views.""" start="00:04:11.460" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Why not just read the manual?""" start="00:04:14.820" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""The Emacs Manual is often pushed""" start="00:04:14.820" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Why not just read the manual?""" start="00:04:14.820" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""The Emacs Manual is often pushed""" start="00:04:14.820" video="mainVideo-sharing" id="subtitle"]] [[!template text="""as the best way to learn Emacs.""" start="00:04:18.220" video="mainVideo-sharing" id="subtitle"]] [[!template text="""It's an all-encompassing tome.""" start="00:04:20.380" video="mainVideo-sharing" id="subtitle"]] [[!template text="""And as amazing as I think it is,""" start="00:04:21.860" video="mainVideo-sharing" id="subtitle"]] @@ -153,9 +136,7 @@ [[!template text="""in my Emacs journey. I wanted to do my part.""" start="00:05:15.420" video="mainVideo-sharing" id="subtitle"]] [[!template text="""I care about Emacs. I started to really care about Emacs.""" start="00:05:18.020" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Why video for Emacs""" start="00:05:20.980" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""So I wanted to share about Emacs.""" start="00:05:20.980" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Why video for Emacs""" start="00:05:20.980" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""So I wanted to share about Emacs.""" start="00:05:20.980" video="mainVideo-sharing" id="subtitle"]] [[!template text="""So at that point, I refocused my work with Emacs""" start="00:05:24.320" video="mainVideo-sharing" id="subtitle"]] [[!template text="""beyond just myself. I wanted to help others""" start="00:05:27.340" video="mainVideo-sharing" id="subtitle"]] [[!template text="""feel the excitement that I did.""" start="00:05:30.740" video="mainVideo-sharing" id="subtitle"]] @@ -169,9 +150,7 @@ [[!template text="""So for that, I turned to video.""" start="00:05:48.320" video="mainVideo-sharing" id="subtitle"]] [[!template text="""And it turns out that seeing is believing.""" start="00:05:50.500" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Straightforward Emacs""" start="00:05:54.420" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""I made a short video showing off Emacs Org Mode.""" start="00:05:54.420" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Straightforward Emacs""" start="00:05:54.420" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""I made a short video showing off Emacs Org Mode.""" start="00:05:54.420" video="mainVideo-sharing" id="subtitle"]] [[!template text="""I didn't even have a voiceover.""" start="00:05:56.900" video="mainVideo-sharing" id="subtitle"]] [[!template text="""That video, less than five minutes long,""" start="00:05:58.960" video="mainVideo-sharing" id="subtitle"]] [[!template text="""but still incorporating some of my core principles,""" start="00:06:01.700" video="mainVideo-sharing" id="subtitle"]] @@ -187,9 +166,7 @@ [[!template text="""when I was figuring out""" start="00:06:27.600" video="mainVideo-sharing" id="subtitle"]] [[!template text="""Emacs' numerous and wonderful features.""" start="00:06:28.660" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Challenges and benefits of video""" start="00:06:32.700" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""Video does, I admit, come with its own set of challenges.""" start="00:06:32.700" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Challenges and benefits of video""" start="00:06:32.700" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""Video does, I admit, come with its own set of challenges.""" start="00:06:32.700" video="mainVideo-sharing" id="subtitle"]] [[!template text="""Complaints that video is less accessible, it's valid.""" start="00:06:36.620" video="mainVideo-sharing" id="subtitle"]] [[!template text="""They're more time consuming, it's valid too.""" start="00:06:40.400" video="mainVideo-sharing" id="subtitle"]] [[!template text="""It's harder to skim a video than a blog post,""" start="00:06:42.460" video="mainVideo-sharing" id="subtitle"]] @@ -208,9 +185,7 @@ [[!template text="""to outweigh those cons of video,""" start="00:07:12.780" video="mainVideo-sharing" id="subtitle"]] [[!template text="""to outweigh those common complaints.""" start="00:07:14.500" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Crafting tutorials that work""" start="00:07:16.300" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""What was it? I covered topics that had been done before.""" start="00:07:16.300" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Crafting tutorials that work""" start="00:07:16.300" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""What was it? I covered topics that had been done before.""" start="00:07:16.300" video="mainVideo-sharing" id="subtitle"]] [[!template text="""But I wanted to present them in my way.""" start="00:07:21.660" video="mainVideo-sharing" id="subtitle"]] [[!template text="""In the way that I knew people would appreciate,""" start="00:07:24.020" video="mainVideo-sharing" id="subtitle"]] [[!template text="""because it's what I would have appreciated""" start="00:07:26.660" video="mainVideo-sharing" id="subtitle"]] @@ -229,9 +204,7 @@ [[!template text="""And though prerecorded, I wanted to present""" start="00:08:05.660" video="mainVideo-sharing" id="subtitle"]] [[!template text="""my unfiltered, raw self.""" start="00:08:08.260" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""High-quality and accessible content""" start="00:08:11.720" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""Another goal of mine is high quality and accessible content.""" start="00:08:11.720" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""High-quality and accessible content""" start="00:08:11.720" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""Another goal of mine is high quality and accessible content.""" start="00:08:11.720" video="mainVideo-sharing" id="subtitle"]] [[!template text="""I speak carefully and I tune my volume,""" start="00:08:15.940" video="mainVideo-sharing" id="subtitle"]] [[!template text="""making it easier to listen to,""" start="00:08:18.580" video="mainVideo-sharing" id="subtitle"]] [[!template text="""and improving YouTube's auto-captioning.""" start="00:08:20.680" video="mainVideo-sharing" id="subtitle"]] @@ -256,9 +229,7 @@ [[!template text="""So I do my best to mention different possible keybindings""" start="00:09:12.220" video="mainVideo-sharing" id="subtitle"]] [[!template text="""a viewer might be using.""" start="00:09:14.900" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Most crucial aspect of my videos""" start="00:09:17.920" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""There was one thing, though, that turned out to be""" start="00:09:17.920" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Most crucial aspect of my videos""" start="00:09:17.920" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""There was one thing, though, that turned out to be""" start="00:09:17.920" video="mainVideo-sharing" id="subtitle"]] [[!template text="""the most crucial part of my videos and series.""" start="00:09:19.940" video="mainVideo-sharing" id="subtitle"]] [[!template text="""And it's one of the reasons itself for this talk.""" start="00:09:23.300" video="mainVideo-sharing" id="subtitle"]] [[!template text="""You may have already picked up on it.""" start="00:09:25.460" video="mainVideo-sharing" id="subtitle"]] @@ -271,9 +242,7 @@ [[!template text="""Because that's the stuff that can jump out of the video""" start="00:09:44.060" video="mainVideo-sharing" id="subtitle"]] [[!template text="""and into the comments.""" start="00:09:47.220" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""A broadening community""" start="00:09:50.220" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""The idea for this talk started""" start="00:09:50.220" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""A broadening community""" start="00:09:50.220" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""The idea for this talk started""" start="00:09:50.220" video="mainVideo-sharing" id="subtitle"]] [[!template text="""as a story of my YouTube journey.""" start="00:09:53.200" video="mainVideo-sharing" id="subtitle"]] [[!template text="""I wanted to share how I began sharing Emacs""" start="00:09:55.240" video="mainVideo-sharing" id="subtitle"]] [[!template text="""and why I like it. And I think I've done that.""" start="00:09:57.540" video="mainVideo-sharing" id="subtitle"]] @@ -305,9 +274,7 @@ [[!template text="""my videos sparked conversation,""" start="00:11:04.420" video="mainVideo-sharing" id="subtitle"]] [[!template text="""debate and further interest was incredible.""" start="00:11:06.100" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Sharing Emacs""" start="00:11:10.780" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""We've had two amazing days of sharing Emacs,""" start="00:11:10.780" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Sharing Emacs""" start="00:11:10.780" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""We've had two amazing days of sharing Emacs,""" start="00:11:10.780" video="mainVideo-sharing" id="subtitle"]] [[!template text="""putting ourselves out there, and sharing in a community.""" start="00:11:14.000" video="mainVideo-sharing" id="subtitle"]] [[!template text="""I want to emphasize how amazing""" start="00:11:17.380" video="mainVideo-sharing" id="subtitle"]] [[!template text="""a strong community with the right values is,""" start="00:11:19.060" video="mainVideo-sharing" id="subtitle"]] @@ -321,17 +288,13 @@ [[!template text="""for the mere fact that we are here together.""" start="00:11:41.060" video="mainVideo-sharing" id="subtitle"]] [[!template text="""Then let's turn to the potential within our community.""" start="00:11:44.140" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Platforms""" start="00:11:48.020" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""First, though, I'll briefly note""" start="00:11:48.020" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Platforms""" start="00:11:48.020" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""First, though, I'll briefly note""" start="00:11:48.020" video="mainVideo-sharing" id="subtitle"]] [[!template text="""that everyone has their opinions about platforms,""" start="00:11:50.140" video="mainVideo-sharing" id="subtitle"]] [[!template text="""and I'm not here to make judgments,""" start="00:11:52.340" video="mainVideo-sharing" id="subtitle"]] [[!template text="""but freedom, equity, and accessibility are important,""" start="00:11:53.460" video="mainVideo-sharing" id="subtitle"]] [[!template text="""but reach is, too.""" start="00:11:56.060" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Achieving unity""" start="00:11:57.922" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""Regardless of the platform,""" start="00:11:57.922" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Achieving unity""" start="00:11:57.922" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""Regardless of the platform,""" start="00:11:57.922" video="mainVideo-sharing" id="subtitle"]] [[!template text="""one thing remains certain:""" start="00:12:00.540" video="mainVideo-sharing" id="subtitle"]] [[!template text="""our strength lies in unity.""" start="00:12:02.700" video="mainVideo-sharing" id="subtitle"]] [[!template text="""Like any online community, this calls for unique ways""" start="00:12:05.400" video="mainVideo-sharing" id="subtitle"]] @@ -365,9 +328,7 @@ [[!template text="""for mentorship and support,""" start="00:13:24.260" video="mainVideo-sharing" id="subtitle"]] [[!template text="""which is valuable for everyone involved.""" start="00:13:26.080" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Every contribution is valuable""" start="00:13:30.000" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""We can also call on our open source [* free software] values""" start="00:13:30.000" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Every contribution is valuable""" start="00:13:30.000" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""We can also call on our open source [* free software] values""" start="00:13:30.000" video="mainVideo-sharing" id="subtitle"]] [[!template text="""and focus on collaborative projects,""" start="00:13:32.580" video="mainVideo-sharing" id="subtitle"]] [[!template text="""from coding projects where we can contribute and learn""" start="00:13:34.940" video="mainVideo-sharing" id="subtitle"]] [[!template text="""to building shared documentation and guides""" start="00:13:38.240" video="mainVideo-sharing" id="subtitle"]] @@ -393,9 +354,7 @@ [[!template text="""by embracing these ideas, we can build""" start="00:14:32.900" video="mainVideo-sharing" id="subtitle"]] [[!template text="""a more connected and empowered Emacs community.""" start="00:14:34.660" video="mainVideo-sharing" id="subtitle"]] -[[!template new="1" text="""Conclusion""" start="00:14:40.300" video="mainVideo-sharing" id="subtitle"]] - -[[!template text="""Now Emacs is so very personal.""" start="00:14:40.300" video="mainVideo-sharing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:14:40.300" video="mainVideo-sharing" id="subtitle"]]</div>[[!template text="""Now Emacs is so very personal.""" start="00:14:40.300" video="mainVideo-sharing" id="subtitle"]] [[!template text="""Those of us who have our own""" start="00:14:43.760" video="mainVideo-sharing" id="subtitle"]] [[!template text="""carefully manicured configurations understand --""" start="00:14:44.940" video="mainVideo-sharing" id="subtitle"]] [[!template text="""Emacs molds to our liking and our person.""" start="00:14:47.680" video="mainVideo-sharing" id="subtitle"]] @@ -434,12 +393,11 @@ [[!template text="""for being part of this shared adventure.""" start="00:16:23.340" video="mainVideo-sharing" id="subtitle"]] [[!template text="""Let's go forth and share, together.""" start="00:16:26.500" video="mainVideo-sharing" id="subtitle"]] - +</div> Captioner: sachac -<a name="sharing-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="sharing-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 1]: Yeah, we're live. So whoever's in the""" start="00:00:05.940" video="qanda-sharing" id="subtitle"]] [[!template text="""background might be able to see you live in""" start="00:00:08.240" video="qanda-sharing" id="subtitle"]] @@ -1065,7 +1023,7 @@ Captioner: sachac [[!template text="""And closing here. This BBB recording.""" start="00:25:15.660" video="qanda-sharing" id="subtitle"]] [[!template text="""Yay!""" start="00:25:16.360" video="qanda-sharing" id="subtitle"]] -Questions or comments? Please e-mail [jakebox0@protonmail.com](mailto:jakebox0@protonmail.com?subject=Comment%20for%20EmacsConf%202023%20sharing%3A%20Sharing%20Emacs%20is%20Caring%20Emacs%3A%20Emacs%20education%20and%20why%20I%20embraced%20video) +</div>Questions or comments? Please e-mail [jakebox0@protonmail.com](mailto:jakebox0@protonmail.com?subject=Comment%20for%20EmacsConf%202023%20sharing%3A%20Sharing%20Emacs%20is%20Caring%20Emacs%3A%20Emacs%20education%20and%20why%20I%20embraced%20video) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/sharing-before.md b/2023/info/sharing-before.md index ae63e36c..52b1a3f1 100644 --- a/2023/info/sharing-before.md +++ b/2023/info/sharing-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 17-min talk; Q&A: BigBlueButton conference room +Format: 17-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="sharing-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="sharing-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sharing"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-sharing" data=""" 00:00.000 Introduction 00:49.000 My journey of learning 04:03.400 Straightforward Emacs @@ -19,10 +19,10 @@ Status: Q&A to be extracted from the room recordings 09:15.920 The personal aspect 11:48.120 Unity -"""]]<div></div>Duration: 16:34 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.opus">Download --main.opus (8.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.webm">Download --main.webm (47MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--previous.mkv">Download --previous.mkv (377MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--script.txt">Download --script.txt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman.org">Download .org</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman.txt">Download .txt</a></li><li><a href="https://toobnix.org/w/3b5XfkceUaRjJuN5Pumgee">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 16:34 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sharing">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=fe7f19d2e265788af1e6dd62bba52ef0ee6e0d42-1701636136078">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.opus">Download --main.opus (8.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--main.webm">Download --main.webm (47MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--previous.mkv">Download --previous.mkv (377MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--script.txt">Download --script.txt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman.org">Download .org</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman.txt">Download .txt</a></li><li><a href="https://toobnix.org/w/3b5XfkceUaRjJuN5Pumgee">View on Toobnix</a></li><li><a href="https://youtu.be/L897BU3BT6g">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="sharing-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="sharing-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.opus"></audio></div><div></div>Duration: 25:19 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.json">Download --answers.json (1.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.opus">Download --answers.opus (16MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.webm">Download --answers.webm (44MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-sharing"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-sharing-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.opus"></audio></div><div></div>Duration: 25:19 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sharing">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=fe7f19d2e265788af1e6dd62bba52ef0ee6e0d42-1701636136078">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.json">Download --answers.json (1.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.opus">Download --answers.opus (16MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sharing--sharing-emacs-is-caring-emacs-emacs-education-and-why-i-embraced-video--jacob-boxerman--answers.webm">Download --answers.webm (44MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/sharing-nav.md b/2023/info/sharing-nav.md index 2d903a48..8443c8c4 100644 --- a/2023/info/sharing-nav.md +++ b/2023/info/sharing-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/web">Emacs saves the Web (maybe)</a> Next by track: <a href="/2023/talks/matplotllm">MatplotLLM, iterative natural language data visualization in org-babel</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/solo-after.md b/2023/info/solo-after.md index f99447c9..e585e9a2 100644 --- a/2023/info/solo-after.md +++ b/2023/info/solo-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="solo-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="solo-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""Hi there, I'm Howard Abrams. You may remember me""" start="00:00:00.000" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""Hi there, I'm Howard Abrams. You may remember me""" start="00:00:00.000" video="mainVideo-solo" id="subtitle"]] [[!template text="""from past conference talks""" start="00:00:05.560" video="mainVideo-solo" id="subtitle"]] [[!template text="""as "Literate DevOps and the Temple of Doom"""" start="00:00:07.720" video="mainVideo-solo" id="subtitle"]] [[!template text="""and "Using Eshell for Fun and Profit".""" start="00:00:10.520" video="mainVideo-solo" id="subtitle"]] @@ -36,9 +33,7 @@ [[!template text="""once a week at lunch.""" start="00:01:15.600" video="mainVideo-solo" id="subtitle"]] [[!template text="""This pastime came to a screeching halt with the pandemic.""" start="00:01:17.320" video="mainVideo-solo" id="subtitle"]] -[[!template new="1" text="""Solo RPGs""" start="00:01:20.680" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""I turned to playing role-playing games by myself""" start="00:01:20.680" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Solo RPGs""" start="00:01:20.680" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""I turned to playing role-playing games by myself""" start="00:01:20.680" video="mainVideo-solo" id="subtitle"]] [[!template text="""to get my fix. Playing these silly elf games in solo mode""" start="00:01:23.640" video="mainVideo-solo" id="subtitle"]] [[!template text="""has been part of the game for many years,""" start="00:01:28.000" video="mainVideo-solo" id="subtitle"]] [[!template text="""but with so many of us stuck at home,""" start="00:01:29.880" video="mainVideo-solo" id="subtitle"]] @@ -66,9 +61,7 @@ [[!template text="""I could just download the entire text.""" start="00:02:41.880" video="mainVideo-solo" id="subtitle"]] [[!template text="""I figured I could just render the entire game in Emacs.""" start="00:02:43.920" video="mainVideo-solo" id="subtitle"]] -[[!template new="1" text="""Demo""" start="00:02:47.440" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""All right, enough talk. Let's get some Emacs action here,""" start="00:02:47.440" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:02:47.440" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""All right, enough talk. Let's get some Emacs action here,""" start="00:02:47.440" video="mainVideo-solo" id="subtitle"]] [[!template text="""while I show you a bit of my game.""" start="00:02:51.240" video="mainVideo-solo" id="subtitle"]] [[!template text="""When playing a solo RPG,""" start="00:02:55.200" video="mainVideo-solo" id="subtitle"]] [[!template text="""I jot down the story notes in an Org file.""" start="00:02:57.520" video="mainVideo-solo" id="subtitle"]] @@ -97,9 +90,7 @@ [[!template text="""I just finished playing out the journey,""" start="00:04:06.400" video="mainVideo-solo" id="subtitle"]] [[!template text="""and he's about to enter into the Catacombs of Svala's Blood.""" start="00:04:08.400" video="mainVideo-solo" id="subtitle"]] -[[!template new="1" text="""Randomization""" start="00:04:11.760" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""Why that name? Well, that was actually what came up""" start="00:04:11.760" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Randomization""" start="00:04:11.760" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""Why that name? Well, that was actually what came up""" start="00:04:11.760" video="mainVideo-solo" id="subtitle"]] [[!template text="""from an extensive random number generator that I wrote.""" start="00:04:15.200" video="mainVideo-solo" id="subtitle"]] [[!template text="""As I wrote more and more functions""" start="00:04:19.640" video="mainVideo-solo" id="subtitle"]] [[!template text="""to help me play this game,""" start="00:04:21.960" video="mainVideo-solo" id="subtitle"]] @@ -124,9 +115,7 @@ [[!template text="""Hmm, weather. Oh, it's summer, so hey,""" start="00:05:20.400" video="mainVideo-solo" id="subtitle"]] [[!template text="""it's nice and clear. All right, let's play.""" start="00:05:27.280" video="mainVideo-solo" id="subtitle"]] -[[!template new="1" text="""Moves""" start="00:05:31.960" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""The action in Ironsworn,""" start="00:05:31.960" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Moves""" start="00:05:31.960" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""The action in Ironsworn,""" start="00:05:31.960" video="mainVideo-solo" id="subtitle"]] [[!template text="""like other Powered by the Apocalypse games,""" start="00:05:34.240" video="mainVideo-solo" id="subtitle"]] [[!template text="""is driven by moves. So, I hit the `m` key,""" start="00:05:37.040" video="mainVideo-solo" id="subtitle"]] [[!template text="""and all the moves show up.""" start="00:05:44.360" video="mainVideo-solo" id="subtitle"]] @@ -136,9 +125,7 @@ [[!template text="""to help me find my choices.""" start="00:05:55.560" video="mainVideo-solo" id="subtitle"]] [[!template text="""Since I've discovered a site, let's play that move.""" start="00:05:57.720" video="mainVideo-solo" id="subtitle"]] -[[!template new="1" text="""Reference""" start="00:06:03.640" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""I seldom remember the details for the moves,""" start="00:06:03.640" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Reference""" start="00:06:03.640" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""I seldom remember the details for the moves,""" start="00:06:03.640" video="mainVideo-solo" id="subtitle"]] [[!template text="""so I figured, why not put the text of the book""" start="00:06:06.480" video="mainVideo-solo" id="subtitle"]] [[!template text="""in an Org file and show it in a side window?""" start="00:06:09.160" video="mainVideo-solo" id="subtitle"]] [[!template text="""The prompt at the bottom, asking for a name,""" start="00:06:11.800" video="mainVideo-solo" id="subtitle"]] @@ -148,9 +135,7 @@ [[!template text="""Exploring the Catacombs of Svala's Blood.""" start="00:06:25.160" video="mainVideo-solo" id="subtitle"]] [[!template text="""Ooh, sounds epic.""" start="00:06:31.840" video="mainVideo-solo" id="subtitle"]] -[[!template new="1" text="""Story arcs""" start="00:06:34.680" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""Ironsworn tracks the beats of a narrative,""" start="00:06:34.680" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Story arcs""" start="00:06:34.680" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""Ironsworn tracks the beats of a narrative,""" start="00:06:34.680" video="mainVideo-solo" id="subtitle"]] [[!template text="""so major plot points take up more room in the fiction""" start="00:06:37.240" video="mainVideo-solo" id="subtitle"]] [[!template text="""than minor plot points.""" start="00:06:40.800" video="mainVideo-solo" id="subtitle"]] [[!template text="""Similar games like Blades in the Dark""" start="00:06:42.760" video="mainVideo-solo" id="subtitle"]] @@ -176,9 +161,7 @@ [[!template text="""So, for instance, this one seems to be""" start="00:07:40.640" video="mainVideo-solo" id="subtitle"]] [[!template text="""about a third of the way through.""" start="00:07:47.240" video="mainVideo-solo" id="subtitle"]] -[[!template new="1" text="""Using different stats""" start="00:07:48.680" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""So, let's dive into this ancient place.""" start="00:07:48.680" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Using different stats""" start="00:07:48.680" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""So, let's dive into this ancient place.""" start="00:07:48.680" video="mainVideo-solo" id="subtitle"]] [[!template text="""Since I've been walking through a misty forest,""" start="00:07:52.600" video="mainVideo-solo" id="subtitle"]] [[!template text="""I can imagine vines hiding an immense door""" start="00:07:55.720" video="mainVideo-solo" id="subtitle"]] [[!template text="""and a humid, earthy smell as I peer inside.""" start="00:07:59.320" video="mainVideo-solo" id="subtitle"]] @@ -204,9 +187,7 @@ [[!template text="""Just about every one of my stats prompts me""" start="00:08:57.720" video="mainVideo-solo" id="subtitle"]] [[!template text="""if I want to add or subtract any values.""" start="00:08:59.560" video="mainVideo-solo" id="subtitle"]] -[[!template new="1" text="""Dice rolls""" start="00:09:02.960" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""A miss. I should explain how the dice roll in this game.""" start="00:09:02.960" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Dice rolls""" start="00:09:02.960" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""A miss. I should explain how the dice roll in this game.""" start="00:09:02.960" video="mainVideo-solo" id="subtitle"]] [[!template text="""The downside to Ironsworn is that""" start="00:09:09.880" video="mainVideo-solo" id="subtitle"]] [[!template text="""the dice mechanics are more cumbersome than other games.""" start="00:09:13.400" video="mainVideo-solo" id="subtitle"]] [[!template text="""You roll a 6-sided die, add to it your relevant stat,""" start="00:09:16.840" video="mainVideo-solo" id="subtitle"]] @@ -216,9 +197,7 @@ [[!template text="""but when I displayed it, I wanted to see all the dice.""" start="00:09:28.680" video="mainVideo-solo" id="subtitle"]] [[!template text="""And I also just wanted to see the end results.""" start="00:09:31.600" video="mainVideo-solo" id="subtitle"]] -[[!template new="1" text="""Dangers""" start="00:09:34.800" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""So I colored it. I rolled a miss,""" start="00:09:34.800" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Dangers""" start="00:09:34.800" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""So I colored it. I rolled a miss,""" start="00:09:34.800" video="mainVideo-solo" id="subtitle"]] [[!template text="""which means I need to reveal a danger.""" start="00:09:37.480" video="mainVideo-solo" id="subtitle"]] [[!template text="""Sure, I could imagine all sorts of dangers,""" start="00:09:39.800" video="mainVideo-solo" id="subtitle"]] [[!template text="""but this is a game.""" start="00:09:43.520" video="mainVideo-solo" id="subtitle"]] @@ -231,9 +210,7 @@ [[!template text="""with lots of choices and almost no way of finding them?""" start="00:10:13.320" video="mainVideo-solo" id="subtitle"]] [[!template text="""Yeah, that sounds like it fits pretty well.""" start="00:10:16.600" video="mainVideo-solo" id="subtitle"]] -[[!template new="1" text="""A strong success""" start="00:10:19.680" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""Time for another move. This time, we're going to""" start="00:10:19.680" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""A strong success""" start="00:10:19.680" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""Time for another move. This time, we're going to""" start="00:10:19.680" video="mainVideo-solo" id="subtitle"]] [[!template text="""gather information,""" start="00:10:26.960" video="mainVideo-solo" id="subtitle"]] [[!template text="""see if we can figure out which way to go.""" start="00:10:28.800" video="mainVideo-solo" id="subtitle"]] [[!template text="""A strong hit. Excellent.""" start="00:10:32.280" video="mainVideo-solo" id="subtitle"]] @@ -262,9 +239,7 @@ [[!template text="""I think you get the gist of how I play""" start="00:11:42.400" video="mainVideo-solo" id="subtitle"]] [[!template text="""this dice and pencil game in Org Mode.""" start="00:11:47.000" video="mainVideo-solo" id="subtitle"]] -[[!template new="1" text="""Other solo RPGs""" start="00:11:49.680" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""However, I found more solo RPGs to play.""" start="00:11:49.680" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Other solo RPGs""" start="00:11:49.680" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""However, I found more solo RPGs to play.""" start="00:11:49.680" video="mainVideo-solo" id="subtitle"]] [[!template text="""And of course, I want to render them in Emacs too.""" start="00:11:54.040" video="mainVideo-solo" id="subtitle"]] [[!template text="""This code for Ironsworn was a bit too specific,""" start="00:11:57.320" video="mainVideo-solo" id="subtitle"]] [[!template text="""so I decided to create a role-playing game toolkit.""" start="00:12:00.800" video="mainVideo-solo" id="subtitle"]] @@ -286,9 +261,7 @@ [[!template text="""the character sheet attributes as Org properties,""" start="00:12:55.960" video="mainVideo-solo" id="subtitle"]] [[!template text="""so if you're interested, check out the project at Codeberg.""" start="00:12:59.960" video="mainVideo-solo" id="subtitle"]] -[[!template new="1" text="""Conclusion""" start="00:13:04.720" video="mainVideo-solo" id="subtitle"]] - -[[!template text="""The point of my presentation is not to show off Ironsworn,""" start="00:13:04.720" video="mainVideo-solo" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:13:04.720" video="mainVideo-solo" id="subtitle"]]</div>[[!template text="""The point of my presentation is not to show off Ironsworn,""" start="00:13:04.720" video="mainVideo-solo" id="subtitle"]] [[!template text="""how I programmed it, or even this new toolkit.""" start="00:13:10.360" video="mainVideo-solo" id="subtitle"]] [[!template text="""You see, most engineers,""" start="00:13:14.080" video="mainVideo-solo" id="subtitle"]] [[!template text="""when they get an idea for a game like mine,""" start="00:13:17.560" video="mainVideo-solo" id="subtitle"]] @@ -313,12 +286,11 @@ [[!template text="""and craft yourself an enjoyable evening.""" start="00:14:21.600" video="mainVideo-solo" id="subtitle"]] [[!template text="""Happy hacking, my friends.""" start="00:14:24.720" video="mainVideo-solo" id="subtitle"]] - +</div> Captioner: sachac -<a name="solo-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="solo-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: Right. Okay, so hi everyone.""" start="00:00:02.899" video="qanda-solo" id="subtitle"]] [[!template text="""We are now live. Hi Howard,""" start="00:00:04.540" video="qanda-solo" id="subtitle"]] @@ -755,7 +727,7 @@ Captioner: sachac [[!template text="""And oh, I think he's already gone.""" start="00:19:13.940" video="qanda-solo" id="subtitle"]] [[!template text="""So Bye everyone, I'll see you later.""" start="00:19:16.360" video="qanda-solo" id="subtitle"]] -Questions or comments? Please e-mail [howard@howardabrams.com](mailto:howard@howardabrams.com?subject=Comment%20for%20EmacsConf%202023%20solo%3A%20How%20I%20play%20TTRPGs%20in%20Emacs) +</div>Questions or comments? Please e-mail [howard@howardabrams.com](mailto:howard@howardabrams.com?subject=Comment%20for%20EmacsConf%202023%20solo%3A%20How%20I%20play%20TTRPGs%20in%20Emacs) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/solo-before.md b/2023/info/solo-before.md index 4151f8a3..749868c7 100644 --- a/2023/info/solo-before.md +++ b/2023/info/solo-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 15-min talk; Q&A: BigBlueButton conference room +Format: 15-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="solo-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="solo-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-solo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-solo" data=""" 00:00.000 Introduction 01:20.680 Solo RPGs 02:47.440 Demo @@ -24,10 +24,10 @@ Status: Q&A to be extracted from the room recordings 11:49.680 Other solo RPGs 13:04.720 Conclusion -"""]]<div></div>Duration: 14:36 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.opus">Download --main.opus (6.6MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.webm">Download --main.webm (52MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/oNkcCHdWCKXRv6KnUTAeEC">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 14:36 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-solo">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=3a97d7b5f5392e3ec9100ba7d39768cdd0855e50-1701541252606">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.opus">Download --main.opus (6.6MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--main.webm">Download --main.webm (52MB)</a></li><li><a href="https://toobnix.org/w/oNkcCHdWCKXRv6KnUTAeEC">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=KUMkj9HWiEY">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="solo-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="solo-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.opus"></audio></div><div></div>Duration: 19:20 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.opus">Download --answers.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.webm">Download --answers.webm (43MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-solo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-solo-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.opus"></audio></div><div></div>Duration: 19:20 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-solo">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=3a97d7b5f5392e3ec9100ba7d39768cdd0855e50-1701541252606">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.opus">Download --answers.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-solo--how-i-play-ttrpgs-in-emacs--howard-abrams--answers.webm">Download --answers.webm (43MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/solo-nav.md b/2023/info/solo-nav.md index 741f4f35..4ffc815d 100644 --- a/2023/info/solo-nav.md +++ b/2023/info/solo-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/collab">Collaborative data processing and documenting using org-babel</a> Next by track: <a href="/2023/talks/ref">Org-Mode workflow: informal reference tracking</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/steno-after.md b/2023/info/steno-after.md index 486a8207..53e7022c 100644 --- a/2023/info/steno-after.md +++ b/2023/info/steno-after.md @@ -1,8 +1,7 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="steno-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="steno-mainVideo-transcript"></a><h1>Transcript</h1> [[!template text="""Stenotypy is a system of typing""" start="00:00:00.660" video="mainVideo-steno" id="subtitle"]] [[!template text="""where you press multiple keys at the same time,""" start="00:00:03.840" video="mainVideo-steno" id="subtitle"]] @@ -349,7 +348,7 @@ [[!template text="""I'm not really worried about too many things, just""" start="00:24:50.760" video="mainVideo-steno" id="subtitle"]] [[!template text="""the file name, the mode I'm in, and where I am in the file.""" start="00:24:55.461" video="mainVideo-steno" id="subtitle"]] - +</div> Captioner: daniel diff --git a/2023/info/steno-before.md b/2023/info/steno-before.md index 4eced50a..ef51fa66 100644 --- a/2023/info/steno-before.md +++ b/2023/info/steno-before.md @@ -1,12 +1,12 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 26-min talk; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference +Format: 26-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Status: All done -<div class="vid"><video controls preload="none" id="steno-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 25:03 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.opus">Download --main.opus (13MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.webm">Download --main.webm (66MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/1xodScC6DPkfbnqG5FmbB3">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-steno"><source src="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 25:03 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-steno">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.opus">Download --main.opus (13MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-steno--programming-with-steno--daniel-alejandro-tapia--main.webm">Download --main.webm (66MB)</a></li><li><a href="https://toobnix.org/w/1xodScC6DPkfbnqG5FmbB3">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=McHurKmk-rQ">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/steno-nav.md b/2023/info/steno-nav.md index 27ac4e5d..6f369a19 100644 --- a/2023/info/steno-nav.md +++ b/2023/info/steno-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/emms">Emacs MultiMedia System (EMMS)</a> Next by track: <a href="/2023/talks/mentor">Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/sun-close-before.md b/2023/info/sun-close-before.md index 6f7c587b..311ec7b2 100644 --- a/2023/info/sun-close-before.md +++ b/2023/info/sun-close-before.md @@ -1,12 +1,12 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 121-min talk; Q&A: BigBlueButton conference room +Format: 121-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="sun-close-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--main.webm" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 2:00:43 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--main.opus">Download --main.opus (71MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--main.webm">Download --main.webm (279MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/p/nMXCCJ25wxKUtbuQiwkakA">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sun-close"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--main.webm" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 2:00:43 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sun-close">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=5f07e2b967f71ad503ac367ea43866abeaad63b6-1701636099684">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--main.opus">Download --main.opus (71MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-close--sunday-closing-remarks--main.webm">Download --main.webm (279MB)</a></li><li><a href="https://toobnix.org/w/p/nMXCCJ25wxKUtbuQiwkakA">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=qqvelKB5v0c">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/sun-close-nav.md b/2023/info/sun-close-nav.md index 92d58f1d..866eca7f 100644 --- a/2023/info/sun-close-nav.md +++ b/2023/info/sun-close-nav.md @@ -2,5 +2,5 @@ <div class="talk-nav"> Back to the [[talks]] Previous by track: <a href="/2023/talks/sun-open">Sunday opening remarks</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/sun-open-after.md b/2023/info/sun-open-after.md index 66d2e6fb..d07dee3f 100644 --- a/2023/info/sun-open-after.md +++ b/2023/info/sun-open-after.md @@ -1,8 +1,7 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="sun-open-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="sun-open-mainVideo-transcript"></a><h1>Transcript</h1> [[!template text="""Welcome to the second day of EmacsConf 2023.""" start="00:00:00.000" video="mainVideo-sun-open" id="subtitle"]] [[!template text="""There's a General track and a Development track,""" start="00:00:04.520" video="mainVideo-sun-open" id="subtitle"]] @@ -123,7 +122,7 @@ [[!template text="""who make EmacsConf even possible.""" start="00:05:11.550" video="mainVideo-sun-open" id="subtitle"]] [[!template text="""Thanks for coming to EmacsConf 2023.""" start="00:05:14.589" video="mainVideo-sun-open" id="subtitle"]] -Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-open%3A%20Sunday%20opening%20remarks) +</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-open%3A%20Sunday%20opening%20remarks) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/sun-open-before.md b/2023/info/sun-open-before.md index 4c6c13d5..70f38dc1 100644 --- a/2023/info/sun-open-before.md +++ b/2023/info/sun-open-before.md @@ -1,12 +1,12 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 6-min talk; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference +Format: 6-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Status: All done -<div class="vid"><video controls preload="none" id="sun-open-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sun-open--sunday-opening-remarks--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 05:17 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.opus">Download --main.opus (2.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.webm">Download --main.webm (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/9zjMPEZz1nYokiY7rk4wYv">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sun-open"><source src="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-sun-open--sunday-opening-remarks--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 05:17 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-sun-open">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.opus">Download --main.opus (2.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-sun-open--sunday-opening-remarks--main.webm">Download --main.webm (12MB)</a></li><li><a href="https://toobnix.org/w/9zjMPEZz1nYokiY7rk4wYv">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=B3NKI5Mviq8">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/sun-open-nav.md b/2023/info/sun-open-nav.md index f84ed342..35ea2f41 100644 --- a/2023/info/sun-open-nav.md +++ b/2023/info/sun-open-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/sat-close">Saturday closing remarks</a> Next by track: <a href="/2023/talks/sun-close">Sunday closing remarks</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/table-after.md b/2023/info/table-after.md index a0027610..7b45f22e 100644 --- a/2023/info/table-after.md +++ b/2023/info/table-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="table-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="table-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:01.360" video="mainVideo-table" id="subtitle"]] - -[[!template text="""Welcome everybody. My name is Daniel Molina""" start="00:00:01.360" video="mainVideo-table" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:01.360" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Welcome everybody. My name is Daniel Molina""" start="00:00:01.360" video="mainVideo-table" id="subtitle"]] [[!template text="""and I'm going to give this talk""" start="00:00:03.080" video="mainVideo-table" id="subtitle"]] [[!template text=""""Who needs Excel? Managing your students' qualifications""" start="00:00:05.061" video="mainVideo-table" id="subtitle"]] [[!template text="""with Org-table".""" start="00:00:08.064" video="mainVideo-table" id="subtitle"]] @@ -44,9 +41,7 @@ [[!template text="""Anyway, it could be used not only for teaching""" start="00:01:36.640" video="mainVideo-table" id="subtitle"]] [[!template text="""but for more contexts.""" start="00:01:39.960" video="mainVideo-table" id="subtitle"]] -[[!template new="1" text="""Demonstration""" start="00:01:41.960" video="mainVideo-table" id="subtitle"]] - -[[!template text="""Well, let's start.""" start="00:01:41.960" video="mainVideo-table" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demonstration""" start="00:01:41.960" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Well, let's start.""" start="00:01:41.960" video="mainVideo-table" id="subtitle"]] [[!template text="""First, I have two sections,""" start="00:01:44.800" video="mainVideo-table" id="subtitle"]] [[!template text="""the comments and the section of the table, or results.""" start="00:01:46.460" video="mainVideo-table" id="subtitle"]] [[!template text="""I have... The comment for each student""" start="00:01:53.400" video="mainVideo-table" id="subtitle"]] @@ -67,9 +62,7 @@ [[!template text="""and use a column total with something like that.""" start="00:02:55.680" video="mainVideo-table" id="subtitle"]] [[!template text="""Okay, that's nice.""" start="00:03:06.680" video="mainVideo-table" id="subtitle"]] -[[!template new="1" text="""Range""" start="00:03:08.320" video="mainVideo-table" id="subtitle"]] - -[[!template text="""But then, when I started getting more and more parts,""" start="00:03:08.320" video="mainVideo-table" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Range""" start="00:03:08.320" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""But then, when I started getting more and more parts,""" start="00:03:08.320" video="mainVideo-table" id="subtitle"]] [[!template text="""I considered it more useful to use,""" start="00:03:11.640" video="mainVideo-table" id="subtitle"]] [[!template text="""to put for each part,""" start="00:03:17.082" video="mainVideo-table" id="subtitle"]] [[!template text="""which is the maximum qualification,""" start="00:03:20.700" video="mainVideo-table" id="subtitle"]] @@ -86,9 +79,7 @@ [[!template text="""multiply the values of the second line with that.""" start="00:03:56.480" video="mainVideo-table" id="subtitle"]] [[!template text="""So, it's very useful for doing that.""" start="00:04:08.300" video="mainVideo-table" id="subtitle"]] -[[!template new="1" text="""More qualifications""" start="00:04:11.900" video="mainVideo-table" id="subtitle"]] - -[[!template text="""Okay, that's the first part, so I can put the comment,""" start="00:04:11.900" video="mainVideo-table" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""More qualifications""" start="00:04:11.900" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Okay, that's the first part, so I can put the comment,""" start="00:04:11.900" video="mainVideo-table" id="subtitle"]] [[!template text="""I can go to the section, I can create...""" start="00:04:16.640" video="mainVideo-table" id="subtitle"]] [[!template text="""I'm going to put more qualifications.""" start="00:04:19.960" video="mainVideo-table" id="subtitle"]] [[!template text="""Now I'm going to put the table.""" start="00:04:24.920" video="mainVideo-table" id="subtitle"]] @@ -109,9 +100,7 @@ [[!template text="""Okay?""" start="00:05:29.560" video="mainVideo-table" id="subtitle"]] [[!template text="""That is a good option.""" start="00:05:32.100" video="mainVideo-table" id="subtitle"]] -[[!template new="1" text="""Subsets""" start="00:05:34.240" video="mainVideo-table" id="subtitle"]] - -[[!template text="""Now we are going to see how can we use that""" start="00:05:34.240" video="mainVideo-table" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Subsets""" start="00:05:34.240" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Now we are going to see how can we use that""" start="00:05:34.240" video="mainVideo-table" id="subtitle"]] [[!template text="""to make a subset of the students.""" start="00:05:38.500" video="mainVideo-table" id="subtitle"]] [[!template text="""For instance, imagine, this is me,""" start="00:05:44.360" video="mainVideo-table" id="subtitle"]] [[!template text="""I'm going to put the bad, I change, now I can update,""" start="00:05:47.840" video="mainVideo-table" id="subtitle"]] @@ -127,9 +116,7 @@ [[!template text="""I could use that to make another table,""" start="00:06:48.840" video="mainVideo-table" id="subtitle"]] [[!template text="""this is the people that passed the exam.""" start="00:06:54.080" video="mainVideo-table" id="subtitle"]] -[[!template new="1" text="""Sorting""" start="00:07:08.300" video="mainVideo-table" id="subtitle"]] - -[[!template text="""Another interesting feature is that""" start="00:07:08.300" video="mainVideo-table" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Sorting""" start="00:07:08.300" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Another interesting feature is that""" start="00:07:08.300" video="mainVideo-table" id="subtitle"]] [[!template text="""I can... the lesson table can be sorted automatically.""" start="00:07:10.981" video="mainVideo-table" id="subtitle"]] [[!template text="""It's simple. You only have to put this symbol (`^`),""" start="00:07:15.621" video="mainVideo-table" id="subtitle"]] [[!template text="""and you can put next to the column you want""" start="00:07:20.101" video="mainVideo-table" id="subtitle"]] @@ -143,9 +130,7 @@ [[!template text="""And this sort is completely independent""" start="00:07:46.640" video="mainVideo-table" id="subtitle"]] [[!template text="""to the sort of the original table.""" start="00:07:48.961" video="mainVideo-table" id="subtitle"]] -[[!template new="1" text="""New table""" start="00:07:51.641" video="mainVideo-table" id="subtitle"]] - -[[!template text="""Now I'm going to do another different thing,""" start="00:07:51.641" video="mainVideo-table" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""New table""" start="00:07:51.641" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Now I'm going to do another different thing,""" start="00:07:51.641" video="mainVideo-table" id="subtitle"]] [[!template text="""we are going to put a new table,""" start="00:07:54.521" video="mainVideo-table" id="subtitle"]] [[!template text="""I'm going to put a new table""" start="00:08:02.800" video="mainVideo-table" id="subtitle"]] [[!template text="""in which I'm going to put""" start="00:08:07.560" video="mainVideo-table" id="subtitle"]] @@ -175,9 +160,7 @@ [[!template text="""the students that failed""" start="00:09:57.520" video="mainVideo-table" id="subtitle"]] [[!template text="""and the ratio of people that passed.""" start="00:09:58.560" video="mainVideo-table" id="subtitle"]] -[[!template new="1" text="""Statistics""" start="00:10:01.280" video="mainVideo-table" id="subtitle"]] - -[[!template text="""Sometimes this type of qualification will be useful for me,""" start="00:10:01.280" video="mainVideo-table" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Statistics""" start="00:10:01.280" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Sometimes this type of qualification will be useful for me,""" start="00:10:01.280" video="mainVideo-table" id="subtitle"]] [[!template text="""to see how much has been the sound,""" start="00:10:04.820" video="mainVideo-table" id="subtitle"]] [[!template text="""how much good has been the exercise.""" start="00:10:08.080" video="mainVideo-table" id="subtitle"]] [[!template text="""Now, I'm going to put a new table.""" start="00:10:12.240" video="mainVideo-table" id="subtitle"]] @@ -198,9 +181,7 @@ [[!template text="""and two decimal,""" start="00:12:08.960" video="mainVideo-table" id="subtitle"]] [[!template text="""and that is another interesting score.""" start="00:12:12.640" video="mainVideo-table" id="subtitle"]] -[[!template new="1" text="""Combining""" start="00:12:17.800" video="mainVideo-table" id="subtitle"]] - -[[!template text="""Now, I'm going to finish showing how we can use.""" start="00:12:17.800" video="mainVideo-table" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Combining""" start="00:12:17.800" video="mainVideo-table" id="subtitle"]]</div>[[!template text="""Now, I'm going to finish showing how we can use.""" start="00:12:17.800" video="mainVideo-table" id="subtitle"]] [[!template text="""To finish it, we are going to see""" start="00:12:23.240" video="mainVideo-table" id="subtitle"]] [[!template text="""how we can combine several tables""" start="00:12:25.840" video="mainVideo-table" id="subtitle"]] [[!template text="""or even an aggregated table in a new table.""" start="00:12:28.300" video="mainVideo-table" id="subtitle"]] @@ -242,7 +223,7 @@ [[!template text="""to improve your qualification of a student,""" start="00:15:42.280" video="mainVideo-table" id="subtitle"]] [[!template text="""or for whatever you want.""" start="00:15:45.600" video="mainVideo-table" id="subtitle"]] - +</div> Captioner: danielmolina diff --git a/2023/info/table-before.md b/2023/info/table-before.md index 9e58529f..3a26bf63 100644 --- a/2023/info/table-before.md +++ b/2023/info/table-before.md @@ -1,12 +1,12 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 16-min talk; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference +Format: 16-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Status: All done -<div class="vid"><video controls preload="none" id="table-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 15:51 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--alternative.mp4">Download --alternative.mp4 (126MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--alternative.webm">Download --alternative.webm (45MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.opus">Download --main.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.webm">Download --main.webm (45MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/p8K8mtayv2HYtw1gK3zUwR">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-table"><source src="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 15:51 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-table">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--alternative.mp4">Download --alternative.mp4 (126MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--alternative.webm">Download --alternative.webm (45MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.opus">Download --main.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-table--who-needs-excel-managing-your-students-qualifications-with-orgtable--daniel-molina--main.webm">Download --main.webm (45MB)</a></li><li><a href="https://toobnix.org/w/p8K8mtayv2HYtw1gK3zUwR">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=UzDqOrFGWbw">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/table-nav.md b/2023/info/table-nav.md index 625ecd74..f825c777 100644 --- a/2023/info/table-nav.md +++ b/2023/info/table-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/teaching">Teaching computer and data science with literate programming tools</a> Next by track: <a href="/2023/talks/one">one.el: the static site generator for Emacs Lisp Programmers</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/teaching-after.md b/2023/info/teaching-after.md index 6846d4d7..1e1bf481 100644 --- a/2023/info/teaching-after.md +++ b/2023/info/teaching-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="teaching-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="teaching-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""Welcome to my talk, which is pre-recorded,""" start="00:00:00.000" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Welcome to my talk, which is pre-recorded,""" start="00:00:00.000" video="mainVideo-teaching" id="subtitle"]] [[!template text="""so please don't blame me if I come across""" start="00:00:04.520" video="mainVideo-teaching" id="subtitle"]] [[!template text="""as wooden and humorless.""" start="00:00:06.960" video="mainVideo-teaching" id="subtitle"]] [[!template text="""It's hard to work up any emotion""" start="00:00:08.600" video="mainVideo-teaching" id="subtitle"]] @@ -28,9 +25,7 @@ [[!template text="""You had a good look at me.""" start="00:00:48.200" video="mainVideo-teaching" id="subtitle"]] [[!template text="""I think that's just going to be in the way.""" start="00:00:49.560" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""My interest in this topic""" start="00:00:54.160" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""So my interest in this topic began with""" start="00:00:54.160" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""My interest in this topic""" start="00:00:54.160" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""So my interest in this topic began with""" start="00:00:54.160" video="mainVideo-teaching" id="subtitle"]] [[!template text="""an Emacs talk given by Daniel German""" start="00:00:57.280" video="mainVideo-teaching" id="subtitle"]] [[!template text="""from the University of Victoria in Canada in 2021.""" start="00:00:59.280" video="mainVideo-teaching" id="subtitle"]] [[!template text="""Daniel demonstrated in detail""" start="00:01:04.120" video="mainVideo-teaching" id="subtitle"]] @@ -57,9 +52,7 @@ [[!template text="""Please also use the Q&A to inquire about such details""" start="00:02:00.120" video="mainVideo-teaching" id="subtitle"]] [[!template text="""if they interest you.""" start="00:02:05.000" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""What is data science?""" start="00:02:08.040" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""I probably don't have to explain what computer science is,""" start="00:02:08.040" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""What is data science?""" start="00:02:08.040" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""I probably don't have to explain what computer science is,""" start="00:02:08.040" video="mainVideo-teaching" id="subtitle"]] [[!template text="""but not everyone may know what data science does.""" start="00:02:12.800" video="mainVideo-teaching" id="subtitle"]] [[!template text="""I teach courses in both disciplines""" start="00:02:16.360" video="mainVideo-teaching" id="subtitle"]] [[!template text="""and the boundaries between them are blurred,""" start="00:02:18.240" video="mainVideo-teaching" id="subtitle"]] @@ -92,9 +85,7 @@ [[!template text="""And now we train--or try to train--data scientists""" start="00:03:42.000" video="mainVideo-teaching" id="subtitle"]] [[!template text="""in undergraduate programs as well.""" start="00:03:45.600" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""Computer science is a craft""" start="00:03:47.640" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""Now, what I'm saying here, I think is true""" start="00:03:47.640" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Computer science is a craft""" start="00:03:47.640" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Now, what I'm saying here, I think is true""" start="00:03:47.640" video="mainVideo-teaching" id="subtitle"]] [[!template text="""for all areas of computing,""" start="00:03:52.400" video="mainVideo-teaching" id="subtitle"]] [[!template text="""from software engineering to data science.""" start="00:03:54.200" video="mainVideo-teaching" id="subtitle"]] [[!template text="""They are mostly taught and learned like a craft""" start="00:03:56.960" video="mainVideo-teaching" id="subtitle"]] @@ -119,9 +110,7 @@ [[!template text="""In this field, radical innovation is the rule,""" start="00:04:48.720" video="mainVideo-teaching" id="subtitle"]] [[!template text="""not the exception.""" start="00:04:51.520" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""The problem""" start="00:04:52.840" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""The problem that I identified is that students,""" start="00:04:52.840" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The problem""" start="00:04:52.840" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""The problem that I identified is that students,""" start="00:04:52.840" video="mainVideo-teaching" id="subtitle"]] [[!template text="""especially undergraduate students""" start="00:04:58.680" video="mainVideo-teaching" id="subtitle"]] [[!template text="""in computer and data science,""" start="00:05:00.800" video="mainVideo-teaching" id="subtitle"]] [[!template text="""often do no longer understand the infrastructure.""" start="00:05:02.400" video="mainVideo-teaching" id="subtitle"]] @@ -137,9 +126,7 @@ [[!template text="""have all the power--though passively,""" start="00:05:31.840" video="mainVideo-teaching" id="subtitle"]] [[!template text="""of course, for now anyway.""" start="00:05:35.080" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""The solution: Emacs + Org-mode""" start="00:05:36.560" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""Enter Emacs, the self-extensible operating system""" start="00:05:36.560" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""The solution: Emacs + Org-mode""" start="00:05:36.560" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Enter Emacs, the self-extensible operating system""" start="00:05:36.560" video="mainVideo-teaching" id="subtitle"]] [[!template text="""disguised as a text editor.""" start="00:05:43.680" video="mainVideo-teaching" id="subtitle"]] [[!template text="""You're at EmacsConf, so of course I don't have to tell you""" start="00:05:46.000" video="mainVideo-teaching" id="subtitle"]] [[!template text="""what Emacs can do.""" start="00:05:51.000" video="mainVideo-teaching" id="subtitle"]] @@ -156,9 +143,7 @@ [[!template text="""but the results have made me even more optimistic""" start="00:06:19.680" video="mainVideo-teaching" id="subtitle"]] [[!template text="""than I already am by nature.""" start="00:06:22.400" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""Emacs configuration file""" start="00:06:24.120" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""So to rein in your expectations,""" start="00:06:24.120" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Emacs configuration file""" start="00:06:24.120" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""So to rein in your expectations,""" start="00:06:24.120" video="mainVideo-teaching" id="subtitle"]] [[!template text="""you cannot do entirely without""" start="00:06:28.840" video="mainVideo-teaching" id="subtitle"]] [[!template text="""configuring the student's experience.""" start="00:06:31.840" video="mainVideo-teaching" id="subtitle"]] [[!template text="""An important part of this""" start="00:06:33.800" video="mainVideo-teaching" id="subtitle"]] @@ -179,9 +164,7 @@ [[!template text="""from flicking all the time to the mouse;""" start="00:07:23.200" video="mainVideo-teaching" id="subtitle"]] [[!template text="""seems to be an essential part of getting used to Emacs.""" start="00:07:25.840" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""Story + code = source + documentation""" start="00:07:30.360" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""Now Org Mode was included in Emacs in 2006 as a major mode,""" start="00:07:30.360" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Story + code = source + documentation""" start="00:07:30.360" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Now Org Mode was included in Emacs in 2006 as a major mode,""" start="00:07:30.360" video="mainVideo-teaching" id="subtitle"]] [[!template text="""and as you know, it's a structured plain text format""" start="00:07:38.840" video="mainVideo-teaching" id="subtitle"]] [[!template text="""with notebook live code execution.""" start="00:07:41.960" video="mainVideo-teaching" id="subtitle"]] [[!template text="""It's an ideal platform for literate programming,""" start="00:07:45.040" video="mainVideo-teaching" id="subtitle"]] @@ -195,9 +178,7 @@ [[!template text="""This methodology was conceived by Donald Knuth in 1984,""" start="00:08:13.920" video="mainVideo-teaching" id="subtitle"]] [[!template text="""and it is therefore even older than Emacs itself.""" start="00:08:18.480" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""What is literate programming?""" start="00:08:22.040" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""The main purpose of literate programming is not only""" start="00:08:22.040" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""What is literate programming?""" start="00:08:22.040" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""The main purpose of literate programming is not only""" start="00:08:22.040" video="mainVideo-teaching" id="subtitle"]] [[!template text="""to make code or documentation or output more manageable,""" start="00:08:27.200" video="mainVideo-teaching" id="subtitle"]] [[!template text="""but to allow humans to create a data story with ease""" start="00:08:31.120" video="mainVideo-teaching" id="subtitle"]] [[!template text="""from a single source.""" start="00:08:34.760" video="mainVideo-teaching" id="subtitle"]] @@ -226,9 +207,7 @@ [[!template text="""which export code blocks into buffers""" start="00:09:52.800" video="mainVideo-teaching" id="subtitle"]] [[!template text="""in whatever language the code block is written.""" start="00:09:55.640" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""Emacs as a literate programming tool""" start="00:09:59.880" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""In data science, these interactive notebooks""" start="00:09:59.880" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Emacs as a literate programming tool""" start="00:09:59.880" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""In data science, these interactive notebooks""" start="00:09:59.880" video="mainVideo-teaching" id="subtitle"]] [[!template text="""in one of the interpreted languages like Julia,""" start="00:10:02.720" video="mainVideo-teaching" id="subtitle"]] [[!template text="""Python, or R dominate.""" start="00:10:06.000" video="mainVideo-teaching" id="subtitle"]] [[!template text="""The basis technology,""" start="00:10:07.840" video="mainVideo-teaching" id="subtitle"]] @@ -253,9 +232,7 @@ [[!template text="""That is something you can see in a paper of mine,""" start="00:11:11.040" video="mainVideo-teaching" id="subtitle"]] [[!template text="""in one of the figures.""" start="00:11:14.160" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""Case study: basic setup""" start="00:11:18.960" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""Now, coming to the case study itself,""" start="00:11:18.960" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Case study: basic setup""" start="00:11:18.960" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Now, coming to the case study itself,""" start="00:11:18.960" video="mainVideo-teaching" id="subtitle"]] [[!template text="""here are some of the overall results of the case study.""" start="00:11:22.720" video="mainVideo-teaching" id="subtitle"]] [[!template text="""Now, the courses ranged from introductory to advanced,""" start="00:11:25.040" video="mainVideo-teaching" id="subtitle"]] [[!template text="""as you can see here in the table on the left-hand side.""" start="00:11:29.040" video="mainVideo-teaching" id="subtitle"]] @@ -272,9 +249,7 @@ [[!template text="""is openly available on GitHub,""" start="00:12:03.280" video="mainVideo-teaching" id="subtitle"]] [[!template text="""and the address is on the slide at the bottom.""" start="00:12:05.400" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""Emacs + Org-mode notebooks""" start="00:12:11.280" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""I'm now going to briefly comment on""" start="00:12:11.280" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Emacs + Org-mode notebooks""" start="00:12:11.280" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""I'm now going to briefly comment on""" start="00:12:11.280" video="mainVideo-teaching" id="subtitle"]] [[!template text="""the most important aspects of using Emacs and Org Mode""" start="00:12:15.880" video="mainVideo-teaching" id="subtitle"]] [[!template text="""in and outside of class.""" start="00:12:18.800" video="mainVideo-teaching" id="subtitle"]] [[!template text="""Essentially, these two--Emacs and Org Mode--""" start="00:12:20.120" video="mainVideo-teaching" id="subtitle"]] @@ -288,9 +263,7 @@ [[!template text="""student projects, practice in class--""" start="00:12:40.000" video="mainVideo-teaching" id="subtitle"]] [[!template text="""was done with these two tools.""" start="00:12:42.440" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""Onboarding: simplified Emacs tutorial""" start="00:12:45.800" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""To facilitate the onboarding,""" start="00:12:45.800" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Onboarding: simplified Emacs tutorial""" start="00:12:45.800" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""To facilitate the onboarding,""" start="00:12:45.800" video="mainVideo-teaching" id="subtitle"]] [[!template text="""so to get students used to Emacs in the first place,""" start="00:12:48.000" video="mainVideo-teaching" id="subtitle"]] [[!template text="""I developed a simplified Emacs tutorial,""" start="00:12:51.000" video="mainVideo-teaching" id="subtitle"]] [[!template text="""which was focused on the basics of literate programming.""" start="00:12:53.280" video="mainVideo-teaching" id="subtitle"]] @@ -310,9 +283,7 @@ [[!template text="""Most of the students, in fact, had never heard of Emacs.""" start="00:13:31.200" video="mainVideo-teaching" id="subtitle"]] [[!template text="""All the classes were taught physically in a computer lab.""" start="00:13:35.400" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""Instruction + interaction""" start="00:13:40.840" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""Emacs with Org Mode""" start="00:13:40.840" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Instruction + interaction""" start="00:13:40.840" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Emacs with Org Mode""" start="00:13:40.840" video="mainVideo-teaching" id="subtitle"]] [[!template text="""and the necessary languages for the class""" start="00:13:42.760" video="mainVideo-teaching" id="subtitle"]] [[!template text="""were pre-installed on the computers.""" start="00:13:45.480" video="mainVideo-teaching" id="subtitle"]] [[!template text="""The computers ran Windows, unfortunately,""" start="00:13:47.360" video="mainVideo-teaching" id="subtitle"]] @@ -338,9 +309,7 @@ [[!template text="""You can find examples of these rather high-octane projects""" start="00:14:44.240" video="mainVideo-teaching" id="subtitle"]] [[!template text="""in my paper.""" start="00:14:48.080" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""Assignments + projects""" start="00:14:48.720" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""Now, using literate programming for the projects""" start="00:14:48.720" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Assignments + projects""" start="00:14:48.720" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""Now, using literate programming for the projects""" start="00:14:48.720" video="mainVideo-teaching" id="subtitle"]] [[!template text="""provided some unique benefits.""" start="00:14:52.680" video="mainVideo-teaching" id="subtitle"]] [[!template text="""By having to continuously interweave documentation,""" start="00:14:54.400" video="mainVideo-teaching" id="subtitle"]] [[!template text="""references and output alongside functional code,""" start="00:14:57.960" video="mainVideo-teaching" id="subtitle"]] @@ -371,9 +340,7 @@ [[!template text="""after the first term""" start="00:16:08.000" video="mainVideo-teaching" id="subtitle"]] [[!template text="""and continue for the following two terms.""" start="00:16:09.160" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""Overall results positive""" start="00:16:15.280" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""The courses... Coming to the result, the overall result...""" start="00:16:15.280" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Overall results positive""" start="00:16:15.280" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""The courses... Coming to the result, the overall result...""" start="00:16:15.280" video="mainVideo-teaching" id="subtitle"]] [[!template text="""The courses were formally and informally""" start="00:16:18.840" video="mainVideo-teaching" id="subtitle"]] [[!template text="""also evaluated by the students,""" start="00:16:21.000" video="mainVideo-teaching" id="subtitle"]] [[!template text="""but you need to look at my paper""" start="00:16:23.120" video="mainVideo-teaching" id="subtitle"]] @@ -414,9 +381,7 @@ [[!template text="""for the loss of the immersion""" start="00:18:13.200" video="mainVideo-teaching" id="subtitle"]] [[!template text="""that Emacs and Org Mode deliver.""" start="00:18:15.120" video="mainVideo-teaching" id="subtitle"]] -[[!template new="1" text="""Conclusion & outlook""" start="00:18:19.800" video="mainVideo-teaching" id="subtitle"]] - -[[!template text="""And here's the summary.""" start="00:18:19.800" video="mainVideo-teaching" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Conclusion & outlook""" start="00:18:19.800" video="mainVideo-teaching" id="subtitle"]]</div>[[!template text="""And here's the summary.""" start="00:18:19.800" video="mainVideo-teaching" id="subtitle"]] [[!template text="""When learning computer and data science,""" start="00:18:21.400" video="mainVideo-teaching" id="subtitle"]] [[!template text="""immersion is everything.""" start="00:18:23.760" video="mainVideo-teaching" id="subtitle"]] [[!template text="""The best students will aim at immersion anyway.""" start="00:18:25.680" video="mainVideo-teaching" id="subtitle"]] @@ -442,12 +407,11 @@ [[!template text="""And I'm looking forward to the Q&A.""" start="00:19:21.720" video="mainVideo-teaching" id="subtitle"]] [[!template text="""Thank you.""" start="00:19:22.840" video="mainVideo-teaching" id="subtitle"]] - +</div> Captioner: sachac -<a name="teaching-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="teaching-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: Again, second only live Q&A of the day.""" start="00:00:00.599" video="qanda-teaching" id="subtitle"]] [[!template text="""So, things are still a bit rusty,""" start="00:00:04.339" video="qanda-teaching" id="subtitle"]] @@ -1334,7 +1298,7 @@ Captioner: sachac [[!template text="""conference.""" start="00:41:36.840" video="qanda-teaching" id="subtitle"]] [[!template text="""[Speaker 1]: You""" start="00:42:00.060" video="qanda-teaching" id="subtitle"]] -Questions or comments? Please e-mail [birkenkrahe@lyon.edu](mailto:birkenkrahe@lyon.edu?subject=Comment%20for%20EmacsConf%202023%20teaching%3A%20Teaching%20computer%20and%20data%20science%20with%20literate%20programming%20tools) +</div>Questions or comments? Please e-mail [birkenkrahe@lyon.edu](mailto:birkenkrahe@lyon.edu?subject=Comment%20for%20EmacsConf%202023%20teaching%3A%20Teaching%20computer%20and%20data%20science%20with%20literate%20programming%20tools) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/teaching-before.md b/2023/info/teaching-before.md index 6a5fa970..1348f7ae 100644 --- a/2023/info/teaching-before.md +++ b/2023/info/teaching-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 20-min talk; Q&A: BigBlueButton conference room +Format: 20-min talk ; Q&A: BigBlueButton conference room Status: TO_INDEX_QA @@ -9,7 +9,7 @@ Status: TO_INDEX_QA # Talk -<div class="vid"><video controls preload="none" id="teaching-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="teaching-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-teaching"><source src="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-teaching" data=""" 00:00.000 Introduction 00:54.160 My interest in this topic 02:08.040 What is data science? @@ -28,10 +28,10 @@ Status: TO_INDEX_QA 16:15.280 Overall results positive 18:19.800 Conclusion & outlook -"""]]<div></div>Duration: 19:27 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.opus">Download --main.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.webm">Download --main.webm (44MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.odp">Download .odp (15MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.org">Download .org</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.pdf">Download .pdf (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.pptx">Download .pptx (15MB)</a></li><li><a href="https://toobnix.org/w/b4eLjcLo9vcewVTzrv95L8">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 19:27 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-teaching">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=c7af4fb02c209bbd6864301fdf26dd137916469c-1701529159289">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.opus">Download --main.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--main.webm">Download --main.webm (44MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.odp">Download .odp (15MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.org">Download .org</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.pdf">Download .pdf (2.9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe.pptx">Download .pptx (15MB)</a></li><li><a href="https://toobnix.org/w/b4eLjcLo9vcewVTzrv95L8">View on Toobnix</a></li><li><a href="https://youtu.be/U15zUNBz2CU">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="teaching-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="teaching-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.opus"></audio></div><div></div>Duration: 42:23 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.json">Download --answers.json (1.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.opus">Download --answers.opus (22MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.webm">Download --answers.webm (199MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-teaching"><source src="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-teaching-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.opus"></audio></div><div></div>Duration: 42:23 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-teaching">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=c7af4fb02c209bbd6864301fdf26dd137916469c-1701529159289">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.json">Download --answers.json (1.8MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.opus">Download --answers.opus (22MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-teaching--teaching-computer-and-data-science-with-literate-programming-tools--marcus-birkenkrahe--answers.webm">Download --answers.webm (199MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/teaching-nav.md b/2023/info/teaching-nav.md index bf06e887..64d98156 100644 --- a/2023/info/teaching-nav.md +++ b/2023/info/teaching-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/uni">Authoring and presenting university courses with Emacs and a full libre software stack</a> Next by track: <a href="/2023/talks/table">Who needs Excel? Managing your students qualifications with org-table</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/test-after.md b/2023/info/test-after.md index 413f1f6d..b2329598 100644 --- a/2023/info/test-after.md +++ b/2023/info/test-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="test-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="test-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:03.120" video="mainVideo-test" id="subtitle"]] - -[[!template text="""Hi everyone! I'm Mats Lidell.""" start="00:00:03.120" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:03.120" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Hi everyone! I'm Mats Lidell.""" start="00:00:03.120" video="mainVideo-test" id="subtitle"]] [[!template text="""I'm going to talk about my journey""" start="00:00:07.440" video="mainVideo-test" id="subtitle"]] [[!template text="""writing test cases for GNU Hyperbole""" start="00:00:09.880" video="mainVideo-test" id="subtitle"]] [[!template text="""and what I learned on the way.""" start="00:00:12.481" video="mainVideo-test" id="subtitle"]] @@ -61,9 +58,7 @@ [[!template text="""no knowledge of what testing frameworks existed,""" start="00:03:00.760" video="mainVideo-test" id="subtitle"]] [[!template text="""and not really knowing a lot about Emacs Lisp at all.""" start="00:03:03.360" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""ERT: Emacs Lisp Regression Testing""" start="00:03:11.160" video="mainVideo-test" id="subtitle"]] - -[[!template text="""Luckily there is a package for writing tests in Emacs.""" start="00:03:11.160" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""ERT: Emacs Lisp Regression Testing""" start="00:03:11.160" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Luckily there is a package for writing tests in Emacs.""" start="00:03:11.160" video="mainVideo-test" id="subtitle"]] [[!template text="""It is called ERT: Emacs Lisp Regression Testing.""" start="00:03:13.800" video="mainVideo-test" id="subtitle"]] [[!template text="""It contains both support for defining tests and running them.""" start="00:03:17.920" video="mainVideo-test" id="subtitle"]] [[!template text="""Defining a test is done with the macro `ert-deftest`.""" start="00:03:20.960" video="mainVideo-test" id="subtitle"]] @@ -82,9 +77,7 @@ [[!template text="""and the outcome of the test is evaluated.""" start="00:04:09.760" video="mainVideo-test" id="subtitle"]] [[!template text="""Did the test succeed or not?""" start="00:04:13.120" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Assertions with `should`""" start="00:04:14.360" video="mainVideo-test" id="subtitle"]] - -[[!template text="""The verification of a test is performed with""" start="00:04:14.360" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Assertions with `should`""" start="00:04:14.360" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""The verification of a test is performed with""" start="00:04:14.360" video="mainVideo-test" id="subtitle"]] [[!template text="""one or more so-called assertions.""" start="00:04:18.480" video="mainVideo-test" id="subtitle"]] [[!template text="""In ERT, they are implemented""" start="00:04:21.480" video="mainVideo-test" id="subtitle"]] [[!template text="""with the macro `should`""" start="00:04:25.000" video="mainVideo-test" id="subtitle"]] @@ -95,9 +88,7 @@ [[!template text="""This simple test verifies that the function `+`""" start="00:04:48.581" video="mainVideo-test" id="subtitle"]] [[!template text="""can add the numbers 2 and 3 and get the result 5.""" start="00:04:51.920" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Running a test case""" start="00:04:56.920" video="mainVideo-test" id="subtitle"]] - -[[!template text="""So now we have defined a test case. How do we run it?""" start="00:04:56.920" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Running a test case""" start="00:04:56.920" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""So now we have defined a test case. How do we run it?""" start="00:04:56.920" video="mainVideo-test" id="subtitle"]] [[!template text="""The ERT package has the function (or""" start="00:05:01.960" video="mainVideo-test" id="subtitle"]] [[!template text="""rather convenience alias) `ert`. It takes a test selector.""" start="00:05:03.920" video="mainVideo-test" id="subtitle"]] [[!template text="""The test name works as a selector for running just one test.""" start="00:05:09.520" video="mainVideo-test" id="subtitle"]] @@ -121,9 +112,7 @@ [[!template text="""and it was 5 equals to 5.""" start="00:06:48.000" video="mainVideo-test" id="subtitle"]] [[!template text="""So a good example of a successful test case.""" start="00:06:49.800" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Debug a test""" start="00:06:54.560" video="mainVideo-test" id="subtitle"]] - -[[!template text="""So now we've seen how we can run a test case.""" start="00:06:54.560" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Debug a test""" start="00:06:54.560" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""So now we've seen how we can run a test case.""" start="00:06:54.560" video="mainVideo-test" id="subtitle"]] [[!template text="""Can we debug it? Yes. For debugging a test case,""" start="00:06:57.920" video="mainVideo-test" id="subtitle"]] [[!template text="""the `ert-deftest` can be set up using `edebug-defun`,""" start="00:07:03.800" video="mainVideo-test" id="subtitle"]] [[!template text="""just as a function or macro is set up""" start="00:07:07.940" video="mainVideo-test" id="subtitle"]] @@ -134,9 +123,7 @@ [[!template text="""and we can inspect here what's happening.""" start="00:07:35.660" video="mainVideo-test" id="subtitle"]] [[!template text="""Step through it and yes it succeeded just as before.""" start="00:07:40.680" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Commercial break: Hyperbole""" start="00:07:50.380" video="mainVideo-test" id="subtitle"]] - -[[!template text="""It's time for a commercial break!""" start="00:07:50.380" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Commercial break: Hyperbole""" start="00:07:50.380" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""It's time for a commercial break!""" start="00:07:50.380" video="mainVideo-test" id="subtitle"]] [[!template text="""Hyperbole itself can help with running tests""" start="00:07:56.880" video="mainVideo-test" id="subtitle"]] [[!template text="""and also help with running them in debug mode.""" start="00:08:00.080" video="mainVideo-test" id="subtitle"]] [[!template text="""That is because hyperbole identifies the `ert-deftest`""" start="00:08:03.640" video="mainVideo-test" id="subtitle"]] @@ -154,9 +141,7 @@ [[!template text="""to get the assist key, and then we're in the debugger.""" start="00:08:54.480" video="mainVideo-test" id="subtitle"]] [[!template text="""So that's pretty useful and convenient.""" start="00:08:57.720" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Instrument function on the fly""" start="00:09:10.480" video="mainVideo-test" id="subtitle"]] - -[[!template text="""A related useful feature here is the step-in functionality""" start="00:09:10.480" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Instrument function on the fly""" start="00:09:10.480" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""A related useful feature here is the step-in functionality""" start="00:09:10.480" video="mainVideo-test" id="subtitle"]] [[!template text="""bound to the letter i in `debug-mode`.""" start="00:09:13.720" video="mainVideo-test" id="subtitle"]] [[!template text="""It allows you to step into a function""" start="00:09:16.400" video="mainVideo-test" id="subtitle"]] [[!template text="""and continue debugging from there.""" start="00:09:18.120" video="mainVideo-test" id="subtitle"]] @@ -178,9 +163,7 @@ [[!template text="""and it returns the result 4 as expected.""" start="00:10:26.560" video="mainVideo-test" id="subtitle"]] [[!template text="""And yes, of course, our test case will then succeed.""" start="00:10:31.000" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Mocking""" start="00:10:39.120" video="mainVideo-test" id="subtitle"]] - -[[!template text="""The next tool in our toolbox is mocking.""" start="00:10:39.120" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Mocking""" start="00:10:39.120" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""The next tool in our toolbox is mocking.""" start="00:10:39.120" video="mainVideo-test" id="subtitle"]] [[!template text="""Mocking is needed when we want to simulate the response""" start="00:10:41.840" video="mainVideo-test" id="subtitle"]] [[!template text="""from a function used by the function under test.""" start="00:10:46.240" video="mainVideo-test" id="subtitle"]] [[!template text="""That is the implementation of the function.""" start="00:10:49.280" video="mainVideo-test" id="subtitle"]] @@ -256,9 +239,7 @@ [[!template text="""and see that it should also then return 10""" start="00:14:30.320" video="mainVideo-test" id="subtitle"]] [[!template text="""because it's using `f1-add`.""" start="00:14:32.800" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""cl-letf""" start="00:14:41.240" video="mainVideo-test" id="subtitle"]] - -[[!template text="""Moving over to `cl-letf`.""" start="00:14:41.240" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""cl-letf""" start="00:14:41.240" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Moving over to `cl-letf`.""" start="00:14:41.240" video="mainVideo-test" id="subtitle"]] [[!template text="""In rare occasions, the limitations of `el-mock` means""" start="00:14:44.560" video="mainVideo-test" id="subtitle"]] [[!template text="""you would want to implement a full-fledged function""" start="00:14:47.680" video="mainVideo-test" id="subtitle"]] [[!template text="""to be used under test.""" start="00:14:50.240" video="mainVideo-test" id="subtitle"]] @@ -271,18 +252,14 @@ [[!template text="""due to environment issues.""" start="00:15:11.240" video="mainVideo-test" id="subtitle"]] [[!template text="""In that case, a static mock will not work.""" start="00:15:13.740" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Hooks""" start="00:15:24.100" video="mainVideo-test" id="subtitle"]] - -[[!template text="""Another trick is that functions that uses hooks.""" start="00:15:24.100" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Hooks""" start="00:15:24.100" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Another trick is that functions that uses hooks.""" start="00:15:24.100" video="mainVideo-test" id="subtitle"]] [[!template text="""You can overload or replace the hooks to do the testing.""" start="00:15:30.720" video="mainVideo-test" id="subtitle"]] [[!template text="""So you can use the hook function just to do the verification""" start="00:15:35.640" video="mainVideo-test" id="subtitle"]] [[!template text="""and not do anything useful in the hook.""" start="00:15:40.760" video="mainVideo-test" id="subtitle"]] [[!template text="""Also, here you need to be careful""" start="00:15:43.120" video="mainVideo-test" id="subtitle"]] [[!template text="""to make sure the test handler is called and nothing else.""" start="00:15:45.080" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Side effects and initial buffer state""" start="00:15:55.720" video="mainVideo-test" id="subtitle"]] - -[[!template text="""So far we have been talking about testing""" start="00:15:55.720" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Side effects and initial buffer state""" start="00:15:55.720" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""So far we have been talking about testing""" start="00:15:55.720" video="mainVideo-test" id="subtitle"]] [[!template text="""and what the function returns.""" start="00:15:57.680" video="mainVideo-test" id="subtitle"]] [[!template text="""In the best of words, we have a pure function""" start="00:15:59.040" video="mainVideo-test" id="subtitle"]] [[!template text="""that only depends on its arguments""" start="00:16:01.120" video="mainVideo-test" id="subtitle"]] @@ -308,25 +285,19 @@ [[!template text="""Here are some functions and variables""" start="00:16:50.960" video="mainVideo-test" id="subtitle"]] [[!template text="""I have found useful for this.""" start="00:16:53.080" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""with-temp-buffer""" start="00:17:05.100" video="mainVideo-test" id="subtitle"]] - -[[!template text="""For creating tests: `with-temp-buffer`:""" start="00:17:05.100" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""with-temp-buffer""" start="00:17:05.100" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""For creating tests: `with-temp-buffer`:""" start="00:17:05.100" video="mainVideo-test" id="subtitle"]] [[!template text="""it provides you a temp buffer that you visit,""" start="00:17:09.200" video="mainVideo-test" id="subtitle"]] [[!template text="""and afterwards, there is no need to clean up.""" start="00:17:11.920" video="mainVideo-test" id="subtitle"]] [[!template text="""This is the first choice if that is all you need.""" start="00:17:13.720" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""make-temp-file""" start="00:17:16.520" video="mainVideo-test" id="subtitle"]] - -[[!template text="""`make-temp-file`: If you need a file,""" start="00:17:16.520" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""make-temp-file""" start="00:17:16.520" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""`make-temp-file`: If you need a file,""" start="00:17:16.520" video="mainVideo-test" id="subtitle"]] [[!template text="""this is the function to use.""" start="00:17:20.520" video="mainVideo-test" id="subtitle"]] [[!template text="""It creates a temp file or a directory.""" start="00:17:21.960" video="mainVideo-test" id="subtitle"]] [[!template text="""The file can be filled with initial contents.""" start="00:17:24.280" video="mainVideo-test" id="subtitle"]] [[!template text="""This needs to be cleaned up after a test.""" start="00:17:26.960" video="mainVideo-test" id="subtitle"]] [[!template text="""Moving on to verifying and debugging:""" start="00:17:31.020" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""buffer-string""" start="00:17:33.288" video="mainVideo-test" id="subtitle"]] - -[[!template text="""`buffer-string`: returns the full contents""" start="00:17:33.288" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""buffer-string""" start="00:17:33.288" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""`buffer-string`: returns the full contents""" start="00:17:33.288" video="mainVideo-test" id="subtitle"]] [[!template text="""of the buffer as a string.""" start="00:17:38.248" video="mainVideo-test" id="subtitle"]] [[!template text="""That can sound a bit voluminous,""" start="00:17:39.500" video="mainVideo-test" id="subtitle"]] [[!template text="""but since tests are normally small, this often works well.""" start="00:17:41.400" video="mainVideo-test" id="subtitle"]] @@ -340,9 +311,7 @@ [[!template text="""There might be other ways to do the same""" start="00:18:04.400" video="mainVideo-test" id="subtitle"]] [[!template text="""as we saw with debugging.""" start="00:18:06.248" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""buffer-name""" start="00:18:09.920" video="mainVideo-test" id="subtitle"]] - -[[!template text="""buffer-name: Getting the buffer name is good""" start="00:18:09.920" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""buffer-name""" start="00:18:09.920" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""buffer-name: Getting the buffer name is good""" start="00:18:09.920" video="mainVideo-test" id="subtitle"]] [[!template text="""to verify what buffer we are looking at.""" start="00:18:13.720" video="mainVideo-test" id="subtitle"]] [[!template text="""I often found it useful to check""" start="00:18:16.240" video="mainVideo-test" id="subtitle"]] [[!template text="""that my assumptions on what buffer I am acting on""" start="00:18:18.360" video="mainVideo-test" id="subtitle"]] @@ -358,14 +327,10 @@ [[!template text="""that I have not fully learned how to master,""" start="00:18:44.880" video="mainVideo-test" id="subtitle"]] [[!template text="""so assertion for checking the sanity of the test is good.""" start="00:18:47.488" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""major-mode""" start="00:18:51.980" video="mainVideo-test" id="subtitle"]] - -[[!template text="""Finally, `major-mode`: Verify the buffer has the proper mode.""" start="00:18:51.980" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""major-mode""" start="00:18:51.980" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Finally, `major-mode`: Verify the buffer has the proper mode.""" start="00:18:51.980" video="mainVideo-test" id="subtitle"]] [[!template text="""Can also be very useful and is a good sanity check.""" start="00:18:55.680" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""unwind-protect""" start="00:19:02.680" video="mainVideo-test" id="subtitle"]] - -[[!template text="""Finally, cleaning up. `unwind-protect`.""" start="00:19:02.680" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""unwind-protect""" start="00:19:02.680" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Finally, cleaning up. `unwind-protect`.""" start="00:19:02.680" video="mainVideo-test" id="subtitle"]] [[!template text="""The tool for cleaning up is the `unwind-protect` form""" start="00:19:06.600" video="mainVideo-test" id="subtitle"]] [[!template text="""which ensures that the unwind forms""" start="00:19:09.040" video="mainVideo-test" id="subtitle"]] [[!template text="""always are executed regardless of the outcome of the body.""" start="00:19:12.480" video="mainVideo-test" id="subtitle"]] @@ -383,9 +348,7 @@ [[!template text="""The test buffers are often in the state""" start="00:20:03.220" video="mainVideo-test" id="subtitle"]] [[!template text="""where they have not been saved but modified.""" start="00:20:05.440" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Input, with-simulated-input""" start="00:20:15.100" video="mainVideo-test" id="subtitle"]] - -[[!template text="""Another problem for tests are input.""" start="00:20:15.100" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Input, with-simulated-input""" start="00:20:15.100" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Another problem for tests are input.""" start="00:20:15.100" video="mainVideo-test" id="subtitle"]] [[!template text="""In the middle of execution a function""" start="00:20:19.680" video="mainVideo-test" id="subtitle"]] [[!template text="""might want to have some interaction with the user.""" start="00:20:21.560" video="mainVideo-test" id="subtitle"]] [[!template text="""Testing this poses a problem, not only in that""" start="00:20:24.040" video="mainVideo-test" id="subtitle"]] @@ -412,9 +375,7 @@ [[!template text="""As you see in the example, space needs to be provided""" start="00:21:26.120" video="mainVideo-test" id="subtitle"]] [[!template text="""by the string SPC, as return by the string RET.""" start="00:21:29.640" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Running all tests""" start="00:21:38.460" video="mainVideo-test" id="subtitle"]] - -[[!template text="""So now we have seen ways to create test cases""" start="00:21:38.460" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Running all tests""" start="00:21:38.460" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""So now we have seen ways to create test cases""" start="00:21:38.460" video="mainVideo-test" id="subtitle"]] [[!template text="""and even make it possible to run some of them""" start="00:21:40.800" video="mainVideo-test" id="subtitle"]] [[!template text="""that has I/O in batch mode.""" start="00:21:43.220" video="mainVideo-test" id="subtitle"]] [[!template text="""But the initial goal was to run them all at once.""" start="00:21:44.680" video="mainVideo-test" id="subtitle"]] @@ -435,9 +396,7 @@ [[!template text="""So here we have a nice green display""" start="00:22:51.420" video="mainVideo-test" id="subtitle"]] [[!template text="""with all the test cases.""" start="00:22:57.080" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Batch mode""" start="00:23:03.220" video="mainVideo-test" id="subtitle"]] - -[[!template text="""So that was fine, but we were still running it manually""" start="00:23:03.220" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Batch mode""" start="00:23:03.220" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""So that was fine, but we were still running it manually""" start="00:23:03.220" video="mainVideo-test" id="subtitle"]] [[!template text="""by calling ert. How could we run it from the command line?""" start="00:23:08.160" video="mainVideo-test" id="subtitle"]] [[!template text="""Ert comes with functions for running it in batch mode.""" start="00:23:17.180" video="mainVideo-test" id="subtitle"]] [[!template text="""For Hyperbole, we use `make` for repetitive tasks.""" start="00:23:21.500" video="mainVideo-test" id="subtitle"]] @@ -454,9 +413,7 @@ [[!template text="""to get away with the prompt for excessive backup files""" start="00:23:58.160" video="mainVideo-test" id="subtitle"]] [[!template text="""that can pile up after running the tests a few times.""" start="00:24:02.440" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Skipping tests""" start="00:24:05.060" video="mainVideo-test" id="subtitle"]] - -[[!template text="""Even with the help of simulated input,""" start="00:24:05.060" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Skipping tests""" start="00:24:05.060" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""Even with the help of simulated input,""" start="00:24:05.060" video="mainVideo-test" id="subtitle"]] [[!template text="""not all tests can be run in batch mode.""" start="00:24:06.880" video="mainVideo-test" id="subtitle"]] [[!template text="""They would simply not work there""" start="00:24:08.920" video="mainVideo-test" id="subtitle"]] [[!template text="""and have to be run in an interactive Emacs""" start="00:24:10.560" video="mainVideo-test" id="subtitle"]] @@ -494,9 +451,7 @@ [[!template text="""and that is then another problem""" start="00:25:59.400" video="mainVideo-test" id="subtitle"]] [[!template text="""with getting the interactive mode.""" start="00:26:03.201" video="mainVideo-test" id="subtitle"]] -[[!template new="1" text="""Conclusion""" start="00:26:08.460" video="mainVideo-test" id="subtitle"]] - -[[!template text="""We have reached the end of the talk.""" start="00:26:08.460" video="mainVideo-test" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:26:08.460" video="mainVideo-test" id="subtitle"]]</div>[[!template text="""We have reached the end of the talk.""" start="00:26:08.460" video="mainVideo-test" id="subtitle"]] [[!template text="""If you have any new ideas""" start="00:26:11.121" video="mainVideo-test" id="subtitle"]] [[!template text="""or have some suggestions for improvements,""" start="00:26:14.160" video="mainVideo-test" id="subtitle"]] [[!template text="""feel free to reach out""" start="00:26:16.760" video="mainVideo-test" id="subtitle"]] @@ -513,8 +468,7 @@ [[!template text="""if it is not optimal or not having the best style.""" start="00:26:43.320" video="mainVideo-test" id="subtitle"]] [[!template text="""And yes, thanks for listening. Bye.""" start="00:26:47.800" video="mainVideo-test" id="subtitle"]] -<a name="test-qanda-transcript"></a> -# Q&A transcript (unedited) +</div><div class="transcript transcript-qanda"><a name="test-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: Do we have any listeners?""" start="00:00:08.740" video="qanda-test" id="subtitle"]] [[!template text="""It's you and I. I have a question.""" start="00:00:13.340" video="qanda-test" id="subtitle"]] @@ -985,7 +939,7 @@ [[!template text="""Take care. Bye-bye.""" start="00:26:11.100" video="qanda-test" id="subtitle"]] [[!template text="""[Speaker 1]: Take care. Bye. Silence.""" start="00:26:15.060" video="qanda-test" id="subtitle"]] -Questions or comments? Please e-mail [matsl@gnu.org](mailto:matsl@gnu.org?subject=Comment%20for%20EmacsConf%202023%20test%3A%20What%20I%20learned%20by%20writing%20test%20cases%20for%20GNU%20Hyperbole) +</div>Questions or comments? Please e-mail [matsl@gnu.org](mailto:matsl@gnu.org?subject=Comment%20for%20EmacsConf%202023%20test%3A%20What%20I%20learned%20by%20writing%20test%20cases%20for%20GNU%20Hyperbole) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/test-before.md b/2023/info/test-before.md index 8b140aad..f68c0402 100644 --- a/2023/info/test-before.md +++ b/2023/info/test-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 27-min talk; Q&A: BigBlueButton conference room +Format: 27-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="test-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="test-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-test"><source src="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-test" data=""" 00:03.120 Introduction 03:11.160 ERT: Emacs Lisp Regression Testing 04:14.360 Assertions with `should` @@ -33,10 +33,10 @@ Status: Q&A to be extracted from the room recordings 24:05.060 Skipping tests 26:08.460 Conclusion -"""]]<div></div>Duration: 26:55 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.opus">Download --main.opus (13MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.webm">Download --main.webm (57MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--transcript.txt">Download --transcript.txt</a></li><li><a href="https://toobnix.org/w/4XmcGSe3TQrJJNUqQXqK2B">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 26:55 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-test">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=91ba10e7976ef010c38f57417275e78a87e21871-1701633816495">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.opus">Download --main.opus (13MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--main.webm">Download --main.webm (57MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--transcript.txt">Download --transcript.txt</a></li><li><a href="https://toobnix.org/w/4XmcGSe3TQrJJNUqQXqK2B">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=maNQSKxXIzI">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="test-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="test-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.opus"></audio></div><div></div>Duration: 26:22 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.json">Download --answers.json (1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.opus">Download --answers.opus (9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.webm">Download --answers.webm (41MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-test"><source src="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-test-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.opus"></audio></div><div></div>Duration: 26:22 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-test">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=91ba10e7976ef010c38f57417275e78a87e21871-1701633816495">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.json">Download --answers.json (1MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.opus">Download --answers.opus (9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-test--what-i-learned-by-writing-test-cases-for-gnu-hyperbole--mats-lidell--answers.webm">Download --answers.webm (41MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/test-nav.md b/2023/info/test-nav.md index a595b88c..eba71afd 100644 --- a/2023/info/test-nav.md +++ b/2023/info/test-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/lspocaml">Writing a language server in OCaml for Emacs, fun, and profit</a> Next by track: <a href="/2023/talks/emacsconf">EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/unentangling-before.md b/2023/info/unentangling-before.md index a3bf347e..bec15a98 100644 --- a/2023/info/unentangling-before.md +++ b/2023/info/unentangling-before.md @@ -7,7 +7,7 @@ Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="unentangling-mainVideo"><source src="https://media.emacsconf.org/2024/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2024/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="unentangling-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-unentangling"><source src="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-unentangling" data=""" 00:01.220 Introduction 00:44.120 The problem 02:04.860 Jumping around @@ -17,6 +17,6 @@ Status: Q&A to be extracted from the room recordings 07:59.340 How does it work? 10:31.860 Time tracking -"""]]<div></div>Duration: 12:39 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-unentangling">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.opus">Download --main.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.webm">Download --main.webm (68MB)</a></li><li><a href="https://toobnix.org/w/wLxyZBoFAad575Lp4PGyoF">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 12:39 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-unentangling">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.opus">Download --main.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-unentangling--unentangling-projects-and-repos--alexey-bochkarev--main.webm">Download --main.webm (68MB)</a></li><li><a href="https://toobnix.org/w/wLxyZBoFAad575Lp4PGyoF">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=o9j4IwJsvPI">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/unentangling-nav.md b/2023/info/unentangling-nav.md index 24e0a4b0..4ddda87d 100644 --- a/2023/info/unentangling-nav.md +++ b/2023/info/unentangling-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/ref">Org-Mode workflow: informal reference tracking</a> Next by track: <a href="/2023/talks/devel">Emacs development updates</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/uni-after.md b/2023/info/uni-after.md index 2bfe8152..bd372d5f 100644 --- a/2023/info/uni-after.md +++ b/2023/info/uni-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="uni-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="uni-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""Hello everyone. I'm James Howell.""" start="00:00:00.000" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""Hello everyone. I'm James Howell.""" start="00:00:00.000" video="mainVideo-uni" id="subtitle"]] [[!template text="""I teach biochemistry and""" start="00:00:01.940" video="mainVideo-uni" id="subtitle"]] [[!template text="""molecular biology at Penn State University.""" start="00:00:03.540" video="mainVideo-uni" id="subtitle"]] [[!template text="""I'm going to talk today""" start="00:00:07.220" video="mainVideo-uni" id="subtitle"]] @@ -38,9 +35,7 @@ [[!template text="""So I promised to talk about""" start="00:01:09.940" video="mainVideo-uni" id="subtitle"]] [[!template text="""both authoring and presenting.""" start="00:01:11.240" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Presenting""" start="00:01:12.440" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""And first I'm going to talk about presenting.""" start="00:01:12.440" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Presenting""" start="00:01:12.440" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""And first I'm going to talk about presenting.""" start="00:01:12.440" video="mainVideo-uni" id="subtitle"]] [[!template text="""I'm not the only one who does this.""" start="00:01:14.620" video="mainVideo-uni" id="subtitle"]] [[!template text="""You might have seen System Crafters [David Wilson]""" start="00:01:16.600" video="mainVideo-uni" id="subtitle"]] [[!template text="""or Prot's [Protesilaos Stavrou's] channel or""" start="00:01:19.300" video="mainVideo-uni" id="subtitle"]] @@ -57,9 +52,7 @@ [[!template text="""There's prior art here""" start="00:01:43.740" video="mainVideo-uni" id="subtitle"]] [[!template text="""that I'd like to acknowledge.""" start="00:01:45.740" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Hardware""" start="00:01:47.820" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""Let me talk about my practices:""" start="00:01:47.820" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Hardware""" start="00:01:47.820" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""Let me talk about my practices:""" start="00:01:47.820" video="mainVideo-uni" id="subtitle"]] [[!template text="""First, the hardware.""" start="00:01:50.840" video="mainVideo-uni" id="subtitle"]] [[!template text="""This is the hardware that I'm using to""" start="00:01:51.520" video="mainVideo-uni" id="subtitle"]] [[!template text="""record this recording at the very moment,""" start="00:01:55.340" video="mainVideo-uni" id="subtitle"]] @@ -133,9 +126,7 @@ [[!template text="""the laptop and go into""" start="00:04:43.210" video="mainVideo-uni" id="subtitle"]] [[!template text="""some AV system or another.""" start="00:04:44.410" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Example setup""" start="00:04:46.610" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""Okay. This was Wednesday,""" start="00:04:46.610" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Example setup""" start="00:04:46.610" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""Okay. This was Wednesday,""" start="00:04:46.610" video="mainVideo-uni" id="subtitle"]] [[!template text="""teaching microbiology.""" start="00:04:49.070" video="mainVideo-uni" id="subtitle"]] [[!template text="""There's the tablet, there's the laptop.""" start="00:04:51.070" video="mainVideo-uni" id="subtitle"]] [[!template text="""There's the external screen""" start="00:04:53.230" video="mainVideo-uni" id="subtitle"]] @@ -157,9 +148,7 @@ [[!template text="""still see what I'm pointing to on the screen.""" start="00:05:23.940" video="mainVideo-uni" id="subtitle"]] [[!template text="""Nobody gets left out.""" start="00:05:27.400" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Presentation software: flexibility in function""" start="00:05:30.520" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""Let's talk about""" start="00:05:30.520" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Presentation software: flexibility in function""" start="00:05:30.520" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""Let's talk about""" start="00:05:30.520" video="mainVideo-uni" id="subtitle"]] [[!template text="""the software that I use.""" start="00:05:31.480" video="mainVideo-uni" id="subtitle"]] [[!template text="""There's a lot of different things that""" start="00:05:33.900" video="mainVideo-uni" id="subtitle"]] [[!template text="""I want to be able to show.""" start="00:05:35.980" video="mainVideo-uni" id="subtitle"]] @@ -199,9 +188,7 @@ [[!template text="""OBS is compositing that together.""" start="00:07:00.230" video="mainVideo-uni" id="subtitle"]] [[!template text="""And I use Zoom, but you could use Jitsi.""" start="00:07:02.890" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Live demonstration""" start="00:07:05.950" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""All right, let's""" start="00:07:05.950" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Live demonstration""" start="00:07:05.950" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""All right, let's""" start="00:07:05.950" video="mainVideo-uni" id="subtitle"]] [[!template text="""demonstrate this live. Here we go.""" start="00:07:07.930" video="mainVideo-uni" id="subtitle"]] [[!template text="""Here goes, nothing. The drawing program""" start="00:07:09.690" video="mainVideo-uni" id="subtitle"]] [[!template text="""is really good because I can draw""" start="00:07:13.610" video="mainVideo-uni" id="subtitle"]] @@ -225,9 +212,7 @@ [[!template text="""to mark them up visually.""" start="00:07:55.810" video="mainVideo-uni" id="subtitle"]] [[!template text="""I can show you what that looks like.""" start="00:07:57.450" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""OBS""" start="00:07:59.850" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""By the way, here's how OBS works:""" start="00:07:59.850" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""OBS""" start="00:07:59.850" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""By the way, here's how OBS works:""" start="00:07:59.850" video="mainVideo-uni" id="subtitle"]] [[!template text="""I can go from different "scenes"""" start="00:08:02.830" video="mainVideo-uni" id="subtitle"]] [[!template text="""So I can just do just me,""" start="00:08:04.470" video="mainVideo-uni" id="subtitle"]] [[!template text="""or I can show you the slides,""" start="00:08:06.070" video="mainVideo-uni" id="subtitle"]] @@ -241,9 +226,7 @@ [[!template text="""zoom and what page I'm on,""" start="00:08:23.170" video="mainVideo-uni" id="subtitle"]] [[!template text="""but you don't have to see that.""" start="00:08:24.830" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Firefox""" start="00:08:27.190" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""Okay. Firefox, boy, I do a lot of this.""" start="00:08:27.190" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Firefox""" start="00:08:27.190" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""Okay. Firefox, boy, I do a lot of this.""" start="00:08:27.190" video="mainVideo-uni" id="subtitle"]] [[!template text="""All of the quizzes,""" start="00:08:32.390" video="mainVideo-uni" id="subtitle"]] [[!template text="""quizzes and exams in my courses""" start="00:08:36.790" video="mainVideo-uni" id="subtitle"]] [[!template text="""are online on this""" start="00:08:38.460" video="mainVideo-uni" id="subtitle"]] @@ -293,9 +276,7 @@ [[!template text="""is called the major groove."""" start="00:10:23.420" video="mainVideo-uni" id="subtitle"]] [[!template text="""And students couldn't see it.""" start="00:10:24.420" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Animation""" start="00:10:26.060" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""But if you animate it—""" start="00:10:26.060" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Animation""" start="00:10:26.060" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""But if you animate it—""" start="00:10:26.060" video="mainVideo-uni" id="subtitle"]] [[!template text="""if you just have it""" start="00:10:29.440" video="mainVideo-uni" id="subtitle"]] [[!template text="""move, the apparent movement,""" start="00:10:30.280" video="mainVideo-uni" id="subtitle"]] [[!template text="""It's not really movement,""" start="00:10:33.320" video="mainVideo-uni" id="subtitle"]] @@ -308,9 +289,7 @@ [[!template text="""image just can't provide""" start="00:10:47.220" video="mainVideo-uni" id="subtitle"]] [[!template text="""that understanding, while moving image can.""" start="00:10:48.320" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Emacs""" start="00:10:55.790" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""I use Emacs to look at text.""" start="00:10:55.790" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Emacs""" start="00:10:55.790" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""I use Emacs to look at text.""" start="00:10:55.790" video="mainVideo-uni" id="subtitle"]] [[!template text="""Where's Emacs? Here's Emacs! We read""" start="00:10:58.180" video="mainVideo-uni" id="subtitle"]] [[!template text="""Vonnegut in this English class that I""" start="00:11:02.520" video="mainVideo-uni" id="subtitle"]] [[!template text="""teach and I'm going to tab over to Emacs.""" start="00:11:04.280" video="mainVideo-uni" id="subtitle"]] @@ -330,9 +309,7 @@ [[!template text="""to do on the chalkboard.""" start="00:11:36.820" video="mainVideo-uni" id="subtitle"]] [[!template text="""So Emacs is really good for that sort of thing.""" start="00:11:39.400" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Making slides and handouts with Org Mode""" start="00:11:42.260" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""Mostly what I use Emacs for is not to""" start="00:11:42.260" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Making slides and handouts with Org Mode""" start="00:11:42.260" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""Mostly what I use Emacs for is not to""" start="00:11:42.260" video="mainVideo-uni" id="subtitle"]] [[!template text="""present but to make slides and handouts.""" start="00:11:45.380" video="mainVideo-uni" id="subtitle"]] [[!template text="""Okay. Again, the thing that I want to""" start="00:11:50.340" video="mainVideo-uni" id="subtitle"]] [[!template text="""stress is that the slides""" start="00:11:52.360" video="mainVideo-uni" id="subtitle"]] @@ -375,9 +352,7 @@ [[!template text="""PDF documents like the handouts as""" start="00:13:15.060" video="mainVideo-uni" id="subtitle"]] [[!template text="""LaTeX, and slides like these through Beamer export.""" start="00:13:17.000" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Pedagogy first""" start="00:13:22.680" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""The approach is to think""" start="00:13:22.680" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Pedagogy first""" start="00:13:22.680" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""The approach is to think""" start="00:13:22.680" video="mainVideo-uni" id="subtitle"]] [[!template text="""about pedagogy rather than thinking""" start="00:13:24.920" video="mainVideo-uni" id="subtitle"]] [[!template text="""about software or thinking""" start="00:13:26.900" video="mainVideo-uni" id="subtitle"]] [[!template text="""about graphic design.""" start="00:13:28.280" video="mainVideo-uni" id="subtitle"]] @@ -444,9 +419,7 @@ [[!template text="""So streamlining this workflow""" start="00:16:12.050" video="mainVideo-uni" id="subtitle"]] [[!template text="""has been really helpful.""" start="00:16:15.730" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""org-teach""" start="00:16:17.790" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""All right, so let me show""" start="00:16:17.790" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""org-teach""" start="00:16:17.790" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""All right, so let me show""" start="00:16:17.790" video="mainVideo-uni" id="subtitle"]] [[!template text="""you what I've developed.""" start="00:16:19.310" video="mainVideo-uni" id="subtitle"]] [[!template text="""Let's look at the Org doc.""" start="00:16:21.650" video="mainVideo-uni" id="subtitle"]] [[!template text="""Okay. So what you see is you have""" start="00:16:24.490" video="mainVideo-uni" id="subtitle"]] @@ -523,16 +496,12 @@ [[!template text="""For an entire slide being an image,""" start="00:19:32.450" video="mainVideo-uni" id="subtitle"]] [[!template text="""you can use this image-slide macro.""" start="00:19:35.650" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Blank slides""" start="00:19:38.330" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""I often put in blank slides to""" start="00:19:38.330" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Blank slides""" start="00:19:38.330" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""I often put in blank slides to""" start="00:19:38.330" video="mainVideo-uni" id="subtitle"]] [[!template text="""remind myself that this is a time to stop.""" start="00:19:41.130" video="mainVideo-uni" id="subtitle"]] [[!template text="""Often there's something for me to""" start="00:19:43.270" video="mainVideo-uni" id="subtitle"]] [[!template text="""draw here with the stylus.""" start="00:19:44.790" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Animations""" start="00:19:50.050" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""I often use— it used to be Powerpoint,""" start="00:19:50.050" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Animations""" start="00:19:50.050" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""I often use— it used to be Powerpoint,""" start="00:19:50.050" video="mainVideo-uni" id="subtitle"]] [[!template text="""now I use LibreOffice Impress—to make""" start="00:19:53.150" video="mainVideo-uni" id="subtitle"]] [[!template text="""multi slide animations like""" start="00:19:56.070" video="mainVideo-uni" id="subtitle"]] [[!template text="""the sphere and the donut and the GI tract.""" start="00:19:58.310" video="mainVideo-uni" id="subtitle"]] @@ -543,9 +512,7 @@ [[!template text="""Just into the slides, not into""" start="00:20:14.470" video="mainVideo-uni" id="subtitle"]] [[!template text="""the handouts with this macro.""" start="00:20:16.670" video="mainVideo-uni" id="subtitle"]] -[[!template new="1" text="""Conclusion""" start="00:20:19.270" video="mainVideo-uni" id="subtitle"]] - -[[!template text="""I hope that you find this useful.""" start="00:20:19.270" video="mainVideo-uni" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:20:19.270" video="mainVideo-uni" id="subtitle"]]</div>[[!template text="""I hope that you find this useful.""" start="00:20:19.270" video="mainVideo-uni" id="subtitle"]] [[!template text="""I hope you share it with""" start="00:20:21.490" video="mainVideo-uni" id="subtitle"]] [[!template text="""other educators that you know.""" start="00:20:22.450" video="mainVideo-uni" id="subtitle"]] [[!template text="""Here is the sourcehut repo,""" start="00:20:24.090" video="mainVideo-uni" id="subtitle"]] @@ -561,8 +528,7 @@ [[!template text="""all of the people behind it.""" start="00:20:50.090" video="mainVideo-uni" id="subtitle"]] [[!template text="""Thanks everybody.""" start="00:20:51.330" video="mainVideo-uni" id="subtitle"]] -<a name="uni-qanda-transcript"></a> -# Q&A transcript (unedited) +</div><div class="transcript transcript-qanda"><a name="uni-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: You can hear us. Can you perhaps do it for""" start="00:00:00.000" video="qanda-uni" id="subtitle"]] [[!template text="""me? Great. The little angels in the""" start="00:00:01.839" video="qanda-uni" id="subtitle"]] @@ -965,7 +931,7 @@ [[!template text="""its document code or output part can be""" start="00:22:14.440" video="qanda-uni" id="subtitle"]] [[!template text="""exported in a variety of forms.""" start="00:22:16.980" video="qanda-uni" id="subtitle"]] -Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20uni%3A%20Authoring%20and%20presenting%20university%20courses%20with%20Emacs%20and%20a%20full%20libre%20software%20stack) +</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20uni%3A%20Authoring%20and%20presenting%20university%20courses%20with%20Emacs%20and%20a%20full%20libre%20software%20stack) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/uni-before.md b/2023/info/uni-before.md index 6ac65fe2..2f625597 100644 --- a/2023/info/uni-before.md +++ b/2023/info/uni-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 21-min talk; Q&A: BigBlueButton conference room +Format: 21-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="uni-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="uni-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-uni"><source src="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-uni" data=""" 00:00.000 Introduction 01:12.440 Presenting 01:47.820 Hardware @@ -26,10 +26,10 @@ Status: Q&A to be extracted from the room recordings 19:50.050 Animations 20:19.270 Conclusion -"""]]<div></div>Duration: 20:53 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.opus">Download --main.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.webm">Download --main.webm (283MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--slides.pdf">Download --slides.pdf (26MB)</a></li><li><a href="https://toobnix.org/w/mAnNW7jnPq5qhUPH2dzVQf">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 20:53 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-uni">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=dfdd18fb34bc59b228ab37bc22b0e5ce3b96437b-1701525315024">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.opus">Download --main.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--main.webm">Download --main.webm (283MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--slides.pdf">Download --slides.pdf (26MB)</a></li><li><a href="https://toobnix.org/w/mAnNW7jnPq5qhUPH2dzVQf">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=cklJ58i-HUY">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="uni-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="uni-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.opus"></audio></div><div></div>Duration: 22:32 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.opus">Download --answers.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.webm">Download --answers.webm (56MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-uni"><source src="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-uni-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.opus"></audio></div><div></div>Duration: 22:32 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-uni">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=dfdd18fb34bc59b228ab37bc22b0e5ce3b96437b-1701525315024">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.opus">Download --answers.opus (14MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-uni--authoring-and-presenting-university-courses-with-emacs-and-a-full-libre-software-stack--james-howell--answers.webm">Download --answers.webm (56MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/uni-nav.md b/2023/info/uni-nav.md index 6694d47e..14adb722 100644 --- a/2023/info/uni-nav.md +++ b/2023/info/uni-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/adventure">An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp</a> Next by track: <a href="/2023/talks/teaching">Teaching computer and data science with literate programming tools</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/voice-after.md b/2023/info/voice-after.md index 32de9a2c..136fafce 100644 --- a/2023/info/voice-after.md +++ b/2023/info/voice-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="voice-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="voice-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""Hi, I'm Blaine Mooers. I'm an associate professor""" start="00:00:00.000" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""Hi, I'm Blaine Mooers. I'm an associate professor""" start="00:00:00.000" video="mainVideo-voice" id="subtitle"]] [[!template text="""of biochemistry at the University of Oklahoma""" start="00:00:04.360" video="mainVideo-voice" id="subtitle"]] [[!template text="""Health Sciences Center in Oklahoma City.""" start="00:00:06.520" video="mainVideo-voice" id="subtitle"]] [[!template text="""My lab studies the role of RNA structure in RNA editing.""" start="00:00:09.320" video="mainVideo-voice" id="subtitle"]] @@ -19,9 +16,7 @@ [[!template text="""I was seeking ways of using voice computing""" start="00:00:29.720" video="mainVideo-voice" id="subtitle"]] [[!template text="""to try to enhance my productivity.""" start="00:00:33.040" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Three activities in voice computing""" start="00:00:37.400" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""I divide voice computing into three activities,""" start="00:00:37.400" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Three activities in voice computing""" start="00:00:37.400" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""I divide voice computing into three activities,""" start="00:00:37.400" video="mainVideo-voice" id="subtitle"]] [[!template text="""speech-to-text or dictation, speech-to-commands,""" start="00:00:41.320" video="mainVideo-voice" id="subtitle"]] [[!template text="""and speech-to-code. I'll be talking about""" start="00:00:44.960" video="mainVideo-voice" id="subtitle"]] [[!template text="""speech-to-text and speech-to-commands today""" start="00:00:47.640" video="mainVideo-voice" id="subtitle"]] @@ -29,9 +24,7 @@ [[!template text="""that are probably most broadly applicable""" start="00:00:55.080" video="mainVideo-voice" id="subtitle"]] [[!template text="""to the workflows of people attending this conference.""" start="00:00:57.320" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Talk is not about ... and about ...""" start="00:01:02.560" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""This talk will not be about Emacspeak.""" start="00:01:02.560" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Talk is not about ... and about ...""" start="00:01:02.560" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""This talk will not be about Emacspeak.""" start="00:01:02.560" video="mainVideo-voice" id="subtitle"]] [[!template text="""This is a venerated program for converting text to speech.""" start="00:01:06.800" video="mainVideo-voice" id="subtitle"]] [[!template text="""We're talking about the flow of information""" start="00:01:11.360" video="mainVideo-voice" id="subtitle"]] [[!template text="""in the opposite direction, speech-to-text.""" start="00:01:13.320" video="mainVideo-voice" id="subtitle"]] @@ -46,9 +39,7 @@ [[!template text="""with the speech-to-commands,""" start="00:01:44.800" video="mainVideo-voice" id="subtitle"]] [[!template text="""and it's also great at speech-to-code.""" start="00:01:47.560" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Motivations""" start="00:01:53.520" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""The motivations are, obviously, as I mentioned already,""" start="00:01:53.520" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Motivations""" start="00:01:53.520" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""The motivations are, obviously, as I mentioned already,""" start="00:01:53.520" video="mainVideo-voice" id="subtitle"]] [[!template text="""for improved productivity.""" start="00:01:57.240" video="mainVideo-voice" id="subtitle"]] [[!template text="""So, if you're a fast typist""" start="00:01:59.160" video="mainVideo-voice" id="subtitle"]] [[!template text="""who types faster than they can speak,""" start="00:02:00.400" video="mainVideo-voice" id="subtitle"]] @@ -79,9 +70,7 @@ [[!template text="""thereby giving your lower body a break""" start="00:03:25.000" video="mainVideo-voice" id="subtitle"]] [[!template text="""and your eyes a break.""" start="00:03:27.780" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Data""" start="00:03:33.240" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""I'm not God, so I have to bring data.""" start="00:03:33.240" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Data""" start="00:03:33.240" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""I'm not God, so I have to bring data.""" start="00:03:33.240" video="mainVideo-voice" id="subtitle"]] [[!template text="""I have two data points here,""" start="00:03:35.640" video="mainVideo-voice" id="subtitle"]] [[!template text="""the number of words that I wrote in June and July this year""" start="00:03:38.040" video="mainVideo-voice" id="subtitle"]] [[!template text="""and in September and October.""" start="00:03:42.400" video="mainVideo-voice" id="subtitle"]] @@ -89,9 +78,7 @@ [[!template text="""in the middle of August. As you can see,""" start="00:03:49.520" video="mainVideo-voice" id="subtitle"]] [[!template text="""I got an over three-fold increase in my output.""" start="00:03:53.920" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Voice In in the Chrome Store""" start="00:03:58.680" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""So this is the Chrome store website for voice-in.""" start="00:03:58.680" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Voice In in the Chrome Store""" start="00:03:58.680" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""So this is the Chrome store website for voice-in.""" start="00:03:58.680" video="mainVideo-voice" id="subtitle"]] [[!template text="""It's only available for Google Chrome.""" start="00:04:07.120" video="mainVideo-voice" id="subtitle"]] [[!template text="""You just hit the install button to install it.""" start="00:04:11.120" video="mainVideo-voice" id="subtitle"]] [[!template text="""To configure it, you need to select a language.""" start="00:04:13.240" video="mainVideo-voice" id="subtitle"]] @@ -99,9 +86,7 @@ [[!template text="""and it supports about a dozen different dialects of English,""" start="00:04:19.560" video="mainVideo-voice" id="subtitle"]] [[!template text="""including Australian.""" start="00:04:23.120" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Works in web pages with text areas""" start="00:04:25.628" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""It works on web pages with text areas,""" start="00:04:25.628" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Works in web pages with text areas""" start="00:04:25.628" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""It works on web pages with text areas,""" start="00:04:25.628" video="mainVideo-voice" id="subtitle"]] [[!template text="""so it works. I use it regularly""" start="00:04:29.960" video="mainVideo-voice" id="subtitle"]] [[!template text="""on Overleaf and 750words.com,""" start="00:04:33.320" video="mainVideo-voice" id="subtitle"]] [[!template text="""a distraction-free environment for writing.""" start="00:04:37.880" video="mainVideo-voice" id="subtitle"]] @@ -114,9 +99,7 @@ [[!template text="""when the cursor is on a web page that has a text area.""" start="00:05:04.160" video="mainVideo-voice" id="subtitle"]] [[!template text="""So [the presence of a text area is] the main limiting factor.""" start="00:05:09.120" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Built-in commands in Voice In Plus""" start="00:05:16.880" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""[Voice In] has a number of built-in commands.""" start="00:05:16.880" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Built-in commands in Voice In Plus""" start="00:05:16.880" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""[Voice In] has a number of built-in commands.""" start="00:05:16.880" video="mainVideo-voice" id="subtitle"]] [[!template text="""You can turn it off by saying "stop dictation".""" start="00:05:19.160" video="mainVideo-voice" id="subtitle"]] [[!template text="""It doesn't distinguish between""" start="00:05:24.880" video="mainVideo-voice" id="subtitle"]] [[!template text="""a command mode and a dictation mode.""" start="00:05:26.120" video="mainVideo-voice" id="subtitle"]] @@ -139,9 +122,7 @@ [[!template text="""I also provide an Elisp version of this quiz,""" start="00:06:32.160" video="mainVideo-voice" id="subtitle"]] [[!template text="""but it's a little slower to operate.""" start="00:06:35.600" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Common errors made by Voice In""" start="00:06:41.740" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""These are some common errors""" start="00:06:41.740" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Common errors made by Voice In""" start="00:06:41.740" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""These are some common errors""" start="00:06:41.740" video="mainVideo-voice" id="subtitle"]] [[!template text="""that I've run into with Voice In.""" start="00:06:43.400" video="mainVideo-voice" id="subtitle"]] [[!template text="""It likes to contract statements like "I will" into "I'll".""" start="00:06:45.400" video="mainVideo-voice" id="subtitle"]] [[!template text="""Contractions are not used in formal writing,""" start="00:06:50.320" video="mainVideo-voice" id="subtitle"]] @@ -165,9 +146,7 @@ [[!template text="""in that it doesn't have a command mode""" start="00:08:07.120" video="mainVideo-voice" id="subtitle"]] [[!template text="""that's separate from a dictation mode.""" start="00:08:08.920" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Custom speech-to-text commands""" start="00:08:14.760" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""You can set up through a very easy-to-use GUI""" start="00:08:14.760" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Custom speech-to-text commands""" start="00:08:14.760" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""You can set up through a very easy-to-use GUI""" start="00:08:14.760" video="mainVideo-voice" id="subtitle"]] [[!template text="""custom voice commands mapped to what you want inserted,""" start="00:08:20.320" video="mainVideo-voice" id="subtitle"]] [[!template text="""so this is how misinterpreted words can be corrected.""" start="00:08:26.960" video="mainVideo-voice" id="subtitle"]] [[!template text="""You just map the misinterpreted word to the intended word.""" start="00:08:32.400" video="mainVideo-voice" id="subtitle"]] @@ -187,9 +166,7 @@ [[!template text="""that you use frequently. All fields""" start="00:09:45.040" video="mainVideo-voice" id="subtitle"]] [[!template text="""have certain key references for certain methods or topics.""" start="00:09:46.880" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Custom speech-to-commands""" start="00:09:59.420" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""Then it has a set of commands that you can customize""" start="00:09:59.420" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Custom speech-to-commands""" start="00:09:59.420" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""Then it has a set of commands that you can customize""" start="00:09:59.420" video="mainVideo-voice" id="subtitle"]] [[!template text="""for the purpose of speech-to-commands""" start="00:10:05.080" video="mainVideo-voice" id="subtitle"]] [[!template text="""to get the computer to do something""" start="00:10:08.200" video="mainVideo-voice" id="subtitle"]] [[!template text="""like open up a specific website or save the current writing.""" start="00:10:09.680" video="mainVideo-voice" id="subtitle"]] @@ -198,9 +175,7 @@ [[!template text="""You can change the language [with "lang:"],""" start="00:10:27.760" video="mainVideo-voice" id="subtitle"]] [[!template text="""and you can change the case of the text [with "case:"].""" start="00:10:28.100" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Introducing Talon Voice""" start="00:10:37.540" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""But the speech-to-command repertoire is quite limited""" start="00:10:37.540" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Introducing Talon Voice""" start="00:10:37.540" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""But the speech-to-command repertoire is quite limited""" start="00:10:37.540" video="mainVideo-voice" id="subtitle"]] [[!template text="""in Voice In, so it's now time to pick up on Talon Voice.""" start="00:10:41.040" video="mainVideo-voice" id="subtitle"]] [[!template text="""This is an open source project. It's free.""" start="00:10:49.760" video="mainVideo-voice" id="subtitle"]] [[!template text="""It is highly configurable via TalonScript,""" start="00:10:54.120" video="mainVideo-voice" id="subtitle"]] @@ -229,9 +204,7 @@ [[!template text="""At least that's the text editor""" start="00:12:20.560" video="mainVideo-voice" id="subtitle"]] [[!template text="""for which he's primarily developing Cursorless.""" start="00:12:23.360" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Talon GUI""" start="00:12:28.400" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""I followed the [install] protocol outlined by Tara Roys.""" start="00:12:28.400" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Talon GUI""" start="00:12:28.400" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""I followed the [install] protocol outlined by Tara Roys.""" start="00:12:28.400" video="mainVideo-voice" id="subtitle"]] [[!template text="""She has a collection of tutorials""" start="00:12:35.520" video="mainVideo-voice" id="subtitle"]] [[!template text="""on YouTube as well as on GitHub that are quite helpful.""" start="00:12:38.760" video="mainVideo-voice" id="subtitle"]] [[!template text="""I followed her tutorial for installing""" start="00:12:44.600" video="mainVideo-voice" id="subtitle"]] @@ -254,9 +227,7 @@ [[!template text="""You do not have to restart Talon""" start="00:13:55.080" video="mainVideo-voice" id="subtitle"]] [[!template text="""to get the change to take effect.""" start="00:13:57.600" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Talon file with web scope""" start="00:14:02.540" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""This is an example of a Talon file.""" start="00:14:02.540" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Talon file with web scope""" start="00:14:02.540" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""This is an example of a Talon file.""" start="00:14:02.540" video="mainVideo-voice" id="subtitle"]] [[!template text="""It has two components. It has a header above the dash that describes""" start="00:14:04.760" video="mainVideo-voice" id="subtitle"]] [[!template text="""the scope of the commands contained below the dash.""" start="00:14:10.500" video="mainVideo-voice" id="subtitle"]] [[!template text="""Each command is separated by a blank line.""" start="00:14:14.920" video="mainVideo-voice" id="subtitle"]] @@ -279,9 +250,7 @@ [[!template text="""then the commands in the file will apply in all situations,""" start="00:15:29.600" video="mainVideo-voice" id="subtitle"]] [[!template text="""in all modes.""" start="00:15:32.640" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Terminals on remote and virtual machines""" start="00:15:34.015" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""Here we have two restrictions.""" start="00:15:34.015" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Terminals on remote and virtual machines""" start="00:15:34.015" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""Here we have two restrictions.""" start="00:15:34.015" video="mainVideo-voice" id="subtitle"]] [[!template text="""These commands will only work""" start="00:15:36.960" video="mainVideo-voice" id="subtitle"]] [[!template text="""when using the iTerm2 [ccc] terminal emulator for the Mac,""" start="00:15:38.960" video="mainVideo-voice" id="subtitle"]] [[!template text="""and then only when the title of the window in iTerm2""" start="00:15:42.960" video="mainVideo-voice" id="subtitle"]] @@ -301,9 +270,7 @@ [[!template text="""here's a similar setup for interacting with""" start="00:16:43.800" video="mainVideo-voice" id="subtitle"]] [[!template text="""a Ubuntu virtual machine.""" start="00:16:46.800" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Recommendations""" start="00:16:52.500" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""In terms of picking up voice computing,""" start="00:16:52.500" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Recommendations""" start="00:16:52.500" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""In terms of picking up voice computing,""" start="00:16:52.500" video="mainVideo-voice" id="subtitle"]] [[!template text="""these are my recommendations.""" start="00:16:55.920" video="mainVideo-voice" id="subtitle"]] [[!template text="""You're going to run into more errors""" start="00:16:57.480" video="mainVideo-voice" id="subtitle"]] [[!template text="""than you may like initially,""" start="00:16:59.760" video="mainVideo-voice" id="subtitle"]] @@ -328,9 +295,7 @@ [[!template text="""And I also have [posted] a quiz of 600 questions""" start="00:18:07.480" video="mainVideo-voice" id="subtitle"]] [[!template text="""about some basic Talon commands.""" start="00:18:12.960" video="mainVideo-voice" id="subtitle"]] -[[!template new="1" text="""Acknowledgements""" start="00:18:17.720" video="mainVideo-voice" id="subtitle"]] - -[[!template text="""I'd like to thank the people who've helped me out""" start="00:18:17.720" video="mainVideo-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Acknowledgements""" start="00:18:17.720" video="mainVideo-voice" id="subtitle"]]</div>[[!template text="""I'd like to thank the people who've helped me out""" start="00:18:17.720" video="mainVideo-voice" id="subtitle"]] [[!template text="""on the Talon Slack channel""" start="00:18:21.000" video="mainVideo-voice" id="subtitle"]] [[!template text="""and members of the Oklahoma Data Science Workshop""" start="00:18:22.160" video="mainVideo-voice" id="subtitle"]] [[!template text="""where I gave an hour-long talk on this topic""" start="00:18:25.800" video="mainVideo-voice" id="subtitle"]] @@ -341,8 +306,7 @@ [[!template text="""And I thank these grant funding agencies""" start="00:18:42.660" video="mainVideo-voice" id="subtitle"]] [[!template text="""for supporting my work. I'll be happy to take any questions.""" start="00:18:45.120" video="mainVideo-voice" id="subtitle"]] -<a name="voice-qanda-transcript"></a> -# Q&A transcript (unedited) +</div><div class="transcript transcript-qanda"><a name="voice-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: Dictation.""" start="00:00:00.480" video="qanda-voice" id="subtitle"]] [[!template text="""[Speaker 1]: Right. All right I think we are live now.""" start="00:00:06.020" video="qanda-voice" id="subtitle"]] @@ -688,9 +652,7 @@ [[!template text="""times, but when it's working,""" start="00:21:48.760" video="qanda-voice" id="subtitle"]] [[!template text="""it's wonderful. Yep.""" start="00:21:54.740" video="qanda-voice" id="subtitle"]] -[[!template new="1" text="""Start of section to review""" start="00:21:59.540" video="qanda-voice" id="subtitle"]] - -[[!template text="""[Speaker 2]: Good purpose of computers is all the""" start="00:21:59.540" video="qanda-voice" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Start of section to review""" start="00:21:59.540" video="qanda-voice" id="subtitle"]]</div>[[!template text="""[Speaker 2]: Good purpose of computers is all the""" start="00:21:59.540" video="qanda-voice" id="subtitle"]] [[!template text="""computers run the same code,""" start="00:22:01.100" video="qanda-voice" id="subtitle"]] [[!template text="""so that people, you know,""" start="00:22:03.460" video="qanda-voice" id="subtitle"]] [[!template text="""a lot of people work on the same thing and""" start="00:22:05.740" video="qanda-voice" id="subtitle"]] @@ -1467,7 +1429,7 @@ [[!template text="""Enjoy the rest of the meeting.""" start="01:06:17.760" video="qanda-voice" id="subtitle"]] [[!template text="""[Speaker 2]: Will do.""" start="01:06:19.280" video="qanda-voice" id="subtitle"]] -Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20voice%3A%20Enhancing%20productivity%20with%20voice%20computing) +</div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20voice%3A%20Enhancing%20productivity%20with%20voice%20computing) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/voice-before.md b/2023/info/voice-before.md index 6f5b9b90..9ec5c829 100644 --- a/2023/info/voice-before.md +++ b/2023/info/voice-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 19-min talk; Q&A: BigBlueButton conference room +Format: 19-min talk ; Q&A: BigBlueButton conference room Status: TO_INDEX_QA @@ -9,7 +9,7 @@ Status: TO_INDEX_QA # Talk -<div class="vid"><video controls preload="none" id="voice-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="voice-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-voice"><source src="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-voice" data=""" 00:00.000 Introduction 00:37.400 Three activities in voice computing 01:02.560 Talk is not about ... and about ... @@ -28,10 +28,10 @@ Status: TO_INDEX_QA 16:52.500 Recommendations 18:17.720 Acknowledgements -"""]]<div></div>Duration: 18:49 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.opus">Download --main.opus (9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/vYHj7iSYhUbTxDv93NvzzY">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 18:49 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-voice">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=8ddd81ef601d78f7b9ac2093f3700a29b5595ff3-1701529315435">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.opus">Download --main.opus (9MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://toobnix.org/w/vYHj7iSYhUbTxDv93NvzzY">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=Z7l1ImjXOWM">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="voice-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="voice-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.opus"></audio></div><div></div>Duration: 1:07:47 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.opus">Download --answers.opus (34MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.webm">Download --answers.webm (205MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-voice"><source src="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-voice-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.opus"></audio></div><div></div>Duration: 1:07:47 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-voice">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=8ddd81ef601d78f7b9ac2093f3700a29b5595ff3-1701529315435">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.opus">Download --answers.opus (34MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-voice--enhancing-productivity-with-voice-computing--blaine-mooers--answers.webm">Download --answers.webm (205MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/voice-nav.md b/2023/info/voice-nav.md index 9fedf97e..ff560e36 100644 --- a/2023/info/voice-nav.md +++ b/2023/info/voice-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/matplotllm">MatplotLLM, iterative natural language data visualization in org-babel</a> Next by track: <a href="/2023/talks/llm">LLM clients in Emacs, functionality and standardization</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/web-after.md b/2023/info/web-after.md index 96ebb81b..0e6730c2 100644 --- a/2023/info/web-after.md +++ b/2023/info/web-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="web-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="web-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Overview""" start="00:00:00.000" video="mainVideo-web" id="subtitle"]] - -[[!template text="""Hello, I am Yuchen, and I will be talking about""" start="00:00:00.000" video="mainVideo-web" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Overview""" start="00:00:00.000" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""Hello, I am Yuchen, and I will be talking about""" start="00:00:00.000" video="mainVideo-web" id="subtitle"]] [[!template text="""how Emacs may be used to save user freedom on the web.""" start="00:00:03.200" video="mainVideo-web" id="subtitle"]] [[!template text="""I will begin by describing the background issues,""" start="00:00:06.840" video="mainVideo-web" id="subtitle"]] [[!template text="""followed by solutions outside of Emacs.""" start="00:00:09.680" video="mainVideo-web" id="subtitle"]] @@ -20,9 +17,7 @@ [[!template text="""and get a web app for free,""" start="00:00:29.320" video="mainVideo-web" id="subtitle"]] [[!template text="""as well as using Emacs as a Firefox extension.""" start="00:00:30.760" video="mainVideo-web" id="subtitle"]] -[[!template new="1" text="""Background problems""" start="00:00:35.680" video="mainVideo-web" id="subtitle"]] - -[[!template text="""OK, let's now move on to""" start="00:00:35.680" video="mainVideo-web" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Background problems""" start="00:00:35.680" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""OK, let's now move on to""" start="00:00:35.680" video="mainVideo-web" id="subtitle"]] [[!template text="""the background issues for this topic.""" start="00:00:37.160" video="mainVideo-web" id="subtitle"]] [[!template text="""Many of you probably already know what is free software.""" start="00:00:39.560" video="mainVideo-web" id="subtitle"]] [[!template text="""It is software that respects four user freedoms,""" start="00:00:42.640" video="mainVideo-web" id="subtitle"]] @@ -120,9 +115,7 @@ [[!template text="""Wouldn't it be nice to use a photo editing web application,""" start="00:05:25.840" video="mainVideo-web" id="subtitle"]] [[!template text="""but without the web?""" start="00:05:28.680" video="mainVideo-web" id="subtitle"]] -[[!template new="1" text="""Solutions outside of Emacs""" start="00:05:31.940" video="mainVideo-web" id="subtitle"]] - -[[!template text="""Right, now let's move on to solutions outside of Emacs""" start="00:05:31.940" video="mainVideo-web" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Solutions outside of Emacs""" start="00:05:31.940" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""Right, now let's move on to solutions outside of Emacs""" start="00:05:31.940" video="mainVideo-web" id="subtitle"]] [[!template text="""that tackle these problems.""" start="00:05:36.401" video="mainVideo-web" id="subtitle"]] [[!template text="""There are generally two ways to fix this issue.""" start="00:05:39.040" video="mainVideo-web" id="subtitle"]] [[!template text="""One is blocking non-free JavaScript,""" start="00:05:42.960" video="mainVideo-web" id="subtitle"]] @@ -197,14 +190,10 @@ trivial or non-trivial.""" start="00:06:44.240" video="mainVideo-web" id="subtit [[!template text="""to redirect to free non-web clients,""" start="00:09:39.700" video="mainVideo-web" id="subtitle"]] [[!template text="""for example by opening YouTube links with MPV.""" start="00:09:42.160" video="mainVideo-web" id="subtitle"]] -[[!template new="1" text="""Emacs solutions""" start="00:09:46.480" video="mainVideo-web" id="subtitle"]] - -[[!template text="""Now let us move to Emacs-based solutions.""" start="00:09:46.480" video="mainVideo-web" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Emacs solutions""" start="00:09:46.480" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""Now let us move to Emacs-based solutions.""" start="00:09:46.480" video="mainVideo-web" id="subtitle"]] [[!template text="""They are based on the same ideas but using Emacs.""" start="00:09:51.000" video="mainVideo-web" id="subtitle"]] -[[!template new="1" text="""Free clients in Emacs""" start="00:09:54.600" video="mainVideo-web" id="subtitle"]] - -[[!template text="""First, free clients in Emacs.""" start="00:09:54.600" video="mainVideo-web" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Free clients in Emacs""" start="00:09:54.600" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""First, free clients in Emacs.""" start="00:09:54.600" video="mainVideo-web" id="subtitle"]] [[!template text="""Basically alternative frontends written in Elisp.""" start="00:09:57.480" video="mainVideo-web" id="subtitle"]] [[!template text="""There are several advantages.""" start="00:10:00.640" video="mainVideo-web" id="subtitle"]] [[!template text="""For example, integration with other Emacs tools,""" start="00:10:03.360" video="mainVideo-web" id="subtitle"]] @@ -243,9 +232,7 @@ with ease.""" start="00:11:11.120" video="mainVideo-web" id="subtitle"]] [[!template text="""or even structure of the responses.""" start="00:12:34.560" video="mainVideo-web" id="subtitle"]] [[!template text="""This brings us to web browsers in Emacs.""" start="00:12:37.540" video="mainVideo-web" id="subtitle"]] -[[!template new="1" text="""Web browsers in Emacs""" start="00:12:43.021" video="mainVideo-web" id="subtitle"]] - -[[!template text="""Web browsers are universal clients""" start="00:12:43.021" video="mainVideo-web" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Web browsers in Emacs""" start="00:12:43.021" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""Web browsers are universal clients""" start="00:12:43.021" video="mainVideo-web" id="subtitle"]] [[!template text="""because all sites support browsers.""" start="00:12:45.160" video="mainVideo-web" id="subtitle"]] [[!template text="""So in a world of no JavaScript,""" start="00:12:47.200" video="mainVideo-web" id="subtitle"]] [[!template text="""there will be no need to write bespoke clients.""" start="00:12:48.920" video="mainVideo-web" id="subtitle"]] @@ -319,9 +306,7 @@ with ease.""" start="00:11:11.120" video="mainVideo-web" id="subtitle"]] [[!template text="""this could also make running non-free JavaScript easier,""" start="00:16:43.640" video="mainVideo-web" id="subtitle"]] [[!template text="""which is harmful to user freedom.""" start="00:16:46.560" video="mainVideo-web" id="subtitle"]] -[[!template new="1" text="""emacs-web-server - overview""" start="00:16:52.380" video="mainVideo-web" id="subtitle"]] - -[[!template text="""OK, let's move on to the idea""" start="00:16:52.380" video="mainVideo-web" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""emacs-web-server - overview""" start="00:16:52.380" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""OK, let's move on to the idea""" start="00:16:52.380" video="mainVideo-web" id="subtitle"]] [[!template text="""of running Emacs as a web server,""" start="00:16:54.240" video="mainVideo-web" id="subtitle"]] [[!template text="""so that Emacs client packages are web apps""" start="00:16:55.680" video="mainVideo-web" id="subtitle"]] [[!template text="""serving as alternative frontends.""" start="00:16:58.560" video="mainVideo-web" id="subtitle"]] @@ -338,9 +323,7 @@ with ease.""" start="00:11:11.120" video="mainVideo-web" id="subtitle"]] [[!template text="""emacs-web-server package is not something new,""" start="00:17:23.580" video="mainVideo-web" id="subtitle"]] [[!template text="""but seems to be underused in the community somehow.""" start="00:17:26.440" video="mainVideo-web" id="subtitle"]] -[[!template new="1" text="""emacs-web-server - hello emacs!""" start="00:17:30.380" video="mainVideo-web" id="subtitle"]] - -[[!template text="""OK, let's start with a simple example called hello-emacs.""" start="00:17:30.380" video="mainVideo-web" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""emacs-web-server - hello emacs!""" start="00:17:30.380" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""OK, let's start with a simple example called hello-emacs.""" start="00:17:30.380" video="mainVideo-web" id="subtitle"]] [[!template text="""It is pretty straightforward.""" start="00:17:33.360" video="mainVideo-web" id="subtitle"]] [[!template text="""Just require the web server feature""" start="00:17:35.240" video="mainVideo-web" id="subtitle"]] [[!template text="""and run ws-start to start a server process""" start="00:17:38.640" video="mainVideo-web" id="subtitle"]] @@ -355,9 +338,7 @@ with ease.""" start="00:11:11.120" video="mainVideo-web" id="subtitle"]] [[!template text="""Let's evaluate.""" start="00:18:10.840" video="mainVideo-web" id="subtitle"]] [[!template text="""Yep, it stopped.""" start="00:18:14.960" video="mainVideo-web" id="subtitle"]] -[[!template new="1" text="""emacs-web-server - yolo""" start="00:18:17.580" video="mainVideo-web" id="subtitle"]] - -[[!template text="""OK, now let's move on to something funny""" start="00:18:17.580" video="mainVideo-web" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""emacs-web-server - yolo""" start="00:18:17.580" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""OK, now let's move on to something funny""" start="00:18:17.580" video="mainVideo-web" id="subtitle"]] [[!template text="""that you should never run on the public web.""" start="00:18:20.000" video="mainVideo-web" id="subtitle"]] [[!template text="""I call it yolo.el.""" start="00:18:22.220" video="mainVideo-web" id="subtitle"]] [[!template text="""It uses htmlize""" start="00:18:23.920" video="mainVideo-web" id="subtitle"]] @@ -418,9 +399,7 @@ with ease.""" start="00:11:11.120" video="mainVideo-web" id="subtitle"]] [[!template text="""since htmlize, as you have noticed,""" start="00:23:00.080" video="mainVideo-web" id="subtitle"]] [[!template text="""faithfully reflects the theme used in Emacs.""" start="00:23:02.840" video="mainVideo-web" id="subtitle"]] -[[!template new="1" text="""emacs-web-server - emacs web framework""" start="00:23:07.940" video="mainVideo-web" id="subtitle"]] - -[[!template text="""Okay, so we know that yolo is unsafe""" start="00:23:07.940" video="mainVideo-web" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""emacs-web-server - emacs web framework""" start="00:23:07.940" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""Okay, so we know that yolo is unsafe""" start="00:23:07.940" video="mainVideo-web" id="subtitle"]] [[!template text="""and needs to be refined.""" start="00:23:10.339" video="mainVideo-web" id="subtitle"]] [[!template text="""In fact, we don't necessarily want""" start="00:23:11.540" video="mainVideo-web" id="subtitle"]] [[!template text="""to run Emacs on a web browser.""" start="00:23:13.440" video="mainVideo-web" id="subtitle"]] @@ -534,9 +513,7 @@ with ease.""" start="00:11:11.120" video="mainVideo-web" id="subtitle"]] [[!template text="""In any case, I think the package emacs-web-server""" start="00:29:32.380" video="mainVideo-web" id="subtitle"]] [[!template text="""could do with some performance enhancement.""" start="00:29:36.440" video="mainVideo-web" id="subtitle"]] -[[!template new="1" text="""Firefox with emacs for extensions""" start="00:29:40.420" video="mainVideo-web" id="subtitle"]] - -[[!template text="""Right. Because of the time constraints,""" start="00:29:40.420" video="mainVideo-web" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Firefox with emacs for extensions""" start="00:29:40.420" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""Right. Because of the time constraints,""" start="00:29:40.420" video="mainVideo-web" id="subtitle"]] [[!template text="""I will briefly touch one final idea,""" start="00:29:44.000" video="mainVideo-web" id="subtitle"]] [[!template text="""which is to use Emacs as a Firefox browser extension.""" start="00:29:45.760" video="mainVideo-web" id="subtitle"]] [[!template text="""We already have org-protocol,""" start="00:29:50.420" video="mainVideo-web" id="subtitle"]] @@ -572,17 +549,14 @@ with ease.""" start="00:11:11.120" video="mainVideo-web" id="subtitle"]] [[!template text="""to wait for responses from Emacs.""" start="00:31:17.120" video="mainVideo-web" id="subtitle"]] [[!template text="""Some further work, I suppose.""" start="00:31:20.200" video="mainVideo-web" id="subtitle"]] -[[!template new="1" text="""Thank you""" start="00:31:25.360" video="mainVideo-web" id="subtitle"]] - -[[!template text="""That concludes my talk.""" start="00:31:25.360" video="mainVideo-web" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Thank you""" start="00:31:25.360" video="mainVideo-web" id="subtitle"]]</div>[[!template text="""That concludes my talk.""" start="00:31:25.360" video="mainVideo-web" id="subtitle"]] [[!template text="""Thank you for your attention.""" start="00:31:28.254" video="mainVideo-web" id="subtitle"]] - +</div> Captioner: ken -<a name="web-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="web-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: 2 seconds. And I think we are live.""" start="00:00:04.740" video="qanda-web" id="subtitle"]] [[!template text="""Hi Yuchen, how are you doing?""" start="00:00:05.980" video="qanda-web" id="subtitle"]] @@ -844,7 +818,7 @@ Captioner: ken [[!template text="""[Speaker 0]: You are currently""" start="00:13:02.620" video="qanda-web" id="subtitle"]] [[!template text="""you""" start="00:13:15.260" video="qanda-web" id="subtitle"]] -Questions or comments? Please e-mail [id@ypei.org](mailto:id@ypei.org?subject=Comment%20for%20EmacsConf%202023%20web%3A%20Emacs%20saves%20the%20Web%20%28maybe%29) +</div>Questions or comments? Please e-mail [id@ypei.org](mailto:id@ypei.org?subject=Comment%20for%20EmacsConf%202023%20web%3A%20Emacs%20saves%20the%20Web%20%28maybe%29) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/web-before.md b/2023/info/web-before.md index ee6fcdab..0ee755f0 100644 --- a/2023/info/web-before.md +++ b/2023/info/web-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 32-min talk; Q&A: BigBlueButton conference room +Format: 32-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="web-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="web-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-web"><source src="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-web" data=""" 00:00.000 Overview 00:35.680 Background problems 05:31.940 Solutions outside of Emacs @@ -23,10 +23,10 @@ Status: Q&A to be extracted from the room recordings 29:40.420 Firefox with emacs for extensions 31:25.360 Thank you -"""]]<div></div>Duration: 31:33 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.opus">Download --main.opus (17MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.webm">Download --main.webm (53MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei.org">Download .org</a></li><li><a href="https://toobnix.org/w/fvzGU4cQQ2meZVKNGEHMht">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 31:33 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-web">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=feab521f1b6a6f4d2cef232eecd969786ddf81c1-1701634708093">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.opus">Download --main.opus (17MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--main.webm">Download --main.webm (53MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei.org">Download .org</a></li><li><a href="https://toobnix.org/w/fvzGU4cQQ2meZVKNGEHMht">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=kqOZwsylo48">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="web-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="web-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.opus"></audio></div><div></div>Duration: 15:53 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.opus">Download --answers.opus (7.6MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.webm">Download --answers.webm (18MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-web"><source src="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-web-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.opus"></audio></div><div></div>Duration: 15:53 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-web">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=feab521f1b6a6f4d2cef232eecd969786ddf81c1-1701634708093">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.opus">Download --answers.opus (7.6MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-web--emacs-saves-the-web-maybe--yuchen-pei--answers.webm">Download --answers.webm (18MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/web-nav.md b/2023/info/web-nav.md index 0afd6a12..34119aef 100644 --- a/2023/info/web-nav.md +++ b/2023/info/web-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/mentor">Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)</a> Next by track: <a href="/2023/talks/sharing">Sharing Emacs is Caring Emacs: Emacs education and why I embraced video</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/info/windows-after.md b/2023/info/windows-after.md index 4d8d8729..f4ce987e 100644 --- a/2023/info/windows-after.md +++ b/2023/info/windows-after.md @@ -1,8 +1,7 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="windows-mainVideo-transcript"></a> -# Transcript (unedited) +<div class="transcript transcript-mainVideo"><a name="windows-mainVideo-transcript"></a><h1>Transcript (unedited)</h1> [[!template text="""Oh, wow, how exciting. Well, maybe I should share something then. Um, well, thank you very much and welcome to uh""" start="00:00:00.000" video="mainVideo-windows" id="subtitle"]] [[!template text="""Welcome to my talk i'm a little distracted here""" start="00:00:11.440" video="mainVideo-windows" id="subtitle"]] @@ -786,8 +785,7 @@ [[!template text="""Okay, so we're clear on bbb here""" start="00:57:35.200" video="mainVideo-windows" id="subtitle"]] [[!template text="""Yep, I think so""" start="00:57:37.760" video="mainVideo-windows" id="subtitle"]] -<a name="windows-qanda-transcript"></a> -# Q&A transcript (unedited) +</div><div class="transcript transcript-qanda"><a name="windows-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""Oh, wow, how exciting. Well, maybe I should share something then. Um, well, thank you very much and""" start="00:00:00.000" video="qanda-windows" id="subtitle"]] [[!template text="""welcome to, uh, uh, welcome to my talk. I'm a little distracted here. I had a friend who came""" start="00:00:06.880" video="qanda-windows" id="subtitle"]] @@ -1254,7 +1252,7 @@ [[!template text="""and see like which big blue button room we're going to be in for closing. Okay. So we're clear""" start="00:57:31.600" video="qanda-windows" id="subtitle"]] [[!template text="""on BBB here? Yep. I think so.""" start="00:57:36.240" video="qanda-windows" id="subtitle"]] -Questions or comments? Please e-mail [corwin@bru.st](mailto:corwin@bru.st?subject=Comment%20for%20EmacsConf%202023%20windows%3A%20Windows%20into%20Freedom) +</div>Questions or comments? Please e-mail [corwin@bru.st](mailto:corwin@bru.st?subject=Comment%20for%20EmacsConf%202023%20windows%3A%20Windows%20into%20Freedom) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/windows-before.md b/2023/info/windows-before.md index a3de3379..c3914bf7 100644 --- a/2023/info/windows-before.md +++ b/2023/info/windows-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 58-min talk; Q&A: BigBlueButton conference room +Format: 58-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,10 +9,10 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="windows-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 57:48 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.opus">Download --main.opus (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.webm">Download --main.webm (80MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/4DeRkvJyKFdCBLWnHtsZW2">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-windows"><source src="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 57:48 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-windows">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=38dd7a08335a90614084b3d860f9da7e03414d8d-1701549705139">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.opus">Download --main.opus (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--main.webm">Download --main.webm (80MB)</a></li><li><a href="https://toobnix.org/w/4DeRkvJyKFdCBLWnHtsZW2">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=7aVgVd2_HTs">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><div>Listen to just the audio:<br /><audio controls preload="none" id="windows-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.opus">Download --answers.opus (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.vtt">Download --answers.vtt</a> (unedited)</li></ul></div></div> +<div class="vid qanda"><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-windows-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-windows">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=38dd7a08335a90614084b3d860f9da7e03414d8d-1701549705139">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.opus">Download --answers.opus (29MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-windows--windows-into-freedom--corwin-brust--answers.vtt">Download --answers.vtt</a> (unedited)</li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/windows-nav.md b/2023/info/windows-nav.md index 05dc3b17..d7ebb4cb 100644 --- a/2023/info/windows-nav.md +++ b/2023/info/windows-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/doc">Literate Documentation with Emacs and Org Mode</a> Next by track: <a href="/2023/talks/scheme">Bringing joy to Scheme programming</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/world-after.md b/2023/info/world-after.md index ce8bdc00..f8af282c 100644 --- a/2023/info/world-after.md +++ b/2023/info/world-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="world-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="world-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Draw and scribble in GNU Emacs""" start="00:00:00.780" video="mainVideo-world" id="subtitle"]] - -[[!template text="""Hello. In this video, we will look at""" start="00:00:00.780" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Draw and scribble in GNU Emacs""" start="00:00:00.780" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:00:00.780" video="mainVideo-world" id="subtitle"]] [[!template text="""drawing and scribbling in Emacs using SVG.""" start="00:00:02.900" video="mainVideo-world" id="subtitle"]] [[!template text="""Let's start with `canvas-mode`.""" start="00:00:07.167" video="mainVideo-world" id="subtitle"]] [[!template text="""We will define the width and the height.""" start="00:00:10.067" video="mainVideo-world" id="subtitle"]] @@ -50,9 +47,7 @@ [[!template text="""Finally, we look at ellipse.""" start="00:03:32.000" video="mainVideo-world" id="subtitle"]] [[!template text="""That's all for this video. Thanks!""" start="00:03:44.420" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""SVG Symbols library""" start="00:03:46.400" video="mainVideo-world" id="subtitle"]] - -[[!template text="""Hello. In this video, we will draw""" start="00:03:46.400" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""SVG Symbols library""" start="00:03:46.400" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will draw""" start="00:03:46.400" video="mainVideo-world" id="subtitle"]] [[!template text="""schematics using symbols from SVG library in Emacs.""" start="00:03:48.333" video="mainVideo-world" id="subtitle"]] [[!template text="""Press capital L to activate the symbol library""" start="00:03:52.067" video="mainVideo-world" id="subtitle"]] [[!template text="""that you can see on the right hand side,""" start="00:03:55.000" video="mainVideo-world" id="subtitle"]] @@ -71,9 +66,7 @@ [[!template text="""Let's connect other symbols too.""" start="00:05:00.033" video="mainVideo-world" id="subtitle"]] [[!template text="""That's all for this video. Thanks.""" start="00:05:16.633" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""GNU Emacs: A multimedia editor""" start="00:05:20.140" video="mainVideo-world" id="subtitle"]] - -[[!template text="""Hello. In this video, we will look at""" start="00:05:20.140" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""GNU Emacs: A multimedia editor""" start="00:05:20.140" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:05:20.140" video="mainVideo-world" id="subtitle"]] [[!template text="""some basic multimedia editing using Emacs.""" start="00:05:22.167" video="mainVideo-world" id="subtitle"]] [[!template text="""Let's start a media-edit session.""" start="00:05:24.933" video="mainVideo-world" id="subtitle"]] [[!template text="""Let's open a video file.""" start="00:05:27.460" video="mainVideo-world" id="subtitle"]] @@ -98,9 +91,7 @@ [[!template text="""video file in an external video player.""" start="00:07:21.900" video="mainVideo-world" id="subtitle"]] [[!template text="""That's all for this video. Thanks.""" start="00:07:57.160" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""Fill PDF form using GNU Emacs""" start="00:08:03.367" video="mainVideo-world" id="subtitle"]] - -[[!template text="""Hello. In this video, we will look at""" start="00:08:03.367" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Fill PDF form using GNU Emacs""" start="00:08:03.367" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:08:03.367" video="mainVideo-world" id="subtitle"]] [[!template text="""editing a PDF form using GNU Emacs.""" start="00:08:05.567" video="mainVideo-world" id="subtitle"]] [[!template text="""To start, we have to enable the annotation.""" start="00:08:09.760" video="mainVideo-world" id="subtitle"]] [[!template text="""Then we can use Tab to move forward and Shift+Tab""" start="00:08:13.840" video="mainVideo-world" id="subtitle"]] @@ -124,9 +115,7 @@ [[!template text="""You have city, France and Driving License selected.""" start="00:09:29.100" video="mainVideo-world" id="subtitle"]] [[!template text="""That's all for this video. Thanks.""" start="00:09:32.620" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""Desktop and window management in GNU Emacs""" start="00:09:34.900" video="mainVideo-world" id="subtitle"]] - -[[!template text="""Hello. In this video, we will look at""" start="00:09:34.900" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Desktop and window management in GNU Emacs""" start="00:09:34.900" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:09:34.900" video="mainVideo-world" id="subtitle"]] [[!template text="""desktop and window management in GNU Emacs.""" start="00:09:37.660" video="mainVideo-world" id="subtitle"]] [[!template text="""We'll start with `task-view`.""" start="00:09:40.460" video="mainVideo-world" id="subtitle"]] [[!template text="""Top row shows all the desktops,""" start="00:09:47.740" video="mainVideo-world" id="subtitle"]] @@ -145,9 +134,7 @@ [[!template text="""in this group to activate the complete group.""" start="00:11:04.867" video="mainVideo-world" id="subtitle"]] [[!template text="""That's all for this video. Thanks.""" start="00:11:07.640" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""Screen mirroring in GNU Emacs""" start="00:11:10.440" video="mainVideo-world" id="subtitle"]] - -[[!template text="""Hello. In this video, we will look at""" start="00:11:10.440" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Screen mirroring in GNU Emacs""" start="00:11:10.440" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:11:10.440" video="mainVideo-world" id="subtitle"]] [[!template text="""screen mirroring using GNU Emacs.""" start="00:11:12.433" video="mainVideo-world" id="subtitle"]] [[!template text="""Run `wfd`. Select an interface.""" start="00:11:14.280" video="mainVideo-world" id="subtitle"]] [[!template text="""Now it will scan for all the available devices""" start="00:11:18.780" video="mainVideo-world" id="subtitle"]] @@ -158,48 +145,30 @@ [[!template text="""To terminate the session, just click on quit.""" start="00:11:45.140" video="mainVideo-world" id="subtitle"]] [[!template text="""That's all for this video. Thanks.""" start="00:11:50.220" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""Swipe for Text Input in GNU Emacs""" start="00:11:53.033" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Swipe for Text Input in GNU Emacs""" start="00:11:53.033" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Using Sweep to swipe and type "as you like it."]""" start="00:11:53.033" video="mainVideo-world" id="subtitle"]] -[[!template text="""[Using Sweep to swipe and type "as you like it."]""" start="00:11:53.033" video="mainVideo-world" id="subtitle"]] - -[[!template new="1" text="""Formula Editor in GNU Emacs""" start="00:12:25.533" video="mainVideo-world" id="subtitle"]] - -[[!template text="""[Formula Editor]""" start="00:12:25.533" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Formula Editor in GNU Emacs""" start="00:12:25.533" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Formula Editor]""" start="00:12:25.533" video="mainVideo-world" id="subtitle"]] [[!template text="""[Typing fractions in the formula]""" start="00:12:39.900" video="mainVideo-world" id="subtitle"]] [[!template text="""[Adding brackets and an exponent]""" start="00:12:45.033" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""Transliteration in Emacs""" start="00:12:59.433" video="mainVideo-world" id="subtitle"]] - -[[!template text="""[Hindi (Devanagari script) Phonetic typing]""" start="00:12:59.433" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Transliteration in Emacs""" start="00:12:59.433" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Hindi (Devanagari script) Phonetic typing]""" start="00:12:59.433" video="mainVideo-world" id="subtitle"]] [[!template text="""[Phonetic typing Gujarati, Bangla, Kannada, and Tamil]""" start="00:13:05.200" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""Social Media client - Tumblr, Reddit""" start="00:13:09.433" video="mainVideo-world" id="subtitle"]] - -[[!template text="""[Browsing Reddit in Emacs]""" start="00:13:09.433" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Social Media client - Tumblr, Reddit""" start="00:13:09.433" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Browsing Reddit in Emacs]""" start="00:13:09.433" video="mainVideo-world" id="subtitle"]] [[!template text="""[Browsing Tumblr in Emacs]""" start="00:13:19.533" video="mainVideo-world" id="subtitle"]] [[!template text="""[Browsing X (Twitter) in Emacs]""" start="00:13:29.533" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""Comics Builder""" start="00:13:40.000" video="mainVideo-world" id="subtitle"]] - -[[!template text="""[Generating comic from a text script]""" start="00:13:40.000" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Comics Builder""" start="00:13:40.000" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Generating comic from a text script]""" start="00:13:40.000" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""Matching game""" start="00:13:49.567" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Matching game""" start="00:13:49.567" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Matching color names with color boxes]""" start="00:13:49.567" video="mainVideo-world" id="subtitle"]] -[[!template text="""[Matching color names with color boxes]""" start="00:13:49.567" video="mainVideo-world" id="subtitle"]] - -[[!template new="1" text="""Interactive XPath Builder in GNU Emacs""" start="00:13:59.567" video="mainVideo-world" id="subtitle"]] - -[[!template text="""[Running `xpath-builder` on an XML file]""" start="00:13:59.567" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Interactive XPath Builder in GNU Emacs""" start="00:13:59.567" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Running `xpath-builder` on an XML file]""" start="00:13:59.567" video="mainVideo-world" id="subtitle"]] [[!template text="""[Filtering `title`, `para`, and `author` from the XML]""" start="00:14:01.833" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""Interactive JSON Builder in GNU Emacs""" start="00:14:10.767" video="mainVideo-world" id="subtitle"]] - -[[!template text="""[Filtering `father`, `father.name`, `children`""" start="00:14:10.767" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Interactive JSON Builder in GNU Emacs""" start="00:14:10.767" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Filtering `father`, `father.name`, `children`""" start="00:14:10.767" video="mainVideo-world" id="subtitle"]] [[!template text="""`children[1]` from a JSON using JSON Builder]""" start="00:14:29.200" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""GNU Emacs as a lightweight IDE (CEDET Semantic): Java - Generate getter/setter""" start="00:14:35.233" video="mainVideo-world" id="subtitle"]] - -[[!template text="""Hello. In this video, we will look at""" start="00:14:35.233" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""GNU Emacs as a lightweight IDE (CEDET Semantic): Java - Generate getter/setter""" start="00:14:35.233" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:14:35.233" video="mainVideo-world" id="subtitle"]] [[!template text="""generating getters and setters in Java using Emacs.""" start="00:14:37.633" video="mainVideo-world" id="subtitle"]] [[!template text="""We will run `srecode-getset-dialog`.""" start="00:14:41.660" video="mainVideo-world" id="subtitle"]] [[!template text="""We will get an option to select particular fields,""" start="00:14:46.233" video="mainVideo-world" id="subtitle"]] @@ -215,13 +184,9 @@ [[!template text="""getters and setters have been generated.""" start="00:15:22.300" video="mainVideo-world" id="subtitle"]] [[!template text="""That's all for this video. Thanks.""" start="00:15:23.933" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""Generate C header""" start="00:15:26.133" video="mainVideo-world" id="subtitle"]] - -[[!template text="""[Generating C headers using `srecode-gen-header`]""" start="00:15:26.133" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Generate C header""" start="00:15:26.133" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""[Generating C headers using `srecode-gen-header`]""" start="00:15:26.133" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""C Rename symbols""" start="00:16:11.640" video="mainVideo-world" id="subtitle"]] - -[[!template text="""Hello. In this video, we will look at""" start="00:16:11.640" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""C Rename symbols""" start="00:16:11.640" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:16:11.640" video="mainVideo-world" id="subtitle"]] [[!template text="""renaming method across multiple files in a project.""" start="00:16:13.833" video="mainVideo-world" id="subtitle"]] [[!template text="""Let's start with `semantic-symref-symbol`.""" start="00:16:17.633" video="mainVideo-world" id="subtitle"]] [[!template text="""Now we have the references.""" start="00:16:24.640" video="mainVideo-world" id="subtitle"]] @@ -234,9 +199,7 @@ [[!template text="""more clearly. No errors.""" start="00:17:00.300" video="mainVideo-world" id="subtitle"]] [[!template text="""That's all for this video. Thanks.""" start="00:17:04.167" video="mainVideo-world" id="subtitle"]] -[[!template new="1" text="""SQL (offline)""" start="00:17:07.640" video="mainVideo-world" id="subtitle"]] - -[[!template text="""Hello. In this video, we will look at""" start="00:17:07.640" video="mainVideo-world" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""SQL (offline)""" start="00:17:07.640" video="mainVideo-world" id="subtitle"]]</div>[[!template text="""Hello. In this video, we will look at""" start="00:17:07.640" video="mainVideo-world" id="subtitle"]] [[!template text="""SQL editing with Semantic.""" start="00:17:09.733" video="mainVideo-world" id="subtitle"]] [[!template text="""We will define a schema in this SQL document.""" start="00:17:12.440" video="mainVideo-world" id="subtitle"]] [[!template text="""Let's create a table.""" start="00:17:16.620" video="mainVideo-world" id="subtitle"]] @@ -263,118 +226,10 @@ [[!template text="""That's all for this video. Thanks.""" start="00:20:16.267" video="mainVideo-world" id="subtitle"]] [[!template text="""Slide with the text "Let's Make Computing Personal."""" start="00:20:21.867" video="mainVideo-world" id="subtitle"]] - +</div> Captioner: bhavin192 -<a name="world-qanda-transcript"></a> -# Q&A transcript (unedited) - -[[!template text="""[Speaker 0]: Okay, folks. Thanks, Anand,""" start="00:00:07.120" video="qanda-world" id="subtitle"]] -[[!template text="""for the great talk. So here is the live Q&A.""" start="00:00:11.259" video="qanda-world" id="subtitle"]] -[[!template text="""Hi. Hello. I see questions being posted on""" start="00:00:22.279" video="qanda-world" id="subtitle"]] -[[!template text="""the pad. Would you like me to read them out""" start="00:00:23.920" video="qanda-world" id="subtitle"]] -[[!template text="""or would you prefer to read them yourself?""" start="00:00:25.320" video="qanda-world" id="subtitle"]] -[[!template text="""[Speaker 1]: Okay. I'll try reading it out.""" start="00:00:31.880" video="qanda-world" id="subtitle"]] -[[!template text="""If there are audio issues,""" start="00:00:33.340" video="qanda-world" id="subtitle"]] -[[!template text="""[Speaker 0]: Sure, thanks.""" start="00:00:35.420" video="qanda-world" id="subtitle"]] -[[!template text="""[Speaker 1]: just let me know. A lot of what you showed""" start="00:00:37.360" video="qanda-world" id="subtitle"]] -[[!template text="""was the type of stuff Emacs didn't do very""" start="00:00:39.960" video="qanda-world" id="subtitle"]] -[[!template text="""well. This stuff looks like it could be""" start="00:00:43.040" video="qanda-world" id="subtitle"]] -[[!template text="""useful for using Emacs with a touch screen""" start="00:00:45.020" video="qanda-world" id="subtitle"]] -[[!template text="""and a tablet. Have you used it for purposes""" start="00:00:46.960" video="qanda-world" id="subtitle"]] -[[!template text="""like this? No right now it's more proof of""" start="00:00:53.160" video="qanda-world" id="subtitle"]] -[[!template text="""concept stage so I don't use it more than you""" start="00:00:58.580" video="qanda-world" id="subtitle"]] -[[!template text="""know just making some demo software.""" start="00:01:03.420" video="qanda-world" id="subtitle"]] -[[!template text="""The next question is, is there a mode for""" start="00:01:12.100" video="qanda-world" id="subtitle"]] -[[!template text="""using FFmpeg through Emacs or did you make it""" start="00:01:15.080" video="qanda-world" id="subtitle"]] -[[!template text="""yourself? Okay so this is something that I""" start="00:01:20.160" video="qanda-world" id="subtitle"]] -[[!template text="""built. So the base of it is XWidget in Emacs,""" start="00:01:26.800" video="qanda-world" id="subtitle"]] -[[!template text="""which is already there.""" start="00:01:28.160" video="qanda-world" id="subtitle"]] -[[!template text="""But then I had to add a few control code for""" start="00:01:35.080" video="qanda-world" id="subtitle"]] -[[!template text="""controlling VLC. So ffmpeg is like a shell""" start="00:01:42.240" video="qanda-world" id="subtitle"]] -[[!template text="""command that finally stitches those bits of""" start="00:01:46.840" video="qanda-world" id="subtitle"]] -[[!template text="""video clips. But what actually plays is VLC,""" start="00:01:51.780" video="qanda-world" id="subtitle"]] -[[!template text="""and it's not FFmpeg. Hope that's clear.""" start="00:01:55.860" video="qanda-world" id="subtitle"]] -[[!template text="""The next question is these demos are always""" start="00:02:03.580" video="qanda-world" id="subtitle"]] -[[!template text="""so impressive. Do you plan to upstream any of""" start="00:02:06.020" video="qanda-world" id="subtitle"]] -[[!template text="""these projects into Emacs?""" start="00:02:07.040" video="qanda-world" id="subtitle"]] -[[!template text="""Right now, okay, let me read the complete""" start="00:02:13.940" video="qanda-world" id="subtitle"]] -[[!template text="""questions. These demos are always so""" start="00:02:16.220" video="qanda-world" id="subtitle"]] -[[!template text="""impressive. Do you plan to upstream any of""" start="00:02:17.960" video="qanda-world" id="subtitle"]] -[[!template text="""these projects into Emacs or to publish them""" start="00:02:19.960" video="qanda-world" id="subtitle"]] -[[!template text="""as, for example, helper packages?""" start="00:02:21.780" video="qanda-world" id="subtitle"]] -[[!template text="""So right now, as it stands,""" start="00:02:26.480" video="qanda-world" id="subtitle"]] -[[!template text="""I personally don't intend to do that because""" start="00:02:30.720" video="qanda-world" id="subtitle"]] -[[!template text="""I don't have that time but I have signed my""" start="00:02:34.900" video="qanda-world" id="subtitle"]] -[[!template text="""signed assignment copyright assignment so""" start="00:02:38.720" video="qanda-world" id="subtitle"]] -[[!template text="""anybody has time and motivation to do it they""" start="00:02:41.600" video="qanda-world" id="subtitle"]] -[[!template text="""can pick up the code and help me with that.""" start="00:02:47.120" video="qanda-world" id="subtitle"]] -[[!template text="""The next is, how did you make that electronic""" start="00:02:53.200" video="qanda-world" id="subtitle"]] -[[!template text="""circuit diagram? Is there a mode with the""" start="00:03:00.600" video="qanda-world" id="subtitle"]] -[[!template text="""symbols already available.""" start="00:03:02.560" video="qanda-world" id="subtitle"]] -[[!template text="""Okay so electronic circuit diagram is you""" start="00:03:08.240" video="qanda-world" id="subtitle"]] -[[!template text="""know the canvas mode but and what you see is""" start="00:03:13.340" video="qanda-world" id="subtitle"]] -[[!template text="""the is an extension of that canvas mode which""" start="00:03:19.540" video="qanda-world" id="subtitle"]] -[[!template text="""uses a symbol library.""" start="00:03:25.440" video="qanda-world" id="subtitle"]] -[[!template text="""And so The only difference is you press""" start="00:03:31.980" video="qanda-world" id="subtitle"]] -[[!template text="""capital L to open up that symbol library.""" start="00:03:34.160" video="qanda-world" id="subtitle"]] -[[!template text="""In this case, this symbol library happens to""" start="00:03:37.700" video="qanda-world" id="subtitle"]] -[[!template text="""be just a library of electronic symbols.""" start="00:03:41.380" video="qanda-world" id="subtitle"]] -[[!template text="""It can be any category of symbols and then""" start="00:03:44.640" video="qanda-world" id="subtitle"]] -[[!template text="""you and use it to draw on your,""" start="00:03:47.600" video="qanda-world" id="subtitle"]] -[[!template text="""in the canvas major mode.""" start="00:03:50.640" video="qanda-world" id="subtitle"]] -[[!template text="""Next question is, I have seen your blog post""" start="00:04:02.240" video="qanda-world" id="subtitle"]] -[[!template text="""with some of these features But can you link""" start="00:04:04.700" video="qanda-world" id="subtitle"]] -[[!template text="""to the repo where you are doing the""" start="00:04:06.280" video="qanda-world" id="subtitle"]] -[[!template text="""development for these packages?""" start="00:04:07.940" video="qanda-world" id="subtitle"]] -[[!template text="""Sure, I can do that Most of these are""" start="00:04:18.899" video="qanda-world" id="subtitle"]] -[[!template text="""available on my blogs.""" start="00:04:20.279" video="qanda-world" id="subtitle"]] -[[!template text="""Typically the Reddit post always has a link""" start="00:04:26.200" video="qanda-world" id="subtitle"]] -[[!template text="""to my blog. But I'll post it in this 1 as""" start="00:04:31.480" video="qanda-world" id="subtitle"]] -[[!template text="""well.""" start="00:04:31.680" video="qanda-world" id="subtitle"]] -[[!template text="""[Speaker 0]: I'll quickly note that we have about 4 more""" start="00:04:48.480" video="qanda-world" id="subtitle"]] -[[!template text="""minutes of live Q&A, but if folks have more""" start="00:04:52.540" video="qanda-world" id="subtitle"]] -[[!template text="""questions, they're welcome to either continue""" start="00:04:55.320" video="qanda-world" id="subtitle"]] -[[!template text="""asking on the pad or come join us here on Big""" start="00:04:59.060" video="qanda-world" id="subtitle"]] -[[!template text="""Blue Button and continue chatting once the""" start="00:05:02.080" video="qanda-world" id="subtitle"]] -[[!template text="""stream moves on to the next talk.""" start="00:05:03.440" video="qanda-world" id="subtitle"]] -[[!template text="""Thank you.""" start="00:05:03.940" video="qanda-world" id="subtitle"]] -[[!template text="""[Speaker 1]: Yes, so here's the link.""" start="00:05:13.360" video="qanda-world" id="subtitle"]] -[[!template text="""And so right now, all of my development goes""" start="00:05:23.240" video="qanda-world" id="subtitle"]] -[[!template text="""into a single development branch in this""" start="00:05:26.360" video="qanda-world" id="subtitle"]] -[[!template text="""repository. But depending on the feature that""" start="00:05:28.940" video="qanda-world" id="subtitle"]] -[[!template text="""you're looking at, you can look at that""" start="00:05:31.500" video="qanda-world" id="subtitle"]] -[[!template text="""particular post and that post will have a""" start="00:05:33.820" video="qanda-world" id="subtitle"]] -[[!template text="""link to the specific files that include the""" start="00:05:37.120" video="qanda-world" id="subtitle"]] -[[!template text="""changes.""" start="00:05:37.320" video="qanda-world" id="subtitle"]] -[[!template text="""Okay, there's a feedback.""" start="00:06:24.236" video="qanda-world" id="subtitle"]] -[[!template text="""Thank you for showing so many new""" start="00:06:26.520" video="qanda-world" id="subtitle"]] -[[!template text="""possibilities with Emacs.""" start="00:06:27.500" video="qanda-world" id="subtitle"]] -[[!template text="""I'm glad you like those possibilities.""" start="00:06:30.960" video="qanda-world" id="subtitle"]] -[[!template text="""And hopefully, you know,""" start="00:06:32.540" video="qanda-world" id="subtitle"]] -[[!template text="""with Emacs, the possibilities are really""" start="00:06:34.540" video="qanda-world" id="subtitle"]] -[[!template text="""endless. So I really encourage more people to""" start="00:06:38.480" video="qanda-world" id="subtitle"]] -[[!template text="""explore it and, you know,""" start="00:06:41.120" video="qanda-world" id="subtitle"]] -[[!template text="""try things that people have so far only been""" start="00:06:49.280" video="qanda-world" id="subtitle"]] -[[!template text="""using other applications for.""" start="00:06:52.160" video="qanda-world" id="subtitle"]] -[[!template text="""The next question is coming up.""" start="00:06:59.580" video="qanda-world" id="subtitle"]] -[[!template text="""Okay, the PDF form filling is especially""" start="00:07:07.540" video="qanda-world" id="subtitle"]] -[[!template text="""interesting. I would love to do my taxes in""" start="00:07:10.200" video="qanda-world" id="subtitle"]] -[[!template text="""Emacs. Yes, In most cases you should be able""" start="00:07:16.400" video="qanda-world" id="subtitle"]] -[[!template text="""to do it unless there are a lot of JavaScript""" start="00:07:18.900" video="qanda-world" id="subtitle"]] -[[!template text="""involved with the PDF.""" start="00:07:20.500" video="qanda-world" id="subtitle"]] -[[!template text="""For a simple form, you should be able to do""" start="00:07:24.800" video="qanda-world" id="subtitle"]] -[[!template text="""it.""" start="00:07:24.960" video="qanda-world" id="subtitle"]] -[[!template text="""[Speaker 0]: Okay, we have about 1 minute remaining on the""" start="00:08:19.480" video="qanda-world" id="subtitle"]] -[[!template text="""live stream. If folks have any other""" start="00:08:21.660" video="qanda-world" id="subtitle"]] -[[!template text="""questions, please do continue posting on the""" start="00:08:24.960" video="qanda-world" id="subtitle"]] -[[!template text="""pad or come and join BigBlueButton with an""" start="00:08:27.540" video="qanda-world" id="subtitle"]] -[[!template text="""ad. And thanks again, Adam,""" start="00:08:28.940" video="qanda-world" id="subtitle"]] -[[!template text="""for a great talk and for the discussions and""" start="00:08:30.880" video="qanda-world" id="subtitle"]] -[[!template text="""questions and answers.""" start="00:08:31.560" video="qanda-world" id="subtitle"]] -[[!template text="""[Speaker 1]: Great, thanks.""" start="00:08:36.100" video="qanda-world" id="subtitle"]] - Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20world%3A%20GNU%20Emacs%3A%20A%20World%20of%20Possibilities) diff --git a/2023/info/world-before.md b/2023/info/world-before.md index 3b34d3bb..457218f3 100644 --- a/2023/info/world-before.md +++ b/2023/info/world-before.md @@ -1,14 +1,14 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 21-min talk; Q&A: BigBlueButton conference room +Format: 21-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings -<div class="vid"><video controls preload="none" id="world-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="world-mainVideo" data=""" -00:00:00.780 Draw and scribble in GNU Emacs +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-world"><source src="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-world" data=""" +00:00.780 Draw and scribble in GNU Emacs 03:46.400 SVG Symbols library 05:20.140 GNU Emacs: A multimedia editor 08:03.367 Fill PDF form using GNU Emacs @@ -27,6 +27,6 @@ Status: Q&A to be extracted from the room recordings 16:11.640 C Rename symbols 17:07.640 SQL (offline) -"""]]<div></div>Duration: 20:31 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.opus">Download --main.opus (9.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.webm">Download --main.webm (66MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--pad.md">Download --pad.md</a></li><li><a href="https://toobnix.org/w/jFaSuNYt2FqibtcAvmVdbF">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 20:31 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-world">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=573c5a7321e144f6cd67763c21ed7aea8f1c1497-1701617014361">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.opus">Download --main.opus (9.3MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-world--gnu-emacs-a-world-of-possibilities--anand-tamariya--main.webm">Download --main.webm (66MB)</a></li><li><a href="https://toobnix.org/w/jFaSuNYt2FqibtcAvmVdbF">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=T5yZZK18w5w">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/world-nav.md b/2023/info/world-nav.md index 0c9d9fb1..6dd1afa3 100644 --- a/2023/info/world-nav.md +++ b/2023/info/world-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/scheme">Bringing joy to Scheme programming</a> Next by track: <a href="/2023/talks/flat">A modern Emacs look-and-feel without pain</a> -Track: <span class="sched-track Development">Development</span> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2023/watch/dev">Watch</a></strong> </div> diff --git a/2023/info/writing-after.md b/2023/info/writing-after.md index 1523f77d..074ffac6 100644 --- a/2023/info/writing-after.md +++ b/2023/info/writing-after.md @@ -1,13 +1,10 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -<a name="writing-mainVideo-transcript"></a> -# Transcript +<div class="transcript transcript-mainVideo"><a name="writing-mainVideo-transcript"></a><h1>Transcript</h1> -[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-writing" id="subtitle"]] - -[[!template text="""Hello everyone, I'm Jeremy Friesen, pronouns he/him,""" start="00:00:00.000" video="mainVideo-writing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""Hello everyone, I'm Jeremy Friesen, pronouns he/him,""" start="00:00:00.000" video="mainVideo-writing" id="subtitle"]] [[!template text="""and today I'll be talking about""" start="00:00:04.560" video="mainVideo-writing" id="subtitle"]] [[!template text="""how Emacs turbocharges my writing.""" start="00:00:05.880" video="mainVideo-writing" id="subtitle"]] [[!template text="""Quick intro: I've been programming since 1998""" start="00:00:08.600" video="mainVideo-writing" id="subtitle"]] @@ -26,9 +23,7 @@ [[!template text="""and I'm always on the lookout for minor refinements""" start="00:00:50.320" video="mainVideo-writing" id="subtitle"]] [[!template text="""that help me stay in my thinking.""" start="00:00:53.320" video="mainVideo-writing" id="subtitle"]] -[[!template new="1" text="""How I got here""" start="00:00:57.120" video="mainVideo-writing" id="subtitle"]] - -[[!template text="""How I got here was I started in WordPress,""" start="00:00:57.120" video="mainVideo-writing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""How I got here""" start="00:00:57.120" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""How I got here was I started in WordPress,""" start="00:00:57.120" video="mainVideo-writing" id="subtitle"]] [[!template text="""then I moved to Jekyll, and then to Hugo,""" start="00:00:59.240" video="mainVideo-writing" id="subtitle"]] [[!template text="""and through that process I started writing in Markdown.""" start="00:01:02.600" video="mainVideo-writing" id="subtitle"]] [[!template text="""And when I was learning Emacs,""" start="00:01:05.440" video="mainVideo-writing" id="subtitle"]] @@ -37,9 +32,7 @@ [[!template text="""I later learned Org Mode grows with you,""" start="00:01:12.400" video="mainVideo-writing" id="subtitle"]] [[!template text="""and that's where I'm at now.""" start="00:01:15.520" video="mainVideo-writing" id="subtitle"]] -[[!template new="1" text="""Friction""" start="00:01:18.400" video="mainVideo-writing" id="subtitle"]] - -[[!template text="""But I didn't realize that friction""" start="00:01:18.400" video="mainVideo-writing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Friction""" start="00:01:18.400" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""But I didn't realize that friction""" start="00:01:18.400" video="mainVideo-writing" id="subtitle"]] [[!template text="""between writing Markdown for my public blog""" start="00:01:20.000" video="mainVideo-writing" id="subtitle"]] [[!template text="""and then adopting Org Mode locally""" start="00:01:23.360" video="mainVideo-writing" id="subtitle"]] [[!template text="""for writing and time tracking and things like that.""" start="00:01:25.480" video="mainVideo-writing" id="subtitle"]] @@ -50,9 +43,7 @@ [[!template text="""this kind of pre-thinking,""" start="00:01:39.520" video="mainVideo-writing" id="subtitle"]] [[!template text="""where does stuff go when it comes into and out of my brain.""" start="00:01:41.040" video="mainVideo-writing" id="subtitle"]] -[[!template new="1" text="""Domains for notes""" start="00:01:45.960" video="mainVideo-writing" id="subtitle"]] - -[[!template text="""So I have many domains where I'll write towards.""" start="00:01:45.960" video="mainVideo-writing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Domains for notes""" start="00:01:45.960" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""So I have many domains where I'll write towards.""" start="00:01:45.960" video="mainVideo-writing" id="subtitle"]] [[!template text="""The ones for this presentation are going to be""" start="00:01:49.400" video="mainVideo-writing" id="subtitle"]] [[!template text="""blog posts, epigraphs, glossary, and melange.""" start="00:01:51.120" video="mainVideo-writing" id="subtitle"]] [[!template text="""Melange is, I don't know where it goes,""" start="00:01:54.160" video="mainVideo-writing" id="subtitle"]] @@ -63,9 +54,7 @@ [[!template text="""I didn't use a lot of the functionality""" start="00:02:10.640" video="mainVideo-writing" id="subtitle"]] [[!template text="""and I appreciate the plain text reality of Denote.""" start="00:02:13.200" video="mainVideo-writing" id="subtitle"]] -[[!template new="1" text="""Demo""" start="00:02:15.920" video="mainVideo-writing" id="subtitle"]] - -[[!template text="""So let's hop into the demo.""" start="00:02:15.920" video="mainVideo-writing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:02:15.920" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""So let's hop into the demo.""" start="00:02:15.920" video="mainVideo-writing" id="subtitle"]] [[!template text="""I'm going to split my screen.""" start="00:02:18.800" video="mainVideo-writing" id="subtitle"]] [[!template text="""Over on the right is going to be""" start="00:02:19.920" video="mainVideo-writing" id="subtitle"]] [[!template text="""where I'm going to be live typing stuff.""" start="00:02:21.960" video="mainVideo-writing" id="subtitle"]] @@ -82,9 +71,7 @@ [[!template text="""Great.""" start="00:02:50.800" video="mainVideo-writing" id="subtitle"]] [[!template text="""We've saved it.""" start="00:02:51.520" video="mainVideo-writing" id="subtitle"]] -[[!template new="1" text="""Dabbrev and hippie-expand""" start="00:02:55.440" video="mainVideo-writing" id="subtitle"]] - -[[!template text="""One of the things I encourage everybody to do""" start="00:02:55.440" video="mainVideo-writing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Dabbrev and hippie-expand""" start="00:02:55.440" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""One of the things I encourage everybody to do""" start="00:02:55.440" video="mainVideo-writing" id="subtitle"]] [[!template text="""is to watch Jay Dixit's presentation, Emacs for Writers.""" start="00:02:57.400" video="mainVideo-writing" id="subtitle"]] [[!template text="""It showed me the utility of Dabbrev for quick auto correction.""" start="00:03:02.040" video="mainVideo-writing" id="subtitle"]] [[!template text="""And I also love using hippie-expand.""" start="00:03:08.080" video="mainVideo-writing" id="subtitle"]] @@ -96,9 +83,7 @@ [[!template text="""So I think it's important to understand these tools""" start="00:03:27.800" video="mainVideo-writing" id="subtitle"]] [[!template text="""that help me write better.""" start="00:03:30.720" video="mainVideo-writing" id="subtitle"]] -[[!template new="1" text="""Links""" start="00:03:32.840" video="mainVideo-writing" id="subtitle"]] - -[[!template text="""All right, we're going to go with links.""" start="00:03:32.840" video="mainVideo-writing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Links""" start="00:03:32.840" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""All right, we're going to go with links.""" start="00:03:32.840" video="mainVideo-writing" id="subtitle"]] [[!template text="""Links are foundational for the web.""" start="00:03:34.880" video="mainVideo-writing" id="subtitle"]] [[!template text="""I'm going to insert a public link,""" start="00:03:37.000" video="mainVideo-writing" id="subtitle"]] [[!template text="""which is a role playing game that I love,""" start="00:03:41.160" video="mainVideo-writing" id="subtitle"]] @@ -182,9 +167,7 @@ [[!template text="""along with the citation link to it.""" start="00:07:39.400" video="mainVideo-writing" id="subtitle"]] [[!template text="""Again, helpful to be consistent.""" start="00:07:42.600" video="mainVideo-writing" id="subtitle"]] -[[!template new="1" text="""Conclusion""" start="00:07:49.160" video="mainVideo-writing" id="subtitle"]] - -[[!template text="""In conclusion, when I started learning Emacs,""" start="00:07:49.160" video="mainVideo-writing" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Conclusion""" start="00:07:49.160" video="mainVideo-writing" id="subtitle"]]</div>[[!template text="""In conclusion, when I started learning Emacs,""" start="00:07:49.160" video="mainVideo-writing" id="subtitle"]] [[!template text="""I quickly shifted to vanilla Emacs and just started writing.""" start="00:07:52.280" video="mainVideo-writing" id="subtitle"]] [[!template text="""As I wrote, when I needed to do something that I'd previously""" start="00:07:55.880" video="mainVideo-writing" id="subtitle"]] [[!template text="""done in a text editor, I'd find an experiment with a package.""" start="00:07:59.520" video="mainVideo-writing" id="subtitle"]] @@ -209,12 +192,11 @@ [[!template text="""But for now, thank you.""" start="00:08:45.440" video="mainVideo-writing" id="subtitle"]] [[!template text="""And I look forward to your questions.""" start="00:08:47.800" video="mainVideo-writing" id="subtitle"]] - +</div> Captioner: bala -<a name="writing-qanda-transcript"></a> -# Q&A transcript (unedited) +<div class="transcript transcript-qanda"><a name="writing-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> [[!template text="""[Speaker 0]: All right, I've started the recording,""" start="00:00:00.060" video="qanda-writing" id="subtitle"]] [[!template text="""so Sasha, you don't need to worry about this.""" start="00:00:01.400" video="qanda-writing" id="subtitle"]] @@ -514,7 +496,7 @@ Captioner: bala [[!template text="""[Speaker 1]: We're doing great. Okay.""" start="00:15:40.440" video="qanda-writing" id="subtitle"]] [[!template text="""[Speaker 0]: Alright, bye bye Jeremy.""" start="00:15:51.220" video="qanda-writing" id="subtitle"]] -Questions or comments? Please e-mail [jeremy@jeremyfriesen.com](mailto:jeremy@jeremyfriesen.com?subject=Comment%20for%20EmacsConf%202023%20writing%3A%20Emacs%20turbo-charges%20my%20writing) +</div>Questions or comments? Please e-mail [jeremy@jeremyfriesen.com](mailto:jeremy@jeremyfriesen.com?subject=Comment%20for%20EmacsConf%202023%20writing%3A%20Emacs%20turbo-charges%20my%20writing) <!-- End of emacsconf-publish-after-page --> diff --git a/2023/info/writing-before.md b/2023/info/writing-before.md index e46b512f..6e01d684 100644 --- a/2023/info/writing-before.md +++ b/2023/info/writing-before.md @@ -1,6 +1,6 @@ <!-- Automatically generated by emacsconf-publish-before-page --> [[!toc ]] -Format: 9-min talk; Q&A: BigBlueButton conference room +Format: 9-min talk ; Q&A: BigBlueButton conference room Status: Q&A to be extracted from the room recordings @@ -9,7 +9,7 @@ Status: Q&A to be extracted from the room recordings # Talk -<div class="vid"><video controls preload="none" id="writing-mainVideo"><source src="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="writing-mainVideo" data=""" +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-writing"><source src="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2023/captions/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-writing" data=""" 00:00.000 Intro 00:57.120 How I got here 01:18.400 Friction @@ -19,10 +19,10 @@ Status: Q&A to be extracted from the room recordings 03:32.840 Links 07:49.160 Conclusion -"""]]<div></div>Duration: 08:53 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.opus">Download --main.opus (5.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.webm">Download --main.webm (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--pad.html">Download --pad.html</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--pad.md">Download --pad.md</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen.pdf">Download .pdf</a></li><li><a href="https://toobnix.org/w/ke3UCJaJSLyQr7Emv8VxST">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 08:53 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-writing">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=d3faf3bd5abcc5316e6a997b22b29d962480ad5c-1701537771543">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.opus">Download --main.opus (5.5MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--main.webm">Download --main.webm (23MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen.pdf">Download .pdf</a></li><li><a href="https://toobnix.org/w/ke3UCJaJSLyQr7Emv8VxST">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=HxlEK6W7RyA">View on Youtube</a></li></ul></div></div> # Q&A -<div class="vid"><video controls preload="none" id="writing-qanda"><source src="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="writing-qanda-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.opus"></audio></div><div></div>Duration: 15:53 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.opus">Download --answers.opus (9.4MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.webm">Download --answers.webm (35MB)</a></li></ul></div></div> +<div class="vid qanda"><video controls preload="none" id="qanda-writing"><source src="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2023/captions/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-writing-audio" src="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.opus"></audio></div><div></div>Duration: 15:53 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2023-writing">Open Etherpad</a></li><li><a href="https://bbb.emacsverse.org/playback/presentation/2.0/playback.html?meetingId=d3faf3bd5abcc5316e6a997b22b29d962480ad5c-1701537771543">Play recording from BigBlueButton</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.opus">Download --answers.opus (9.4MB)</a></li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2023/emacsconf-2023-writing--emacs-turbocharges-my-writing--jeremy-friesen--answers.webm">Download --answers.webm (35MB)</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2023/info/writing-nav.md b/2023/info/writing-nav.md index fa3bdae7..1c94a3c6 100644 --- a/2023/info/writing-nav.md +++ b/2023/info/writing-nav.md @@ -3,5 +3,5 @@ Back to the [[talks]] Previous by track: <a href="/2023/talks/one">one.el: the static site generator for Emacs Lisp Programmers</a> Next by track: <a href="/2023/talks/nabokov">Why Nabokov would use Org-Mode if he were writing today</a> -Track: <span class="sched-track General">General</span> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2023/watch/gen">Watch</a></strong> </div> diff --git a/2023/schedule-2023-12-02.md b/2023/schedule-2023-12-02.md index a64bad6a..52b3d6cd 100644 --- a/2023/schedule-2023-12-02.md +++ b/2023/schedule-2023-12-02.md @@ -1 +1 @@ -<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Saturday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2023/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title> 9:00- 9:10 Saturday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(13,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/2023/talks/adventure" title="An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp" data-slug="adventure"> <title> 9:10- 9:20 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp</title> <rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(28,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> adventure</text></g></a> <a href="/2023/talks/uni" title="Authoring and presenting university courses with Emacs and a full libre software stack" data-slug="uni"> <title> 9:30- 9:50 Authoring and presenting university courses with Emacs and a full libre software stack</title> <rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(76,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> uni</text></g></a> <a href="/2023/talks/teaching" title="Teaching computer and data science with literate programming tools" data-slug="teaching"> <title> 10:05-10:25 Teaching computer and data science with literate programming tools</title> <rect x="101" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(130,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> teaching</text></g></a> <a href="/2023/talks/table" title="Who needs Excel? Managing your students qualifications with org-table" data-slug="table"> <title> 10:40-10:50 Who needs Excel? Managing your students qualifications with org-table</title> <rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(169,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> table</text></g></a> <a href="/2023/talks/one" title="one.el: the static site generator for Emacs Lisp Programmers" data-slug="one"> <title> 11:30-11:50 one.el: the static site generator for Emacs Lisp Programmers</title> <rect x="235" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(264,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> one</text></g></a> <a href="/2023/talks/writing" title="Emacs turbo-charges my writing" data-slug="writing"> <title> 1:00- 1:10 Emacs turbo-charges my writing</title> <rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(389,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> writing</text></g></a> <a href="/2023/talks/nabokov" title="Why Nabokov would use Org-Mode if he were writing today" data-slug="nabokov"> <title> 1:25- 1:35 Why Nabokov would use Org-Mode if he were writing today</title> <rect x="415" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(428,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> nabokov</text></g></a> <a href="/2023/talks/collab" title="Collaborative data processing and documenting using org-babel" data-slug="collab"> <title> 1:50- 2:10 Collaborative data processing and documenting using org-babel</title> <rect x="454" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(483,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> collab</text></g></a> <a href="/2023/talks/solo" title="How I play TTRPGs in Emacs" data-slug="solo"> <title> 2:20- 2:40 How I play TTRPGs in Emacs</title> <rect x="501" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(530,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> solo</text></g></a> <a href="/2023/talks/ref" title="Org-Mode workflow: informal reference tracking" data-slug="ref"> <title> 2:55- 3:15 Org-Mode workflow: informal reference tracking</title> <rect x="556" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(585,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> ref</text></g></a> <a href="/2023/talks/unentangling" title="(Un)entangling projects and repos" data-slug="unentangling"> <title> 3:25- 3:35 (Un)entangling projects and repos</title> <rect x="603" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(616,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> unentangling</text></g></a> <a href="/2023/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 3:45- 3:55 Emacs development updates</title> <rect x="635" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(648,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2023/talks/core" title="Emacs core development: how it works" data-slug="core"> <title> 4:10- 4:50 Emacs core development: how it works</title> <rect x="674" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(734,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> core</text></g></a> <a href="/2023/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title> 5:05- 5:15 Saturday closing remarks</title> <rect x="760" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(773,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/2023/talks/matplotllm" title="MatplotLLM, iterative natural language data visualization in org-babel" data-slug="matplotllm"> <title> 10:00-10:10 MatplotLLM, iterative natural language data visualization in org-babel</title> <rect x="94" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(107,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> matplotllm</text></g></a> <a href="/2023/talks/voice" title="Enhancing productivity with voice computing" data-slug="voice"> <title> 10:20-10:40 Enhancing productivity with voice computing</title> <rect x="125" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(154,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> voice</text></g></a> <a href="/2023/talks/llm" title="LLM clients in Emacs, functionality and standardization" data-slug="llm"> <title> 10:55-11:15 LLM clients in Emacs, functionality and standardization</title> <rect x="180" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(209,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> llm</text></g></a> <a href="/2023/talks/overlay" title="Improving compiler diagnostics with overlays" data-slug="overlay"> <title> 1:00- 1:20 Improving compiler diagnostics with overlays</title> <rect x="376" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(405,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> overlay</text></g></a> <a href="/2023/talks/eval" title="Editor Integrated REPL Driven Development for all languages" data-slug="eval"> <title> 1:35- 1:45 Editor Integrated REPL Driven Development for all languages</title> <rect x="431" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(444,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eval</text></g></a> <a href="/2023/talks/repl" title="REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ" data-slug="repl"> <title> 2:00- 3:00 REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ</title> <rect x="470" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(562,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> repl</text></g></a> <a href="/2023/talks/doc" title="Literate Documentation with Emacs and Org Mode" data-slug="doc"> <title> 3:10- 3:50 Literate Documentation with Emacs and Org Mode</title> <rect x="580" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(640,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> doc</text></g></a> <a href="/2023/talks/windows" title="Windows into Freedom" data-slug="windows"> <title> 4:05- 4:45 Windows into Freedom</title> <rect x="666" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(726,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> windows</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg></div>
\ No newline at end of file +<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2023/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2023/talks/adventure" title="An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp" data-slug="adventure"><title> 9:10- 9:20 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">adventure</text></g></a><a href="/2023/talks/uni" title="Authoring and presenting university courses with Emacs and a full libre software stack" data-slug="uni"><title> 9:30- 9:50 Authoring and presenting university courses with Emacs and a full libre software stack</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(76,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">uni</text></g></a><a href="/2023/talks/teaching" title="Teaching computer and data science with literate programming tools" data-slug="teaching"><title>10:05-10:25 Teaching computer and data science with literate programming tools</title><rect x="101" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(130,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">teaching</text></g></a><a href="/2023/talks/table" title="Who needs Excel? Managing your students qualifications with org-table" data-slug="table"><title>10:40-10:50 Who needs Excel? Managing your students qualifications with org-table</title><rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(169,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">table</text></g></a><a href="/2023/talks/one" title="one.el: the static site generator for Emacs Lisp Programmers" data-slug="one"><title>11:30-11:50 one.el: the static site generator for Emacs Lisp Programmers</title><rect x="235" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(264,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">one</text></g></a><a href="/2023/talks/writing" title="Emacs turbo-charges my writing" data-slug="writing"><title> 1:00- 1:10 Emacs turbo-charges my writing</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2023/talks/nabokov" title="Why Nabokov would use Org-Mode if he were writing today" data-slug="nabokov"><title> 1:25- 1:35 Why Nabokov would use Org-Mode if he were writing today</title><rect x="415" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(428,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">nabokov</text></g></a><a href="/2023/talks/collab" title="Collaborative data processing and documenting using org-babel" data-slug="collab"><title> 1:50- 2:10 Collaborative data processing and documenting using org-babel</title><rect x="454" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(483,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">collab</text></g></a><a href="/2023/talks/solo" title="How I play TTRPGs in Emacs" data-slug="solo"><title> 2:20- 2:40 How I play TTRPGs in Emacs</title><rect x="501" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(530,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">solo</text></g></a><a href="/2023/talks/ref" title="Org-Mode workflow: informal reference tracking" data-slug="ref"><title> 2:55- 3:15 Org-Mode workflow: informal reference tracking</title><rect x="556" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(585,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ref</text></g></a><a href="/2023/talks/unentangling" title="(Un)entangling projects and repos" data-slug="unentangling"><title> 3:25- 3:35 (Un)entangling projects and repos</title><rect x="603" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(616,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">unentangling</text></g></a><a href="/2023/talks/devel" title="Emacs development updates" data-slug="devel"><title> 3:45- 3:55 Emacs development updates</title><rect x="635" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(648,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">devel</text></g></a><a href="/2023/talks/core" title="Emacs core development: how it works" data-slug="core"><title> 4:10- 4:50 Emacs core development: how it works</title><rect x="674" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(734,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">core</text></g></a><a href="/2023/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:05- 5:15 Saturday closing remarks</title><rect x="760" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(773,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2023/talks/matplotllm" title="MatplotLLM, iterative natural language data visualization in org-babel" data-slug="matplotllm"><title>10:00-10:10 MatplotLLM, iterative natural language data visualization in org-babel</title><rect x="94" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">matplotllm</text></g></a><a href="/2023/talks/voice" title="Enhancing productivity with voice computing" data-slug="voice"><title>10:20-10:40 Enhancing productivity with voice computing</title><rect x="125" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(154,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">voice</text></g></a><a href="/2023/talks/llm" title="LLM clients in Emacs, functionality and standardization" data-slug="llm"><title>10:55-11:15 LLM clients in Emacs, functionality and standardization</title><rect x="180" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(209,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2023/talks/overlay" title="Improving compiler diagnostics with overlays" data-slug="overlay"><title> 1:00- 1:20 Improving compiler diagnostics with overlays</title><rect x="376" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(405,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">overlay</text></g></a><a href="/2023/talks/eval" title="Editor Integrated REPL Driven Development for all languages" data-slug="eval"><title> 1:35- 1:45 Editor Integrated REPL Driven Development for all languages</title><rect x="431" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">eval</text></g></a><a href="/2023/talks/repl" title="REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ" data-slug="repl"><title> 2:00- 3:00 REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ</title><rect x="470" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(562,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repl</text></g></a><a href="/2023/talks/doc" title="Literate Documentation with Emacs and Org Mode" data-slug="doc"><title> 3:10- 3:50 Literate Documentation with Emacs and Org Mode</title><rect x="580" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(640,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">doc</text></g></a><a href="/2023/talks/windows" title="Windows into Freedom" data-slug="windows"><title> 4:05- 4:45 Windows into Freedom</title><rect x="666" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(726,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">windows</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg></div>
\ No newline at end of file diff --git a/2023/schedule-2023-12-03.md b/2023/schedule-2023-12-03.md index eabdc939..0a24ad74 100644 --- a/2023/schedule-2023-12-03.md +++ b/2023/schedule-2023-12-03.md @@ -1 +1 @@ -<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Sunday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2023/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 8:58- 9:04 Sunday opening remarks</title> <rect x="-4" y="15" opacity="0.8" width="9" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(3,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2023/talks/hyperamp" title="Top 10 ways Hyperbole amps up Emacs" data-slug="hyperamp"> <title> 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs</title> <rect x="7" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperamp</text></g></a> <a href="/2023/talks/koutline" title="Using Koutline for stream of thought journaling" data-slug="koutline"> <title> 9:40-10:00 Using Koutline for stream of thought journaling</title> <rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(91,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> koutline</text></g></a> <a href="/2023/talks/parallel" title="Parallel text replacement" data-slug="parallel"> <title> 10:10-10:25 Parallel text replacement</title> <rect x="109" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(130,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> parallel</text></g></a> <a href="/2023/talks/eat" title="Eat and Eat powered Eshell, fast featureful terminal inside Emacs" data-slug="eat"> <title> 10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs</title> <rect x="149" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(162,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eat</text></g></a> <a href="/2023/talks/poltys" title="The browser in a buffer" data-slug="poltys"> <title> 11:00-11:20 The browser in a buffer</title> <rect x="188" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(217,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> poltys</text></g></a> <a href="/2023/talks/cubing" title="Speedcubing in Emacs" data-slug="cubing"> <title> 11:35-11:55 Speedcubing in Emacs</title> <rect x="243" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(272,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> cubing</text></g></a> <a href="/2023/talks/emms" title="Emacs MultiMedia System (EMMS)" data-slug="emms"> <title> 1:00- 1:40 Emacs MultiMedia System (EMMS)</title> <rect x="376" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(436,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emms</text></g></a> <a href="/2023/talks/steno" title="Programming with steno" data-slug="steno"> <title> 1:55- 2:25 Programming with steno</title> <rect x="462" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(507,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> steno</text></g></a> <a href="/2023/talks/mentor" title="Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)" data-slug="mentor"> <title> 2:35- 2:45 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)</title> <rect x="525" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(538,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mentor</text></g></a> <a href="/2023/talks/web" title="Emacs saves the Web (maybe)" data-slug="web"> <title> 3:10- 3:40 Emacs saves the Web (maybe)</title> <rect x="580" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(625,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> web</text></g></a> <a href="/2023/talks/sharing" title="Sharing Emacs is Caring Emacs: Emacs education and why I embraced video" data-slug="sharing"> <title> 3:55- 4:15 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video</title> <rect x="650" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(679,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sharing</text></g></a> <a href="/2023/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:30- 4:40 Sunday closing remarks</title> <rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(718,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2023/talks/scheme" title="Bringing joy to Scheme programming" data-slug="scheme"> <title> 10:00-10:20 Bringing joy to Scheme programming</title> <rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(123,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> scheme</text></g></a> <a href="/2023/talks/world" title="GNU Emacs: A World of Possibilities" data-slug="world"> <title> 10:35-10:55 GNU Emacs: A World of Possibilities</title> <rect x="149" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(178,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> world</text></g></a> <a href="/2023/talks/flat" title="A modern Emacs look-and-feel without pain" data-slug="flat"> <title> 11:10-11:20 A modern Emacs look-and-feel without pain</title> <rect x="203" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(216,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> flat</text></g></a> <a href="/2023/talks/emacsen" title="The Emacsen family, the design of an Emacs and the importance of Lisp" data-slug="emacsen"> <title> 11:35-11:55 The Emacsen family, the design of an Emacs and the importance of Lisp</title> <rect x="243" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(272,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emacsen</text></g></a> <a href="/2023/talks/gc" title="emacs-gc-stats: Does garbage collection actually slow down Emacs?" data-slug="gc"> <title> 1:00- 1:35 emacs-gc-stats: Does garbage collection actually slow down Emacs?</title> <rect x="376" y="75" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(428,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gc</text></g></a> <a href="/2023/talks/hyperdrive" title="hyperdrive.el: Peer-to-peer filesystem in Emacs" data-slug="hyperdrive"> <title> 1:50- 2:30 hyperdrive.el: Peer-to-peer filesystem in Emacs</title> <rect x="454" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(514,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperdrive</text></g></a> <a href="/2023/talks/lspocaml" title="Writing a language server in OCaml for Emacs, fun, and profit" data-slug="lspocaml"> <title> 2:45- 3:00 Writing a language server in OCaml for Emacs, fun, and profit</title> <rect x="541" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(562,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspocaml</text></g></a> <a href="/2023/talks/test" title="What I learned by writing test cases for GNU Hyperbole" data-slug="test"> <title> 3:15- 3:45 What I learned by writing test cases for GNU Hyperbole</title> <rect x="588" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(633,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> test</text></g></a> <a href="/2023/talks/emacsconf" title="EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference" data-slug="emacsconf"> <title> 4:00- 4:20 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference</title> <rect x="658" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(687,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> emacsconf</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></svg></div>
\ No newline at end of file +<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2023/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 8:58- 9:04 Sunday opening remarks</title><rect x="-4" y="15" opacity="0.8" width="9" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(3,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2023/talks/hyperamp" title="Top 10 ways Hyperbole amps up Emacs" data-slug="hyperamp"><title> 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs</title><rect x="7" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(36,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperamp</text></g></a><a href="/2023/talks/koutline" title="Using Koutline for stream of thought journaling" data-slug="koutline"><title> 9:40-10:00 Using Koutline for stream of thought journaling</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutline</text></g></a><a href="/2023/talks/parallel" title="Parallel text replacement" data-slug="parallel"><title>10:10-10:25 Parallel text replacement</title><rect x="109" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(130,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">parallel</text></g></a><a href="/2023/talks/eat" title="Eat and Eat powered Eshell, fast featureful terminal inside Emacs" data-slug="eat"><title>10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs</title><rect x="149" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">eat</text></g></a><a href="/2023/talks/poltys" title="The browser in a buffer" data-slug="poltys"><title>11:00-11:20 The browser in a buffer</title><rect x="188" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">poltys</text></g></a><a href="/2023/talks/cubing" title="Speedcubing in Emacs" data-slug="cubing"><title>11:35-11:55 Speedcubing in Emacs</title><rect x="243" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(272,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cubing</text></g></a><a href="/2023/talks/emms" title="Emacs MultiMedia System (EMMS)" data-slug="emms"><title> 1:00- 1:40 Emacs MultiMedia System (EMMS)</title><rect x="376" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(436,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emms</text></g></a><a href="/2023/talks/steno" title="Programming with steno" data-slug="steno"><title> 1:55- 2:25 Programming with steno</title><rect x="462" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(507,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">steno</text></g></a><a href="/2023/talks/mentor" title="Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)" data-slug="mentor"><title> 2:35- 2:45 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)</title><rect x="525" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(538,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mentor</text></g></a><a href="/2023/talks/web" title="Emacs saves the Web (maybe)" data-slug="web"><title> 3:10- 3:40 Emacs saves the Web (maybe)</title><rect x="580" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">web</text></g></a><a href="/2023/talks/sharing" title="Sharing Emacs is Caring Emacs: Emacs education and why I embraced video" data-slug="sharing"><title> 3:55- 4:15 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video</title><rect x="650" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(679,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2023/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:30- 4:40 Sunday closing remarks</title><rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(718,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2023/talks/scheme" title="Bringing joy to Scheme programming" data-slug="scheme"><title>10:00-10:20 Bringing joy to Scheme programming</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">scheme</text></g></a><a href="/2023/talks/world" title="GNU Emacs: A World of Possibilities" data-slug="world"><title>10:35-10:55 GNU Emacs: A World of Possibilities</title><rect x="149" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(178,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">world</text></g></a><a href="/2023/talks/flat" title="A modern Emacs look-and-feel without pain" data-slug="flat"><title>11:10-11:20 A modern Emacs look-and-feel without pain</title><rect x="203" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(216,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">flat</text></g></a><a href="/2023/talks/emacsen" title="The Emacsen family, the design of an Emacs and the importance of Lisp" data-slug="emacsen"><title>11:35-11:55 The Emacsen family, the design of an Emacs and the importance of Lisp</title><rect x="243" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(272,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacsen</text></g></a><a href="/2023/talks/gc" title="emacs-gc-stats: Does garbage collection actually slow down Emacs?" data-slug="gc"><title> 1:00- 1:35 emacs-gc-stats: Does garbage collection actually slow down Emacs?</title><rect x="376" y="75" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(428,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gc</text></g></a><a href="/2023/talks/hyperdrive" title="hyperdrive.el: Peer-to-peer filesystem in Emacs" data-slug="hyperdrive"><title> 1:50- 2:30 hyperdrive.el: Peer-to-peer filesystem in Emacs</title><rect x="454" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(514,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2023/talks/lspocaml" title="Writing a language server in OCaml for Emacs, fun, and profit" data-slug="lspocaml"><title> 2:45- 3:00 Writing a language server in OCaml for Emacs, fun, and profit</title><rect x="541" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(562,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">lspocaml</text></g></a><a href="/2023/talks/test" title="What I learned by writing test cases for GNU Hyperbole" data-slug="test"><title> 3:15- 3:45 What I learned by writing test cases for GNU Hyperbole</title><rect x="588" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(633,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">test</text></g></a><a href="/2023/talks/emacsconf" title="EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference" data-slug="emacsconf"><title> 4:00- 4:20 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference</title><rect x="658" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(687,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacsconf</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg></div>
\ No newline at end of file diff --git a/2024/captions/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.vtt b/2024/captions/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.vtt index b27008a3..3266d254 100644 --- a/2024/captions/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.vtt +++ b/2024/captions/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.vtt @@ -1,747 +1,748 @@ WEBVTT -00:00.169 --> 00:01.830 +00:00:00.000 --> 00:00:06.039 ... Org mode and kind of note taking. And that meant that it wasn't -00:02.810 --> 00:08.532 +00:00:06.040 --> 00:00:10.679 too difficult to get started with. But when I started more on -00:08.972 --> 00:15.474 +00:00:10.680 --> 00:00:14.959 the coding side, because I'm a software engineer, you know, -00:08.972 --> 00:15.474 +00:00:14.960 --> 00:00:20.679 on the day job. That kind of got me to think that the colors and -00:16.366 --> 00:24.790 +00:00:20.680 --> 00:00:26.479 how themes look, how Emacs looks, was affecting. And that's -00:25.331 --> 00:28.973 +00:00:26.480 --> 00:00:30.719 how it kind of came to picture. So I could have kind of gone -00:29.073 --> 00:36.917 +00:00:30.720 --> 00:00:34.919 into a little bit more coding side of things, but I didn't -00:29.073 --> 00:36.917 +00:00:34.920 --> 00:00:38.319 want to stress too much on the talk. So that's why I kind of -00:36.957 --> 00:41.919 +00:00:38.320 --> 00:00:43.439 stuck to a very small bits of Org Mode and Elisp. And yeah, I -00:42.319 --> 00:45.321 +00:00:43.440 --> 00:00:48.159 think that's how it came about. Yeah, but that's perfectly -00:46.536 --> 00:48.577 +00:00:48.160 --> 00:00:52.119 fine. That's one of the chief reasons why we have two tracks -00:49.437 --> 00:52.778 +00:00:52.120 --> 00:00:54.799 for Emacs content. We've had those for the last four years, I -00:52.798 --> 00:55.059 +00:00:54.800 --> 00:00:57.279 think. It's because we have a general track, which is more -00:55.119 --> 01:05.442 +00:00:57.280 --> 00:00:59.239 geared towards people who want a general... well, -00:55.119 --> 01:05.442 +00:00:59.240 --> 00:01:01.799 generally people who are highly interested into org mode -00:55.119 --> 01:05.442 +00:01:01.800 --> 00:01:03.999 and not necessarily into coding, but just to whet their -00:55.119 --> 01:05.442 +00:01:04.000 --> 00:01:08.399 appetite to what can be done. And on the DevTrack, we have, -01:06.082 --> 01:12.986 +00:01:08.400 --> 00:01:11.519 well, this year we have talked about Rust and about other -01:06.082 --> 01:12.986 +00:01:11.520 --> 00:01:13.559 fancy things that people can do with Emacs. But, you know, -01:13.006 --> 01:15.768 +00:01:13.560 --> 00:01:15.559 I'm also a software engineer, you know, we do this all the -01:13.006 --> 01:15.768 +00:01:15.560 --> 00:01:18.079 time. Sometimes it's just fine to just chat about colors and -01:15.808 --> 01:21.751 +00:01:18.080 --> 00:01:20.959 just the results of what we develop rather than how the -01:15.808 --> 01:21.751 +00:01:20.960 --> 00:01:24.839 sausage is made. So that's completely fine too. I'm not sure NOTE Why colour? -01:23.733 --> 01:32.618 +00:01:24.840 --> 00:01:28.879 if you mentioned it in your presentation, but why color, out -01:23.733 --> 01:32.618 +00:01:28.880 --> 00:01:31.479 of all the things you could be ricing on your setup, why were -01:23.733 --> 01:32.618 +00:01:31.480 --> 00:01:37.559 you so interested about colors? I think it was just that -01:34.870 --> 01:41.176 +00:01:37.560 --> 00:01:40.239 mainly that I had to do a lot of context switch between -01:34.870 --> 01:41.176 +00:01:40.240 --> 00:01:44.119 different languages. Elisp is not the one because Elisp is -01:41.576 --> 01:46.600 +00:01:44.120 --> 00:01:48.079 something that I would do for Emacs editing. But for day job, -01:47.061 --> 01:52.385 +00:01:48.080 --> 00:01:52.999 I had to use mainly Go as I work with Kubernetes quite a bit. So -01:52.525 --> 01:57.109 +00:01:53.000 --> 00:01:58.119 Go and also web languages like TypeScript, JavaScript, you -01:58.090 --> 02:13.642 +00:01:58.120 --> 00:02:01.519 know, those languages, where I felt that whenever I was -01:58.090 --> 02:13.642 +00:02:01.520 --> 00:02:05.359 switching context to a different language, I felt that it's -01:58.090 --> 02:13.642 +00:02:05.360 --> 00:02:08.839 kind of annoying to see all the different colors in -01:58.090 --> 02:13.642 +00:02:08.840 --> 00:02:11.999 languages like TypeScript, where, you know, VS Code way -01:58.090 --> 02:13.642 +00:02:12.000 --> 00:02:15.799 would be very full of colors. which I felt that, okay, like, -02:14.262 --> 02:23.569 +00:02:15.800 --> 00:02:18.759 why do I have to have that many different colors on let and -02:14.262 --> 02:23.569 +00:02:18.760 --> 00:02:23.759 constant or the keywords where it could be just a white text? -02:23.789 --> 02:25.170 +00:02:23.760 --> 00:02:27.679 It didn't have to be that colorful. So that was the bit, the -02:25.890 --> 02:30.373 +00:02:27.680 --> 00:02:31.399 most annoying bit when it came to context switching. And I -02:30.974 --> 02:35.197 +00:02:31.400 --> 00:02:34.759 felt that that just didn't happen in the Org Mode or writing -02:30.974 --> 02:35.197 +00:02:34.760 --> 00:02:40.799 in general. So I had to find a way to make it work, make more -02:36.017 --> 02:41.481 +00:02:40.800 --> 00:02:46.199 coding make my coding more kind of friendly to me and that's -02:42.173 --> 02:59.576 +00:02:46.200 --> 00:02:50.039 when I thought maybe just the colors are something that's -02:42.173 --> 02:59.576 +00:02:50.040 --> 00:02:54.039 bothering me and it actually was the case and that's how I got -02:42.173 --> 02:59.576 +00:02:54.040 --> 00:02:59.359 to more into the color kind of journey and got too much into it -02:42.173 --> 02:59.576 +00:02:59.360 --> 00:03:04.039 I guess. Right, and was it what eventually motivated you to NOTE What motivated you to learn Elisp and get into the Emacs core? -03:00.535 --> 03:05.778 +00:03:04.040 --> 00:03:06.999 learn Elisp and to get into the Emacs core? Because it's -03:05.798 --> 03:22.406 +00:03:07.000 --> 00:03:09.399 funny how you find plenty of people using Emacs in Org Mode -03:05.798 --> 03:22.406 +00:03:09.400 --> 00:03:11.399 and then they find something that they take particular -03:05.798 --> 03:22.406 +00:03:11.400 --> 00:03:15.039 issue with, for you it's the color, and then they just go all -03:05.798 --> 03:22.406 +00:03:15.040 --> 00:03:18.039 in trying to pull the rope as far as they can to try to -03:05.798 --> 03:22.406 +00:03:18.040 --> 00:03:21.359 understand as much as possible about what code is managing -03:05.798 --> 03:22.406 +00:03:21.360 --> 00:03:23.879 this part of the application. Like for you it was color, for -03:22.786 --> 03:25.047 +00:03:23.880 --> 00:03:27.999 me it was the org agenda, I desperately wanted to make Org -03:25.367 --> 03:30.692 +00:03:28.000 --> 00:03:32.439 Agenda do something that it wasn't able to do. And five -03:31.433 --> 03:36.318 +00:03:32.440 --> 00:03:35.199 years, well, actually, no, 10 years later, I find myself -03:31.433 --> 03:36.318 +00:03:35.200 --> 00:03:38.199 hosting Emacs Cons. So, you never know just how far you're -03:36.598 --> 03:39.201 +00:03:38.200 --> 00:03:40.399 going to be pulling this rope. So, it's really interesting -03:39.561 --> 03:42.224 +00:03:40.400 --> 00:03:44.679 for me that my call was this. But back to the question, is this -03:42.464 --> 03:48.150 +00:03:44.680 --> 00:03:47.759 what eventually motivated you to get into Elisp and the core -03:42.464 --> 03:48.150 +00:03:47.760 --> 00:03:53.439 of Emacs? I think that the original journey to move to Emacs -03:49.798 --> 04:02.250 +00:03:53.440 --> 00:03:56.959 was around keybindings that I got annoyed with with other -03:49.798 --> 04:02.250 +00:03:56.960 --> 00:03:59.839 solutions, not just, you know, not speaking of Emacs -03:49.798 --> 04:02.250 +00:03:59.840 --> 00:04:02.879 keybinding or anything, like anything in general. The main -04:02.870 --> 04:09.797 +00:04:02.880 --> 00:04:07.519 reason was that I used Dovrak keyboard layout, and that -04:02.870 --> 04:09.797 +00:04:07.520 --> 00:04:10.799 meant that all the C-c, C-v, C-p, whatever, It just is -04:10.257 --> 04:11.417 +00:04:10.800 --> 00:04:13.919 all over the place. So I had to find something that could work -04:11.577 --> 04:14.298 +00:04:13.920 --> 00:04:17.039 for me. And Emacs was a solution that allowed me to do -04:14.898 --> 04:17.499 +00:04:17.040 --> 00:04:20.479 anything. And that's the kind of the journey that it -04:18.019 --> 04:21.519 +00:04:20.480 --> 00:04:24.039 originally started. And from there, started tweaking org -04:21.599 --> 04:28.421 +00:04:24.040 --> 00:04:28.439 mode and writing experience to be tuned to my liking. Color -04:29.101 --> 04:33.682 +00:04:28.440 --> 00:04:32.559 was another thing that I thought, OK, maybe I could do it -04:29.101 --> 04:33.682 +00:04:32.560 --> 00:04:36.239 easily with org mode. And when I started to use more of the -04:34.262 --> 04:37.983 +00:04:36.240 --> 00:04:40.799 coding side of things on Emacs, I felt that, okay, that was -04:39.355 --> 04:41.697 +00:04:40.800 --> 00:04:45.159 something I needed to solve. So Elisp was always kind of -04:41.877 --> 04:48.022 +00:04:45.160 --> 00:04:48.439 just a toolkit that, you know, I knew that it was available. I -04:48.322 --> 04:52.105 +00:04:48.440 --> 00:04:52.199 knew that it would be something that I want to be able to use. -04:52.646 --> 04:58.090 +00:04:52.200 --> 00:04:57.159 So I think in a way color was a good segue to understand how I -04:52.646 --> 04:58.090 +00:04:57.160 --> 00:05:03.359 can kind of work out more of a complex logic with the editor -04:59.136 --> 05:07.220 +00:05:03.360 --> 00:05:06.359 without having to write JavaScript or things that I don't -04:59.136 --> 05:07.220 +00:05:06.360 --> 00:05:09.399 particularly like. So yeah, I think the journey around the -05:07.440 --> 05:13.583 +00:05:09.400 --> 00:05:11.879 functional languages, functional kind of programming was -05:07.440 --> 05:13.583 +00:05:11.880 --> 00:05:15.439 always something that I was keen about. And yeah, the whole -05:13.943 --> 05:16.644 +00:05:15.440 --> 00:05:18.479 journey kind of made sense for me. And then moving on to the -05:16.984 --> 05:21.246 +00:05:18.480 --> 00:05:21.999 color was just one way to get more involved in. So I can -05:21.406 --> 05:27.069 +00:05:22.000 --> 00:05:26.279 totally see that this journey kind of making to a little bit -05:21.406 --> 05:27.069 +00:05:26.280 --> 00:05:30.759 different angle But yeah, we shall see how that really turns -05:27.669 --> 05:30.972 +00:05:30.760 --> 00:05:33.799 out. But for now, I think I'm happy with the color setup. Now I -05:33.514 --> 05:35.095 +00:05:33.800 --> 00:05:37.599 can really focus on the coding. Well, that's all good. And -05:37.156 --> 05:44.162 +00:05:37.600 --> 00:05:40.839 I'm sure plenty of people listening to you now, you know, -05:37.156 --> 05:44.162 +00:05:40.840 --> 00:05:43.639 find this relatable, how they eventually got into -05:37.156 --> 05:44.162 +00:05:43.640 --> 00:05:46.879 programming. Like for you, you did say that you were a -05:44.222 --> 05:47.745 +00:05:46.880 --> 00:05:50.519 software engineer now. But I found plenty of people, -05:48.705 --> 05:53.469 +00:05:50.520 --> 00:05:54.679 especially doing workshops, that just started you know, -05:54.339 --> 06:01.267 +00:05:54.680 --> 00:05:57.639 their software engineering journey just with Emacs and -05:54.339 --> 06:01.267 +00:05:57.640 --> 00:05:59.239 they just realized they were doing something completely -05:54.339 --> 06:01.267 +00:05:59.240 --> 00:06:01.999 different, like I was studying humanities. But then you -06:01.787 --> 00:06:02.687 +00:06:02.000 --> 00:06:05.079 touch Emacs and you realize, yeah, this whole programming -06:01.787 --> 06:06.693 +00:06:05.080 --> 00:06:06.679 shtick is actually pretty damn cool. -00:06:07.280 --> 00:06:09.399 +00:06:06.680 --> 00:06:09.079 And then you find yourself again, -00:06:09.400 --> 00:06:11.039 +00:06:09.080 --> 00:06:10.999 five to 10 years later, becoming a software -00:06:11.040 --> 00:06:12.919 +00:06:11.000 --> 00:06:12.999 engineer. So yeah, that's all good. -00:06:12.920 --> 00:06:14.519 +00:06:13.000 --> 00:06:13.919 So we do have a couple of -00:06:14.520 --> 00:06:18.439 +00:06:13.920 --> 00:06:18.439 questions and I'd like to move into them so that I, I mean, -00:06:18.440 --> 00:06:22.439 +00:06:18.440 --> 00:06:22.399 people have questions and for me it's okay for me to chat with -00:06:22.440 --> 00:06:25.119 +00:06:22.400 --> 00:06:25.119 you but obviously it's better if people ask you the question -00:06:25.120 --> 00:06:27.679 +00:06:25.120 --> 00:06:27.639 themselves. And again, if you want to ask questions to Ryota -00:06:27.680 --> 00:06:31.079 +00:06:27.640 --> 00:06:31.039 directly, feel free to join us on BBB and whenever we're done -00:06:31.080 --> 00:06:33.519 +00:06:31.040 --> 00:06:33.519 with the questions on the pad, I'm more than happy -00:06:33.520 --> 00:06:34.444 +00:06:33.520 --> 00:06:35.319 to let you ask your questions live. NOTE Q: Is there any intention to create a library for working with more experimental color spaces? Pulling code out of Hasliberg for this purpose, perhaps? -06:35.982 --> 00:06:37.902 +00:06:35.320 --> 00:06:37.799 All right, so starting with the first question, -00:06:37.903 --> 00:06:45.108 +00:06:37.800 --> 00:06:39.999 is there any intention to create a library -00:06:37.903 --> 06:45.108 +00:06:40.000 --> 00:06:42.559 for working with more experimental color spaces, pulling -06:35.982 --> 06:45.108 +00:06:42.560 --> 00:06:45.679 code out of Hasliberg for this purpose, perhaps? Although I -06:45.329 --> 06:46.049 +00:06:45.680 --> 00:06:50.479 do not know. Hasliberg, you might? Yeah, Hasliberg. And to -06:49.692 --> 06:50.892 +00:06:50.480 --> 00:06:55.119 answer the question, started the journey just for myself -06:52.859 --> 07:04.331 +00:06:55.120 --> 00:06:58.479 and I didn't think that it would be actually useful for other -06:52.859 --> 07:04.331 +00:06:58.480 --> 00:07:03.319 use cases and this conference talk just came about kind of -06:52.859 --> 07:04.331 +00:07:03.320 --> 00:07:08.079 out of sheer luck really. So the idea I think I can definitely -07:04.771 --> 07:14.501 +00:07:08.080 --> 00:07:12.199 work it out and I don't think there will be too, the original -07:04.771 --> 07:14.501 +00:07:12.200 --> 00:07:17.639 code that I started with was I had to use some color space and I -07:15.931 --> 07:21.595 +00:07:17.640 --> 00:07:22.479 started with sRGB and then went to HSL and then went to LCH. So -07:21.996 --> 07:24.678 +00:07:22.480 --> 00:07:25.479 I think there has been quite a bit that I learned from it. At -07:25.458 --> 07:33.885 +00:07:25.480 --> 00:07:29.999 the same time, I may be tempted to actually maybe perhaps -07:25.458 --> 07:33.885 +00:07:30.000 --> 00:07:34.159 contribute back to ct.el rather than creating my own. I -07:34.105 --> 07:36.227 +00:07:34.160 --> 00:07:36.279 think that would make more sense perhaps. -07:36.607 --> 00:07:39.548 +00:07:36.280 --> 00:07:39.479 But for my own kind of taste that I thought -00:07:39.549 --> 00:07:42.891 +00:07:39.480 --> 00:07:42.839 that it would be something I can work out in my theme, -00:07:42.892 --> 00:07:44.273 +00:07:42.840 --> 00:07:46.879 but I don't have any I think, you know, making a -07:45.813 --> 07:53.975 +00:07:46.880 --> 00:07:49.999 library is definitely something that I can think about, but -07:45.813 --> 07:53.975 +00:07:50.000 --> 00:07:53.679 perhaps maybe making it too many packages isn't exactly -07:45.813 --> 07:53.975 +00:07:53.680 --> 00:07:57.319 what I want. But for my own use case, I think I just wanted to -07:55.175 --> 08:06.317 +00:07:57.320 --> 00:07:59.919 have something that just didn't have any external -07:55.175 --> 08:06.317 +00:07:59.920 --> 00:08:04.119 dependency so that I can use the vanilla Emacs with my -07:55.175 --> 08:06.317 +00:08:04.120 --> 00:08:09.639 colors. I think that's how it started, but I'm definitely up -08:06.757 --> 08:11.558 +00:08:09.640 --> 00:08:13.719 for it if there is interest about it. Yeah, well, thank you -08:12.622 --> 00:08:13.615 +00:08:13.720 --> 00:08:15.279 for this. It's always good to contribute. -00:08:16.040 --> 00:08:16.399 +00:08:15.280 --> 00:08:16.399 I'm tempted to say -00:08:16.400 --> 00:08:18.679 +00:08:16.400 --> 00:08:18.279 that's how they get you. You know, you do something really -00:08:18.680 --> 00:08:24.799 +00:08:18.280 --> 00:08:23.639 cool and you share it with people and they have the, you know, -00:08:24.800 --> 00:08:27.080 +00:08:23.640 --> 00:08:27.239 they just ask you, oh, do you have your code online? And you -08:27.166 --> 08:28.667 +00:08:27.240 --> 00:08:29.399 realize, no, I haven't pushed it. And then they start -08:28.707 --> 08:30.107 +00:08:29.400 --> 00:08:32.359 pressing you on. well, you need to do this, this is amazing -08:30.287 --> 08:33.349 +00:08:32.360 --> 00:08:35.879 and you need to share it. You know, I had plenty of people ask -08:33.849 --> 08:41.735 +00:08:35.880 --> 00:08:40.519 me to share my dot files when I was tackling the org agenda -08:33.849 --> 08:41.735 +00:08:40.520 --> 00:08:44.039 issue that I mentioned earlier. And yeah, eventually when -08:42.575 --> 08:54.243 +00:08:44.040 --> 00:08:47.479 you get to publishing your stuff, you also feel great -08:42.575 --> 08:54.243 +00:08:47.480 --> 00:08:50.279 because you're putting a little bit of your intelligence -08:42.575 --> 08:54.243 +00:08:50.280 --> 00:08:53.679 into the world and it can be the start of the journey for -08:42.575 --> 08:54.243 +00:08:53.680 --> 00:08:56.239 someone else. You know, maybe someone will find your -08:54.283 --> 08:59.867 +00:08:56.240 --> 00:08:58.679 library at some point and realize, yeah, I wanted to do -08:54.283 --> 08:59.867 +00:08:58.680 --> 00:09:01.239 something slightly differently. and then they either -09:00.387 --> 09:10.793 +00:09:01.240 --> 00:09:04.439 contribute to a library or they make their own but it's a -09:00.387 --> 09:10.793 +00:09:04.440 --> 00:09:07.359 complete journey that starts with just people taking the -09:00.387 --> 09:10.793 +00:09:07.360 --> 00:09:12.039 time to publish the content of the brain basically. Yeah, -09:11.894 --> 09:13.354 +00:09:12.040 --> 00:09:15.519 that's the power of open source now. It's just how we really -09:13.654 --> 09:21.276 +00:09:15.520 --> 00:09:19.119 appreciate the open source culture being cultivated -09:13.654 --> 09:21.276 +00:09:19.120 --> 00:09:23.159 throughout so many years. And yeah, this is something that -09:21.736 --> 09:24.337 +00:09:23.160 --> 00:09:26.999 I'm definitely keen about. So yeah, open for suggestions. -09:26.618 --> 09:29.298 +00:09:27.000 --> 00:09:30.079 And exactly, that's how I started with the journey. And -00:09:29.760 --> 00:09:33.559 +00:09:30.080 --> 00:09:33.519 yeah, while this is very experimental and very personal, -00:09:33.560 --> 00:09:38.239 +00:09:33.520 --> 00:09:38.199 yeah, I'm not, you know, tied down to one particular way -00:09:38.240 --> 00:09:41.679 +00:09:38.200 --> 00:09:41.399 only. So yeah we'll be open to suggestions like this one -00:09:41.680 --> 00:09:44.839 +00:09:41.400 --> 00:09:44.719 which I would definitely think about. Yeah that's amazing -00:09:44.840 --> 00:09:46.879 +00:09:44.720 --> 00:09:46.999 and just to be clear you know this is not a there's no -00:09:46.880 --> 00:09:47.840 +00:09:47.000 --> 00:09:50.639 incentive one. I'm not pushing you to publish your library. -09:51.070 --> 09:57.595 +00:09:50.640 --> 00:09:53.799 You know it was very personal for you and at the end if you -09:51.070 --> 09:57.595 +00:09:53.800 --> 00:09:56.199 believe it might be useful for others it's a nice thing to -09:51.070 --> 09:57.595 +00:09:56.200 --> 00:09:58.799 eventually think about publishing it. But just the fact -09:58.056 --> 10:00.117 +00:09:58.800 --> 00:10:01.439 that you showed up at EmacsConf... Sorry, I'm -10:01.278 --> 00:10:02.698 +00:10:01.440 --> 00:10:02.639 starting to lose my voice on the morning -00:10:02.699 --> 00:10:03.280 +00:10:02.640 --> 00:10:03.839 of the first day. That's -10:03.520 --> 00:10:08.559 +00:10:03.840 --> 00:10:07.639 not boding well for the two next days. I mean, just one day. -00:10:08.560 --> 00:10:10.079 +00:10:07.640 --> 00:10:09.159 But just the -00:10:10.080 --> 00:10:13.279 +00:10:09.160 --> 00:10:13.199 fact that you're showing up at EmacsConf and sharing about -00:10:13.280 --> 00:10:17.119 +00:10:13.200 --> 00:10:17.039 all of this, the process, how you got to it eventually, it's -00:10:17.120 --> 00:10:19.439 +00:10:17.040 --> 00:10:19.639 also a part of sharing. And I think it's also amazing in its -00:10:19.440 --> 00:10:26.039 +00:10:19.640 --> 00:10:26.039 own way. Absolutely. Okay, I'm going to try to read the next -00:10:26.040 --> 00:10:31.719 +00:10:26.040 --> 00:10:31.639 question and then try to cough a little bit. So can we have... -00:10:31.720 --> 00:10:36.919 +00:10:31.640 --> 00:10:36.759 Oh, sorry, Bala. Sorry. I was the one who asked the question. -00:10:36.920 --> 00:10:40.120 +00:10:36.760 --> 00:10:40.279 I thought I could ask it live here rather than... Thank you. -10:40.188 --> 10:41.368 +00:10:40.280 --> 00:10:46.039 I'll go cough a little bit. So here I am. Thanks, Ryota, for -10:45.050 --> 10:47.190 +00:10:46.040 --> 00:10:50.519 the nice talk. This is great. I loved it. Your attention to -10:49.531 --> 00:10:50.140 +00:10:50.520 --> 00:10:51.519 detail was awesome. NOTE Q: Can we have a dark as well as light theme variations made from your theme? -00:10:51.880 --> 00:10:55.079 +00:10:51.520 --> 00:10:54.959 So I was just looking at the code and I was -00:10:55.080 --> 00:10:58.839 +00:10:54.960 --> 00:10:58.759 wondering, do you have a dark and a light theme variation -00:10:58.840 --> 00:11:02.479 +00:10:58.760 --> 00:11:02.599 which can be made from your theme? Or do you have to customize -00:11:02.480 --> 00:11:05.519 +00:11:02.600 --> 00:11:06.199 it every time? That was my question. And thanks for that. -00:11:05.520 --> 00:11:07.640 +00:11:06.200 --> 00:11:09.679 Thank you very much. I appreciate your feedback and -00:11:10.240 --> 00:11:15.079 +00:11:09.680 --> 00:11:15.039 questions. So to answer the question, the short answer is -00:11:15.080 --> 00:11:18.639 +00:11:15.040 --> 00:11:18.439 that I do have both dark and light themes with some sorts of -00:11:18.640 --> 00:11:22.199 +00:11:18.440 --> 00:11:22.199 standard colors that I personally liked. And there were a -00:11:22.200 --> 00:11:26.719 +00:11:22.200 --> 00:11:26.679 few things that I showed in the demo. where I showed, I think, -00:11:26.720 --> 00:11:30.039 +00:11:26.680 --> 00:11:29.999 three different dark theme colors. So light theme is -00:11:30.040 --> 00:11:31.440 +00:11:30.000 --> 00:11:31.559 definitely something that I can do. -00:11:31.800 --> 00:11:33.879 +00:11:31.560 --> 00:11:33.759 And the idea around Hasliberg theme -00:11:33.880 --> 00:11:36.359 +00:11:33.760 --> 00:11:36.279 and just my theming in general was that -00:11:36.360 --> 00:11:39.679 +00:11:36.280 --> 00:11:39.599 when I feel like I want to work in dark theme and when I want to -00:11:39.680 --> 00:11:42.440 +00:11:39.600 --> 00:11:42.159 work in the standard way, I would just use the standard color. -00:11:42.480 --> 00:11:44.959 +00:11:42.160 --> 00:11:44.919 But when I feel like maybe it's just so cold that I want -00:11:44.960 --> 00:11:49.399 +00:11:44.920 --> 00:11:48.519 to have a bit of a warm colors near me, I would use the orange -00:11:49.400 --> 00:11:52.359 +00:11:48.520 --> 00:11:52.279 theme, without changing too much of the kind of general -00:11:52.360 --> 00:11:55.679 +00:11:52.280 --> 00:11:55.639 feeling and experience. So that can be said for the light -00:11:55.680 --> 00:11:58.959 +00:11:55.640 --> 00:11:58.959 theme as well. So there is something and the kind of -00:11:58.960 --> 00:12:04.919 +00:11:58.960 --> 00:12:04.839 customization isn't that difficult to extend. So I do have -00:12:04.920 --> 00:12:09.079 +00:12:04.840 --> 00:12:09.359 both dark and light, but primarily I'm just looking at the -00:12:09.080 --> 00:12:10.239 +00:12:09.360 --> 00:12:12.839 dark theme as my main driver. But yeah, they are both -00:12:10.240 --> 00:12:13.240 +00:12:12.840 --> 00:12:18.239 available. Great. Thank you so much. I will definitely try -00:12:18.208 --> 12:18.865 +00:12:18.240 --> 00:12:21.719 your theme out. I'm definitely on the lookout for a nice, -12:19.205 --> 12:22.426 +00:12:21.720 --> 00:12:26.119 friendly theme. Thank you very much. As I said, this is a -12:25.388 --> 12:27.429 +00:12:26.120 --> 00:12:31.279 personal theme. I'm not sure if it really fits everyone's -12:29.089 --> 12:42.816 +00:12:31.280 --> 00:12:37.159 need, but it is one inspiration that I hope that can lead to -12:29.089 --> 12:42.816 +00:12:37.160 --> 00:12:40.639 another nice theming that could work for someone -12:29.089 --> 12:42.816 +00:12:40.640 --> 00:12:44.199 specifically for some use cases. I don't have to solve -12:42.996 --> 12:44.977 +00:12:44.200 --> 00:12:48.719 everyone's problem. Yeah, and I mean, it was sufficient to -12:46.553 --> 12:49.715 +00:12:48.720 --> 00:12:50.719 be inspirational to people. I mean, just Bala just -12:49.755 --> 12:58.619 +00:12:50.720 --> 00:12:53.759 mentioned it right now, but I'm sure plenty of people who -12:49.755 --> 12:58.619 +00:12:53.760 --> 00:12:55.999 watched live, but also people will be watching in the -12:49.755 --> 12:58.619 +00:12:56.000 --> 00:12:58.599 future, will have the interest to speak by what you've done. -12:58.699 --> 13:00.040 +00:12:58.600 --> 00:13:05.079 So thank you again so much for this. Yep. All right, well, I -13:04.102 --> 13:06.603 +00:13:05.080 --> 00:13:09.719 don't see any further questions. So I suggest we move -13:07.083 --> 13:10.525 +00:13:09.720 --> 00:13:14.279 towards closure. Ryota, do you have any last words? No, I -13:13.775 --> 13:14.175 +00:13:14.280 --> 00:13:17.079 don't. So yeah, thank you very much for attending. And it was -13:16.577 --> 13:18.979 +00:13:17.080 --> 00:13:20.519 great fun putting this together. And I really didn't think -13:19.299 --> 13:27.545 +00:13:20.520 --> 00:13:24.759 that I would be talking about my personal colors and -13:19.299 --> 13:27.545 +00:13:24.760 --> 00:13:27.759 personal favorites, like orange being my favorite color. -13:27.845 --> 13:31.228 +00:13:27.760 --> 00:13:30.119 This wouldn't be something that I would say out in any -13:27.845 --> 13:31.228 +00:13:30.120 --> 00:13:34.159 conference, to be honest. But it just came out to be. And -13:33.890 --> 13:35.491 +00:13:34.160 --> 00:13:37.479 happy that I had a chance. So thank you very much for giving me -13:35.651 --> 13:39.154 +00:13:37.480 --> 00:13:41.439 the opportunity to talk. in this amazing conference and -13:39.574 --> 13:52.473 +00:13:41.440 --> 00:13:44.319 yeah I can't just wait to check out other talks which you know -13:39.574 --> 13:52.473 +00:13:44.320 --> 00:13:46.919 I know that there isn't you know other talks that are -13:39.574 --> 13:52.473 +00:13:46.920 --> 00:13:50.199 happening right now I was actually wanted to to join them and -13:39.574 --> 13:52.473 +00:13:50.200 --> 00:13:52.759 check check that out so I will probably do that right now. -13:53.419 --> 13:53.899 +00:13:52.760 --> 00:13:56.839 Well, sure. Well, I won't hold you any longer then. Thank -13:56.401 --> 13:56.741 +00:13:56.840 --> 00:13:59.759 you. For me, it was just amazing to, you know, generally when -13:57.682 --> 14:03.285 +00:13:59.760 --> 00:14:01.639 you ask someone what their favorite color, you know, they -13:57.682 --> 14:03.285 +00:14:01.640 --> 00:14:04.399 just tell you orange or blue or whatever. They don't go then -14:03.586 --> 14:10.690 +00:14:04.400 --> 00:14:07.039 to chat about 20 minutes about their favorite color and how -14:03.586 --> 14:10.690 +00:14:07.040 --> 00:14:10.079 they tuned their entire editor to work exactly around their -14:03.586 --> 14:10.690 +00:14:10.080 --> 00:14:14.759 favorite colors. So it was inspiring. And I also want to try -14:12.912 --> 14:21.057 +00:14:14.760 --> 00:14:17.999 it out, frankly, because my theme has been utterly bad for -14:12.912 --> 14:21.057 +00:14:18.000 --> 00:14:20.639 the last five years and I need some change into my life. All -14:21.497 --> 14:21.677 +00:14:20.640 --> 00:14:24.319 right. Thank you so much for your time. Thank you very much, -14:23.629 --> 14:24.654 +00:14:24.320 --> 00:14:30.640 everyone. Cheers. Bye-bye. + diff --git a/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main--chapters.vtt b/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main--chapters.vtt index 89190453..57ef14d3 100644 --- a/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main--chapters.vtt +++ b/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main--chapters.vtt @@ -1,35 +1,35 @@ WEBVTT -00:00:00.000 --> 00:01:41.800 +00:00:00.000 --> 00:01:41.759 Introduction -00:01:41.800 --> 00:07:45.719 +00:01:41.760 --> 00:07:44.699 Android -00:07:45.720 --> 00:09:27.320 +00:07:44.700 --> 00:09:30.239 EditorConfig -00:09:27.310 --> 00:13:11.559 +00:09:30.240 --> 00:13:11.399 use-package integration with package-vc -00:13:11.560 --> 00:15:56.679 +00:13:11.400 --> 00:15:56.839 JSON -00:15:56.680 --> 00:17:29.639 +00:15:56.840 --> 00:17:30.719 Native compilation -00:17:29.640 --> 00:18:16.779 +00:17:30.720 --> 00:18:16.819 Tree-sitter -00:18:16.780 --> 00:19:34.200 +00:18:16.820 --> 00:19:34.219 Completion preview mode -00:19:34.233 --> 00:21:16.919 +00:19:34.220 --> 00:21:16.779 package-isolate -00:21:16.920 --> 00:23:17.939 +00:21:16.780 --> 00:23:17.879 Reindenting -00:23:17.940 --> 00:24:43.766 +00:23:17.880 --> 00:24:43.120 Wrapping up diff --git a/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.vtt b/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.vtt index f0d08f0b..feebc2ed 100644 --- a/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.vtt +++ b/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.vtt @@ -1,1361 +1,1361 @@ -WEBVTT captioned by anush and sachac, checked by anush and bhavin +WEBVTT captioned by anush NOTE Introduction -00:00.000 --> 00:06.066 +00:00:00.000 --> 00:00:06.119 Hello, and welcome to Emacs 30 Highlights at EmacsConf 2024. -00:06.100 --> 00:08.833 +00:00:06.120 --> 00:00:08.839 Before I begin, I'd like to thank the organizers -00:08.866 --> 00:11.800 +00:00:08.840 --> 00:00:11.799 and everyone involved for putting this all together. -00:11.800 --> 00:13.733 +00:00:11.800 --> 00:00:13.759 While this talk is being pre-recorded, -00:13.766 --> 00:15.233 +00:00:13.760 --> 00:00:15.239 my experience from the last few years -00:15.266 --> 00:19.100 +00:00:15.240 --> 00:00:19.159 assures me that it will be a great experience for everyone. -00:19.133 --> 00:21.300 +00:00:19.160 --> 00:00:21.359 My name is Philip Kaludercic. -00:21.333 --> 00:24.466 +00:00:21.360 --> 00:00:24.479 I am a core contributor and ELPA co-maintainer. -00:24.500 --> 00:26.066 +00:00:24.480 --> 00:00:26.079 I was honored when Sacha asked me -00:26.100 --> 00:28.333 +00:00:26.080 --> 00:00:28.359 to take over the slot for this year. -00:28.366 --> 00:29.866 +00:00:28.360 --> 00:00:29.879 In the past few iterations, -00:29.900 --> 00:32.133 +00:00:29.880 --> 00:00:32.199 John Wiegley has filled a similar presentation -00:32.166 --> 00:35.666 +00:00:32.200 --> 00:00:35.679 focusing on more general Emacs development updates. -00:35.700 --> 00:00:38.501 +00:00:35.680 --> 00:00:38.519 This year, I will specifically focus on -00:00:38.502 --> 00:00:41.900 +00:00:38.520 --> 00:00:41.919 highlight features from the upcoming Emacs 30 release, -00:41.933 --> 00:44.200 +00:00:41.920 --> 00:00:43.919 which might or might not have been released -00:44.200 --> 00:00:48.059 +00:00:43.920 --> 00:00:48.079 by the time you are seeing this. -00:00:48.060 --> 00:51.266 +00:00:48.080 --> 00:00:51.079 As you can imagine, everything new about Emacs -00:51.300 --> 00:55.133 +00:00:51.080 --> 00:00:55.059 can always be found in the Emacs NEWS file. -00:55.166 --> 00:57.100 +00:00:55.060 --> 00:00:57.079 Or, alternatively, -00:57.133 --> 01:01.800 +00:00:57.080 --> 00:01:01.919 if one doesn't want to read through the 3,000 lines here, -01:01.800 --> 01:05.233 +00:01:01.920 --> 00:01:05.279 one can also take a look at the Emacs FAQ -01:05.266 --> 01:08.000 +00:01:05.280 --> 00:01:07.999 and then go to the what's new about -01:08.000 --> 01:12.300 +00:01:08.000 --> 00:01:12.219 or what's different about Emacs 30 node. -01:12.333 --> 01:14.700 +00:01:12.220 --> 00:01:14.759 Next to these two official options, -01:14.733 --> 01:18.200 +00:01:14.760 --> 00:01:18.599 I also have a page on Emacs Wiki -01:18.200 --> 01:21.300 +00:01:18.600 --> 00:01:21.439 called EmacsThirtyHighlights, -01:21.333 --> 01:24.266 +00:01:21.440 --> 00:01:24.279 highlighting some of the interesting features -01:24.300 --> 01:28.433 +00:01:24.280 --> 00:01:28.439 with some context and suggestions on how to try them out. -01:28.466 --> 01:30.033 +00:01:28.440 --> 00:01:30.039 This is more of a collaborative effort. -01:30.066 --> 01:32.733 +00:01:30.040 --> 00:01:32.719 So if you see this and think something is missing, -01:32.766 --> 01:34.500 +00:01:32.720 --> 00:01:34.519 feel free to add it. -01:34.533 --> 01:36.833 +00:01:34.520 --> 00:01:36.839 So without further ado, -01:36.866 --> 01:41.800 +00:01:36.840 --> 00:01:41.759 let's begin taking a look at new features in Emacs 30. NOTE Android -01:41.800 --> 01:44.700 +00:01:41.760 --> 00:01:44.679 The biggest one, and the one I want to mention first, -01:44.733 --> 01:49.033 +00:01:44.680 --> 00:01:49.039 is Android support, native Android support. -01:49.066 --> 01:51.833 +00:01:49.040 --> 00:01:51.879 As you can see here, Emacs has been ported -01:51.866 --> 01:53.666 +00:01:51.880 --> 00:01:53.639 to the Android operating system. -01:53.700 --> 01:56.500 +00:01:53.640 --> 00:01:56.479 What this means is that from Emacs 30 onwards, -01:56.533 --> 02:01.066 +00:01:56.480 --> 00:02:01.279 you can build Android to target Android devices natively -02:01.100 --> 02:06.733 +00:02:01.280 --> 00:02:06.759 and using a graphical interface. -02:06.766 --> 02:08.433 +00:02:06.760 --> 00:02:08.799 While it has been possible to run Emacs -02:08.466 --> 02:11.133 +00:02:08.800 --> 00:02:11.159 inside of terminal emulators on Android for a while, -02:11.166 --> 02:13.900 +00:02:11.160 --> 00:02:13.919 this actually means that you can use Emacs -02:13.933 --> 02:17.533 +00:02:13.920 --> 00:02:17.519 on an Android device, a phone or a tablet, -02:17.566 --> 02:20.933 +00:02:17.520 --> 00:02:20.959 and have all the usual advantages from GUI Emacs, -02:20.966 --> 02:23.466 +00:02:20.960 --> 00:02:23.479 such as the ability to bind all commands -02:23.500 --> 02:25.466 +00:02:23.480 --> 00:02:25.479 without having to worry about-- -02:25.500 --> 02:27.266 +00:02:25.480 --> 00:02:27.279 all keys without having to worry -02:27.300 --> 02:29.033 +00:02:27.280 --> 00:02:29.359 about terminal compatibility issues, -02:29.066 --> 02:32.733 +00:02:29.360 --> 00:02:32.759 displaying images and multiple fonts -02:32.766 --> 02:35.333 +00:02:32.760 --> 00:02:35.359 on the same display of different sizes. -02:35.366 --> 02:37.300 +00:02:35.360 --> 00:02:37.279 I should have a recording -02:37.333 --> 02:42.200 +00:02:37.280 --> 00:02:42.199 of that somewhere here--here we are-- -02:42.200 --> 02:44.100 +00:02:42.200 --> 00:02:44.439 which I made earlier on my phone, -02:44.133 --> 02:47.266 +00:02:44.440 --> 00:02:47.319 because I'm recording this on a laptop-- -02:47.300 --> 02:50.466 +00:02:47.320 --> 00:02:50.479 where we can see how touch interaction works -02:50.500 --> 02:53.333 +00:02:50.480 --> 00:02:53.199 on an Android phone. I can switch between buffers. -02:53.366 --> 02:56.100 +00:02:53.200 --> 00:02:56.119 Here I've connected an external keyboard, -02:56.133 --> 02:57.800 +00:02:56.120 --> 00:02:58.559 opening the Emacs website. -02:57.800 --> 00:03:02.559 +00:02:58.560 --> 00:03:02.679 We have images that we can interact with. -00:03:02.560 --> 00:03:04.319 +00:03:02.680 --> 00:03:05.319 We could resize them if we wanted to -00:03:04.320 --> 03:07.400 +00:03:05.320 --> 00:03:07.559 with the image resizing commands. -03:07.400 --> 03:10.300 +00:03:07.560 --> 00:03:10.359 Pinch-to-zoom works, so it -03:10.333 --> 03:12.733 +00:03:10.360 --> 00:03:12.759 does realize what touchscreen interactions are. -03:12.766 --> 03:15.233 +00:03:12.760 --> 00:03:15.239 With an external mouse, and for example, -03:15.266 --> 03:17.800 +00:03:15.240 --> 00:03:17.799 enabling context menu mode, -03:17.800 --> 03:23.066 +00:03:17.800 --> 00:03:22.679 I can even pop up little interaction windows, -03:23.100 --> 00:03:28.139 +00:03:22.680 --> 00:03:27.239 which one you would usually also know from GUI Emacs. -00:03:28.140 --> 03:33.200 +00:03:27.240 --> 00:03:32.959 TUI Emacs actually also supports them since a while now. -03:33.200 --> 03:34.600 +00:03:32.960 --> 00:03:34.639 And in this case, I'm demonstrating -03:34.600 --> 03:36.000 +00:03:34.640 --> 00:03:35.999 how even the touchscreen events -03:36.000 --> 03:39.133 +00:03:36.000 --> 00:03:39.119 can be inspected using the usual help system, -03:39.166 --> 03:43.333 +00:03:39.120 --> 00:03:43.359 and how context-mode notices -03:43.366 --> 03:45.200 +00:03:43.360 --> 00:03:45.239 where we are and allows me to, for example, -03:45.200 --> 03:47.800 +00:03:45.240 --> 00:03:47.799 evaluate this specific region, -03:47.800 --> 03:49.300 +00:03:47.800 --> 00:03:49.079 which I've highlighted down there, -03:49.333 --> 03:58.300 +00:03:49.080 --> 00:03:58.319 binding a command to touch-screen-scroll. Yeah. -03:58.333 --> 04:00.533 +00:03:58.320 --> 00:04:00.479 One should note that these additions, -04:00.566 --> 04:02.400 +00:04:00.480 --> 00:04:02.359 for example touchscreen interaction, -04:02.400 --> 04:03.833 +00:04:02.360 --> 00:04:04.159 are not specific to Android, -04:03.866 --> 04:07.066 +00:04:04.160 --> 00:04:06.839 but they also are supported in other operating systems, -04:07.100 --> 04:12.200 +00:04:06.840 --> 00:04:12.279 such as Wayland and Xorg, which are not operating systems, -04:12.200 --> 04:15.300 +00:04:12.280 --> 00:04:15.279 and Windows, insofar as they have touchscreen, -04:15.333 --> 00:04:18.419 +00:04:15.280 --> 00:04:18.419 and devices have touchscreen support. -00:04:18.420 --> 04:21.300 +00:04:18.420 --> 00:04:21.239 One should mention, or I want to mention, -04:21.333 --> 04:24.666 +00:04:21.240 --> 00:04:24.039 that the main developer behind this feature, Po Lu, -04:24.700 --> 04:27.500 +00:04:24.040 --> 00:04:27.319 should be complimented for the additional effort he put -04:27.533 --> 00:04:31.019 +00:04:27.320 --> 00:04:30.979 into making sure that Emacs for Android -00:04:31.020 --> 04:34.133 +00:04:30.980 --> 00:04:33.719 can be built using only a free software toolchain, -04:34.166 --> 00:04:36.359 +00:04:33.720 --> 00:04:36.999 which is certainly not something one has come to expect -00:04:36.360 --> 04:40.700 +00:04:37.000 --> 00:04:40.759 from working on Android applications, -04:40.733 --> 04:43.833 +00:04:40.760 --> 00:04:43.839 as usually you have to agree to some terms and conditions -04:43.866 --> 00:04:46.519 +00:04:43.840 --> 00:04:46.479 for Google-specific software. -00:04:46.520 --> 04:49.633 +00:04:46.480 --> 00:04:49.639 Final note is that if you try and look for this online, -04:49.666 --> 04:52.133 +00:04:49.640 --> 00:04:52.119 there are APKs you can find, -04:52.166 --> 04:54.666 +00:04:52.120 --> 00:04:54.679 but some of them might be outdated. -04:54.700 --> 04:59.333 +00:04:54.680 --> 00:04:59.359 To the best of my knowledge, Po Lu has... -04:59.366 --> 05:03.400 +00:04:59.360 --> 00:05:02.399 Emacs 30 Android Sourceforge... -05:03.400 --> 05:06.500 +00:05:02.400 --> 00:05:06.759 He has set up some system where here in Sourceforge, -05:06.533 --> 05:12.433 +00:05:06.760 --> 00:05:12.799 there are regular and updated -05:12.466 --> 05:14.500 +00:05:12.800 --> 00:05:14.519 APK files which you can download -05:14.533 --> 05:16.933 +00:05:14.520 --> 00:05:17.039 to avoid having to build it yourself, -05:16.966 --> 05:18.866 +00:05:17.040 --> 00:05:18.559 testing out the newest version -05:18.900 --> 05:24.133 +00:05:18.560 --> 00:05:27.619 in case there are some bugs which you'd like to report. -05:24.166 --> 05:33.100 +00:05:27.620 --> 00:05:33.119 Which-key is a package which has now been moved -05:33.133 --> 05:35.266 +00:05:33.120 --> 00:05:34.719 from ELPA to the core. -05:35.300 --> 00:05:39.179 +00:05:34.720 --> 00:05:38.879 If you haven't heard of which-key before, the idea is, -00:05:39.180 --> 05:41.633 +00:05:38.880 --> 00:05:41.399 or the general pitch is that which-key -05:41.666 --> 05:45.233 +00:05:41.400 --> 00:05:45.279 is a additional documentation interface for Emacs -05:45.266 --> 05:49.700 +00:05:45.280 --> 00:05:49.639 for displaying various keys which you could input, -05:49.733 --> 00:05:53.439 +00:05:49.640 --> 00:05:53.479 or various keys and key maps -00:05:53.440 --> 05:54.833 +00:05:53.480 --> 00:05:55.479 that have been partially inputted. -05:54.866 --> 05:57.633 +00:05:55.480 --> 00:05:57.639 A better way to demonstrate this -05:57.666 --> 05:59.300 +00:05:57.640 --> 00:05:59.319 or to explain this is just to show it. -05:59.333 --> 06:03.466 +00:05:59.320 --> 00:06:03.519 If we enable the which-key mode--it's a global minor mode-- -06:03.500 --> 06:06.333 +00:06:03.520 --> 00:06:06.399 then I can press, for example, C-x, -06:06.366 --> 06:08.700 +00:06:06.400 --> 00:06:08.719 which is a prefix for the C-x keymap. -06:08.733 --> 06:12.433 +00:06:08.720 --> 00:06:11.719 Then down here in the buffer, in this window down here, -06:12.466 --> 06:15.333 +00:06:11.720 --> 00:06:15.599 we see various commands which we could invoke -06:15.366 --> 06:17.900 +00:06:15.600 --> 00:06:17.919 and the keys to invoke them with. -06:17.933 --> 06:23.000 +00:06:17.920 --> 00:06:23.039 For example, if I wanted to say C-x i for insert-file, -06:23.000 --> 06:27.233 +00:06:23.040 --> 00:06:27.319 then I just have to press i to highlight it once again. -06:27.266 --> 06:32.600 +00:06:27.320 --> 00:06:32.559 It should be down here. Pressing i without having to repeat -06:32.600 --> 06:34.733 +00:06:32.560 --> 00:06:34.759 the entire key code again, -06:34.766 --> 06:37.200 +00:06:34.760 --> 00:06:37.719 the partial key code again, just works. -06:37.200 --> 06:41.533 +00:06:37.720 --> 00:06:41.679 This is different from the feature which Emacs has already, -06:41.566 --> 06:45.400 +00:06:41.680 --> 00:06:45.519 which is if you have input the partial keychord, -06:45.400 --> 06:47.033 +00:06:45.520 --> 00:06:47.039 you can press C-h -06:47.066 --> 06:51.000 +00:06:47.040 --> 00:06:50.959 and then a help buffer pops up with a listing -06:51.000 --> 06:54.066 +00:06:50.960 --> 00:06:54.159 of all keybindings that start with C-x. -06:54.100 --> 06:56.633 +00:06:54.160 --> 00:06:56.639 The information is the same, the presentation is different, -06:56.666 --> 06:59.066 +00:06:56.640 --> 00:06:59.159 because now if I wanted to do C-x i, -06:59.100 --> 00:07:03.339 +00:06:59.160 --> 00:07:03.319 I have to repeat the entire keychord again. -00:07:03.340 --> 07:09.466 +00:07:03.320 --> 00:07:09.479 So it's a matter of personal preference, which you prefer. -07:09.500 --> 00:07:10.959 +00:07:09.480 --> 00:07:12.519 This is more of a traditional static approach -00:07:10.960 --> 07:19.633 +00:07:12.520 --> 00:07:19.639 because I get a help buffer which I can search -07:19.666 --> 07:20.900 +00:07:19.640 --> 00:07:21.119 using usual key commands, -07:20.933 --> 07:28.133 +00:07:21.120 --> 00:07:28.159 while which-key is more of a transient and modern. -07:28.166 --> 07:31.400 +00:07:28.160 --> 00:07:31.299 Some might prefer that approach -07:31.400 --> 00:07:35.719 +00:07:31.300 --> 00:07:35.519 to solving the same problem. -00:07:35.720 --> 07:39.100 +00:07:35.520 --> 00:07:39.119 Also, don't forget to check out the customization group -07:39.133 --> 07:41.933 +00:07:39.120 --> 00:07:41.959 for which-key which has a number of options -07:41.966 --> 00:07:45.719 +00:07:41.960 --> 00:07:44.699 which you might or might not be interested in. NOTE EditorConfig -00:07:45.720 --> 07:50.866 +00:07:44.700 --> 00:07:50.879 Next up, Emacs 30 has built-in EditorConfig support. -07:50.900 --> 07:53.633 +00:07:50.880 --> 00:07:53.679 If you have not heard of EditorConfig before, -07:53.666 --> 00:07:56.639 +00:07:53.680 --> 00:07:56.379 I believe I've linked to it down here somewhere. -00:07:56.640 --> 00:08:00.119 +00:07:56.380 --> 00:08:00.160 Ah, there it is, EditorConfig. -00:08:00.120 --> 00:08:09.419 +00:08:00.161 --> 00:08:05.260 This is a file format used to specify -00:08:09.420 --> 08:12.133 +00:08:05.261 --> 00:08:11.959 common formatting rules in an editor-agnostic way. -08:12.166 --> 08:16.266 +00:08:11.960 --> 00:08:16.319 You might compare it to .dir-locals.el files, -08:16.300 --> 08:19.333 +00:08:16.320 --> 00:08:19.159 which is a sort of an s-expression -08:19.366 --> 08:22.233 +00:08:19.160 --> 00:08:22.159 for setting file-local variables in Emacs. -08:22.266 --> 08:27.266 +00:08:22.160 --> 00:08:26.559 Of course, this is restricted to the common subset -08:27.300 --> 08:29.400 +00:08:26.560 --> 00:08:29.299 of what all editors should understand. -08:29.400 --> 08:31.833 +00:08:29.300 --> 00:08:31.839 For example, indentation styles, -08:31.866 --> 00:08:35.119 +00:08:31.840 --> 00:08:36.699 whether you prefer tabs or spaces, -00:08:35.120 --> 08:38.733 +00:08:36.700 --> 00:08:38.759 tab width, file encoding, and so on. -08:38.766 --> 00:08:43.919 +00:08:38.760 --> 00:08:43.959 So it's nothing too advanced, but it's something... -00:08:43.920 --> 08:48.500 +00:08:43.960 --> 00:08:48.559 It is a file format which one sees popping up more -08:48.533 --> 08:50.433 +00:08:48.560 --> 00:08:50.439 and more often in lots of projects -08:50.466 --> 08:53.600 +00:08:50.440 --> 00:08:53.479 which want to enforce a consistent indentation style -08:53.600 --> 08:56.633 +00:08:53.480 --> 00:08:56.639 or formatting rules for all editors in a project. -08:56.666 --> 09:00.200 +00:08:56.640 --> 00:09:00.159 Having this built in is certainly useful in Emacs. -09:00.200 --> 09:03.466 +00:09:00.160 --> 00:09:03.579 Though one should note that it's not enabled by default. -09:03.500 --> 00:09:10.939 +00:09:03.580 --> 00:09:11.039 You still have to enable the global minor mode, -00:09:10.940 --> 09:14.200 +00:09:11.040 --> 00:09:14.239 which is simply turning on this one option. -09:14.200 --> 09:15.500 +00:09:14.240 --> 00:09:15.599 Shouldn't be more than that, -09:15.533 --> 09:18.633 +00:09:15.600 --> 00:09:18.759 and then Emacs will respect the rules. -09:18.666 --> 00:09:23.640 +00:09:18.760 --> 00:09:22.999 If it finds a .editorconfig file in the project directory, -00:09:23.641 --> 00:09:25.320 +00:09:23.000 --> 00:09:25.319 then it will respect those rules -00:09:25.321 --> 00:09:27.320 +00:09:25.320 --> 00:09:30.239 without having to do anything else. NOTE use-package integration with package-vc -00:09:27.310 --> 00:09:33.567 +00:09:30.240 --> 00:09:34.599 Next up, use-package integration with package-vc. -00:09:33.568 --> 00:09:36.533 +00:09:34.600 --> 00:09:36.519 For those not familiar with either of the two, -00:09:36.534 --> 00:09:37.533 +00:09:36.520 --> 00:09:38.119 or at least one of the two, -00:09:37.534 --> 00:09:40.699 +00:09:38.120 --> 00:09:41.079 use-package is a popular configuration macro. -00:09:40.700 --> 00:09:42.833 +00:09:41.080 --> 00:09:43.119 What it does is it allows -00:09:42.866 --> 00:09:46.233 +00:09:43.120 --> 00:09:46.274 users to declaratively specify packages -00:09:46.266 --> 00:09:48.900 +00:09:46.275 --> 00:09:48.879 they would like to have installed and configured -00:09:48.900 --> 00:09:51.659 +00:09:48.880 --> 00:09:51.539 in their configuration file, -00:09:51.660 --> 00:09:54.400 +00:09:51.540 --> 00:09:54.359 so that, for example, if you copy your init.el -00:09:54.433 --> 00:09:55.900 +00:09:54.360 --> 00:09:55.959 from one system to another, -00:09:55.900 --> 00:09:58.500 +00:09:55.960 --> 00:09:58.519 it could bootstrap the entire configuration, -00:09:58.500 --> 00:10:00.733 +00:09:58.520 --> 00:10:00.719 downloading all the packages you want -00:10:00.766 --> 00:10:02.366 +00:10:00.720 --> 00:10:02.239 without having to manually do this -00:10:02.400 --> 00:10:05.139 +00:10:02.240 --> 00:10:05.039 on every system you'd like to use. -00:10:05.140 --> 00:10:07.600 +00:10:05.040 --> 00:10:07.559 This allows configurations -00:10:07.633 --> 00:10:10.859 +00:10:07.560 --> 00:10:11.039 to be self-encapsulated and portable. -00:10:10.860 --> 00:10:15.059 +00:10:11.040 --> 00:10:15.959 package-vc is an extension of package.el, -00:10:15.060 --> 00:10:19.400 +00:10:15.960 --> 00:10:19.679 which allows installing packages from an alternative. -00:10:19.433 --> 00:10:22.366 +00:10:19.680 --> 00:10:22.279 Instead of using the standard way to install packages, -00:10:22.400 --> 00:10:26.499 +00:10:22.280 --> 00:10:26.239 which is just download tarball and unpack it, -00:10:26.500 --> 00:10:27.933 +00:10:26.240 --> 00:10:28.359 byte compile, and so on, -00:10:27.966 --> 00:10:32.399 +00:10:28.360 --> 00:10:32.759 it will fetch the files for a package -00:10:32.400 --> 00:10:34.966 +00:10:32.760 --> 00:10:35.279 directly from the source code repository -00:10:35.000 --> 00:10:37.233 +00:10:35.280 --> 00:10:37.239 and initialize it in such a way -00:10:37.266 --> 00:10:38.800 +00:10:37.240 --> 00:10:39.119 that package.el can work with it. -00:10:38.833 --> 00:10:44.239 +00:10:39.120 --> 00:10:44.319 So it's just a front-end for installing packages. -00:10:44.240 --> 00:10:46.500 +00:10:44.320 --> 00:10:46.519 Even though these two were added to Emacs 29, -00:10:46.500 --> 00:10:48.366 +00:10:46.520 --> 00:10:48.399 we didn't have the time to work on the -00:10:48.400 --> 00:10:52.500 +00:10:48.400 --> 00:10:52.639 use-package integration of package-vc into use-package, -00:10:52.500 --> 00:10:54.600 +00:10:52.640 --> 00:10:55.359 which has been changed now. -00:10:54.633 --> 00:11:00.139 +00:10:55.360 --> 00:11:00.119 What we have with Emacs 30 is that -00:11:00.140 --> 00:11:02.833 +00:11:00.120 --> 00:11:02.839 there is a :vc keyword for use-package -00:11:02.866 --> 00:11:05.200 +00:11:02.840 --> 00:11:05.319 with which we can instruct use-package -00:11:05.233 --> 00:11:10.239 +00:11:05.320 --> 00:11:10.760 to not download a package using tarball, -00:11:10.240 --> 00:11:12.433 +00:11:10.774 --> 00:11:12.519 but instead to fetch the source code -00:11:12.466 --> 00:11:13.766 +00:11:12.520 --> 00:11:13.799 from a source code repository. -00:11:13.800 --> 00:11:15.566 +00:11:13.800 --> 00:11:15.919 This is useful if you, for example, -00:11:15.600 --> 00:11:18.200 +00:11:15.920 --> 00:11:18.319 have packages which you yourself work on -00:11:18.233 --> 00:11:19.933 +00:11:18.320 --> 00:11:19.959 and know that you always want to have -00:11:19.966 --> 00:11:21.900 +00:11:19.960 --> 00:11:21.919 the development version of the package -00:11:21.900 --> 00:11:26.819 +00:11:21.920 --> 00:11:26.639 where you can directly commit changes you've made -00:11:26.820 --> 00:11:29.733 +00:11:26.640 --> 00:11:29.159 to the repository and push them upstream. -00:11:29.766 --> 00:11:32.100 +00:11:29.160 --> 00:11:32.399 Or, if you know that you want to contribute to a package, -00:11:32.100 --> 00:11:34.966 +00:11:32.400 --> 00:11:35.559 you can use package-vc to download the source code, -00:11:35.000 --> 00:11:37.366 +00:11:35.560 --> 00:11:37.319 have all the version control information, -00:11:37.400 --> 00:11:41.739 +00:11:37.320 --> 00:11:41.759 prepare a patch and send it upstream. -00:11:41.740 --> 00:11:43.800 +00:11:41.760 --> 00:11:44.119 In these examples here, -00:11:43.833 --> 00:11:49.166 +00:11:44.120 --> 00:11:49.119 the first example Lisp instructs package-vc -00:11:49.200 --> 00:11:52.366 +00:11:49.120 --> 00:11:52.959 to download the source code from a URL. -00:11:52.400 --> 00:11:55.400 +00:11:52.960 --> 00:11:55.119 So this is a git URL where it will download -00:11:55.433 --> 00:11:57.400 +00:11:55.120 --> 00:11:57.399 the source code from, and in this case, -00:11:57.433 --> 00:12:00.000 +00:11:57.400 --> 00:12:00.399 choose the newest checkout of the source code, -00:12:00.033 --> 00:12:04.939 +00:12:00.400 --> 00:12:05.680 not the latest release. Down here, we have another example. -00:12:04.940 --> 00:12:08.766 +00:12:05.060 --> 00:12:09.159 I prefer to consider the following example here. -00:12:08.800 --> 00:12:10.733 +00:12:09.160 --> 00:12:10.879 If we just had written this, -00:12:10.766 --> 00:12:13.200 +00:12:10.880 --> 00:12:13.159 then package-vc would use the metadata -00:12:13.233 --> 00:12:15.000 +00:12:13.160 --> 00:12:16.279 which an ELPA server provides -00:12:15.033 --> 00:12:20.166 +00:12:16.280 --> 00:12:19.799 to fetch the URL from the official repository of, -00:12:20.200 --> 00:12:22.833 +00:12:19.800 --> 00:12:22.839 in this case, BBDB, without having to... -00:12:22.866 --> 00:12:27.733 +00:12:22.840 --> 00:12:28.239 It would be more or less the same like this up here, -00:12:27.766 --> 00:12:32.700 +00:12:28.240 --> 00:12:32.639 with the simple difference that package-vc integration -00:12:32.700 --> 00:12:36.300 +00:12:32.640 --> 00:12:36.359 into use-package doesn't check out the latest commit, -00:12:36.300 --> 00:12:37.766 +00:12:36.360 --> 00:12:38.359 but the latest release, -00:12:37.800 --> 00:12:44.979 +00:12:38.360 --> 00:12:44.159 just to keep configurations more deterministic by default. -00:12:44.980 --> 00:12:47.566 +00:12:44.160 --> 00:12:47.879 Of course, if you prefer to use latest commit, -00:12:47.600 --> 00:12:52.179 +00:12:47.880 --> 00:12:52.439 you can use a package-vc install command -00:12:52.180 --> 00:12:54.933 +00:12:52.440 --> 00:12:54.879 or just update the package manually yourself, -00:12:54.966 --> 00:13:01.779 +00:12:54.880 --> 00:13:01.739 which you can use using package-vc-upgrade. -00:13:01.780 --> 00:13:04.366 +00:13:01.740 --> 00:13:04.319 Next, I'd like to focus on a few features -00:13:04.400 --> 00:13:07.000 +00:13:04.320 --> 00:13:07.740 which one might not necessarily realize directly, -00:13:07.033 --> 00:13:11.559 +00:13:07.741 --> 00:13:11.399 but will hopefully improve your experience with Emacs. NOTE JSON -00:13:11.560 --> 00:13:15.133 +00:13:11.400 --> 00:13:15.119 First up in this list is a new JSON parser. -00:13:15.166 --> 00:13:21.959 +00:13:15.120 --> 00:13:21.399 Let's maybe show the source code for that one: -00:13:21.960 --> 00:13:39.533 +00:13:21.400 --> 00:13:39.319 not json.el, json.c. The history of JSON parsing in Emacs -00:13:39.566 --> 00:13:43.366 +00:13:39.320 --> 00:13:43.279 started with Emacs 23 with the addition of json.el. -00:13:43.400 --> 00:13:46.766 +00:13:43.280 --> 00:13:46.919 This was the file which we had just opened a moment ago. -00:13:46.800 --> 00:13:50.366 +00:13:46.920 --> 00:13:50.959 This is a JSON parser in Emacs Lisp. -00:13:50.400 --> 00:13:53.233 +00:13:50.960 --> 00:13:53.199 It's fine, it does the job, but it can get slow -00:13:53.266 --> 00:13:55.000 +00:13:53.200 --> 00:13:55.479 if we have a situation like where -00:13:55.033 --> 00:14:00.319 +00:13:55.480 --> 00:14:00.479 Eglot uses a LSP server to communicate with -00:14:00.320 --> 00:14:02.999 +00:14:00.480 --> 00:14:02.959 and the LSP server can get a bit chatty, -00:14:03.000 --> 00:14:05.133 +00:14:02.960 --> 00:14:05.479 sending a lot of JSON data, -00:14:05.166 --> 00:14:07.966 +00:14:05.480 --> 00:14:08.199 which all has to be parsed and garbage collected, -00:14:08.000 --> 00:14:09.933 +00:14:08.200 --> 00:14:10.199 which can slow down Emacs a bit. -00:14:09.966 --> 00:14:13.733 +00:14:10.200 --> 00:14:14.119 The situation was improved upon in Emacs 29 -00:14:13.766 --> 00:14:18.000 +00:14:14.120 --> 00:14:17.959 when JSON parsing was added to the core. -00:14:18.033 --> 00:14:21.000 +00:14:17.960 --> 00:14:21.039 This was the json.c file, which we see on this side, -00:14:21.033 --> 00:14:22.733 +00:14:21.040 --> 00:14:23.279 the old version of the json.c file, -00:14:22.766 --> 00:14:26.700 +00:14:23.280 --> 00:14:27.119 which employed the Jansson library (it's the C library) -00:14:26.700 --> 00:14:31.899 +00:14:27.120 --> 00:14:33.159 for parsing and accelerating JSON parsing in Emacs. -00:14:31.900 --> 00:14:33.966 +00:14:33.160 --> 00:14:33.999 This was good enough, -00:14:34.000 --> 00:14:36.200 +00:14:34.000 --> 00:14:36.159 or it certainly improved the situation -00:14:36.233 --> 00:14:38.300 +00:14:36.160 --> 00:14:38.559 for a lot of LSP clients. -00:14:38.300 --> 00:14:44.766 +00:14:38.560 --> 00:14:45.479 But in Emacs 30, the situation has been improved once more -00:14:44.800 --> 00:14:49.800 +00:14:45.480 --> 00:14:50.359 with the addition of a JSON parser directly in Emacs. -00:14:49.833 --> 00:14:53.566 +00:14:50.360 --> 00:14:52.999 So instead of using an external library, -00:14:53.600 --> 00:14:57.400 +00:14:53.000 --> 00:14:57.719 there's a custom JSON parser written in C in the Emacs core, -00:14:57.433 --> 00:15:01.539 +00:14:57.720 --> 00:15:01.559 which directly generates Elisp objects. -00:15:01.540 --> 00:15:05.033 +00:15:01.560 --> 00:15:04.999 The advantage to this approach -00:15:05.066 --> 00:15:06.433 +00:15:05.000 --> 00:15:06.359 compared to the Jansson approach -00:15:06.466 --> 00:15:07.933 +00:15:06.360 --> 00:15:07.919 is that there's no intermediate format -00:15:07.966 --> 00:15:09.200 +00:15:07.920 --> 00:15:09.199 which has to be allocated -00:15:09.233 --> 00:15:11.500 +00:15:09.200 --> 00:15:11.559 and memory managed and freed again, -00:15:11.500 --> 00:15:19.539 +00:15:11.560 --> 00:15:19.479 which of course incurs an additional performance overhead. -00:15:19.540 --> 00:15:22.433 +00:15:19.480 --> 00:15:22.659 Next to this, there's also a custom serializer -00:15:22.466 --> 00:15:29.239 +00:15:22.660 --> 00:15:27.119 for JSON contents translating a JSON object into a string. -00:15:29.240 --> 00:15:30.640 +00:15:27.120 --> 00:15:30.279 ... The consequence of this is that -00:15:30.641 --> 00:15:35.519 +00:15:30.280 --> 00:15:35.600 there is absolutely no dependency on Jansson anymore. -00:15:35.520 --> 00:15:38.533 +00:15:35.640 --> 00:15:38.559 This in turn means that now all Emacs users -00:15:38.566 --> 00:15:39.800 +00:15:38.560 --> 00:15:39.799 from Emacs 30 onwards -00:15:39.833 --> 00:15:42.733 +00:15:39.800 --> 00:15:43.119 can take advantage of this new JSON parser -00:15:42.766 --> 00:15:44.933 +00:15:43.120 --> 00:15:44.879 and don't have to worry about whether -00:15:44.966 --> 00:15:47.633 +00:15:44.880 --> 00:15:47.799 or not they have Jansson, this JSON parsing library, -00:15:47.666 --> 00:15:50.433 +00:15:47.800 --> 00:15:50.999 installed on their system or not when they want -00:15:50.466 --> 00:15:56.679 +00:15:51.000 --> 00:15:56.839 to take advantage of this accelerated JSON parsing. NOTE Native compilation -00:15:56.680 --> 00:16:00.366 +00:15:56.840 --> 00:16:00.639 Next up, another behind-the-scenes feature -00:16:00.400 --> 00:16:06.406 +00:16:00.640 --> 00:16:04.559 is that if you build Emacs on your own from source, -00:16:06.407 --> 00:16:07.766 +00:16:04.560 --> 00:16:07.879 you might know that if you wanted -00:16:07.800 --> 00:16:09.533 +00:16:07.880 --> 00:16:09.559 to use native compilation, -00:16:09.566 --> 00:16:12.379 +00:16:09.560 --> 00:16:12.319 so the translation of Elisp bytecodes -00:16:12.380 --> 00:16:15.533 +00:16:12.320 --> 00:16:15.559 to whatever the native assembly -00:16:15.566 --> 00:16:19.133 +00:16:15.560 --> 00:16:19.319 or native instruction set is on your system, -00:16:19.166 --> 00:16:24.339 +00:16:19.320 --> 00:16:24.359 you have to specify with native compilation. -00:16:24.340 --> 00:16:25.933 +00:16:24.360 --> 00:16:25.879 when invoking the configure script, -00:16:25.966 --> 00:16:28.366 +00:16:25.880 --> 00:16:28.879 otherwise it would not have been enabled at all. -00:16:28.400 --> 00:16:32.479 +00:16:28.880 --> 00:16:34.119 With Emacs 30, this step is not necessary anymore. -00:16:32.480 --> 00:16:36.233 +00:16:34.120 --> 00:16:36.719 The configure script will automatically check -00:16:36.266 --> 00:16:41.700 +00:16:36.720 --> 00:16:41.759 if you have the libgccjit library installed on your system, -00:16:41.700 --> 00:16:42.766 +00:16:41.760 --> 00:16:42.879 and if that is so, -00:16:42.800 --> 00:16:45.566 +00:16:42.880 --> 00:16:45.999 then native compilation will be enabled by default. -00:16:45.600 --> 00:16:49.400 +00:16:46.000 --> 00:16:49.559 In other words, if you have an issue with native compilation -00:16:49.433 --> 00:16:52.500 +00:16:49.560 --> 00:16:52.799 or prefer not to use it for whatever reason, -00:16:52.500 --> 00:16:55.533 +00:16:52.800 --> 00:16:55.559 you now have to type --without-native-compilation -00:16:55.566 --> 00:16:58.433 +00:16:55.560 --> 00:16:58.199 when compiling Emacs to prevent this from happening. -00:16:58.466 --> 00:17:02.433 +00:16:58.200 --> 00:17:02.279 But native compilation was added in Emacs 28 -00:17:02.466 --> 00:17:04.333 +00:17:02.280 --> 00:17:04.399 and has proven to be a very stable -00:17:04.366 --> 00:17:06.233 +00:17:04.400 --> 00:17:06.199 and useful feature for most people, -00:17:06.266 --> 00:17:09.400 +00:17:06.200 --> 00:17:10.199 so there's probably no reason to do this -00:17:09.433 --> 00:17:11.133 +00:17:10.200 --> 00:17:10.939 and you can just invoke the configure script -00:17:11.166 --> 00:17:16.300 +00:17:10.940 --> 00:17:16.239 with one argument less. Right, and I'd like to finish up -00:17:16.300 --> 00:17:19.500 +00:17:16.240 --> 00:17:19.399 with a few smaller features, a few smaller highlights. -00:17:19.500 --> 00:17:29.639 +00:17:19.400 --> 00:17:30.719 Maybe we can go back to the listing here. Here we have it. NOTE Tree-sitter -00:17:29.640 --> 00:17:32.833 +00:17:30.720 --> 00:17:32.839 There are a few new major modes -00:17:32.866 --> 00:17:34.333 +00:17:32.840 --> 00:17:34.239 based on the tree-sitter library. -00:17:34.366 --> 00:17:37.939 +00:17:34.240 --> 00:17:37.739 tree-sitter is this parser library -00:17:37.940 --> 00:17:39.933 +00:17:37.740 --> 00:17:42.879 which has been integrated into Emacs 29. -00:17:39.966 --> 00:17:44.100 +00:17:42.880 --> 00:17:44.079 It allows the integration -00:17:44.100 --> 00:17:48.400 +00:17:44.080 --> 00:17:48.359 of external, specialized, and quick parsers into Emacs, -00:17:48.433 --> 00:17:52.133 +00:17:48.360 --> 00:17:52.119 which improve stuff like syntax highlighting, indentation, -00:17:52.166 --> 00:17:55.233 +00:17:52.120 --> 00:17:55.279 structural navigation, imenu support, -00:17:55.266 --> 00:18:01.033 +00:17:55.280 --> 00:18:00.839 by simply having a better understanding of, for example, -00:18:01.066 --> 00:18:03.900 +00:18:00.840 --> 00:18:03.919 a HTML file, or a Lua file, a PHP file, -00:18:03.900 --> 00:18:06.233 +00:18:03.920 --> 00:18:06.239 than what people usually implement -00:18:06.266 --> 00:18:10.366 +00:18:06.240 --> 00:18:10.319 using regular expressions in traditional major modes. -00:18:10.400 --> 00:18:16.779 +00:18:10.320 --> 00:18:16.819 So, a few new major modes which you can try out here. NOTE Completion preview mode -00:18:16.780 --> 00:18:20.033 +00:18:16.820 --> 00:18:19.959 Another interesting feature is the completion-preview-mode. -00:18:20.066 --> 00:18:22.966 +00:18:19.960 --> 00:18:23.319 We can maybe try it out here in the scratch buffer. -00:18:23.000 --> 00:18:28.300 +00:18:23.320 --> 00:18:28.199 If I enable completion-preview-mode... -00:18:28.300 --> 00:18:32.033 +00:18:28.200 --> 00:18:32.719 This is a non-global minor mode, -00:18:32.066 --> 00:18:38.600 +00:18:32.720 --> 00:18:38.479 which will display completion options inline using overlays. -00:18:38.633 --> 00:18:43.133 +00:18:38.480 --> 00:18:43.199 For example, if I start typing a longer symbol like define, -00:18:43.166 --> 00:18:48.200 +00:18:43.200 --> 00:18:48.119 now we have a derived mode. It suggests me to... -00:18:48.233 --> 00:18:51.133 +00:18:48.120 --> 00:18:51.039 I can just press TAB and then it completes the option here, -00:18:51.166 --> 00:18:51.933 +00:18:51.040 --> 00:18:51.839 but it didn't actually... -00:18:51.966 --> 00:18:55.333 +00:18:51.840 --> 00:18:55.279 It's not actually modifying the buffer, it's not pressing, -00:18:55.366 --> 00:18:57.100 +00:18:55.280 --> 00:18:57.039 these are just overlays, -00:18:57.100 --> 00:18:59.533 +00:18:57.040 --> 00:18:59.519 so if I move around, it gets deleted. -00:18:59.566 --> 00:19:02.619 +00:18:59.520 --> 00:19:02.539 It wouldn't get saved if I were to save the buffer. -00:19:02.620 --> 00:19:04.966 +00:19:02.540 --> 00:19:04.999 The same also should work in a shell buffer. -00:19:05.000 --> 00:19:08.366 +00:19:05.000 --> 00:19:09.239 If I enable completion preview mode here and start... -00:19:08.400 --> 00:19:12.800 +00:19:09.240 --> 00:19:12.759 In this case, I'm using the bash completion package, -00:19:12.833 --> 00:19:15.000 +00:19:12.760 --> 00:19:15.199 which provides additional completion information. -00:19:15.033 --> 00:19:17.933 +00:19:15.200 --> 00:19:17.839 This is not only limited to programming systems, -00:19:17.966 --> 00:19:22.900 +00:19:17.840 --> 00:19:22.919 but anywhere where you have completion at point in Emacs. -00:19:22.900 --> 00:19:26.159 +00:19:22.920 --> 00:19:26.059 I can start typing here, ignore, and put ignore-backups, -00:19:26.160 --> 00:19:30.000 +00:19:26.060 --> 00:19:29.919 and it hints to the options which I have -00:19:30.033 --> 00:19:34.200 +00:19:29.920 --> 00:19:34.219 and allows me to complete them quickly. NOTE package-isolate -00:19:34.233 --> 00:19:37.966 +00:19:34.220 --> 00:19:37.879 Another small feature is the package-isolate command. -00:19:38.000 --> 00:19:40.000 +00:19:37.880 --> 00:19:39.959 What this does is it will start -00:19:40.033 --> 00:19:42.800 +00:19:39.960 --> 00:19:42.759 or it will prompt me for packages -00:19:42.833 --> 00:19:44.333 +00:19:42.760 --> 00:19:44.119 I have installed in my system -00:19:44.366 --> 00:19:46.500 +00:19:44.120 --> 00:19:46.439 and will start an isolated -00:19:46.500 --> 00:19:51.133 +00:19:46.440 --> 00:19:51.079 or like "emacs -Q"-ish instance of emacs -00:19:51.166 --> 00:19:53.333 +00:19:51.080 --> 00:19:53.639 with only these packages installed. -00:19:53.366 --> 00:20:00.439 +00:19:53.640 --> 00:20:00.279 So for example, if I said I want slime and I want diff-hl, -00:20:00.440 --> 00:20:02.700 +00:20:00.280 --> 00:20:02.279 then this is a new Emacs window. -00:20:02.700 --> 00:20:04.533 +00:20:02.280 --> 00:20:04.439 It's unrelated to the one around. -00:20:04.566 --> 00:20:06.500 +00:20:04.440 --> 00:20:06.839 It uses the same executable, of course, -00:20:06.500 --> 00:20:09.939 +00:20:06.840 --> 00:20:09.939 but will not load your configuration file -00:20:09.940 --> 00:20:13.679 +00:20:09.940 --> 00:20:13.619 or any other further customizations on your system. -00:20:13.680 --> 00:20:15.533 +00:20:13.620 --> 00:20:15.159 All it does, it will ensure -00:20:15.566 --> 00:20:17.933 +00:20:15.160 --> 00:20:17.919 that these packages, which are listed here, -00:20:17.966 --> 00:20:24.599 +00:20:17.920 --> 00:20:24.499 so in our case SLIME and dependencies of SLIME and diff-hl, -00:20:24.600 --> 00:20:25.300 +00:20:24.500 --> 00:20:25.239 in the system -00:20:25.300 --> 00:20:29.100 +00:20:25.240 --> 00:20:29.039 so that I could, for example, as you can see here, -00:20:29.100 --> 00:20:32.139 +00:20:29.040 --> 00:20:31.959 diff-hl-mode works. -00:20:32.140 --> 00:20:34.766 +00:20:31.960 --> 00:20:35.479 Okay, this is not a version-controlled file. -00:20:34.800 --> 00:20:41.200 +00:20:35.480 --> 00:20:41.119 Maybe if we take a look at, have I enabled diff-hl-mode? -00:20:41.233 --> 00:20:44.600 +00:20:41.120 --> 00:20:44.559 It's enabled in this case. What diff-hl-mode does -00:20:44.633 --> 00:20:48.300 +00:20:44.560 --> 00:20:48.479 is it displays these version control changes -00:20:48.300 --> 00:20:49.566 +00:20:48.480 --> 00:20:49.999 in the fringe of a buffer. -00:20:49.600 --> 00:20:54.133 +00:20:50.000 --> 00:20:54.079 And even though this is a uncustomized version of Emacs, -00:20:54.166 --> 00:20:56.333 +00:20:54.080 --> 00:20:56.319 or an uncustomized instance of Emacs, -00:20:56.366 --> 00:20:59.000 +00:20:56.320 --> 00:20:58.959 it was easy for me to load this one package, -00:20:59.033 --> 00:21:02.033 +00:20:58.960 --> 00:21:01.959 or these two packages and all the dependencies necessary. -00:21:02.066 --> 00:21:05.300 +00:21:01.960 --> 00:21:05.319 As you can imagine, the main purpose for this -00:21:05.300 --> 00:21:07.733 +00:21:05.320 --> 00:21:07.719 is to make debugging issues easier. -00:21:07.766 --> 00:21:10.566 +00:21:07.720 --> 00:21:10.519 If you want to report about an issue -00:21:10.600 --> 00:21:14.900 +00:21:10.520 --> 00:21:14.519 you have with a package. And if I close this, it's closed -00:21:14.900 --> 00:21:16.919 +00:21:14.520 --> 00:21:16.779 and everything's thrown away. NOTE Reindenting -00:21:16.920 --> 00:21:19.000 +00:21:16.780 --> 00:21:18.959 Last up, a nice feature I think -00:21:19.033 --> 00:21:20.933 +00:21:18.960 --> 00:21:21.199 a lot of people will appreciate is, -00:21:20.966 --> 00:21:24.300 +00:21:21.200 --> 00:21:24.239 if you are familiar with... Let's open a text buffer. -00:21:24.300 --> 00:21:30.279 +00:21:24.240 --> 00:21:30.079 The M-q key is traditionally bound to fill-paragraph. -00:21:30.280 --> 00:21:32.200 +00:21:30.080 --> 00:21:32.119 What this means is that... -00:21:32.233 --> 00:21:35.000 +00:21:32.120 --> 00:21:34.999 Let's, for example, copy this text from here -00:21:35.033 --> 00:21:40.366 +00:21:35.000 --> 00:21:40.359 and squash it all into one line. If I press M-q here, -00:21:40.400 --> 00:21:42.719 +00:21:40.360 --> 00:21:42.399 then the lines will be broken -00:21:42.720 --> 00:21:49.879 +00:21:42.400 --> 00:21:49.479 according to the fill column indicator up here. -00:21:49.880 --> 00:21:52.600 +00:21:49.480 --> 00:21:52.399 This is the traditional usage of M-q, -00:21:52.633 --> 00:21:54.200 +00:21:52.400 --> 00:21:54.119 and it still works in text-mode buffers, -00:21:54.233 --> 00:21:55.859 +00:21:54.120 --> 00:21:56.639 but in prog-mode buffers-- -00:21:55.860 --> 00:22:00.100 +00:21:56.640 --> 00:22:00.079 so any major mode inheriting prog-mode-- -00:22:00.100 --> 00:22:02.233 +00:22:00.080 --> 00:22:02.199 M-q will now by default be bound -00:22:02.266 --> 00:22:09.779 +00:22:02.200 --> 00:22:09.719 to prog-fill-reindent-defun. To summarize the point, -00:22:09.780 --> 00:22:13.433 +00:22:09.720 --> 00:22:13.479 if you are editing a string or a comment, -00:22:13.466 --> 00:22:16.039 +00:22:13.480 --> 00:22:15.919 then the comment will be filled. -00:22:16.040 --> 00:22:19.100 +00:22:15.920 --> 00:22:19.159 But if you are outside of a comment or outside of a string, -00:22:19.100 --> 00:22:23.166 +00:22:19.160 --> 00:22:22.919 then the defun or the top-level construct -00:22:23.200 --> 00:22:26.159 +00:22:22.920 --> 00:22:26.119 in the programming language will be re-indented. -00:22:26.160 --> 00:22:34.099 +00:22:26.120 --> 00:22:33.859 Let's try that out with maybe some file I have open here. -00:22:34.100 --> 00:22:38.800 +00:22:33.860 --> 00:22:38.819 If I'm in this... Let's choose some function, -00:22:38.833 --> 00:22:40.733 +00:22:38.820 --> 00:22:41.279 let's take this for example. -00:22:40.766 --> 00:22:43.959 +00:22:41.280 --> 00:22:43.879 If we followed all of this again, -00:22:43.960 --> 00:22:47.400 +00:22:43.880 --> 00:22:47.619 and I press M-q in on this paragraph, -00:22:47.433 --> 00:22:49.433 +00:22:47.620 --> 00:22:50.039 then the paragraph gets re-indented. -00:22:49.466 --> 00:22:55.800 +00:22:50.040 --> 00:22:54.859 But if I'm down here and I choose to break the indentation -00:22:55.833 --> 00:22:58.166 +00:22:54.860 --> 00:22:56.180 and then press M-q, -00:22:58.200 --> 00:23:02.333 +00:22:56.181 --> 00:23:02.399 then as you see, it practically selected the defun -00:23:02.366 --> 00:23:03.566 +00:23:02.400 --> 00:23:03.559 and re-indented everything -00:23:03.600 --> 00:23:06.959 -without having me to move the point around in the buffer. +00:23:03.560 --> 00:23:05.959 +without having need to move the point around in the buffer. -00:23:06.960 --> 00:23:08.633 +00:23:06.800 --> 00:23:08.679 So I think that's a really nice feature, -00:23:08.666 --> 00:23:11.100 +00:23:08.680 --> 00:23:11.039 which a lot of people can appreciate. -00:23:11.100 --> 00:23:17.939 +00:23:11.040 --> 00:23:17.879 It's one of those niceties which comes from time to time. NOTE Wrapping up -00:23:17.940 --> 00:23:20.633 +00:23:17.880 --> 00:23:20.679 Right, so that was my overview -00:23:20.666 --> 00:23:22.600 +00:23:20.680 --> 00:23:22.559 of what's going to be new in Emacs 30. -00:23:22.633 --> 00:23:24.400 +00:23:22.560 --> 00:23:24.359 I hope that most people could take away -00:23:24.433 --> 00:23:25.579 +00:23:24.360 --> 00:23:25.659 something from this presentation -00:23:25.580 --> 00:23:28.900 +00:23:25.660 --> 00:23:29.419 and have something to look forward -00:23:28.900 --> 00:23:31.133 +00:23:29.420 --> 00:23:31.599 to try out after upgrading. -00:23:31.166 --> 00:23:33.833 +00:23:31.600 --> 00:23:33.839 As mentioned initially, as of recording, -00:23:33.866 --> 00:23:36.566 +00:23:33.840 --> 00:23:36.939 this release has not been completed yet. -00:23:36.600 --> 00:23:38.833 +00:23:36.940 --> 00:23:38.879 If this is still not the case -00:23:38.866 --> 00:23:40.233 +00:23:38.880 --> 00:23:40.199 when you're seeing this video, -00:23:40.266 --> 00:23:43.833 +00:23:40.200 --> 00:23:43.799 please consider downloading and building Emacs 30 yourself. -00:23:43.866 --> 00:23:48.200 +00:23:43.800 --> 00:23:48.319 If you have any issues, which is always the case, -00:23:48.233 --> 00:23:56.439 +00:23:48.320 --> 00:23:56.339 please report them to using report-emacs-bug. -00:23:56.440 --> 00:23:57.907 +00:23:56.340 --> 00:23:57.740 That will pop up a mail buffer, -00:23:57.908 --> 00:23:59.600 +00:23:57.741 --> 00:23:59.519 and then you can describe your issue and send them out. -00:23:59.633 --> 00:24:01.800 +00:23:59.520 --> 00:24:01.839 All bug reports are valuable, -00:24:01.833 --> 00:24:04.433 +00:24:01.840 --> 00:24:03.999 even if they are false positives or duplicates-- -00:24:04.466 --> 00:24:05.233 +00:24:04.000 --> 00:24:05.239 it doesn't matter-- -00:24:05.266 --> 00:24:08.533 +00:24:05.240 --> 00:24:08.919 because when you take the time to submit a bug report, -00:24:08.566 --> 00:24:12.233 +00:24:08.920 --> 00:24:12.359 which describes something that's specific to your setup, -00:24:12.266 --> 00:24:16.700 +00:24:12.360 --> 00:24:16.839 which the developers might not have noticed or known about, -00:24:16.700 --> 00:24:19.133 +00:24:16.840 --> 00:24:19.079 then you are certainly helping out a lot of other people -00:24:19.166 --> 00:24:21.766 +00:24:19.080 --> 00:24:21.679 which might run into the same issue in the future. -00:24:21.800 --> 00:24:23.200 +00:24:21.680 --> 00:24:23.359 Especially with upgrades, -00:24:23.233 --> 00:24:26.566 +00:24:23.360 --> 00:24:26.559 it would be nice to figure out small problems -00:24:26.600 --> 00:24:30.800 +00:24:26.560 --> 00:24:30.879 which make upgrading difficult for some people. -00:24:30.833 --> 00:24:34.700 +00:24:30.880 --> 00:24:34.559 The ideal is, of course, to have no issues -00:24:34.700 --> 00:24:37.199 +00:24:34.560 --> 00:24:37.199 when upgrading from one version to another. -00:24:37.200 --> 00:24:39.566 +00:24:37.200 --> 00:24:41.939 Having said that, I thank you for your attention, -00:24:39.600 --> 00:24:43.766 +00:24:41.940 --> 00:24:43.120 and I'm saying goodbye. diff --git a/2024/captions/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.vtt b/2024/captions/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.vtt index 0142a879..7c2708d9 100644 --- a/2024/captions/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.vtt +++ b/2024/captions/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.vtt @@ -1,725 +1,725 @@ WEBVTT -00:00.069 --> 00:01.850 -Troy Hinckley's project that I'm talking about. I was going +00:00:00.000 --> 00:00:02.999 +...Troy Hinckley's project that I'm talking about. I was going -00:02.350 --> 00:22.139 +00:00:03.000 --> 00:00:08.799 to mention this in my presentation, but it's possible, -00:02.350 --> 00:22.139 +00:00:08.800 --> 00:00:16.359 theoretically, that Troy Hinckley, his project could be -00:02.350 --> 00:22.139 +00:00:16.360 --> 00:00:18.559 used as a scheme of limitation that actually runs my own -00:02.350 --> 00:22.139 +00:00:18.560 --> 00:00:23.759 version of Emacs. And although, you know, This is -00:25.478 --> 00:29.380 +00:00:23.760 --> 00:00:30.719 completely theoretical, and I don't know how difficult -00:25.478 --> 00:29.380 +00:00:30.720 --> 00:00:34.079 that would be. But if Troy Hinckley implemented enough of -00:30.781 --> 00:47.029 +00:00:34.080 --> 00:00:39.879 the R7-RS standard in Rust, it would theoretically be -00:30.781 --> 00:47.029 +00:00:39.880 --> 00:00:46.719 possible to run the Gypsum editor in Troy Hinckley's own -00:30.781 --> 00:47.029 +00:00:46.720 --> 00:00:50.239 editor. I thought that was kind of interesting, and I -00:48.270 --> 00:53.833 +00:00:50.240 --> 00:00:59.119 thought it was worth mentioning, at least in the questions -00:48.270 --> 00:53.833 +00:00:59.120 --> 00:01:12.159 and answers. -01:12.179 --> 01:14.080 +00:01:12.160 --> 00:01:16.199 I also mentioned this in the presentation. I wanted to see -01:14.940 --> 01:22.364 +00:01:16.200 --> 00:01:20.119 Robin Templeton's project presentation, but -01:14.940 --> 01:22.364 +00:01:20.120 --> 00:01:22.399 unfortunately it's going to be at like four in the morning -01:14.940 --> 01:22.364 +00:01:22.400 --> 00:01:26.239 for me. So I'm going to try and watch that tomorrow, but -01:22.984 --> 01:31.428 +00:01:26.240 --> 00:01:29.559 that's also going to be a very interesting project to keep an -01:22.984 --> 01:31.428 +00:01:29.560 --> 00:01:34.039 eye on if you're interested in Scheme. That's the project -01:33.149 --> 01:38.051 +00:01:34.040 --> 00:01:37.519 where you've got the Guylain interpreter running inside of -01:33.149 --> 01:38.051 +00:01:37.520 --> 00:02:04.679 the Emacs process. It's dynamically linked as a library. -02:04.699 --> 02:06.748 +00:02:04.680 --> 00:02:08.759 I'm ready for questions from anybody. You can ask or you can -02:07.431 --> 02:09.079 +00:02:08.760 --> 00:02:32.079 type. It's up to you. -02:32.319 --> 02:34.521 +00:02:32.080 --> 00:02:37.319 Okay, let me check the etherpad. -02:37.304 --> 02:38.245 +00:02:37.320 --> 00:02:41.159 Let's see here. -02:41.208 --> 02:42.830 +00:02:41.160 --> 00:02:42.719 I'm not sure if I'm doing that right. -02:46.373 --> 02:47.554 +00:02:42.720 --> 00:02:54.199 Let me check one more time. Oh, there it goes. -02:54.221 --> 02:55.702 +00:02:54.200 --> 00:03:00.079 Let's see, so this is... -03:00.151 --> 03:02.072 +00:03:00.080 --> 00:03:02.239 I didn't know about that first bit of history. Oh, I've heard -03:02.332 --> 00:03:09.369 +00:03:02.240 --> 00:03:06.119 RMS say that Scheme Guile is just a nicer Lisp, but I didn't -03:02.332 --> 03:09.776 +00:03:06.120 --> 00:03:09.079 know there were concrete talks attempts to use Guile for -03:02.332 --> 03:09.776 +00:03:09.080 --> 00:03:14.319 Emacs that early. Let's see, that was from janneke. NOTE Q: I'm curious to know how the hell guile-emacs deals with all of the dynamically scoped modules out there. Is there any effort to automatically modularize and namespace stuff? -00:03:09.370 --> 00:03:19.241 +00:03:14.320 --> 00:03:17.439 I'm curious to know how the hell Guile Emacs deals with all the -03:14.318 --> 03:19.241 +00:03:17.440 --> 00:03:21.359 dynamically scoped modules out there. Is there any effort -03:20.181 --> 03:24.943 +00:03:21.360 --> 00:03:29.759 to automatically modularize and name? Let's see. -03:30.523 --> 03:35.806 +00:03:29.760 --> 00:03:40.919 That might be a better question for Robin Templeton. In my -03:36.727 --> 03:46.573 +00:03:40.920 --> 00:03:44.639 own project, -03:36.727 --> 03:46.573 +00:03:44.640 --> 00:03:49.399 there's no module system for Emacs Lisp. There is a module -03:46.693 --> 03:48.234 +00:03:49.400 --> 00:03:55.559 system for Scheme. And the Emacs Lisp interpreter runs in -03:49.695 --> 03:55.158 +00:03:55.560 --> 00:04:01.599 its own environment. the require system or whatever module -03:57.068 --> 04:11.736 +00:04:01.600 --> 00:04:06.359 system that Emacs has, once it's implemented, all of that -03:57.068 --> 04:11.736 +00:04:06.360 --> 00:04:09.759 would just happen inside of the Emacs Lisp environment, -03:57.068 --> 04:11.736 +00:04:09.760 --> 00:04:12.399 which is inside of the Scheme environment. And -04:12.437 --> 04:15.898 +00:04:12.400 --> 00:04:21.479 environments are objects in Scheme. -04:21.522 --> 04:24.103 +00:04:21.480 --> 00:04:26.399 I think a more difficult question is how to handle -04:26.420 --> 04:31.942 +00:04:26.400 --> 00:04:33.279 threading, and Scheme has very good threading built in, in -04:26.420 --> 04:31.942 +00:04:33.280 --> 00:04:34.839 Serphe-18[??]. -04:34.283 --> 04:48.028 +00:04:34.840 --> 00:04:43.399 But I don't think it will be easy to write Emacs Lisp form -04:34.283 --> 04:48.028 +00:04:43.400 --> 00:04:48.479 bindings to the Scheme multi-threading implementation. -04:48.548 --> 04:50.749 +00:04:48.480 --> 00:04:52.279 Emacs Lisp was just not cut out for that kind of thing. So I -04:51.710 --> 04:59.894 +00:04:52.280 --> 00:04:56.559 think each Emacs Lisp, you could, I suppose, have multiple -04:51.710 --> 04:59.894 +00:04:56.560 --> 00:05:00.039 threads each running their own Emacs Lisp environment. -05:01.375 --> 05:02.956 +00:05:00.040 --> 00:05:04.999 Scheme would make that very simple to do. -05:06.018 --> 05:16.744 +00:05:05.000 --> 00:05:08.759 And then there'd just be a question of how you would get those -05:06.018 --> 05:16.744 +00:05:08.760 --> 00:05:11.679 different interpreters to communicate with each other, -05:06.018 --> 05:16.744 +00:05:11.680 --> 00:05:16.279 perhaps using the same protocol that's used by the Emacs -05:06.018 --> 05:16.744 +00:05:16.280 --> 00:05:23.639 server. But I haven't thought that far ahead yet. NOTE Q: Would it be possible to support a GUI toolkit other than GTK? -05:23.646 --> 05:28.709 +00:05:23.640 --> 00:05:26.839 Would it be possible to support a GUI toolkit other than the -05:23.646 --> 05:28.709 +00:05:26.840 --> 00:05:31.319 GTK? Like, how is it still supports Lucid? Yes, this is -05:31.291 --> 05:33.232 +00:05:31.320 --> 00:05:36.999 absolutely a goal of the project. I'm trying to keep the back -05:33.873 --> 05:38.416 +00:05:37.000 --> 00:05:41.599 end separate as possible. The scheme has what you call -05:39.817 --> 05:42.478 +00:05:41.600 --> 00:05:45.239 parameters. And these are like global variables that are -05:43.199 --> 05:46.221 +00:05:45.240 --> 00:05:50.519 still somewhat thread safe. And every call to the GUI goes -05:47.484 --> 05:51.225 +00:05:50.520 --> 00:05:58.199 through a parameter. So the Emacs, the interpreter and the -05:52.125 --> 05:59.367 +00:05:58.200 --> 00:06:01.679 editor logic is all in one module. And then that module calls -05:59.987 --> 06:04.309 +00:06:01.680 --> 00:06:06.319 out into a separate GUI module. And then you can implement -06:04.989 --> 06:07.690 +00:06:06.320 --> 00:06:11.599 different GUI modules. So you could have one for GTK3, one -06:08.430 --> 06:13.171 +00:06:11.600 --> 00:06:16.879 for GTK4, if you want to write the extern C bindings around Qt -06:13.843 --> 06:20.725 +00:06:16.880 --> 00:06:21.199 or full tick, that would certainly be possible as well. It -06:21.185 --> 06:32.168 +00:06:21.200 --> 00:06:25.919 would be nice maybe to have an SDL implementation based -06:21.185 --> 06:32.168 +00:06:25.920 --> 00:06:30.999 maybe on Chikiti or some kind of immediate mode GUI, -06:21.185 --> 06:32.168 +00:06:31.000 --> 00:06:37.399 something like that. But definitely GTK3 through Guile GI -06:33.808 --> 06:38.750 +00:06:37.400 --> 00:06:41.319 is the reference implementation. Things start there. But -06:41.298 --> 06:43.959 +00:06:41.320 --> 00:06:43.999 I'm very interested in supporting other GUIs, yes. Let's -06:45.199 --> 00:06:45.256 +00:06:44.000 --> 00:06:46.039 see. NOTE Q: Do you plan to provide improvements to Elisp as a language, or is the focus on a compatibility layer to facilitate doing all new extensions, etc. in Scheme? -00:06:45.257 --> 00:06:45.879 +00:06:46.040 --> 00:06:50.759 Question, do you plan to provide improvements to ELisp -06:47.540 --> 06:56.342 +00:06:50.760 --> 00:06:54.519 as a language or focus on a compatibility layer to -06:47.540 --> 06:56.342 +00:06:54.520 --> 00:06:57.999 facilitate all new extensions in Scheme? Yeah, the second -06:57.142 --> 06:57.962 +00:06:58.000 --> 00:07:04.719 one. I want to move off to Scheme. I would like for this -07:03.384 --> 07:05.264 +00:07:04.720 --> 00:07:08.999 project to try and keep up to date with each new release of -07:05.666 --> 07:10.789 +00:07:09.000 --> 00:07:13.799 Emacs and Emacs Lisp. That's a difficult moving target to -07:11.850 --> 07:14.552 +00:07:13.800 --> 00:07:18.639 follow, I realize. But to the greatest extent possible, any -07:15.152 --> 07:23.397 +00:07:18.640 --> 00:07:25.239 new features to Emacs Lisp will be pulled in from GNU Emacs. -07:25.419 --> 07:29.041 +00:07:25.240 --> 00:07:28.599 If we happen to be able to implement something cool in -07:25.419 --> 07:29.041 +00:07:28.600 --> 00:07:31.639 Scheme, and be able to port it over to Emacs Lisp, then sure, -07:29.437 --> 07:36.543 +00:07:31.640 --> 00:07:35.799 it'd be nice to be able to upload or to submit that upstream to -07:29.437 --> 07:36.543 +00:07:35.800 --> 00:07:43.079 the GNU Emacs. But I think I would prefer to have new features -07:38.584 --> 07:43.708 +00:07:43.080 --> 00:07:47.799 written in Scheme. I would like this gypsum to be more of a -07:43.989 --> 07:52.075 +00:07:47.800 --> 00:07:51.479 Scheme app platform that just happens to be able to also run -07:43.989 --> 07:52.075 +00:07:51.480 --> 00:07:56.199 Emacs Lisp. That's how I see it. Of course, this will be a -07:54.577 --> 07:56.699 +00:07:56.200 --> 00:08:00.799 community project. I'm open to debate about that if anybody -07:58.809 --> 08:02.012 +00:08:00.800 --> 00:08:02.079 wants to convince me otherwise. -08:08.439 --> 08:11.683 +00:08:02.080 --> 00:08:11.759 Why is being able to interpret all of that EL a useful goal? -08:12.464 --> 08:14.626 +00:08:11.760 --> 00:08:15.519 Sure, there is a lot of code written in Elisp. Can we -08:15.206 --> 08:17.749 +00:08:15.520 --> 00:08:18.959 consider... Oh, it's still being written. Please go ahead -08:18.390 --> 08:19.491 +00:08:18.960 --> 00:08:19.439 and finish writing. NOTE Q: Can we consider a translator like utility to convert elisp to scheme, once guile-emacs becomes a reality? -08:29.673 --> 08:35.576 +00:08:19.440 --> 00:08:32.519 Can we consider a translator like utility to convert eLisp -08:29.673 --> 08:35.576 +00:08:32.520 --> 00:08:37.519 to Scheme once Guile-Emacs has become a reality? -08:36.716 --> 08:37.076 +00:08:37.520 --> 00:08:42.119 Certainly. For the time being, I just wanted to get the -08:38.717 --> 08:42.639 +00:08:42.120 --> 00:08:47.559 interpreter running. So the actual, the Guile-Emacs Lisp, -08:44.520 --> 08:58.666 +00:08:47.560 --> 00:08:51.919 the one that was written in 2011 that I didn't write, that -08:44.520 --> 08:58.666 +00:08:51.920 --> 00:08:57.599 actually does compile to, I think it's the tree -08:44.520 --> 08:58.666 +00:08:57.600 --> 00:08:59.239 intermediate representation It's one of the intermediate -08:59.076 --> 09:03.697 +00:08:59.240 --> 00:09:03.759 languages that Guile uses to compile Guile scheme itself. -09:04.817 --> 09:09.299 +00:09:03.760 --> 00:09:09.079 So the Emacs lisp that was written before actually does -09:04.817 --> 09:09.299 +00:09:09.080 --> 00:09:13.119 that. It actually compiles and makes use of the entire Guile -09:09.339 --> 09:20.761 +00:09:13.120 --> 00:09:17.479 compiler tool chain and actually produces like JIT -09:09.339 --> 09:20.761 +00:09:17.480 --> 00:09:21.719 compilable binaries, which is really cool. Like I said, -09:23.342 --> 09:25.943 +00:09:21.720 --> 00:09:27.519 that's the one that I had trouble getting to work properly. -09:29.209 --> 09:30.890 +00:09:27.520 --> 00:09:34.399 Maybe we can follow that architecture. I'm not sure how to do -09:33.052 --> 09:45.102 +00:09:34.400 --> 00:09:37.919 that, but I would like to be able to do some kind of -09:33.052 --> 09:45.102 +00:09:37.920 --> 00:09:41.999 translating, keeping in mind that we want to have this be -09:33.052 --> 09:45.102 +00:09:42.000 --> 00:09:48.919 portable, do various schemes. And so Guile makes this very -09:45.988 --> 09:50.289 +00:09:48.920 --> 00:09:52.719 easy, but other schemes don't. Gambit might do this pretty -09:51.549 --> 09:53.530 +00:09:52.720 --> 00:09:57.919 well as well. It compiles to C and then compiles C down to a -09:53.950 --> 10:01.471 +00:09:57.920 --> 00:10:06.159 dynamically linkable library. So yeah, I think probably -10:03.372 --> 10:09.373 +00:10:06.160 --> 00:10:09.559 the most portable, I'm just thinking out loud right now, -10:10.652 --> 10:21.715 +00:10:09.560 --> 00:10:13.239 most portable implementation will just be able to -10:10.652 --> 10:21.715 +00:10:13.240 --> 00:10:17.119 translate Emacs Lisp directly to Scheme, which is not what -10:10.652 --> 10:21.715 +00:10:17.120 --> 00:10:22.439 the old Guile Emacs Lisp implementation does. That goes to -10:21.755 --> 10:26.777 +00:10:22.440 --> 00:10:26.439 TreeIL, so it's very, very Guile-specific, can't be -10:21.755 --> 10:26.777 +00:10:26.440 --> 00:10:30.799 ported. But yeah, if we could somehow get Emacs Lisp -10:28.359 --> 10:42.045 +00:10:30.800 --> 00:10:36.999 translated to Scheme and then compiled, say, in Shea Scheme -10:28.359 --> 10:42.045 +00:10:37.000 --> 00:10:40.879 or Gambit or MIT Scheme or one of those other compilers, that -10:28.359 --> 10:42.045 +00:10:40.880 --> 00:10:44.919 would be very cool. And I would absolutely love to do that. -10:44.906 --> 10:49.948 +00:10:44.920 --> 00:10:49.279 And I would very quickly accept any code into the code base -10:44.906 --> 10:49.948 +00:10:49.280 --> 00:10:50.599 that would do that. NOTE Q: Why is being able to interpret all of \`init.el\` an useful goal? -10:54.390 --> 10:56.291 +00:10:50.600 --> 00:10:59.119 Oh, and to answer the question about init.el, -10:59.207 --> 11:17.215 +00:10:59.120 --> 00:11:02.839 It's just because people spend a lot of time on their configs -10:59.207 --> 11:17.215 +00:11:02.840 --> 00:11:06.959 and it would be nice if, you know, you're starting to use this -10:59.207 --> 11:17.215 +00:11:06.960 --> 00:11:14.079 new editor and want it to be similar to Emacs users, just the -10:59.207 --> 11:17.215 +00:11:14.080 --> 00:11:16.519 Emacs community in general and people who are familiar with -10:59.207 --> 11:17.215 +00:11:16.520 --> 00:11:20.879 using Emacs. It would be more useful to everybody in the -11:17.715 --> 11:25.379 +00:11:20.880 --> 00:11:25.119 Emacs community if this were more compatible with GNU -11:17.715 --> 11:25.379 +00:11:25.120 --> 00:11:35.999 Emacs. And so that's why that's, I think that's an important -11:25.679 --> 11:27.960 +00:11:36.000 --> 00:11:38.559 goal. -11:34.465 --> 11:35.467 +00:11:38.560 --> 00:12:01.839 Question is not yet. Great. Oh, here comes another -11:38.471 --> 11:39.613 +00:12:01.840 --> 00:12:02.279 question. NOTE Q: What is the plan to handle elisp packages that depend on 3rd party/external libraries? (libgit/magit or rg/ripgrep)? -12:08.539 --> 12:17.742 +00:12:02.280 --> 00:12:11.879 Okay, what is the plan to handle elisp packages that depend -12:08.539 --> 12:17.742 +00:12:11.880 --> 00:12:16.119 on third-party or external libraries like git or magit -12:08.539 --> 12:17.742 +00:12:16.120 --> 00:12:22.719 or ripgrep? So that's going to be tricky. It depends on how -12:21.523 --> 12:26.224 +00:12:22.720 --> 00:12:27.079 these external packages are linked into emacs. If it's -12:26.844 --> 12:33.646 +00:12:27.080 --> 00:12:32.879 going to be a dynamic library like Robin Templeton's -12:26.844 --> 12:33.646 +00:12:32.880 --> 00:12:38.039 project which you load the libgit library into the Emacs -12:35.289 --> 12:41.931 +00:12:38.040 --> 00:12:43.159 process, that is going to be extremely difficult. So if you -12:44.032 --> 12:52.975 +00:12:43.160 --> 00:12:49.359 have an external library like, I don't know, libgit or -12:44.032 --> 12:52.975 +00:12:49.360 --> 00:12:59.279 what's the GUI thing? Cabal. No, not Cabal. Cairo, libcairo -12:57.736 --> 13:01.398 +00:12:59.280 --> 00:13:01.439 to do SVG graphics and so on. -13:04.483 --> 13:17.480 +00:13:01.440 --> 00:13:09.719 You can do that very easily with Guile, but then on top of -13:04.483 --> 13:17.480 +00:13:09.720 --> 00:13:14.719 that, implementing Emacs list bindings to it, I mean, -13:04.483 --> 13:17.480 +00:13:14.720 --> 00:13:17.199 you've got two layers there, and that makes things pretty -13:04.483 --> 13:17.480 +00:13:17.200 --> 00:13:23.119 difficult. So it's possible. And to some degree, maybe -13:21.935 --> 13:30.842 +00:13:23.120 --> 00:13:27.799 necessary for example, Cairo, if we want to do SVG graphics -13:21.935 --> 13:30.842 +00:13:27.800 --> 00:13:30.599 the way that Emacs Lisp does, we're going to have to have -13:21.935 --> 13:30.842 +00:13:30.600 --> 00:13:33.959 that. So that would be necessary. We would have to have those -13:32.643 --> 13:33.944 +00:13:33.960 --> 00:13:39.199 two layers. Yes, let's do that. But if it's like for Magit, -13:38.047 --> 13:50.596 +00:13:39.200 --> 00:13:45.479 you can just call out to your git process, and then you're -13:38.047 --> 13:50.596 +00:13:45.480 --> 00:13:50.719 just using the regular process APIs that Emacs Lisp has. And -13:51.451 --> 13:58.475 +00:13:50.720 --> 00:13:57.119 that can be, already we, like Guile has some very good -13:51.451 --> 13:58.475 +00:13:57.120 --> 00:14:08.079 implementations for process management. And so it would -13:59.055 --> 14:05.438 +00:14:08.080 --> 00:14:12.439 just be a matter of wrapping up those in the Emacs lisp form -13:59.055 --> 14:05.438 +00:14:12.440 --> 00:14:24.919 bindings. So yeah, dynamic libraries, I wanna try to avoid. -14:12.222 --> 14:20.366 +00:14:24.920 --> 00:14:32.799 And I would prefer to do things more through, you know, -14:12.222 --> 14:20.366 +00:14:32.800 --> 00:14:40.399 launching a child process in the Emacs process. and then -14:20.956 --> 14:24.798 +00:14:40.400 --> 00:14:47.239 communicating over the standard in, standard out -14:20.956 --> 14:24.798 +00:14:47.240 --> 00:14:47.959 channels. -14:29.460 --> 14:40.386 +00:14:47.960 --> 00:14:52.799 That's the easier way to do things, I think, because then you -14:29.460 --> 14:40.386 +00:14:52.800 --> 00:14:58.519 can just use the process library that Emacs already has, and -14:29.460 --> 14:40.386 +00:14:58.520 --> 00:15:03.239 you can just reuse all of that code. -14:43.969 --> 14:49.912 +00:15:03.240 --> 00:15:09.079 I'm not sure how ripgrep works, unfortunately, but I -14:43.969 --> 14:49.912 +00:15:09.080 --> 00:15:15.279 believe that's also a process, a child process. So, we can -14:50.412 --> 14:53.774 +00:15:15.280 --> 00:15:23.479 just reuse all of the Emacs Lisp code that does that already. -14:54.014 --> 15:05.979 +00:15:23.480 --> 00:15:30.399 We just need to make sure that the process management -14:54.014 --> 15:05.979 +00:15:30.400 --> 00:15:35.119 implementation and scheme is properly bound to Emacs Lisp, -14:54.014 --> 15:05.979 +00:15:35.120 --> 00:15:43.359 and it works the same as GNU Emacs does. Once that's all set, -15:06.360 --> 15:13.383 +00:15:43.360 --> 00:15:48.399 then these porcelains, like around git, should fall into -15:06.360 --> 15:13.383 +00:15:48.400 --> 00:15:55.279 place. without too much difficulty, hopefully. NOTE Q: Not really a question, but how about Schemacs as a name? -15:21.112 --> 15:22.593 +00:15:55.280 --> 00:15:59.199 How about Schemax as a name? I like the name. I like that name. -15:28.937 --> 15:32.920 +00:15:59.200 --> 00:16:03.119 I haven't really looked into like, is that already used or is -15:28.937 --> 15:32.920 +00:16:03.120 --> 00:16:09.759 that going to be confusing? But certainly something we can -15:33.380 --> 15:35.021 +00:16:09.760 --> 00:16:10.959 discuss. -15:38.243 --> 15:39.264 +00:16:10.960 --> 00:16:13.039 Another thing I should mention, -15:42.157 --> 15:48.278 +00:16:13.040 --> 00:16:18.759 I should probably set up a server or something like Discord -15:42.157 --> 15:48.278 +00:16:18.760 --> 00:16:25.359 or something like that. Discourse, not Discord. -15:51.619 --> 15:56.220 +00:16:25.360 --> 00:16:31.599 Discourse, the open source one, where we could actually -15:51.619 --> 15:56.220 +00:16:31.600 --> 00:16:49.239 chat about this stuff. For the time being, ActivityPub, -15:56.540 --> 16:05.562 +00:16:49.240 --> 00:16:52.399 mostly Mastodon, is how I communicate with people in real -15:56.540 --> 16:05.562 +00:16:52.400 --> 00:16:57.279 time, that or email. So if you want to get a hold of me, check -16:09.809 --> 16:15.571 +00:16:57.280 --> 00:17:02.439 the notes for this presentation and just send me an email. -16:16.752 --> 16:18.012 +00:17:02.440 --> 00:17:09.039 Any question at all is fine. If you want to contribute code, -16:19.633 --> 16:25.495 +00:17:09.040 --> 00:17:12.799 if you want to just learn how to contribute code, send me any -16:19.633 --> 16:25.495 +00:17:12.800 --> 00:17:22.199 questions. It's fine. I'm happy to answer them. And we can -16:30.256 --> 16:31.757 +00:17:22.200 --> 00:17:25.879 talk about the name as well. NOTE Q: Why is it not feasible for the Emacs layer that interprets Emacs Lisp (the core in C) ot have a Scheme interpreter, instead of using Guile? -16:45.931 --> 16:54.215 +00:17:25.880 --> 00:17:30.239 Okay, why is it not feasible for the Emacs layer that -16:45.931 --> 16:54.215 +00:17:30.240 --> 00:17:34.319 interprets Emacs Lisp, the core in C, have a Scheme -16:45.931 --> 16:54.215 +00:17:34.320 --> 00:17:39.799 interpreter instead of using Guile? Let's see, I have to, -16:55.496 --> 16:57.257 +00:17:39.800 --> 00:17:48.799 okay. Emacs layer interprets Emacs Lisp, the core in C, have -16:57.737 --> 17:05.942 +00:17:48.800 --> 00:17:54.079 a Scheme interpreter instead of using Guile. Okay, so that, -17:07.362 --> 17:13.906 +00:17:54.080 --> 00:17:59.959 the question xlarsx is asking, xlars, x, So Lars is asking, -17:14.744 --> 17:28.093 +00:17:59.960 --> 00:18:02.319 is it not feasible for there to be an -17:14.744 --> 17:28.093 +00:18:02.320 --> 00:18:06.839 Emacs layer that interprets Emacs Lisp have a scheme -17:14.744 --> 17:28.093 +00:18:06.840 --> 00:18:33.079 interpreter? This is Robin Templeton's project. And -17:30.815 --> 17:32.156 +00:18:33.080 --> 00:18:39.839 they're presenting later today. So check the roster and be -17:32.697 --> 17:41.303 +00:18:39.840 --> 00:18:45.199 sure to see that presentation because that's exactly what -17:32.697 --> 17:41.303 +00:18:45.200 --> 00:18:52.119 Robin Templeton is doing. That's not what I'm doing though. -17:44.419 --> 17:46.459 +00:18:52.120 --> 00:18:57.239 I'm trying to create something in Scheme. But yes, there is -17:48.280 --> 17:54.921 +00:18:57.240 --> 00:19:02.959 an attempt to get an Scheme interpreter to run inside of -17:48.280 --> 17:54.921 +00:19:02.960 --> 00:19:07.159 Emacs itself. And it has its own method of binding to Emacs -17:55.181 --> 18:05.323 +00:19:07.160 --> 00:19:11.199 Lisp functions and translating data like Lisp structures -17:55.181 --> 18:05.323 +00:19:11.200 --> 00:19:14.439 between Guile Scheme and Emacs Lisp. Robin will explain all -18:05.943 --> 18:08.284 +00:19:14.440 --> 00:19:15.799 of that in their presentation. -18:28.519 --> 18:33.020 +00:19:15.800 --> 00:19:18.919 OK, I think I've got through all the questions on Etherpad. -18:33.620 --> 18:35.500 +00:19:18.920 --> 00:19:23.879 But I'm going to hang out here for a bit longer. And yeah, feel -18:37.621 --> 18:46.182 +00:19:23.880 --> 00:19:28.239 free to do a video chat with me or send me more questions on -18:37.621 --> 18:46.182 +00:19:28.240 --> 00:19:33.839 Etherpad or here in the big blue button. And so I'm just going -18:47.002 --> 18:48.082 +00:19:33.840 --> 00:21:49.119 to hang out. And thanks for asking all your questions. And -18:51.663 --> 18:56.024 +00:21:49.120 --> 00:21:50.839 yeah, I look forward to working with all of you if you're -18:51.663 --> 18:56.024 +00:21:50.840 --> 00:21:51.799 interested. take it easy. Thanks so much for the talk and -18:59.935 --> 19:08.180 +00:21:51.800 --> 00:21:53.199 looking forward to seeing some of your progress as this -18:59.935 --> 19:08.180 +00:21:53.200 --> 00:21:54.359 moves forward, exciting space. We'll go ahead and leave the -19:09.261 --> 19:14.925 +00:21:54.360 --> 00:21:54.879 room open for you and thanks for offering to hang out and chat -19:09.261 --> 19:14.925 +00:21:54.880 --> 00:21:55.639 with other people that come by. Feel free to throw something -19:15.025 --> 19:18.287 +00:21:55.640 --> 00:21:56.719 in the chat if you want to remind people you're still here. -19:19.557 --> 19:25.143 +00:21:56.720 --> 00:21:57.919 Meanwhile, on the stream, we have moved along to our next -19:19.557 --> 19:25.143 +00:21:57.920 --> 00:21:59.599 talk on Rust, and that is just getting started. But again, -19:25.283 --> 19:30.549 +00:21:59.600 --> 00:22:00.479 we're continuing to record this, and I'll just keep an eye on -19:25.283 --> 19:30.549 +00:22:00.480 --> 00:22:01.239 it to stop the recording. Thank you. Thank you. It was -19:33.352 --> 19:33.853 +00:22:01.240 --> 00:22:01.559 awesome. -21:47.935 --> 21:50.558 +00:22:01.560 --> 00:22:03.959 So it seems like it's slowed down here for the Q&A. I don't see -21:50.638 --> 21:53.741 +00:22:03.960 --> 00:22:05.439 anybody else on BBB, so I'm going to go ahead and stop the -21:50.638 --> 21:53.741 +00:22:05.440 --> 00:22:08.479 recording. We can start it back up. I would say, yes, there's -21:55.282 --> 21:58.906 +00:22:08.480 --> 00:22:09.519 a lot of things you can do with this. You can handle -21:58.926 --> 22:00.627 +00:22:09.520 --> 00:22:11.239 processing. Yeah, I'm going to try and join over the chat for -22:02.029 --> 22:07.614 +00:22:11.240 --> 00:22:14.679 the next talk. I'm not sure if I can do both big blue buttons at -22:08.635 --> 22:11.538 +00:22:14.680 --> 00:22:15.759 the same time. You should be able to just watch your mute -22:13.206 --> 22:19.998 +00:22:15.760 --> 00:22:19.159 settings and mute tab settings and whatever all you have to -22:13.206 --> 22:19.998 +00:22:19.160 --> 00:23:37.800 avoid bleed through. Okay. diff --git a/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt b/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt index d37f80ef..5f0d3fc5 100644 --- a/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt +++ b/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt @@ -2,345 +2,345 @@ WEBVTT NOTE Q: Do you have any suggestions for interactive debugging of Julia code in Emacs? -00:00.089 --> 00:00.829 +00:00:00.000 --> 00:00:05.319 ... answer to that. I, I think the infrastructure for an -00:01.509 --> 00:14.192 +00:00:05.320 --> 00:00:08.599 ecosystem in Julia in general is as mature as other -00:01.509 --> 00:14.192 +00:00:08.600 --> 00:00:12.559 languages, and even debugger infiltrator themselves are -00:01.509 --> 00:14.192 +00:00:12.560 --> 00:00:17.519 not particularly well developed. And so I don't think -00:15.853 --> 00:19.214 +00:00:17.520 --> 00:00:21.519 there's much we can do about that right now. I think that it's -00:21.570 --> 00:28.057 +00:00:21.520 --> 00:00:25.999 unfortunate that most of the development for these type of -00:21.570 --> 00:28.057 +00:00:26.000 --> 00:00:31.759 tools is tightly linked to VS code. But even there, I don't -00:29.218 --> 00:36.225 +00:00:31.760 --> 00:00:35.719 think that there's much done in terms of interactive -00:29.218 --> 00:36.225 +00:00:35.720 --> 00:00:42.359 debugging. So I, yeah, I think this has to be worked on mostly -00:36.866 --> 00:43.213 +00:00:42.360 --> 00:00:47.519 on the Julia side first. And then probably Emacs can get -00:43.820 --> 00:48.303 +00:00:47.520 --> 00:00:51.239 something out of that. I know that there's development in -00:49.183 --> 00:57.728 +00:00:51.240 --> 00:00:55.559 debugger.jl itself for future releases to make it at least -00:49.183 --> 00:57.728 +00:00:55.560 --> 00:01:01.839 faster and more stable. But yeah, I think we're not there as -00:58.809 --> 01:03.852 +00:01:01.840 --> 00:01:06.879 Julia community itself. So let alone Emacs, integration -01:04.192 --> 01:07.234 +00:01:06.880 --> 00:01:11.239 with Emacs. The way I personally debug is mostly using, -01:08.286 --> 01:15.508 +00:01:11.240 --> 00:01:15.199 well, debugger and infiltrator with Julia REPL mode in NOTE Q: Can you call out something that Julia has that Emacs does not, and which could benefit Emacs? -01:08.286 --> 01:15.508 +00:01:15.200 --> 00:01:21.679 Emacs. The second question, can you call out something that -01:18.009 --> 01:24.891 +00:01:21.680 --> 00:01:26.839 Julia has that Emacs does not and which could benefit Emacs? -01:26.852 --> 01:27.852 +00:01:26.840 --> 00:01:31.879 Nothing stands out to me except the usual multi-threading -01:28.848 --> 01:32.552 +00:01:31.880 --> 00:01:36.119 and things like this. I don't necessarily see something -01:33.432 --> 01:46.783 +00:01:36.120 --> 00:01:42.479 that Julia has going on that DMX doesn't have, but I see some -01:33.432 --> 01:46.783 +00:01:42.480 --> 00:01:45.839 differences and approaches that I think are important, -01:33.432 --> 01:46.783 +00:01:45.840 --> 00:01:49.759 like the community. I think Julia is a very active and tight -01:47.384 --> 01:50.266 +00:01:49.760 --> 00:01:54.159 community. Julia uses Slack and is very, very active. I -01:54.093 --> 01:57.736 +00:01:54.160 --> 00:01:56.559 think he might say something like that, but it's maybe more -01:54.093 --> 01:57.736 +00:01:56.560 --> 00:02:01.799 on Reddit, IRC. JuliaCon is big and brings together lots and -01:59.078 --> 02:02.381 +00:02:01.800 --> 00:02:05.159 lots of people. And I think the sense of community is really -02:03.221 --> 02:05.263 +00:02:05.160 --> 00:02:10.479 powerful. It's very easy to essentially meet people that -02:06.364 --> 02:16.834 +00:02:10.480 --> 00:02:12.919 are interested in what we're building and interested in -02:06.364 --> 02:16.834 +00:02:12.920 --> 00:02:15.999 what we're doing and interested in Julian, our, you know, -02:06.364 --> 02:16.834 +00:02:16.000 --> 00:02:21.239 hacker spirit. I think Emacs is a very strong community. -02:21.228 --> 02:26.151 +00:02:21.240 --> 00:02:24.279 We're here on a Saturday talking about Emacs, which again -02:21.228 --> 02:26.151 +00:02:24.280 --> 00:02:29.679 proves that we are doing this. But I'd like to emphasize that -02:27.192 --> 02:35.696 +00:02:29.680 --> 00:02:33.639 the community is a really important aspect in Julia that I -02:27.192 --> 02:35.696 +00:02:33.640 --> 00:02:38.159 think we should double down on our side. The next question is NOTE Q: Is there a way to use lisp syntax with Julia, like hy for python or lisp flavoured erlang? -02:36.797 --> 02:44.841 +00:02:38.160 --> 00:02:46.519 about Lisp syntax with Julia, like what we can do in Python. -02:48.038 --> 02:53.180 +00:02:46.520 --> 00:02:52.359 I don't think that's, I don't, I am not aware of any package -02:48.038 --> 02:53.180 +00:02:52.360 --> 00:02:56.879 that does that. I would bet that there's something there. I -02:56.722 --> 02:58.063 +00:02:56.880 --> 00:03:01.519 think that that's possible. Indeed, there used to be a Lisp -02:59.243 --> 03:07.027 +00:03:01.520 --> 00:03:08.079 interpreter in Julia itself until the latest release. The -03:07.647 --> 03:12.229 +00:03:08.080 --> 00:03:12.039 syntax parsing was done with a Lisp, it was called TemtoList -03:07.647 --> 03:12.229 +00:03:12.040 --> 00:03:18.679 indeed. I think this got rid, get rid of this for our more -03:16.124 --> 03:23.489 +00:03:18.680 --> 00:03:23.039 Julia-based solution that is faster and with better code -03:16.124 --> 03:23.489 +00:03:23.040 --> 00:03:28.599 provenance. I think that it should be possible to use the -03:25.430 --> 03:35.437 +00:03:28.600 --> 00:03:33.319 metaprogramming features in Julia to change the structure -03:25.430 --> 03:35.437 +00:03:33.320 --> 00:03:38.159 of your syntax to be a Lispy syntax. I do want to emphasize -03:36.238 --> 00:03:44.664 +00:03:38.160 --> 00:03:43.879 that Julia is heavily inspired by Lisp, so I wouldn't be -03:36.238 --> 03:44.664 +00:03:43.880 --> 00:03:49.239 surprised if if something like this were possible. -03:49.309 --> 00:03:51.167 +00:03:49.240 --> 00:03:51.239 I have tried Julia Snail. NOTE Q: Have you tried the Julia Snail package for Emacs? It tries to be like SLY/SLIME for Common Lisp. -00:03:51.168 --> 00:03:51.070 +00:03:51.240 --> 00:03:54.399 So the next question is about Julia -03:51.270 --> 03:52.712 +00:03:54.400 --> 00:03:58.199 Snail. I found Julia REPL to be a little bit easier to set up -03:53.312 --> 03:58.436 +00:03:58.200 --> 00:04:02.839 and use. So I just settled on that. I should maybe revisit -04:00.918 --> 04:03.480 +00:04:02.840 --> 00:04:05.999 that. In particular, I use the Julia REPL with the vterm -04:03.720 --> 04:11.406 +00:04:06.000 --> 00:04:10.959 backend, which essentially makes a companion REPL to my -04:03.720 --> 04:11.406 +00:04:10.960 --> 00:04:15.439 scripts. And that works for me. I do think that the tooling -04:15.638 --> 04:16.518 +00:04:15.440 --> 00:04:19.239 uh, could be improved. I think there is definitely much room -04:17.399 --> 04:22.040 +00:04:19.240 --> 00:04:26.079 and I would like to see improvement in that area. Um, and, uh, NOTE Q: Is there a data inspector for a Julia REPL available that you can use in Emacs? -04:22.940 --> 04:28.322 +00:04:26.080 --> 00:04:31.639 so we have data inspector for Julia REPL. -04:32.043 --> 04:34.784 +00:04:31.640 --> 00:04:37.279 I don't think so. I don't, is there any data inspector -04:34.804 --> 04:39.826 +00:04:37.280 --> 00:04:40.439 in for, for the Julia REPL that we can use in Emacs? -04:43.223 --> 00:04:43.489 +00:04:40.440 --> 00:04:44.839 I'm not sure. I don't think so. -00:04:44.840 --> 00:04:47.839 +00:04:44.840 --> 00:04:47.799 I think the way I look at data is -00:04:47.840 --> 00:04:50.519 +00:04:47.800 --> 00:04:50.519 essentially ignoring Emacs when encoded. It's just using the -00:04:50.520 --> 00:04:54.759 +00:04:50.520 --> 00:04:56.839 REPL. And again, with Julia REPL. So I'm not aware of any -00:04:54.760 --> 00:04:57.720 +00:04:56.840 --> 00:05:00.479 specialized tool And again, maybe this is, again, a good -04:58.652 --> 05:05.595 +00:05:00.480 --> 00:05:04.279 moment to emphasize that tooling, the Julia community -04:58.652 --> 05:05.595 +00:05:04.280 --> 00:05:09.079 clusters around VS Code. And there is tools like the, pretty -05:06.315 --> 05:11.578 +00:05:09.080 --> 00:05:14.199 much all the work with VS Code, unfortunately. And while -05:12.578 --> 05:21.242 +00:05:14.200 --> 00:05:17.759 there's a very, very decent Julia mode and Julia repo mode -05:12.578 --> 05:21.242 +00:05:17.760 --> 00:05:21.439 and Julia snail, there's definitely, definitely room for -05:12.578 --> 05:21.242 +00:05:21.440 --> 00:05:24.359 improvement. NOTE Q: Have you tried literate programming Julia (using Org babel or some other means) in Emacs? -05:24.443 --> 05:28.145 +00:05:24.360 --> 00:05:27.759 Next, we have a question about literate programming in -05:24.443 --> 05:28.145 +00:05:27.760 --> 00:05:32.439 Julia. I haven't done much of it with Org Babel or -05:29.505 --> 05:32.906 +00:05:32.440 --> 00:05:37.079 anything else. I haven't done much of it. I can say that Julia -05:35.827 --> 05:46.070 +00:05:37.080 --> 00:05:40.719 has developed a new iteration of notebooks called Pluto. -05:46.090 --> 05:48.471 +00:05:40.720 --> 00:05:47.119 Here I'm thinking about Jupyter notebooks. The Pluto -05:51.021 --> 06:02.988 +00:05:47.120 --> 00:05:55.359 notebooks for Julia try to remove a bunch of the pain points -05:51.021 --> 06:02.988 +00:05:55.360 --> 00:06:00.439 that Jupyter notebooks have, meaning you cannot easily -05:51.021 --> 06:02.988 +00:06:00.440 --> 00:06:03.639 commit them to Git or things like this. -06:06.450 --> 06:09.152 +00:06:03.640 --> 00:06:09.279 I haven't used them, but I know some people are very fond of -06:06.450 --> 06:09.152 +00:06:09.280 --> 00:06:13.559 them. And so I think that that's what some of the Julia -06:09.872 --> 06:15.195 +00:06:13.560 --> 00:06:16.879 community would use for notebooks. And I think they can -06:15.315 --> 06:19.298 +00:06:16.880 --> 00:06:22.239 interact with Emacs with no problem. And that would be a form -06:20.974 --> 06:23.035 +00:06:22.240 --> 00:06:26.879 of later programming. But if you can do it in Python, you can -06:24.015 --> 06:27.696 +00:06:26.880 --> 00:06:32.119 do it in Julia. I think there is no reason. And actually, you -06:30.617 --> 06:38.719 +00:06:32.120 --> 00:06:35.839 can take advantage of all this just-in-time or -06:30.617 --> 06:38.719 +00:06:35.840 --> 00:06:38.239 just-out-of-time compilation by keeping the same -06:30.617 --> 06:38.719 +00:06:38.240 --> 00:06:45.199 session. So I think it will be definitely a nice use case. So -06:44.681 --> 06:47.222 +00:06:45.200 --> 00:06:49.199 these are the questions that I see here. I'm going to scroll -06:48.561 --> 06:54.486 +00:06:49.200 --> 00:06:52.759 through the comments and see if there's something that I -06:48.561 --> 06:54.486 +00:06:52.760 --> 00:06:57.319 should say about comments. I'm excited people want to learn -06:56.228 --> 06:57.669 +00:06:57.320 --> 00:07:02.519 Julia. I have to say that if I want to do GPU computing -06:58.990 --> 07:06.757 +00:07:02.520 --> 00:07:06.399 nowadays, I find it much easier to do it with Julia than with -06:58.990 --> 07:06.757 +00:07:06.400 --> 00:07:11.759 CUDA. So I encourage people to look into that. And I do, -07:11.758 --> 07:26.807 +00:07:11.760 --> 00:07:19.359 again, I would like to share what makes me excited about -07:11.758 --> 07:26.807 +00:07:19.360 --> 00:07:23.799 Emacs, about this being open, being collaborative, being -07:11.758 --> 07:26.807 +00:07:23.800 --> 00:07:26.399 respectable with documentation is something that I find in -07:11.758 --> 07:26.807 +00:07:26.400 --> 00:07:30.999 Julia. So I think people that are excited about the same -07:27.367 --> 07:35.192 +00:07:31.000 --> 00:07:35.279 features will find a little bit of joy in working with Julia. -07:38.214 --> 07:39.675 +00:07:35.280 --> 00:07:41.999 I think I addressed what I have here. I don't know if there's -07:40.189 --> 07:43.532 +00:07:42.000 --> 00:07:43.559 anything else that I should add. -07:51.718 --> 07:54.000 +00:07:43.560 --> 00:07:52.879 It took me a minute to unmute there. -00:07:54.040 --> 00:07:58.399 +00:07:52.880 --> 00:07:57.519 No, I think that was awesome. And thank you so much. -00:07:58.400 --> 00:08:00.399 +00:07:57.520 --> 00:08:00.119 I guess I thought it would -00:08:00.400 --> 00:08:06.559 +00:08:00.120 --> 00:08:06.279 collapse that shared area on BBB, my mistake, on the stream, -00:08:06.560 --> 00:08:12.399 +00:08:06.280 --> 00:08:12.359 or I would have left it open. But in any case, no, I thought -00:08:12.400 --> 00:08:15.079 +00:08:12.360 --> 00:08:15.079 that was great. You did a great job of responding to all the -00:08:15.080 --> 00:08:17.879 +00:08:15.080 --> 00:08:17.839 questions and comments. And thank you again so much for your -00:08:17.880 --> 00:08:20.920 +00:08:17.840 --> 00:08:23.199 talk and getting us all excited to learn Julia. Thank you. -08:24.094 --> 08:25.275 +00:08:23.200 --> 00:08:27.759 Enjoy EmacsConf. And again, thanks so much for attending, -08:25.335 --> 08:30.220 +00:08:27.760 --> 00:08:42.400 for being EmacsConf. Thank you. diff --git a/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.vtt b/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.vtt index 6b092bd1..9a13366b 100644 --- a/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.vtt +++ b/2024/captions/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.vtt @@ -1810,7 +1810,7 @@ participate in the mailing list, it's not ideal, but I can still work with this. I am on IRC, I am on Matrix, 00:35:16.006 --> 00:35:19.799 -you can ping me, it's yantar2. +you can ping me, it's yantar92. 00:35:19.800 --> 00:35:22.347 We also have monthly meetup, diff --git a/2024/captions/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.vtt b/2024/captions/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.vtt index 375cad2a..e8cb84c4 100644 --- a/2024/captions/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.vtt +++ b/2024/captions/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.vtt @@ -10,7 +10,7 @@ morning here in Tokyo. Are we connected all right? 00:00:37.880 --> 00:00:40.879 -Okay, I seem to be struggling still with my audio. 1 2nd +Okay, I seem to be struggling still with my audio. One second... 00:00:40.880 --> 00:00:44.519 calling. Yeah, you were muted for a moment there. Okay, diff --git a/2024/info/blee-before.md b/2024/info/blee-before.md index 1c53259d..e96b5b09 100644 --- a/2024/info/blee-before.md +++ b/2024/info/blee-before.md @@ -26,7 +26,7 @@ Status: TO_CAPTION_QA 42:54.267 Economics and Business Dimmensions of ByStar Digital Ecosystem 43:38.433 Pointers for Digging Deeper -"""]]<div></div>Duration: 45:30 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-blee">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--main.webm">Download --main.webm (110MB)</a></li><li><a href="https://toobnix.org/w/4VywQEXSoLARtG1JZf9hoo">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 45:30 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--main.webm">Download --main.webm (110MB)</a></li><li><a href="https://toobnix.org/w/4VywQEXSoLARtG1JZf9hoo">View on Toobnix</a></li><li><a href="https://youtu.be/wa6tjBXZiTU">View on Youtube</a></li></ul></div></div> # Q&A @@ -37,6 +37,6 @@ Status: TO_CAPTION_QA 09:40.053 Q: As a specific example of how "ownership is not clean" ... 15:05.278 Q: Do you have any recommended reading materials designed for such an audience? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-blee-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.opus"></audio></div><div></div>Duration: 18:11 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-blee">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.opus">Download --answers.opus (8.9MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.vtt">Download --answers.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.webm">Download --answers.webm (41MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-blee-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.opus"></audio></div><div></div>Duration: 18:11 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.opus">Download --answers.opus (8.9MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.vtt">Download --answers.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.webm">Download --answers.webm (41MB)</a></li><li><a href="https://toobnix.org/w/1kJVXirsko1Q6eUNXGQkwQ">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=dtTwQfMGGeg">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/casual-before.md b/2024/info/casual-before.md index 6751ca43..c580fe70 100644 --- a/2024/info/casual-before.md +++ b/2024/info/casual-before.md @@ -29,7 +29,7 @@ Status: TO_CAPTION_QA 17:02.640 Casual has transformed my user experience with Emacs 17:34.451 Thanks and acknowledgements -"""]]<div></div>Duration: 18:24 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://toobnix.org/w/5vCCqXFtWJ3EK7W3HKPRUD">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 18:24 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--main.webm">Download --main.webm (32MB)</a></li><li><a href="https://toobnix.org/w/5vCCqXFtWJ3EK7W3HKPRUD">View on Toobnix</a></li><li><a href="https://youtu.be/-eMmmAKcFR4">View on Youtube</a></li></ul></div></div> # Q&A @@ -42,6 +42,6 @@ Status: TO_CAPTION_QA 14:40.282 Q: What modes are you working on at the moment for casual / are excited to explore? 18:14.280 Getting older -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-casual-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.opus"></audio></div><div></div>Duration: 22:12 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.opus">Download --answers.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.webm">Download --answers.webm (44MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-casual-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.opus"></audio></div><div></div>Duration: 22:12 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.opus">Download --answers.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.webm">Download --answers.webm (44MB)</a></li><li><a href="https://toobnix.org/w/bNSTtnXSKU3neu6Cpts6YZ">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=x9wPkqNlwrc">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/color-after.md b/2024/info/color-after.md index fd9b31fd..a6726801 100644 --- a/2024/info/color-after.md +++ b/2024/info/color-after.md @@ -192,256 +192,256 @@ Captioner: sachac <div class="transcript transcript-qanda"><a name="color-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> -[[!template text="""... Org mode and kind of note taking. And that meant that it wasn't""" start="00:00:00.169" video="qanda-color" id="subtitle"]] -[[!template text="""too difficult to get started with. But when I started more on""" start="00:00:02.810" video="qanda-color" id="subtitle"]] -[[!template text="""the coding side, because I'm a software engineer, you know,""" start="00:00:08.972" video="qanda-color" id="subtitle"]] -[[!template text="""on the day job. That kind of got me to think that the colors and""" start="00:00:08.972" video="qanda-color" id="subtitle"]] -[[!template text="""how themes look, how Emacs looks, was affecting. And that's""" start="00:00:16.366" video="qanda-color" id="subtitle"]] -[[!template text="""how it kind of came to picture. So I could have kind of gone""" start="00:00:25.331" video="qanda-color" id="subtitle"]] -[[!template text="""into a little bit more coding side of things, but I didn't""" start="00:00:29.073" video="qanda-color" id="subtitle"]] -[[!template text="""want to stress too much on the talk. So that's why I kind of""" start="00:00:29.073" video="qanda-color" id="subtitle"]] -[[!template text="""stuck to a very small bits of Org Mode and Elisp. And yeah, I""" start="00:00:36.957" video="qanda-color" id="subtitle"]] -[[!template text="""think that's how it came about. Yeah, but that's perfectly""" start="00:00:42.319" video="qanda-color" id="subtitle"]] -[[!template text="""fine. That's one of the chief reasons why we have two tracks""" start="00:00:46.536" video="qanda-color" id="subtitle"]] -[[!template text="""for Emacs content. We've had those for the last four years, I""" start="00:00:49.437" video="qanda-color" id="subtitle"]] -[[!template text="""think. It's because we have a general track, which is more""" start="00:00:52.798" video="qanda-color" id="subtitle"]] -[[!template text="""geared towards people who want a general... well,""" start="00:00:55.119" video="qanda-color" id="subtitle"]] -[[!template text="""generally people who are highly interested into org mode""" start="00:00:55.119" video="qanda-color" id="subtitle"]] -[[!template text="""and not necessarily into coding, but just to whet their""" start="00:00:55.119" video="qanda-color" id="subtitle"]] -[[!template text="""appetite to what can be done. And on the DevTrack, we have,""" start="00:00:55.119" video="qanda-color" id="subtitle"]] -[[!template text="""well, this year we have talked about Rust and about other""" start="00:01:06.082" video="qanda-color" id="subtitle"]] -[[!template text="""fancy things that people can do with Emacs. But, you know,""" start="00:01:06.082" video="qanda-color" id="subtitle"]] -[[!template text="""I'm also a software engineer, you know, we do this all the""" start="00:01:13.006" video="qanda-color" id="subtitle"]] -[[!template text="""time. Sometimes it's just fine to just chat about colors and""" start="00:01:13.006" video="qanda-color" id="subtitle"]] -[[!template text="""just the results of what we develop rather than how the""" start="00:01:15.808" video="qanda-color" id="subtitle"]] -[[!template text="""sausage is made. So that's completely fine too. I'm not sure""" start="00:01:15.808" video="qanda-color" id="subtitle"]] +[[!template text="""... Org mode and kind of note taking. And that meant that it wasn't""" start="00:00:00.000" video="qanda-color" id="subtitle"]] +[[!template text="""too difficult to get started with. But when I started more on""" start="00:00:06.040" video="qanda-color" id="subtitle"]] +[[!template text="""the coding side, because I'm a software engineer, you know,""" start="00:00:10.680" video="qanda-color" id="subtitle"]] +[[!template text="""on the day job. That kind of got me to think that the colors and""" start="00:00:14.960" video="qanda-color" id="subtitle"]] +[[!template text="""how themes look, how Emacs looks, was affecting. And that's""" start="00:00:20.680" video="qanda-color" id="subtitle"]] +[[!template text="""how it kind of came to picture. So I could have kind of gone""" start="00:00:26.480" video="qanda-color" id="subtitle"]] +[[!template text="""into a little bit more coding side of things, but I didn't""" start="00:00:30.720" video="qanda-color" id="subtitle"]] +[[!template text="""want to stress too much on the talk. So that's why I kind of""" start="00:00:34.920" video="qanda-color" id="subtitle"]] +[[!template text="""stuck to a very small bits of Org Mode and Elisp. And yeah, I""" start="00:00:38.320" video="qanda-color" id="subtitle"]] +[[!template text="""think that's how it came about. Yeah, but that's perfectly""" start="00:00:43.440" video="qanda-color" id="subtitle"]] +[[!template text="""fine. That's one of the chief reasons why we have two tracks""" start="00:00:48.160" video="qanda-color" id="subtitle"]] +[[!template text="""for Emacs content. We've had those for the last four years, I""" start="00:00:52.120" video="qanda-color" id="subtitle"]] +[[!template text="""think. It's because we have a general track, which is more""" start="00:00:54.800" video="qanda-color" id="subtitle"]] +[[!template text="""geared towards people who want a general... well,""" start="00:00:57.280" video="qanda-color" id="subtitle"]] +[[!template text="""generally people who are highly interested into org mode""" start="00:00:59.240" video="qanda-color" id="subtitle"]] +[[!template text="""and not necessarily into coding, but just to whet their""" start="00:01:01.800" video="qanda-color" id="subtitle"]] +[[!template text="""appetite to what can be done. And on the DevTrack, we have,""" start="00:01:04.000" video="qanda-color" id="subtitle"]] +[[!template text="""well, this year we have talked about Rust and about other""" start="00:01:08.400" video="qanda-color" id="subtitle"]] +[[!template text="""fancy things that people can do with Emacs. But, you know,""" start="00:01:11.520" video="qanda-color" id="subtitle"]] +[[!template text="""I'm also a software engineer, you know, we do this all the""" start="00:01:13.560" video="qanda-color" id="subtitle"]] +[[!template text="""time. Sometimes it's just fine to just chat about colors and""" start="00:01:15.560" video="qanda-color" id="subtitle"]] +[[!template text="""just the results of what we develop rather than how the""" start="00:01:18.080" video="qanda-color" id="subtitle"]] +[[!template text="""sausage is made. So that's completely fine too. I'm not sure""" start="00:01:20.960" video="qanda-color" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Why colour?""" start="00:01:23.733" video="qanda-color" id="subtitle"]]</div>[[!template text="""if you mentioned it in your presentation, but why color, out""" start="00:01:23.733" video="qanda-color" id="subtitle"]] -[[!template text="""of all the things you could be ricing on your setup, why were""" start="00:01:23.733" video="qanda-color" id="subtitle"]] -[[!template text="""you so interested about colors? I think it was just that""" start="00:01:23.733" video="qanda-color" id="subtitle"]] -[[!template text="""mainly that I had to do a lot of context switch between""" start="00:01:34.870" video="qanda-color" id="subtitle"]] -[[!template text="""different languages. Elisp is not the one because Elisp is""" start="00:01:34.870" video="qanda-color" id="subtitle"]] -[[!template text="""something that I would do for Emacs editing. But for day job,""" start="00:01:41.576" video="qanda-color" id="subtitle"]] -[[!template text="""I had to use mainly Go as I work with Kubernetes quite a bit. So""" start="00:01:47.061" video="qanda-color" id="subtitle"]] -[[!template text="""Go and also web languages like TypeScript, JavaScript, you""" start="00:01:52.525" video="qanda-color" id="subtitle"]] -[[!template text="""know, those languages, where I felt that whenever I was""" start="00:01:58.090" video="qanda-color" id="subtitle"]] -[[!template text="""switching context to a different language, I felt that it's""" start="00:01:58.090" video="qanda-color" id="subtitle"]] -[[!template text="""kind of annoying to see all the different colors in""" start="00:01:58.090" video="qanda-color" id="subtitle"]] -[[!template text="""languages like TypeScript, where, you know, VS Code way""" start="00:01:58.090" video="qanda-color" id="subtitle"]] -[[!template text="""would be very full of colors. which I felt that, okay, like,""" start="00:01:58.090" video="qanda-color" id="subtitle"]] -[[!template text="""why do I have to have that many different colors on let and""" start="00:02:14.262" video="qanda-color" id="subtitle"]] -[[!template text="""constant or the keywords where it could be just a white text?""" start="00:02:14.262" video="qanda-color" id="subtitle"]] -[[!template text="""It didn't have to be that colorful. So that was the bit, the""" start="00:02:23.789" video="qanda-color" id="subtitle"]] -[[!template text="""most annoying bit when it came to context switching. And I""" start="00:02:25.890" video="qanda-color" id="subtitle"]] -[[!template text="""felt that that just didn't happen in the Org Mode or writing""" start="00:02:30.974" video="qanda-color" id="subtitle"]] -[[!template text="""in general. So I had to find a way to make it work, make more""" start="00:02:30.974" video="qanda-color" id="subtitle"]] -[[!template text="""coding make my coding more kind of friendly to me and that's""" start="00:02:36.017" video="qanda-color" id="subtitle"]] -[[!template text="""when I thought maybe just the colors are something that's""" start="00:02:42.173" video="qanda-color" id="subtitle"]] -[[!template text="""bothering me and it actually was the case and that's how I got""" start="00:02:42.173" video="qanda-color" id="subtitle"]] -[[!template text="""to more into the color kind of journey and got too much into it""" start="00:02:42.173" video="qanda-color" id="subtitle"]] -[[!template text="""I guess. Right, and was it what eventually motivated you to""" start="00:02:42.173" video="qanda-color" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Why colour?""" start="00:01:24.840" video="qanda-color" id="subtitle"]]</div>[[!template text="""if you mentioned it in your presentation, but why color, out""" start="00:01:24.840" video="qanda-color" id="subtitle"]] +[[!template text="""of all the things you could be ricing on your setup, why were""" start="00:01:28.880" video="qanda-color" id="subtitle"]] +[[!template text="""you so interested about colors? I think it was just that""" start="00:01:31.480" video="qanda-color" id="subtitle"]] +[[!template text="""mainly that I had to do a lot of context switch between""" start="00:01:37.560" video="qanda-color" id="subtitle"]] +[[!template text="""different languages. Elisp is not the one because Elisp is""" start="00:01:40.240" video="qanda-color" id="subtitle"]] +[[!template text="""something that I would do for Emacs editing. But for day job,""" start="00:01:44.120" video="qanda-color" id="subtitle"]] +[[!template text="""I had to use mainly Go as I work with Kubernetes quite a bit. So""" start="00:01:48.080" video="qanda-color" id="subtitle"]] +[[!template text="""Go and also web languages like TypeScript, JavaScript, you""" start="00:01:53.000" video="qanda-color" id="subtitle"]] +[[!template text="""know, those languages, where I felt that whenever I was""" start="00:01:58.120" video="qanda-color" id="subtitle"]] +[[!template text="""switching context to a different language, I felt that it's""" start="00:02:01.520" video="qanda-color" id="subtitle"]] +[[!template text="""kind of annoying to see all the different colors in""" start="00:02:05.360" video="qanda-color" id="subtitle"]] +[[!template text="""languages like TypeScript, where, you know, VS Code way""" start="00:02:08.840" video="qanda-color" id="subtitle"]] +[[!template text="""would be very full of colors. which I felt that, okay, like,""" start="00:02:12.000" video="qanda-color" id="subtitle"]] +[[!template text="""why do I have to have that many different colors on let and""" start="00:02:15.800" video="qanda-color" id="subtitle"]] +[[!template text="""constant or the keywords where it could be just a white text?""" start="00:02:18.760" video="qanda-color" id="subtitle"]] +[[!template text="""It didn't have to be that colorful. So that was the bit, the""" start="00:02:23.760" video="qanda-color" id="subtitle"]] +[[!template text="""most annoying bit when it came to context switching. And I""" start="00:02:27.680" video="qanda-color" id="subtitle"]] +[[!template text="""felt that that just didn't happen in the Org Mode or writing""" start="00:02:31.400" video="qanda-color" id="subtitle"]] +[[!template text="""in general. So I had to find a way to make it work, make more""" start="00:02:34.760" video="qanda-color" id="subtitle"]] +[[!template text="""coding make my coding more kind of friendly to me and that's""" start="00:02:40.800" video="qanda-color" id="subtitle"]] +[[!template text="""when I thought maybe just the colors are something that's""" start="00:02:46.200" video="qanda-color" id="subtitle"]] +[[!template text="""bothering me and it actually was the case and that's how I got""" start="00:02:50.040" video="qanda-color" id="subtitle"]] +[[!template text="""to more into the color kind of journey and got too much into it""" start="00:02:54.040" video="qanda-color" id="subtitle"]] +[[!template text="""I guess. Right, and was it what eventually motivated you to""" start="00:02:59.360" video="qanda-color" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""What motivated you to learn Elisp and get into the Emacs core?""" start="00:03:00.535" video="qanda-color" id="subtitle"]]</div>[[!template text="""learn Elisp and to get into the Emacs core? Because it's""" start="00:03:00.535" video="qanda-color" id="subtitle"]] -[[!template text="""funny how you find plenty of people using Emacs in Org Mode""" start="00:03:05.798" video="qanda-color" id="subtitle"]] -[[!template text="""and then they find something that they take particular""" start="00:03:05.798" video="qanda-color" id="subtitle"]] -[[!template text="""issue with, for you it's the color, and then they just go all""" start="00:03:05.798" video="qanda-color" id="subtitle"]] -[[!template text="""in trying to pull the rope as far as they can to try to""" start="00:03:05.798" video="qanda-color" id="subtitle"]] -[[!template text="""understand as much as possible about what code is managing""" start="00:03:05.798" video="qanda-color" id="subtitle"]] -[[!template text="""this part of the application. Like for you it was color, for""" start="00:03:05.798" video="qanda-color" id="subtitle"]] -[[!template text="""me it was the org agenda, I desperately wanted to make Org""" start="00:03:22.786" video="qanda-color" id="subtitle"]] -[[!template text="""Agenda do something that it wasn't able to do. And five""" start="00:03:25.367" video="qanda-color" id="subtitle"]] -[[!template text="""years, well, actually, no, 10 years later, I find myself""" start="00:03:31.433" video="qanda-color" id="subtitle"]] -[[!template text="""hosting Emacs Cons. So, you never know just how far you're""" start="00:03:31.433" video="qanda-color" id="subtitle"]] -[[!template text="""going to be pulling this rope. So, it's really interesting""" start="00:03:36.598" video="qanda-color" id="subtitle"]] -[[!template text="""for me that my call was this. But back to the question, is this""" start="00:03:39.561" video="qanda-color" id="subtitle"]] -[[!template text="""what eventually motivated you to get into Elisp and the core""" start="00:03:42.464" video="qanda-color" id="subtitle"]] -[[!template text="""of Emacs? I think that the original journey to move to Emacs""" start="00:03:42.464" video="qanda-color" id="subtitle"]] -[[!template text="""was around keybindings that I got annoyed with with other""" start="00:03:49.798" video="qanda-color" id="subtitle"]] -[[!template text="""solutions, not just, you know, not speaking of Emacs""" start="00:03:49.798" video="qanda-color" id="subtitle"]] -[[!template text="""keybinding or anything, like anything in general. The main""" start="00:03:49.798" video="qanda-color" id="subtitle"]] -[[!template text="""reason was that I used Dovrak keyboard layout, and that""" start="00:04:02.870" video="qanda-color" id="subtitle"]] -[[!template text="""meant that all the C-c, C-v, C-p, whatever, It just is""" start="00:04:02.870" video="qanda-color" id="subtitle"]] -[[!template text="""all over the place. So I had to find something that could work""" start="00:04:10.257" video="qanda-color" id="subtitle"]] -[[!template text="""for me. And Emacs was a solution that allowed me to do""" start="00:04:11.577" video="qanda-color" id="subtitle"]] -[[!template text="""anything. And that's the kind of the journey that it""" start="00:04:14.898" video="qanda-color" id="subtitle"]] -[[!template text="""originally started. And from there, started tweaking org""" start="00:04:18.019" video="qanda-color" id="subtitle"]] -[[!template text="""mode and writing experience to be tuned to my liking. Color""" start="00:04:21.599" video="qanda-color" id="subtitle"]] -[[!template text="""was another thing that I thought, OK, maybe I could do it""" start="00:04:29.101" video="qanda-color" id="subtitle"]] -[[!template text="""easily with org mode. And when I started to use more of the""" start="00:04:29.101" video="qanda-color" id="subtitle"]] -[[!template text="""coding side of things on Emacs, I felt that, okay, that was""" start="00:04:34.262" video="qanda-color" id="subtitle"]] -[[!template text="""something I needed to solve. So Elisp was always kind of""" start="00:04:39.355" video="qanda-color" id="subtitle"]] -[[!template text="""just a toolkit that, you know, I knew that it was available. I""" start="00:04:41.877" video="qanda-color" id="subtitle"]] -[[!template text="""knew that it would be something that I want to be able to use.""" start="00:04:48.322" video="qanda-color" id="subtitle"]] -[[!template text="""So I think in a way color was a good segue to understand how I""" start="00:04:52.646" video="qanda-color" id="subtitle"]] -[[!template text="""can kind of work out more of a complex logic with the editor""" start="00:04:52.646" video="qanda-color" id="subtitle"]] -[[!template text="""without having to write JavaScript or things that I don't""" start="00:04:59.136" video="qanda-color" id="subtitle"]] -[[!template text="""particularly like. So yeah, I think the journey around the""" start="00:04:59.136" video="qanda-color" id="subtitle"]] -[[!template text="""functional languages, functional kind of programming was""" start="00:05:07.440" video="qanda-color" id="subtitle"]] -[[!template text="""always something that I was keen about. And yeah, the whole""" start="00:05:07.440" video="qanda-color" id="subtitle"]] -[[!template text="""journey kind of made sense for me. And then moving on to the""" start="00:05:13.943" video="qanda-color" id="subtitle"]] -[[!template text="""color was just one way to get more involved in. So I can""" start="00:05:16.984" video="qanda-color" id="subtitle"]] -[[!template text="""totally see that this journey kind of making to a little bit""" start="00:05:21.406" video="qanda-color" id="subtitle"]] -[[!template text="""different angle But yeah, we shall see how that really turns""" start="00:05:21.406" video="qanda-color" id="subtitle"]] -[[!template text="""out. But for now, I think I'm happy with the color setup. Now I""" start="00:05:27.669" video="qanda-color" id="subtitle"]] -[[!template text="""can really focus on the coding. Well, that's all good. And""" start="00:05:33.514" video="qanda-color" id="subtitle"]] -[[!template text="""I'm sure plenty of people listening to you now, you know,""" start="00:05:37.156" video="qanda-color" id="subtitle"]] -[[!template text="""find this relatable, how they eventually got into""" start="00:05:37.156" video="qanda-color" id="subtitle"]] -[[!template text="""programming. Like for you, you did say that you were a""" start="00:05:37.156" video="qanda-color" id="subtitle"]] -[[!template text="""software engineer now. But I found plenty of people,""" start="00:05:44.222" video="qanda-color" id="subtitle"]] -[[!template text="""especially doing workshops, that just started you know,""" start="00:05:48.705" video="qanda-color" id="subtitle"]] -[[!template text="""their software engineering journey just with Emacs and""" start="00:05:54.339" video="qanda-color" id="subtitle"]] -[[!template text="""they just realized they were doing something completely""" start="00:05:54.339" video="qanda-color" id="subtitle"]] -[[!template text="""different, like I was studying humanities. But then you""" start="00:05:54.339" video="qanda-color" id="subtitle"]] -[[!template text="""touch Emacs and you realize, yeah, this whole programming""" start="00:06:01.787" video="qanda-color" id="subtitle"]] -[[!template text="""shtick is actually pretty damn cool.""" start="00:06:01.787" video="qanda-color" id="subtitle"]] -[[!template text="""And then you find yourself again,""" start="00:06:07.280" video="qanda-color" id="subtitle"]] -[[!template text="""five to 10 years later, becoming a software""" start="00:06:09.400" video="qanda-color" id="subtitle"]] -[[!template text="""engineer. So yeah, that's all good.""" start="00:06:11.040" video="qanda-color" id="subtitle"]] -[[!template text="""So we do have a couple of""" start="00:06:12.920" video="qanda-color" id="subtitle"]] -[[!template text="""questions and I'd like to move into them so that I, I mean,""" start="00:06:14.520" video="qanda-color" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""What motivated you to learn Elisp and get into the Emacs core?""" start="00:03:04.040" video="qanda-color" id="subtitle"]]</div>[[!template text="""learn Elisp and to get into the Emacs core? Because it's""" start="00:03:04.040" video="qanda-color" id="subtitle"]] +[[!template text="""funny how you find plenty of people using Emacs in Org Mode""" start="00:03:07.000" video="qanda-color" id="subtitle"]] +[[!template text="""and then they find something that they take particular""" start="00:03:09.400" video="qanda-color" id="subtitle"]] +[[!template text="""issue with, for you it's the color, and then they just go all""" start="00:03:11.400" video="qanda-color" id="subtitle"]] +[[!template text="""in trying to pull the rope as far as they can to try to""" start="00:03:15.040" video="qanda-color" id="subtitle"]] +[[!template text="""understand as much as possible about what code is managing""" start="00:03:18.040" video="qanda-color" id="subtitle"]] +[[!template text="""this part of the application. Like for you it was color, for""" start="00:03:21.360" video="qanda-color" id="subtitle"]] +[[!template text="""me it was the org agenda, I desperately wanted to make Org""" start="00:03:23.880" video="qanda-color" id="subtitle"]] +[[!template text="""Agenda do something that it wasn't able to do. And five""" start="00:03:28.000" video="qanda-color" id="subtitle"]] +[[!template text="""years, well, actually, no, 10 years later, I find myself""" start="00:03:32.440" video="qanda-color" id="subtitle"]] +[[!template text="""hosting Emacs Cons. So, you never know just how far you're""" start="00:03:35.200" video="qanda-color" id="subtitle"]] +[[!template text="""going to be pulling this rope. So, it's really interesting""" start="00:03:38.200" video="qanda-color" id="subtitle"]] +[[!template text="""for me that my call was this. But back to the question, is this""" start="00:03:40.400" video="qanda-color" id="subtitle"]] +[[!template text="""what eventually motivated you to get into Elisp and the core""" start="00:03:44.680" video="qanda-color" id="subtitle"]] +[[!template text="""of Emacs? I think that the original journey to move to Emacs""" start="00:03:47.760" video="qanda-color" id="subtitle"]] +[[!template text="""was around keybindings that I got annoyed with with other""" start="00:03:53.440" video="qanda-color" id="subtitle"]] +[[!template text="""solutions, not just, you know, not speaking of Emacs""" start="00:03:56.960" video="qanda-color" id="subtitle"]] +[[!template text="""keybinding or anything, like anything in general. The main""" start="00:03:59.840" video="qanda-color" id="subtitle"]] +[[!template text="""reason was that I used Dovrak keyboard layout, and that""" start="00:04:02.880" video="qanda-color" id="subtitle"]] +[[!template text="""meant that all the C-c, C-v, C-p, whatever, It just is""" start="00:04:07.520" video="qanda-color" id="subtitle"]] +[[!template text="""all over the place. So I had to find something that could work""" start="00:04:10.800" video="qanda-color" id="subtitle"]] +[[!template text="""for me. And Emacs was a solution that allowed me to do""" start="00:04:13.920" video="qanda-color" id="subtitle"]] +[[!template text="""anything. And that's the kind of the journey that it""" start="00:04:17.040" video="qanda-color" id="subtitle"]] +[[!template text="""originally started. And from there, started tweaking org""" start="00:04:20.480" video="qanda-color" id="subtitle"]] +[[!template text="""mode and writing experience to be tuned to my liking. Color""" start="00:04:24.040" video="qanda-color" id="subtitle"]] +[[!template text="""was another thing that I thought, OK, maybe I could do it""" start="00:04:28.440" video="qanda-color" id="subtitle"]] +[[!template text="""easily with org mode. And when I started to use more of the""" start="00:04:32.560" video="qanda-color" id="subtitle"]] +[[!template text="""coding side of things on Emacs, I felt that, okay, that was""" start="00:04:36.240" video="qanda-color" id="subtitle"]] +[[!template text="""something I needed to solve. So Elisp was always kind of""" start="00:04:40.800" video="qanda-color" id="subtitle"]] +[[!template text="""just a toolkit that, you know, I knew that it was available. I""" start="00:04:45.160" video="qanda-color" id="subtitle"]] +[[!template text="""knew that it would be something that I want to be able to use.""" start="00:04:48.440" video="qanda-color" id="subtitle"]] +[[!template text="""So I think in a way color was a good segue to understand how I""" start="00:04:52.200" video="qanda-color" id="subtitle"]] +[[!template text="""can kind of work out more of a complex logic with the editor""" start="00:04:57.160" video="qanda-color" id="subtitle"]] +[[!template text="""without having to write JavaScript or things that I don't""" start="00:05:03.360" video="qanda-color" id="subtitle"]] +[[!template text="""particularly like. So yeah, I think the journey around the""" start="00:05:06.360" video="qanda-color" id="subtitle"]] +[[!template text="""functional languages, functional kind of programming was""" start="00:05:09.400" video="qanda-color" id="subtitle"]] +[[!template text="""always something that I was keen about. And yeah, the whole""" start="00:05:11.880" video="qanda-color" id="subtitle"]] +[[!template text="""journey kind of made sense for me. And then moving on to the""" start="00:05:15.440" video="qanda-color" id="subtitle"]] +[[!template text="""color was just one way to get more involved in. So I can""" start="00:05:18.480" video="qanda-color" id="subtitle"]] +[[!template text="""totally see that this journey kind of making to a little bit""" start="00:05:22.000" video="qanda-color" id="subtitle"]] +[[!template text="""different angle But yeah, we shall see how that really turns""" start="00:05:26.280" video="qanda-color" id="subtitle"]] +[[!template text="""out. But for now, I think I'm happy with the color setup. Now I""" start="00:05:30.760" video="qanda-color" id="subtitle"]] +[[!template text="""can really focus on the coding. Well, that's all good. And""" start="00:05:33.800" video="qanda-color" id="subtitle"]] +[[!template text="""I'm sure plenty of people listening to you now, you know,""" start="00:05:37.600" video="qanda-color" id="subtitle"]] +[[!template text="""find this relatable, how they eventually got into""" start="00:05:40.840" video="qanda-color" id="subtitle"]] +[[!template text="""programming. Like for you, you did say that you were a""" start="00:05:43.640" video="qanda-color" id="subtitle"]] +[[!template text="""software engineer now. But I found plenty of people,""" start="00:05:46.880" video="qanda-color" id="subtitle"]] +[[!template text="""especially doing workshops, that just started you know,""" start="00:05:50.520" video="qanda-color" id="subtitle"]] +[[!template text="""their software engineering journey just with Emacs and""" start="00:05:54.680" video="qanda-color" id="subtitle"]] +[[!template text="""they just realized they were doing something completely""" start="00:05:57.640" video="qanda-color" id="subtitle"]] +[[!template text="""different, like I was studying humanities. But then you""" start="00:05:59.240" video="qanda-color" id="subtitle"]] +[[!template text="""touch Emacs and you realize, yeah, this whole programming""" start="00:06:02.000" video="qanda-color" id="subtitle"]] +[[!template text="""shtick is actually pretty damn cool.""" start="00:06:05.080" video="qanda-color" id="subtitle"]] +[[!template text="""And then you find yourself again,""" start="00:06:06.680" video="qanda-color" id="subtitle"]] +[[!template text="""five to 10 years later, becoming a software""" start="00:06:09.080" video="qanda-color" id="subtitle"]] +[[!template text="""engineer. So yeah, that's all good.""" start="00:06:11.000" video="qanda-color" id="subtitle"]] +[[!template text="""So we do have a couple of""" start="00:06:13.000" video="qanda-color" id="subtitle"]] +[[!template text="""questions and I'd like to move into them so that I, I mean,""" start="00:06:13.920" video="qanda-color" id="subtitle"]] [[!template text="""people have questions and for me it's okay for me to chat with""" start="00:06:18.440" video="qanda-color" id="subtitle"]] -[[!template text="""you but obviously it's better if people ask you the question""" start="00:06:22.440" video="qanda-color" id="subtitle"]] +[[!template text="""you but obviously it's better if people ask you the question""" start="00:06:22.400" video="qanda-color" id="subtitle"]] [[!template text="""themselves. And again, if you want to ask questions to Ryota""" start="00:06:25.120" video="qanda-color" id="subtitle"]] -[[!template text="""directly, feel free to join us on BBB and whenever we're done""" start="00:06:27.680" video="qanda-color" id="subtitle"]] -[[!template text="""with the questions on the pad, I'm more than happy""" start="00:06:31.080" video="qanda-color" id="subtitle"]] +[[!template text="""directly, feel free to join us on BBB and whenever we're done""" start="00:06:27.640" video="qanda-color" id="subtitle"]] +[[!template text="""with the questions on the pad, I'm more than happy""" start="00:06:31.040" video="qanda-color" id="subtitle"]] [[!template text="""to let you ask your questions live.""" start="00:06:33.520" video="qanda-color" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Is there any intention to create a library for working with more experimental color spaces? Pulling code out of Hasliberg for this purpose, perhaps?""" start="00:06:35.982" video="qanda-color" id="subtitle"]]</div>[[!template text="""All right, so starting with the first question,""" start="00:06:35.982" video="qanda-color" id="subtitle"]] -[[!template text="""is there any intention to create a library""" start="00:06:37.903" video="qanda-color" id="subtitle"]] -[[!template text="""for working with more experimental color spaces, pulling""" start="00:06:37.903" video="qanda-color" id="subtitle"]] -[[!template text="""code out of Hasliberg for this purpose, perhaps? Although I""" start="00:06:35.982" video="qanda-color" id="subtitle"]] -[[!template text="""do not know. Hasliberg, you might? Yeah, Hasliberg. And to""" start="00:06:45.329" video="qanda-color" id="subtitle"]] -[[!template text="""answer the question, started the journey just for myself""" start="00:06:49.692" video="qanda-color" id="subtitle"]] -[[!template text="""and I didn't think that it would be actually useful for other""" start="00:06:52.859" video="qanda-color" id="subtitle"]] -[[!template text="""use cases and this conference talk just came about kind of""" start="00:06:52.859" video="qanda-color" id="subtitle"]] -[[!template text="""out of sheer luck really. So the idea I think I can definitely""" start="00:06:52.859" video="qanda-color" id="subtitle"]] -[[!template text="""work it out and I don't think there will be too, the original""" start="00:07:04.771" video="qanda-color" id="subtitle"]] -[[!template text="""code that I started with was I had to use some color space and I""" start="00:07:04.771" video="qanda-color" id="subtitle"]] -[[!template text="""started with sRGB and then went to HSL and then went to LCH. So""" start="00:07:15.931" video="qanda-color" id="subtitle"]] -[[!template text="""I think there has been quite a bit that I learned from it. At""" start="00:07:21.996" video="qanda-color" id="subtitle"]] -[[!template text="""the same time, I may be tempted to actually maybe perhaps""" start="00:07:25.458" video="qanda-color" id="subtitle"]] -[[!template text="""contribute back to ct.el rather than creating my own. I""" start="00:07:25.458" video="qanda-color" id="subtitle"]] -[[!template text="""think that would make more sense perhaps.""" start="00:07:34.105" video="qanda-color" id="subtitle"]] -[[!template text="""But for my own kind of taste that I thought""" start="00:07:36.607" video="qanda-color" id="subtitle"]] -[[!template text="""that it would be something I can work out in my theme,""" start="00:07:39.549" video="qanda-color" id="subtitle"]] -[[!template text="""but I don't have any I think, you know, making a""" start="00:07:42.892" video="qanda-color" id="subtitle"]] -[[!template text="""library is definitely something that I can think about, but""" start="00:07:45.813" video="qanda-color" id="subtitle"]] -[[!template text="""perhaps maybe making it too many packages isn't exactly""" start="00:07:45.813" video="qanda-color" id="subtitle"]] -[[!template text="""what I want. But for my own use case, I think I just wanted to""" start="00:07:45.813" video="qanda-color" id="subtitle"]] -[[!template text="""have something that just didn't have any external""" start="00:07:55.175" video="qanda-color" id="subtitle"]] -[[!template text="""dependency so that I can use the vanilla Emacs with my""" start="00:07:55.175" video="qanda-color" id="subtitle"]] -[[!template text="""colors. I think that's how it started, but I'm definitely up""" start="00:07:55.175" video="qanda-color" id="subtitle"]] -[[!template text="""for it if there is interest about it. Yeah, well, thank you""" start="00:08:06.757" video="qanda-color" id="subtitle"]] -[[!template text="""for this. It's always good to contribute.""" start="00:08:12.622" video="qanda-color" id="subtitle"]] -[[!template text="""I'm tempted to say""" start="00:08:16.040" video="qanda-color" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Is there any intention to create a library for working with more experimental color spaces? Pulling code out of Hasliberg for this purpose, perhaps?""" start="00:06:35.320" video="qanda-color" id="subtitle"]]</div>[[!template text="""All right, so starting with the first question,""" start="00:06:35.320" video="qanda-color" id="subtitle"]] +[[!template text="""is there any intention to create a library""" start="00:06:37.800" video="qanda-color" id="subtitle"]] +[[!template text="""for working with more experimental color spaces, pulling""" start="00:06:40.000" video="qanda-color" id="subtitle"]] +[[!template text="""code out of Hasliberg for this purpose, perhaps? Although I""" start="00:06:42.560" video="qanda-color" id="subtitle"]] +[[!template text="""do not know. Hasliberg, you might? Yeah, Hasliberg. And to""" start="00:06:45.680" video="qanda-color" id="subtitle"]] +[[!template text="""answer the question, started the journey just for myself""" start="00:06:50.480" video="qanda-color" id="subtitle"]] +[[!template text="""and I didn't think that it would be actually useful for other""" start="00:06:55.120" video="qanda-color" id="subtitle"]] +[[!template text="""use cases and this conference talk just came about kind of""" start="00:06:58.480" video="qanda-color" id="subtitle"]] +[[!template text="""out of sheer luck really. So the idea I think I can definitely""" start="00:07:03.320" video="qanda-color" id="subtitle"]] +[[!template text="""work it out and I don't think there will be too, the original""" start="00:07:08.080" video="qanda-color" id="subtitle"]] +[[!template text="""code that I started with was I had to use some color space and I""" start="00:07:12.200" video="qanda-color" id="subtitle"]] +[[!template text="""started with sRGB and then went to HSL and then went to LCH. So""" start="00:07:17.640" video="qanda-color" id="subtitle"]] +[[!template text="""I think there has been quite a bit that I learned from it. At""" start="00:07:22.480" video="qanda-color" id="subtitle"]] +[[!template text="""the same time, I may be tempted to actually maybe perhaps""" start="00:07:25.480" video="qanda-color" id="subtitle"]] +[[!template text="""contribute back to ct.el rather than creating my own. I""" start="00:07:30.000" video="qanda-color" id="subtitle"]] +[[!template text="""think that would make more sense perhaps.""" start="00:07:34.160" video="qanda-color" id="subtitle"]] +[[!template text="""But for my own kind of taste that I thought""" start="00:07:36.280" video="qanda-color" id="subtitle"]] +[[!template text="""that it would be something I can work out in my theme,""" start="00:07:39.480" video="qanda-color" id="subtitle"]] +[[!template text="""but I don't have any I think, you know, making a""" start="00:07:42.840" video="qanda-color" id="subtitle"]] +[[!template text="""library is definitely something that I can think about, but""" start="00:07:46.880" video="qanda-color" id="subtitle"]] +[[!template text="""perhaps maybe making it too many packages isn't exactly""" start="00:07:50.000" video="qanda-color" id="subtitle"]] +[[!template text="""what I want. But for my own use case, I think I just wanted to""" start="00:07:53.680" video="qanda-color" id="subtitle"]] +[[!template text="""have something that just didn't have any external""" start="00:07:57.320" video="qanda-color" id="subtitle"]] +[[!template text="""dependency so that I can use the vanilla Emacs with my""" start="00:07:59.920" video="qanda-color" id="subtitle"]] +[[!template text="""colors. I think that's how it started, but I'm definitely up""" start="00:08:04.120" video="qanda-color" id="subtitle"]] +[[!template text="""for it if there is interest about it. Yeah, well, thank you""" start="00:08:09.640" video="qanda-color" id="subtitle"]] +[[!template text="""for this. It's always good to contribute.""" start="00:08:13.720" video="qanda-color" id="subtitle"]] +[[!template text="""I'm tempted to say""" start="00:08:15.280" video="qanda-color" id="subtitle"]] [[!template text="""that's how they get you. You know, you do something really""" start="00:08:16.400" video="qanda-color" id="subtitle"]] -[[!template text="""cool and you share it with people and they have the, you know,""" start="00:08:18.680" video="qanda-color" id="subtitle"]] -[[!template text="""they just ask you, oh, do you have your code online? And you""" start="00:08:24.800" video="qanda-color" id="subtitle"]] -[[!template text="""realize, no, I haven't pushed it. And then they start""" start="00:08:27.166" video="qanda-color" id="subtitle"]] -[[!template text="""pressing you on. well, you need to do this, this is amazing""" start="00:08:28.707" video="qanda-color" id="subtitle"]] -[[!template text="""and you need to share it. You know, I had plenty of people ask""" start="00:08:30.287" video="qanda-color" id="subtitle"]] -[[!template text="""me to share my dot files when I was tackling the org agenda""" start="00:08:33.849" video="qanda-color" id="subtitle"]] -[[!template text="""issue that I mentioned earlier. And yeah, eventually when""" start="00:08:33.849" video="qanda-color" id="subtitle"]] -[[!template text="""you get to publishing your stuff, you also feel great""" start="00:08:42.575" video="qanda-color" id="subtitle"]] -[[!template text="""because you're putting a little bit of your intelligence""" start="00:08:42.575" video="qanda-color" id="subtitle"]] -[[!template text="""into the world and it can be the start of the journey for""" start="00:08:42.575" video="qanda-color" id="subtitle"]] -[[!template text="""someone else. You know, maybe someone will find your""" start="00:08:42.575" video="qanda-color" id="subtitle"]] -[[!template text="""library at some point and realize, yeah, I wanted to do""" start="00:08:54.283" video="qanda-color" id="subtitle"]] -[[!template text="""something slightly differently. and then they either""" start="00:08:54.283" video="qanda-color" id="subtitle"]] -[[!template text="""contribute to a library or they make their own but it's a""" start="00:09:00.387" video="qanda-color" id="subtitle"]] -[[!template text="""complete journey that starts with just people taking the""" start="00:09:00.387" video="qanda-color" id="subtitle"]] -[[!template text="""time to publish the content of the brain basically. Yeah,""" start="00:09:00.387" video="qanda-color" id="subtitle"]] -[[!template text="""that's the power of open source now. It's just how we really""" start="00:09:11.894" video="qanda-color" id="subtitle"]] -[[!template text="""appreciate the open source culture being cultivated""" start="00:09:13.654" video="qanda-color" id="subtitle"]] -[[!template text="""throughout so many years. And yeah, this is something that""" start="00:09:13.654" video="qanda-color" id="subtitle"]] -[[!template text="""I'm definitely keen about. So yeah, open for suggestions.""" start="00:09:21.736" video="qanda-color" id="subtitle"]] -[[!template text="""And exactly, that's how I started with the journey. And""" start="00:09:26.618" video="qanda-color" id="subtitle"]] -[[!template text="""yeah, while this is very experimental and very personal,""" start="00:09:29.760" video="qanda-color" id="subtitle"]] -[[!template text="""yeah, I'm not, you know, tied down to one particular way""" start="00:09:33.560" video="qanda-color" id="subtitle"]] -[[!template text="""only. So yeah we'll be open to suggestions like this one""" start="00:09:38.240" video="qanda-color" id="subtitle"]] -[[!template text="""which I would definitely think about. Yeah that's amazing""" start="00:09:41.680" video="qanda-color" id="subtitle"]] -[[!template text="""and just to be clear you know this is not a there's no""" start="00:09:44.840" video="qanda-color" id="subtitle"]] -[[!template text="""incentive one. I'm not pushing you to publish your library.""" start="00:09:46.880" video="qanda-color" id="subtitle"]] -[[!template text="""You know it was very personal for you and at the end if you""" start="00:09:51.070" video="qanda-color" id="subtitle"]] -[[!template text="""believe it might be useful for others it's a nice thing to""" start="00:09:51.070" video="qanda-color" id="subtitle"]] -[[!template text="""eventually think about publishing it. But just the fact""" start="00:09:51.070" video="qanda-color" id="subtitle"]] -[[!template text="""that you showed up at EmacsConf... Sorry, I'm""" start="00:09:58.056" video="qanda-color" id="subtitle"]] -[[!template text="""starting to lose my voice on the morning""" start="00:10:01.278" video="qanda-color" id="subtitle"]] -[[!template text="""of the first day. That's""" start="00:10:02.699" video="qanda-color" id="subtitle"]] -[[!template text="""not boding well for the two next days. I mean, just one day.""" start="00:10:03.520" video="qanda-color" id="subtitle"]] -[[!template text="""But just the""" start="00:10:08.560" video="qanda-color" id="subtitle"]] -[[!template text="""fact that you're showing up at EmacsConf and sharing about""" start="00:10:10.080" video="qanda-color" id="subtitle"]] -[[!template text="""all of this, the process, how you got to it eventually, it's""" start="00:10:13.280" video="qanda-color" id="subtitle"]] -[[!template text="""also a part of sharing. And I think it's also amazing in its""" start="00:10:17.120" video="qanda-color" id="subtitle"]] -[[!template text="""own way. Absolutely. Okay, I'm going to try to read the next""" start="00:10:19.440" video="qanda-color" id="subtitle"]] +[[!template text="""cool and you share it with people and they have the, you know,""" start="00:08:18.280" video="qanda-color" id="subtitle"]] +[[!template text="""they just ask you, oh, do you have your code online? And you""" start="00:08:23.640" video="qanda-color" id="subtitle"]] +[[!template text="""realize, no, I haven't pushed it. And then they start""" start="00:08:27.240" video="qanda-color" id="subtitle"]] +[[!template text="""pressing you on. well, you need to do this, this is amazing""" start="00:08:29.400" video="qanda-color" id="subtitle"]] +[[!template text="""and you need to share it. You know, I had plenty of people ask""" start="00:08:32.360" video="qanda-color" id="subtitle"]] +[[!template text="""me to share my dot files when I was tackling the org agenda""" start="00:08:35.880" video="qanda-color" id="subtitle"]] +[[!template text="""issue that I mentioned earlier. And yeah, eventually when""" start="00:08:40.520" video="qanda-color" id="subtitle"]] +[[!template text="""you get to publishing your stuff, you also feel great""" start="00:08:44.040" video="qanda-color" id="subtitle"]] +[[!template text="""because you're putting a little bit of your intelligence""" start="00:08:47.480" video="qanda-color" id="subtitle"]] +[[!template text="""into the world and it can be the start of the journey for""" start="00:08:50.280" video="qanda-color" id="subtitle"]] +[[!template text="""someone else. You know, maybe someone will find your""" start="00:08:53.680" video="qanda-color" id="subtitle"]] +[[!template text="""library at some point and realize, yeah, I wanted to do""" start="00:08:56.240" video="qanda-color" id="subtitle"]] +[[!template text="""something slightly differently. and then they either""" start="00:08:58.680" video="qanda-color" id="subtitle"]] +[[!template text="""contribute to a library or they make their own but it's a""" start="00:09:01.240" video="qanda-color" id="subtitle"]] +[[!template text="""complete journey that starts with just people taking the""" start="00:09:04.440" video="qanda-color" id="subtitle"]] +[[!template text="""time to publish the content of the brain basically. Yeah,""" start="00:09:07.360" video="qanda-color" id="subtitle"]] +[[!template text="""that's the power of open source now. It's just how we really""" start="00:09:12.040" video="qanda-color" id="subtitle"]] +[[!template text="""appreciate the open source culture being cultivated""" start="00:09:15.520" video="qanda-color" id="subtitle"]] +[[!template text="""throughout so many years. And yeah, this is something that""" start="00:09:19.120" video="qanda-color" id="subtitle"]] +[[!template text="""I'm definitely keen about. So yeah, open for suggestions.""" start="00:09:23.160" video="qanda-color" id="subtitle"]] +[[!template text="""And exactly, that's how I started with the journey. And""" start="00:09:27.000" video="qanda-color" id="subtitle"]] +[[!template text="""yeah, while this is very experimental and very personal,""" start="00:09:30.080" video="qanda-color" id="subtitle"]] +[[!template text="""yeah, I'm not, you know, tied down to one particular way""" start="00:09:33.520" video="qanda-color" id="subtitle"]] +[[!template text="""only. So yeah we'll be open to suggestions like this one""" start="00:09:38.200" video="qanda-color" id="subtitle"]] +[[!template text="""which I would definitely think about. Yeah that's amazing""" start="00:09:41.400" video="qanda-color" id="subtitle"]] +[[!template text="""and just to be clear you know this is not a there's no""" start="00:09:44.720" video="qanda-color" id="subtitle"]] +[[!template text="""incentive one. I'm not pushing you to publish your library.""" start="00:09:47.000" video="qanda-color" id="subtitle"]] +[[!template text="""You know it was very personal for you and at the end if you""" start="00:09:50.640" video="qanda-color" id="subtitle"]] +[[!template text="""believe it might be useful for others it's a nice thing to""" start="00:09:53.800" video="qanda-color" id="subtitle"]] +[[!template text="""eventually think about publishing it. But just the fact""" start="00:09:56.200" video="qanda-color" id="subtitle"]] +[[!template text="""that you showed up at EmacsConf... Sorry, I'm""" start="00:09:58.800" video="qanda-color" id="subtitle"]] +[[!template text="""starting to lose my voice on the morning""" start="00:10:01.440" video="qanda-color" id="subtitle"]] +[[!template text="""of the first day. That's""" start="00:10:02.640" video="qanda-color" id="subtitle"]] +[[!template text="""not boding well for the two next days. I mean, just one day.""" start="00:10:03.840" video="qanda-color" id="subtitle"]] +[[!template text="""But just the""" start="00:10:07.640" video="qanda-color" id="subtitle"]] +[[!template text="""fact that you're showing up at EmacsConf and sharing about""" start="00:10:09.160" video="qanda-color" id="subtitle"]] +[[!template text="""all of this, the process, how you got to it eventually, it's""" start="00:10:13.200" video="qanda-color" id="subtitle"]] +[[!template text="""also a part of sharing. And I think it's also amazing in its""" start="00:10:17.040" video="qanda-color" id="subtitle"]] +[[!template text="""own way. Absolutely. Okay, I'm going to try to read the next""" start="00:10:19.640" video="qanda-color" id="subtitle"]] [[!template text="""question and then try to cough a little bit. So can we have...""" start="00:10:26.040" video="qanda-color" id="subtitle"]] -[[!template text="""Oh, sorry, Bala. Sorry. I was the one who asked the question.""" start="00:10:31.720" video="qanda-color" id="subtitle"]] -[[!template text="""I thought I could ask it live here rather than... Thank you.""" start="00:10:36.920" video="qanda-color" id="subtitle"]] -[[!template text="""I'll go cough a little bit. So here I am. Thanks, Ryota, for""" start="00:10:40.188" video="qanda-color" id="subtitle"]] -[[!template text="""the nice talk. This is great. I loved it. Your attention to""" start="00:10:45.050" video="qanda-color" id="subtitle"]] -[[!template text="""detail was awesome.""" start="00:10:49.531" video="qanda-color" id="subtitle"]] +[[!template text="""Oh, sorry, Bala. Sorry. I was the one who asked the question.""" start="00:10:31.640" video="qanda-color" id="subtitle"]] +[[!template text="""I thought I could ask it live here rather than... Thank you.""" start="00:10:36.760" video="qanda-color" id="subtitle"]] +[[!template text="""I'll go cough a little bit. So here I am. Thanks, Ryota, for""" start="00:10:40.280" video="qanda-color" id="subtitle"]] +[[!template text="""the nice talk. This is great. I loved it. Your attention to""" start="00:10:46.040" video="qanda-color" id="subtitle"]] +[[!template text="""detail was awesome.""" start="00:10:50.520" video="qanda-color" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Can we have a dark as well as light theme variations made from your theme?""" start="00:10:51.880" video="qanda-color" id="subtitle"]]</div>[[!template text="""So I was just looking at the code and I was""" start="00:10:51.880" video="qanda-color" id="subtitle"]] -[[!template text="""wondering, do you have a dark and a light theme variation""" start="00:10:55.080" video="qanda-color" id="subtitle"]] -[[!template text="""which can be made from your theme? Or do you have to customize""" start="00:10:58.840" video="qanda-color" id="subtitle"]] -[[!template text="""it every time? That was my question. And thanks for that.""" start="00:11:02.480" video="qanda-color" id="subtitle"]] -[[!template text="""Thank you very much. I appreciate your feedback and""" start="00:11:05.520" video="qanda-color" id="subtitle"]] -[[!template text="""questions. So to answer the question, the short answer is""" start="00:11:10.240" video="qanda-color" id="subtitle"]] -[[!template text="""that I do have both dark and light themes with some sorts of""" start="00:11:15.080" video="qanda-color" id="subtitle"]] -[[!template text="""standard colors that I personally liked. And there were a""" start="00:11:18.640" video="qanda-color" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Can we have a dark as well as light theme variations made from your theme?""" start="00:10:51.520" video="qanda-color" id="subtitle"]]</div>[[!template text="""So I was just looking at the code and I was""" start="00:10:51.520" video="qanda-color" id="subtitle"]] +[[!template text="""wondering, do you have a dark and a light theme variation""" start="00:10:54.960" video="qanda-color" id="subtitle"]] +[[!template text="""which can be made from your theme? Or do you have to customize""" start="00:10:58.760" video="qanda-color" id="subtitle"]] +[[!template text="""it every time? That was my question. And thanks for that.""" start="00:11:02.600" video="qanda-color" id="subtitle"]] +[[!template text="""Thank you very much. I appreciate your feedback and""" start="00:11:06.200" video="qanda-color" id="subtitle"]] +[[!template text="""questions. So to answer the question, the short answer is""" start="00:11:09.680" video="qanda-color" id="subtitle"]] +[[!template text="""that I do have both dark and light themes with some sorts of""" start="00:11:15.040" video="qanda-color" id="subtitle"]] +[[!template text="""standard colors that I personally liked. And there were a""" start="00:11:18.440" video="qanda-color" id="subtitle"]] [[!template text="""few things that I showed in the demo. where I showed, I think,""" start="00:11:22.200" video="qanda-color" id="subtitle"]] -[[!template text="""three different dark theme colors. So light theme is""" start="00:11:26.720" video="qanda-color" id="subtitle"]] -[[!template text="""definitely something that I can do.""" start="00:11:30.040" video="qanda-color" id="subtitle"]] -[[!template text="""And the idea around Hasliberg theme""" start="00:11:31.800" video="qanda-color" id="subtitle"]] -[[!template text="""and just my theming in general was that""" start="00:11:33.880" video="qanda-color" id="subtitle"]] -[[!template text="""when I feel like I want to work in dark theme and when I want to""" start="00:11:36.360" video="qanda-color" id="subtitle"]] -[[!template text="""work in the standard way, I would just use the standard color.""" start="00:11:39.680" video="qanda-color" id="subtitle"]] -[[!template text="""But when I feel like maybe it's just so cold that I want""" start="00:11:42.480" video="qanda-color" id="subtitle"]] -[[!template text="""to have a bit of a warm colors near me, I would use the orange""" start="00:11:44.960" video="qanda-color" id="subtitle"]] -[[!template text="""theme, without changing too much of the kind of general""" start="00:11:49.400" video="qanda-color" id="subtitle"]] -[[!template text="""feeling and experience. So that can be said for the light""" start="00:11:52.360" video="qanda-color" id="subtitle"]] -[[!template text="""theme as well. So there is something and the kind of""" start="00:11:55.680" video="qanda-color" id="subtitle"]] +[[!template text="""three different dark theme colors. So light theme is""" start="00:11:26.680" video="qanda-color" id="subtitle"]] +[[!template text="""definitely something that I can do.""" start="00:11:30.000" video="qanda-color" id="subtitle"]] +[[!template text="""And the idea around Hasliberg theme""" start="00:11:31.560" video="qanda-color" id="subtitle"]] +[[!template text="""and just my theming in general was that""" start="00:11:33.760" video="qanda-color" id="subtitle"]] +[[!template text="""when I feel like I want to work in dark theme and when I want to""" start="00:11:36.280" video="qanda-color" id="subtitle"]] +[[!template text="""work in the standard way, I would just use the standard color.""" start="00:11:39.600" video="qanda-color" id="subtitle"]] +[[!template text="""But when I feel like maybe it's just so cold that I want""" start="00:11:42.160" video="qanda-color" id="subtitle"]] +[[!template text="""to have a bit of a warm colors near me, I would use the orange""" start="00:11:44.920" video="qanda-color" id="subtitle"]] +[[!template text="""theme, without changing too much of the kind of general""" start="00:11:48.520" video="qanda-color" id="subtitle"]] +[[!template text="""feeling and experience. So that can be said for the light""" start="00:11:52.280" video="qanda-color" id="subtitle"]] +[[!template text="""theme as well. So there is something and the kind of""" start="00:11:55.640" video="qanda-color" id="subtitle"]] [[!template text="""customization isn't that difficult to extend. So I do have""" start="00:11:58.960" video="qanda-color" id="subtitle"]] -[[!template text="""both dark and light, but primarily I'm just looking at the""" start="00:12:04.920" video="qanda-color" id="subtitle"]] -[[!template text="""dark theme as my main driver. But yeah, they are both""" start="00:12:09.080" video="qanda-color" id="subtitle"]] -[[!template text="""available. Great. Thank you so much. I will definitely try""" start="00:12:10.240" video="qanda-color" id="subtitle"]] -[[!template text="""your theme out. I'm definitely on the lookout for a nice,""" start="00:12:18.208" video="qanda-color" id="subtitle"]] -[[!template text="""friendly theme. Thank you very much. As I said, this is a""" start="00:12:19.205" video="qanda-color" id="subtitle"]] -[[!template text="""personal theme. I'm not sure if it really fits everyone's""" start="00:12:25.388" video="qanda-color" id="subtitle"]] -[[!template text="""need, but it is one inspiration that I hope that can lead to""" start="00:12:29.089" video="qanda-color" id="subtitle"]] -[[!template text="""another nice theming that could work for someone""" start="00:12:29.089" video="qanda-color" id="subtitle"]] -[[!template text="""specifically for some use cases. I don't have to solve""" start="00:12:29.089" video="qanda-color" id="subtitle"]] -[[!template text="""everyone's problem. Yeah, and I mean, it was sufficient to""" start="00:12:42.996" video="qanda-color" id="subtitle"]] -[[!template text="""be inspirational to people. I mean, just Bala just""" start="00:12:46.553" video="qanda-color" id="subtitle"]] -[[!template text="""mentioned it right now, but I'm sure plenty of people who""" start="00:12:49.755" video="qanda-color" id="subtitle"]] -[[!template text="""watched live, but also people will be watching in the""" start="00:12:49.755" video="qanda-color" id="subtitle"]] -[[!template text="""future, will have the interest to speak by what you've done.""" start="00:12:49.755" video="qanda-color" id="subtitle"]] -[[!template text="""So thank you again so much for this. Yep. All right, well, I""" start="00:12:58.699" video="qanda-color" id="subtitle"]] -[[!template text="""don't see any further questions. So I suggest we move""" start="00:13:04.102" video="qanda-color" id="subtitle"]] -[[!template text="""towards closure. Ryota, do you have any last words? No, I""" start="00:13:07.083" video="qanda-color" id="subtitle"]] -[[!template text="""don't. So yeah, thank you very much for attending. And it was""" start="00:13:13.775" video="qanda-color" id="subtitle"]] -[[!template text="""great fun putting this together. And I really didn't think""" start="00:13:16.577" video="qanda-color" id="subtitle"]] -[[!template text="""that I would be talking about my personal colors and""" start="00:13:19.299" video="qanda-color" id="subtitle"]] -[[!template text="""personal favorites, like orange being my favorite color.""" start="00:13:19.299" video="qanda-color" id="subtitle"]] -[[!template text="""This wouldn't be something that I would say out in any""" start="00:13:27.845" video="qanda-color" id="subtitle"]] -[[!template text="""conference, to be honest. But it just came out to be. And""" start="00:13:27.845" video="qanda-color" id="subtitle"]] -[[!template text="""happy that I had a chance. So thank you very much for giving me""" start="00:13:33.890" video="qanda-color" id="subtitle"]] -[[!template text="""the opportunity to talk. in this amazing conference and""" start="00:13:35.651" video="qanda-color" id="subtitle"]] -[[!template text="""yeah I can't just wait to check out other talks which you know""" start="00:13:39.574" video="qanda-color" id="subtitle"]] -[[!template text="""I know that there isn't you know other talks that are""" start="00:13:39.574" video="qanda-color" id="subtitle"]] -[[!template text="""happening right now I was actually wanted to to join them and""" start="00:13:39.574" video="qanda-color" id="subtitle"]] -[[!template text="""check check that out so I will probably do that right now.""" start="00:13:39.574" video="qanda-color" id="subtitle"]] -[[!template text="""Well, sure. Well, I won't hold you any longer then. Thank""" start="00:13:53.419" video="qanda-color" id="subtitle"]] -[[!template text="""you. For me, it was just amazing to, you know, generally when""" start="00:13:56.401" video="qanda-color" id="subtitle"]] -[[!template text="""you ask someone what their favorite color, you know, they""" start="00:13:57.682" video="qanda-color" id="subtitle"]] -[[!template text="""just tell you orange or blue or whatever. They don't go then""" start="00:13:57.682" video="qanda-color" id="subtitle"]] -[[!template text="""to chat about 20 minutes about their favorite color and how""" start="00:14:03.586" video="qanda-color" id="subtitle"]] -[[!template text="""they tuned their entire editor to work exactly around their""" start="00:14:03.586" video="qanda-color" id="subtitle"]] -[[!template text="""favorite colors. So it was inspiring. And I also want to try""" start="00:14:03.586" video="qanda-color" id="subtitle"]] -[[!template text="""it out, frankly, because my theme has been utterly bad for""" start="00:14:12.912" video="qanda-color" id="subtitle"]] -[[!template text="""the last five years and I need some change into my life. All""" start="00:14:12.912" video="qanda-color" id="subtitle"]] -[[!template text="""right. Thank you so much for your time. Thank you very much,""" start="00:14:21.497" video="qanda-color" id="subtitle"]] -[[!template text="""everyone. Cheers. Bye-bye.""" start="00:14:23.629" video="qanda-color" id="subtitle"]] +[[!template text="""both dark and light, but primarily I'm just looking at the""" start="00:12:04.840" video="qanda-color" id="subtitle"]] +[[!template text="""dark theme as my main driver. But yeah, they are both""" start="00:12:09.360" video="qanda-color" id="subtitle"]] +[[!template text="""available. Great. Thank you so much. I will definitely try""" start="00:12:12.840" video="qanda-color" id="subtitle"]] +[[!template text="""your theme out. I'm definitely on the lookout for a nice,""" start="00:12:18.240" video="qanda-color" id="subtitle"]] +[[!template text="""friendly theme. Thank you very much. As I said, this is a""" start="00:12:21.720" video="qanda-color" id="subtitle"]] +[[!template text="""personal theme. I'm not sure if it really fits everyone's""" start="00:12:26.120" video="qanda-color" id="subtitle"]] +[[!template text="""need, but it is one inspiration that I hope that can lead to""" start="00:12:31.280" video="qanda-color" id="subtitle"]] +[[!template text="""another nice theming that could work for someone""" start="00:12:37.160" video="qanda-color" id="subtitle"]] +[[!template text="""specifically for some use cases. I don't have to solve""" start="00:12:40.640" video="qanda-color" id="subtitle"]] +[[!template text="""everyone's problem. Yeah, and I mean, it was sufficient to""" start="00:12:44.200" video="qanda-color" id="subtitle"]] +[[!template text="""be inspirational to people. I mean, just Bala just""" start="00:12:48.720" video="qanda-color" id="subtitle"]] +[[!template text="""mentioned it right now, but I'm sure plenty of people who""" start="00:12:50.720" video="qanda-color" id="subtitle"]] +[[!template text="""watched live, but also people will be watching in the""" start="00:12:53.760" video="qanda-color" id="subtitle"]] +[[!template text="""future, will have the interest to speak by what you've done.""" start="00:12:56.000" video="qanda-color" id="subtitle"]] +[[!template text="""So thank you again so much for this. Yep. All right, well, I""" start="00:12:58.600" video="qanda-color" id="subtitle"]] +[[!template text="""don't see any further questions. So I suggest we move""" start="00:13:05.080" video="qanda-color" id="subtitle"]] +[[!template text="""towards closure. Ryota, do you have any last words? No, I""" start="00:13:09.720" video="qanda-color" id="subtitle"]] +[[!template text="""don't. So yeah, thank you very much for attending. And it was""" start="00:13:14.280" video="qanda-color" id="subtitle"]] +[[!template text="""great fun putting this together. And I really didn't think""" start="00:13:17.080" video="qanda-color" id="subtitle"]] +[[!template text="""that I would be talking about my personal colors and""" start="00:13:20.520" video="qanda-color" id="subtitle"]] +[[!template text="""personal favorites, like orange being my favorite color.""" start="00:13:24.760" video="qanda-color" id="subtitle"]] +[[!template text="""This wouldn't be something that I would say out in any""" start="00:13:27.760" video="qanda-color" id="subtitle"]] +[[!template text="""conference, to be honest. But it just came out to be. And""" start="00:13:30.120" video="qanda-color" id="subtitle"]] +[[!template text="""happy that I had a chance. So thank you very much for giving me""" start="00:13:34.160" video="qanda-color" id="subtitle"]] +[[!template text="""the opportunity to talk. in this amazing conference and""" start="00:13:37.480" video="qanda-color" id="subtitle"]] +[[!template text="""yeah I can't just wait to check out other talks which you know""" start="00:13:41.440" video="qanda-color" id="subtitle"]] +[[!template text="""I know that there isn't you know other talks that are""" start="00:13:44.320" video="qanda-color" id="subtitle"]] +[[!template text="""happening right now I was actually wanted to to join them and""" start="00:13:46.920" video="qanda-color" id="subtitle"]] +[[!template text="""check check that out so I will probably do that right now.""" start="00:13:50.200" video="qanda-color" id="subtitle"]] +[[!template text="""Well, sure. Well, I won't hold you any longer then. Thank""" start="00:13:52.760" video="qanda-color" id="subtitle"]] +[[!template text="""you. For me, it was just amazing to, you know, generally when""" start="00:13:56.840" video="qanda-color" id="subtitle"]] +[[!template text="""you ask someone what their favorite color, you know, they""" start="00:13:59.760" video="qanda-color" id="subtitle"]] +[[!template text="""just tell you orange or blue or whatever. They don't go then""" start="00:14:01.640" video="qanda-color" id="subtitle"]] +[[!template text="""to chat about 20 minutes about their favorite color and how""" start="00:14:04.400" video="qanda-color" id="subtitle"]] +[[!template text="""they tuned their entire editor to work exactly around their""" start="00:14:07.040" video="qanda-color" id="subtitle"]] +[[!template text="""favorite colors. So it was inspiring. And I also want to try""" start="00:14:10.080" video="qanda-color" id="subtitle"]] +[[!template text="""it out, frankly, because my theme has been utterly bad for""" start="00:14:14.760" video="qanda-color" id="subtitle"]] +[[!template text="""the last five years and I need some change into my life. All""" start="00:14:18.000" video="qanda-color" id="subtitle"]] +[[!template text="""right. Thank you so much for your time. Thank you very much,""" start="00:14:20.640" video="qanda-color" id="subtitle"]] +[[!template text="""everyone. Cheers. Bye-bye.""" start="00:14:24.320" video="qanda-color" id="subtitle"]] </div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20color%3A%20Colour%20your%20Emacs%20with%20ease) diff --git a/2024/info/color-before.md b/2024/info/color-before.md index ca43b9bb..89145fbd 100644 --- a/2024/info/color-before.md +++ b/2024/info/color-before.md @@ -17,16 +17,16 @@ Status: TO_CAPTION_QA 08:08.400 Hasliberg theme 11:06.240 Wrap up -"""]]<div></div>Duration: 11:48 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--main.webm">Download --main.webm (39MB)</a></li><li><a href="https://toobnix.org/w/oAGLWntah15B4XHLX19Uqc">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 11:48 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--main.webm">Download --main.webm (39MB)</a></li><li><a href="https://toobnix.org/w/oAGLWntah15B4XHLX19Uqc">View on Toobnix</a></li><li><a href="https://youtu.be/w1Khu7G0MFg">View on Youtube</a></li></ul></div></div> # Q&A <div class="vid qanda"><video controls preload="none" id="qanda-color"><source src="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.vtt" default />"""<track kind="chapters" label="Chapters" src="/2024/captions/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="qanda-color" data=""" -01:23.733 Why colour? -03:00.535 What motivated you to learn Elisp and get into the Emacs core? -06:35.982 Q: Is there any intention to create a library for working with more experimental color spaces? Pulling code out of Hasliberg for this purpose, perhaps? -10:51.880 Q: Can we have a dark as well as light theme variations made from your theme? +01:24.840 Why colour? +03:04.040 What motivated you to learn Elisp and get into the Emacs core? +06:35.320 Q: Is there any intention to create a library for working with more experimental color spaces? Pulling code out of Hasliberg for this purpose, perhaps? +10:51.520 Q: Can we have a dark as well as light theme variations made from your theme? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-color-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.opus"></audio></div><div></div>Duration: 14:31 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.opus">Download --answers.opus (8.4MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.webm">Download --answers.webm (25MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-color-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.opus"></audio></div><div></div>Duration: 14:31 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.opus">Download --answers.opus (8.4MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-color--colour-your-emacs-with-ease--ryota--answers.webm">Download --answers.webm (25MB)</a></li><li><a href="https://toobnix.org/w/6JccKrjCLLxcpRuhqScfn2">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=JJB8mxYEen8">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/emacs30-after.md b/2024/info/emacs30-after.md index 1e64a9c4..7c4c24b3 100644 --- a/2024/info/emacs30-after.md +++ b/2024/info/emacs30-after.md @@ -5,461 +5,461 @@ <div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Hello, and welcome to Emacs 30 Highlights at EmacsConf 2024.""" start="00:00:00.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Before I begin, I'd like to thank the organizers""" start="00:00:06.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and everyone involved for putting this all together.""" start="00:00:08.866" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Before I begin, I'd like to thank the organizers""" start="00:00:06.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and everyone involved for putting this all together.""" start="00:00:08.840" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""While this talk is being pre-recorded,""" start="00:00:11.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""my experience from the last few years""" start="00:00:13.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""assures me that it will be a great experience for everyone.""" start="00:00:15.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""My name is Philip Kaludercic.""" start="00:00:19.133" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""I am a core contributor and ELPA co-maintainer.""" start="00:00:21.333" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""I was honored when Sacha asked me""" start="00:00:24.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to take over the slot for this year.""" start="00:00:26.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""In the past few iterations,""" start="00:00:28.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""John Wiegley has filled a similar presentation""" start="00:00:29.900" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""focusing on more general Emacs development updates.""" start="00:00:32.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This year, I will specifically focus on""" start="00:00:35.700" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""highlight features from the upcoming Emacs 30 release,""" start="00:00:38.502" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which might or might not have been released""" start="00:00:41.933" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""by the time you are seeing this.""" start="00:00:44.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""As you can imagine, everything new about Emacs""" start="00:00:48.060" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""can always be found in the Emacs NEWS file.""" start="00:00:51.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Or, alternatively,""" start="00:00:55.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""if one doesn't want to read through the 3,000 lines here,""" start="00:00:57.133" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""one can also take a look at the Emacs FAQ""" start="00:01:01.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and then go to the what's new about""" start="00:01:05.266" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""my experience from the last few years""" start="00:00:13.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""assures me that it will be a great experience for everyone.""" start="00:00:15.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""My name is Philip Kaludercic.""" start="00:00:19.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""I am a core contributor and ELPA co-maintainer.""" start="00:00:21.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""I was honored when Sacha asked me""" start="00:00:24.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to take over the slot for this year.""" start="00:00:26.080" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""In the past few iterations,""" start="00:00:28.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""John Wiegley has filled a similar presentation""" start="00:00:29.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""focusing on more general Emacs development updates.""" start="00:00:32.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This year, I will specifically focus on""" start="00:00:35.680" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""highlight features from the upcoming Emacs 30 release,""" start="00:00:38.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which might or might not have been released""" start="00:00:41.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""by the time you are seeing this.""" start="00:00:43.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""As you can imagine, everything new about Emacs""" start="00:00:48.080" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""can always be found in the Emacs NEWS file.""" start="00:00:51.080" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Or, alternatively,""" start="00:00:55.060" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""if one doesn't want to read through the 3,000 lines here,""" start="00:00:57.080" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""one can also take a look at the Emacs FAQ""" start="00:01:01.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and then go to the what's new about""" start="00:01:05.280" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""or what's different about Emacs 30 node.""" start="00:01:08.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Next to these two official options,""" start="00:01:12.333" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""I also have a page on Emacs Wiki""" start="00:01:14.733" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""called EmacsThirtyHighlights,""" start="00:01:18.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""highlighting some of the interesting features""" start="00:01:21.333" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""with some context and suggestions on how to try them out.""" start="00:01:24.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This is more of a collaborative effort.""" start="00:01:28.466" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""So if you see this and think something is missing,""" start="00:01:30.066" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""feel free to add it.""" start="00:01:32.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""So without further ado,""" start="00:01:34.533" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""let's begin taking a look at new features in Emacs 30.""" start="00:01:36.866" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Next to these two official options,""" start="00:01:12.220" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""I also have a page on Emacs Wiki""" start="00:01:14.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""called EmacsThirtyHighlights,""" start="00:01:18.600" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""highlighting some of the interesting features""" start="00:01:21.440" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""with some context and suggestions on how to try them out.""" start="00:01:24.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This is more of a collaborative effort.""" start="00:01:28.440" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""So if you see this and think something is missing,""" start="00:01:30.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""feel free to add it.""" start="00:01:32.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""So without further ado,""" start="00:01:34.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""let's begin taking a look at new features in Emacs 30.""" start="00:01:36.840" video="mainVideo-emacs30" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Android""" start="00:01:41.800" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""The biggest one, and the one I want to mention first,""" start="00:01:41.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""is Android support, native Android support.""" start="00:01:44.733" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""As you can see here, Emacs has been ported""" start="00:01:49.066" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to the Android operating system.""" start="00:01:51.866" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""What this means is that from Emacs 30 onwards,""" start="00:01:53.700" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""you can build Android to target Android devices natively""" start="00:01:56.533" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and using a graphical interface.""" start="00:02:01.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""While it has been possible to run Emacs""" start="00:02:06.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""inside of terminal emulators on Android for a while,""" start="00:02:08.466" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""this actually means that you can use Emacs""" start="00:02:11.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""on an Android device, a phone or a tablet,""" start="00:02:13.933" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and have all the usual advantages from GUI Emacs,""" start="00:02:17.566" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""such as the ability to bind all commands""" start="00:02:20.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""without having to worry about--""" start="00:02:23.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""all keys without having to worry""" start="00:02:25.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""about terminal compatibility issues,""" start="00:02:27.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""displaying images and multiple fonts""" start="00:02:29.066" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""on the same display of different sizes.""" start="00:02:32.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""I should have a recording""" start="00:02:35.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""of that somewhere here--here we are--""" start="00:02:37.333" video="mainVideo-emacs30" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Android""" start="00:01:41.760" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""The biggest one, and the one I want to mention first,""" start="00:01:41.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""is Android support, native Android support.""" start="00:01:44.680" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""As you can see here, Emacs has been ported""" start="00:01:49.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to the Android operating system.""" start="00:01:51.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""What this means is that from Emacs 30 onwards,""" start="00:01:53.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""you can build Android to target Android devices natively""" start="00:01:56.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and using a graphical interface.""" start="00:02:01.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""While it has been possible to run Emacs""" start="00:02:06.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""inside of terminal emulators on Android for a while,""" start="00:02:08.800" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""this actually means that you can use Emacs""" start="00:02:11.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""on an Android device, a phone or a tablet,""" start="00:02:13.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and have all the usual advantages from GUI Emacs,""" start="00:02:17.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""such as the ability to bind all commands""" start="00:02:20.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""without having to worry about--""" start="00:02:23.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""all keys without having to worry""" start="00:02:25.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""about terminal compatibility issues,""" start="00:02:27.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""displaying images and multiple fonts""" start="00:02:29.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""on the same display of different sizes.""" start="00:02:32.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""I should have a recording""" start="00:02:35.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""of that somewhere here--here we are--""" start="00:02:37.280" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""which I made earlier on my phone,""" start="00:02:42.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""because I'm recording this on a laptop--""" start="00:02:44.133" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""where we can see how touch interaction works""" start="00:02:47.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""on an Android phone. I can switch between buffers.""" start="00:02:50.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Here I've connected an external keyboard,""" start="00:02:53.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""opening the Emacs website.""" start="00:02:56.133" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""We have images that we can interact with.""" start="00:02:57.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""We could resize them if we wanted to""" start="00:03:02.560" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""with the image resizing commands.""" start="00:03:04.320" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Pinch-to-zoom works, so it""" start="00:03:07.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""does realize what touchscreen interactions are.""" start="00:03:10.333" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""With an external mouse, and for example,""" start="00:03:12.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""enabling context menu mode,""" start="00:03:15.266" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""because I'm recording this on a laptop--""" start="00:02:44.440" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""where we can see how touch interaction works""" start="00:02:47.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""on an Android phone. I can switch between buffers.""" start="00:02:50.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Here I've connected an external keyboard,""" start="00:02:53.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""opening the Emacs website.""" start="00:02:56.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""We have images that we can interact with.""" start="00:02:58.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""We could resize them if we wanted to""" start="00:03:02.680" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""with the image resizing commands.""" start="00:03:05.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Pinch-to-zoom works, so it""" start="00:03:07.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""does realize what touchscreen interactions are.""" start="00:03:10.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""With an external mouse, and for example,""" start="00:03:12.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""enabling context menu mode,""" start="00:03:15.240" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""I can even pop up little interaction windows,""" start="00:03:17.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which one you would usually also know from GUI Emacs.""" start="00:03:23.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""TUI Emacs actually also supports them since a while now.""" start="00:03:28.140" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""And in this case, I'm demonstrating""" start="00:03:33.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""how even the touchscreen events""" start="00:03:34.600" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which one you would usually also know from GUI Emacs.""" start="00:03:22.680" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""TUI Emacs actually also supports them since a while now.""" start="00:03:27.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""And in this case, I'm demonstrating""" start="00:03:32.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""how even the touchscreen events""" start="00:03:34.640" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""can be inspected using the usual help system,""" start="00:03:36.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and how context-mode notices""" start="00:03:39.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""where we are and allows me to, for example,""" start="00:03:43.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""evaluate this specific region,""" start="00:03:45.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and how context-mode notices""" start="00:03:39.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""where we are and allows me to, for example,""" start="00:03:43.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""evaluate this specific region,""" start="00:03:45.240" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""which I've highlighted down there,""" start="00:03:47.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""binding a command to touch-screen-scroll. Yeah.""" start="00:03:49.333" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""One should note that these additions,""" start="00:03:58.333" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""for example touchscreen interaction,""" start="00:04:00.566" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""are not specific to Android,""" start="00:04:02.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""but they also are supported in other operating systems,""" start="00:04:03.866" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""such as Wayland and Xorg, which are not operating systems,""" start="00:04:07.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and Windows, insofar as they have touchscreen,""" start="00:04:12.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and devices have touchscreen support.""" start="00:04:15.333" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""binding a command to touch-screen-scroll. Yeah.""" start="00:03:49.080" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""One should note that these additions,""" start="00:03:58.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""for example touchscreen interaction,""" start="00:04:00.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""are not specific to Android,""" start="00:04:02.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""but they also are supported in other operating systems,""" start="00:04:04.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""such as Wayland and Xorg, which are not operating systems,""" start="00:04:06.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and Windows, insofar as they have touchscreen,""" start="00:04:12.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and devices have touchscreen support.""" start="00:04:15.280" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""One should mention, or I want to mention,""" start="00:04:18.420" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""that the main developer behind this feature, Po Lu,""" start="00:04:21.333" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""should be complimented for the additional effort he put""" start="00:04:24.700" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""into making sure that Emacs for Android""" start="00:04:27.533" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""can be built using only a free software toolchain,""" start="00:04:31.020" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which is certainly not something one has come to expect""" start="00:04:34.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""from working on Android applications,""" start="00:04:36.360" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""as usually you have to agree to some terms and conditions""" start="00:04:40.733" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""for Google-specific software.""" start="00:04:43.866" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Final note is that if you try and look for this online,""" start="00:04:46.520" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""there are APKs you can find,""" start="00:04:49.666" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""but some of them might be outdated.""" start="00:04:52.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""To the best of my knowledge, Po Lu has...""" start="00:04:54.700" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Emacs 30 Android Sourceforge...""" start="00:04:59.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""He has set up some system where here in Sourceforge,""" start="00:05:03.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""there are regular and updated""" start="00:05:06.533" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""APK files which you can download""" start="00:05:12.466" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to avoid having to build it yourself,""" start="00:05:14.533" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""testing out the newest version""" start="00:05:16.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""in case there are some bugs which you'd like to report.""" start="00:05:18.900" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Which-key is a package which has now been moved""" start="00:05:24.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""from ELPA to the core.""" start="00:05:33.133" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""If you haven't heard of which-key before, the idea is,""" start="00:05:35.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or the general pitch is that which-key""" start="00:05:39.180" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""is a additional documentation interface for Emacs""" start="00:05:41.666" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""for displaying various keys which you could input,""" start="00:05:45.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or various keys and key maps""" start="00:05:49.733" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""that have been partially inputted.""" start="00:05:53.440" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""A better way to demonstrate this""" start="00:05:54.866" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or to explain this is just to show it.""" start="00:05:57.666" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""If we enable the which-key mode--it's a global minor mode--""" start="00:05:59.333" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""then I can press, for example, C-x,""" start="00:06:03.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which is a prefix for the C-x keymap.""" start="00:06:06.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Then down here in the buffer, in this window down here,""" start="00:06:08.733" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""we see various commands which we could invoke""" start="00:06:12.466" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and the keys to invoke them with.""" start="00:06:15.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""For example, if I wanted to say C-x i for insert-file,""" start="00:06:17.933" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""then I just have to press i to highlight it once again.""" start="00:06:23.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""It should be down here. Pressing i without having to repeat""" start="00:06:27.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""the entire key code again,""" start="00:06:32.600" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""the partial key code again, just works.""" start="00:06:34.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This is different from the feature which Emacs has already,""" start="00:06:37.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which is if you have input the partial keychord,""" start="00:06:41.566" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""you can press C-h""" start="00:06:45.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and then a help buffer pops up with a listing""" start="00:06:47.066" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""of all keybindings that start with C-x.""" start="00:06:51.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""The information is the same, the presentation is different,""" start="00:06:54.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""because now if I wanted to do C-x i,""" start="00:06:56.666" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""I have to repeat the entire keychord again.""" start="00:06:59.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""So it's a matter of personal preference, which you prefer.""" start="00:07:03.340" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This is more of a traditional static approach""" start="00:07:09.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""because I get a help buffer which I can search""" start="00:07:10.960" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""using usual key commands,""" start="00:07:19.666" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""while which-key is more of a transient and modern.""" start="00:07:20.933" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Some might prefer that approach""" start="00:07:28.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to solving the same problem.""" start="00:07:31.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Also, don't forget to check out the customization group""" start="00:07:35.720" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""for which-key which has a number of options""" start="00:07:39.133" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which you might or might not be interested in.""" start="00:07:41.966" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""that the main developer behind this feature, Po Lu,""" start="00:04:21.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""should be complimented for the additional effort he put""" start="00:04:24.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""into making sure that Emacs for Android""" start="00:04:27.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""can be built using only a free software toolchain,""" start="00:04:30.980" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which is certainly not something one has come to expect""" start="00:04:33.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""from working on Android applications,""" start="00:04:37.000" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""as usually you have to agree to some terms and conditions""" start="00:04:40.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""for Google-specific software.""" start="00:04:43.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Final note is that if you try and look for this online,""" start="00:04:46.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""there are APKs you can find,""" start="00:04:49.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""but some of them might be outdated.""" start="00:04:52.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""To the best of my knowledge, Po Lu has...""" start="00:04:54.680" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Emacs 30 Android Sourceforge...""" start="00:04:59.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""He has set up some system where here in Sourceforge,""" start="00:05:02.400" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""there are regular and updated""" start="00:05:06.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""APK files which you can download""" start="00:05:12.800" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to avoid having to build it yourself,""" start="00:05:14.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""testing out the newest version""" start="00:05:17.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""in case there are some bugs which you'd like to report.""" start="00:05:18.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Which-key is a package which has now been moved""" start="00:05:27.620" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""from ELPA to the core.""" start="00:05:33.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""If you haven't heard of which-key before, the idea is,""" start="00:05:34.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or the general pitch is that which-key""" start="00:05:38.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""is a additional documentation interface for Emacs""" start="00:05:41.400" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""for displaying various keys which you could input,""" start="00:05:45.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or various keys and key maps""" start="00:05:49.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""that have been partially inputted.""" start="00:05:53.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""A better way to demonstrate this""" start="00:05:55.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or to explain this is just to show it.""" start="00:05:57.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""If we enable the which-key mode--it's a global minor mode--""" start="00:05:59.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""then I can press, for example, C-x,""" start="00:06:03.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which is a prefix for the C-x keymap.""" start="00:06:06.400" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Then down here in the buffer, in this window down here,""" start="00:06:08.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""we see various commands which we could invoke""" start="00:06:11.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and the keys to invoke them with.""" start="00:06:15.600" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""For example, if I wanted to say C-x i for insert-file,""" start="00:06:17.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""then I just have to press i to highlight it once again.""" start="00:06:23.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""It should be down here. Pressing i without having to repeat""" start="00:06:27.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""the entire key code again,""" start="00:06:32.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""the partial key code again, just works.""" start="00:06:34.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This is different from the feature which Emacs has already,""" start="00:06:37.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which is if you have input the partial keychord,""" start="00:06:41.680" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""you can press C-h""" start="00:06:45.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and then a help buffer pops up with a listing""" start="00:06:47.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""of all keybindings that start with C-x.""" start="00:06:50.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""The information is the same, the presentation is different,""" start="00:06:54.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""because now if I wanted to do C-x i,""" start="00:06:56.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""I have to repeat the entire keychord again.""" start="00:06:59.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""So it's a matter of personal preference, which you prefer.""" start="00:07:03.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This is more of a traditional static approach""" start="00:07:09.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""because I get a help buffer which I can search""" start="00:07:12.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""using usual key commands,""" start="00:07:19.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""while which-key is more of a transient and modern.""" start="00:07:21.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Some might prefer that approach""" start="00:07:28.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to solving the same problem.""" start="00:07:31.300" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Also, don't forget to check out the customization group""" start="00:07:35.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""for which-key which has a number of options""" start="00:07:39.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which you might or might not be interested in.""" start="00:07:41.960" video="mainVideo-emacs30" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""EditorConfig""" start="00:07:45.720" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Next up, Emacs 30 has built-in EditorConfig support.""" start="00:07:45.720" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""If you have not heard of EditorConfig before,""" start="00:07:50.900" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""I believe I've linked to it down here somewhere.""" start="00:07:53.666" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Ah, there it is, EditorConfig.""" start="00:07:56.640" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This is a file format used to specify""" start="00:08:00.120" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""common formatting rules in an editor-agnostic way.""" start="00:08:09.420" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""You might compare it to .dir-locals.el files,""" start="00:08:12.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which is a sort of an s-expression""" start="00:08:16.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""for setting file-local variables in Emacs.""" start="00:08:19.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Of course, this is restricted to the common subset""" start="00:08:22.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""of what all editors should understand.""" start="00:08:27.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""For example, indentation styles,""" start="00:08:29.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""whether you prefer tabs or spaces,""" start="00:08:31.866" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""tab width, file encoding, and so on.""" start="00:08:35.120" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""So it's nothing too advanced, but it's something...""" start="00:08:38.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""It is a file format which one sees popping up more""" start="00:08:43.920" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and more often in lots of projects""" start="00:08:48.533" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which want to enforce a consistent indentation style""" start="00:08:50.466" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or formatting rules for all editors in a project.""" start="00:08:53.600" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Having this built in is certainly useful in Emacs.""" start="00:08:56.666" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Though one should note that it's not enabled by default.""" start="00:09:00.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""You still have to enable the global minor mode,""" start="00:09:03.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which is simply turning on this one option.""" start="00:09:10.940" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Shouldn't be more than that,""" start="00:09:14.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and then Emacs will respect the rules.""" start="00:09:15.533" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""If it finds a .editorconfig file in the project directory,""" start="00:09:18.666" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""then it will respect those rules""" start="00:09:23.641" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""without having to do anything else.""" start="00:09:25.321" video="mainVideo-emacs30" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""EditorConfig""" start="00:07:44.700" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Next up, Emacs 30 has built-in EditorConfig support.""" start="00:07:44.700" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""If you have not heard of EditorConfig before,""" start="00:07:50.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""I believe I've linked to it down here somewhere.""" start="00:07:53.680" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Ah, there it is, EditorConfig.""" start="00:07:56.380" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This is a file format used to specify""" start="00:08:00.161" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""common formatting rules in an editor-agnostic way.""" start="00:08:05.261" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""You might compare it to .dir-locals.el files,""" start="00:08:11.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which is a sort of an s-expression""" start="00:08:16.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""for setting file-local variables in Emacs.""" start="00:08:19.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Of course, this is restricted to the common subset""" start="00:08:22.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""of what all editors should understand.""" start="00:08:26.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""For example, indentation styles,""" start="00:08:29.300" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""whether you prefer tabs or spaces,""" start="00:08:31.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""tab width, file encoding, and so on.""" start="00:08:36.700" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""So it's nothing too advanced, but it's something...""" start="00:08:38.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""It is a file format which one sees popping up more""" start="00:08:43.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and more often in lots of projects""" start="00:08:48.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which want to enforce a consistent indentation style""" start="00:08:50.440" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or formatting rules for all editors in a project.""" start="00:08:53.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Having this built in is certainly useful in Emacs.""" start="00:08:56.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Though one should note that it's not enabled by default.""" start="00:09:00.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""You still have to enable the global minor mode,""" start="00:09:03.580" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which is simply turning on this one option.""" start="00:09:11.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Shouldn't be more than that,""" start="00:09:14.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and then Emacs will respect the rules.""" start="00:09:15.600" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""If it finds a .editorconfig file in the project directory,""" start="00:09:18.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""then it will respect those rules""" start="00:09:23.000" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""without having to do anything else.""" start="00:09:25.320" video="mainVideo-emacs30" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""use-package integration with package-vc""" start="00:09:27.310" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Next up, use-package integration with package-vc.""" start="00:09:27.310" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""For those not familiar with either of the two,""" start="00:09:33.568" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or at least one of the two,""" start="00:09:36.534" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""use-package is a popular configuration macro.""" start="00:09:37.534" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""What it does is it allows""" start="00:09:40.700" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""users to declaratively specify packages""" start="00:09:42.866" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""they would like to have installed and configured""" start="00:09:46.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""in their configuration file,""" start="00:09:48.900" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""so that, for example, if you copy your init.el""" start="00:09:51.660" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""from one system to another,""" start="00:09:54.433" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""it could bootstrap the entire configuration,""" start="00:09:55.900" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""downloading all the packages you want""" start="00:09:58.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""without having to manually do this""" start="00:10:00.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""on every system you'd like to use.""" start="00:10:02.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This allows configurations""" start="00:10:05.140" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to be self-encapsulated and portable.""" start="00:10:07.633" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""package-vc is an extension of package.el,""" start="00:10:10.860" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which allows installing packages from an alternative.""" start="00:10:15.060" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Instead of using the standard way to install packages,""" start="00:10:19.433" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which is just download tarball and unpack it,""" start="00:10:22.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""byte compile, and so on,""" start="00:10:26.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""it will fetch the files for a package""" start="00:10:27.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""directly from the source code repository""" start="00:10:32.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and initialize it in such a way""" start="00:10:35.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""that package.el can work with it.""" start="00:10:37.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""So it's just a front-end for installing packages.""" start="00:10:38.833" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Even though these two were added to Emacs 29,""" start="00:10:44.240" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""we didn't have the time to work on the""" start="00:10:46.500" video="mainVideo-emacs30" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""use-package integration with package-vc""" start="00:09:30.240" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Next up, use-package integration with package-vc.""" start="00:09:30.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""For those not familiar with either of the two,""" start="00:09:34.600" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or at least one of the two,""" start="00:09:36.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""use-package is a popular configuration macro.""" start="00:09:38.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""What it does is it allows""" start="00:09:41.080" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""users to declaratively specify packages""" start="00:09:43.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""they would like to have installed and configured""" start="00:09:46.275" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""in their configuration file,""" start="00:09:48.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""so that, for example, if you copy your init.el""" start="00:09:51.540" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""from one system to another,""" start="00:09:54.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""it could bootstrap the entire configuration,""" start="00:09:55.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""downloading all the packages you want""" start="00:09:58.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""without having to manually do this""" start="00:10:00.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""on every system you'd like to use.""" start="00:10:02.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This allows configurations""" start="00:10:05.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to be self-encapsulated and portable.""" start="00:10:07.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""package-vc is an extension of package.el,""" start="00:10:11.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which allows installing packages from an alternative.""" start="00:10:15.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Instead of using the standard way to install packages,""" start="00:10:19.680" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which is just download tarball and unpack it,""" start="00:10:22.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""byte compile, and so on,""" start="00:10:26.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""it will fetch the files for a package""" start="00:10:28.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""directly from the source code repository""" start="00:10:32.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and initialize it in such a way""" start="00:10:35.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""that package.el can work with it.""" start="00:10:37.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""So it's just a front-end for installing packages.""" start="00:10:39.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Even though these two were added to Emacs 29,""" start="00:10:44.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""we didn't have the time to work on the""" start="00:10:46.520" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""use-package integration of package-vc into use-package,""" start="00:10:48.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which has been changed now.""" start="00:10:52.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""What we have with Emacs 30 is that""" start="00:10:54.633" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""there is a :vc keyword for use-package""" start="00:11:00.140" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""with which we can instruct use-package""" start="00:11:02.866" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to not download a package using tarball,""" start="00:11:05.233" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""but instead to fetch the source code""" start="00:11:10.240" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""from a source code repository.""" start="00:11:12.466" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which has been changed now.""" start="00:10:52.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""What we have with Emacs 30 is that""" start="00:10:55.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""there is a :vc keyword for use-package""" start="00:11:00.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""with which we can instruct use-package""" start="00:11:02.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to not download a package using tarball,""" start="00:11:05.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""but instead to fetch the source code""" start="00:11:10.774" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""from a source code repository.""" start="00:11:12.520" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""This is useful if you, for example,""" start="00:11:13.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""have packages which you yourself work on""" start="00:11:15.600" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and know that you always want to have""" start="00:11:18.233" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""the development version of the package""" start="00:11:19.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""where you can directly commit changes you've made""" start="00:11:21.900" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to the repository and push them upstream.""" start="00:11:26.820" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Or, if you know that you want to contribute to a package,""" start="00:11:29.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""you can use package-vc to download the source code,""" start="00:11:32.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""have all the version control information,""" start="00:11:35.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""prepare a patch and send it upstream.""" start="00:11:37.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""In these examples here,""" start="00:11:41.740" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""the first example Lisp instructs package-vc""" start="00:11:43.833" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to download the source code from a URL.""" start="00:11:49.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""So this is a git URL where it will download""" start="00:11:52.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""the source code from, and in this case,""" start="00:11:55.433" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""choose the newest checkout of the source code,""" start="00:11:57.433" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""not the latest release. Down here, we have another example.""" start="00:12:00.033" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""I prefer to consider the following example here.""" start="00:12:04.940" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""If we just had written this,""" start="00:12:08.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""then package-vc would use the metadata""" start="00:12:10.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which an ELPA server provides""" start="00:12:13.233" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to fetch the URL from the official repository of,""" start="00:12:15.033" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""in this case, BBDB, without having to...""" start="00:12:20.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""It would be more or less the same like this up here,""" start="00:12:22.866" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""with the simple difference that package-vc integration""" start="00:12:27.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""into use-package doesn't check out the latest commit,""" start="00:12:32.700" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""but the latest release,""" start="00:12:36.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""just to keep configurations more deterministic by default.""" start="00:12:37.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Of course, if you prefer to use latest commit,""" start="00:12:44.980" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""you can use a package-vc install command""" start="00:12:47.600" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or just update the package manually yourself,""" start="00:12:52.180" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which you can use using package-vc-upgrade.""" start="00:12:54.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Next, I'd like to focus on a few features""" start="00:13:01.780" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which one might not necessarily realize directly,""" start="00:13:04.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""but will hopefully improve your experience with Emacs.""" start="00:13:07.033" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""have packages which you yourself work on""" start="00:11:15.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and know that you always want to have""" start="00:11:18.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""the development version of the package""" start="00:11:19.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""where you can directly commit changes you've made""" start="00:11:21.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to the repository and push them upstream.""" start="00:11:26.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Or, if you know that you want to contribute to a package,""" start="00:11:29.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""you can use package-vc to download the source code,""" start="00:11:32.400" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""have all the version control information,""" start="00:11:35.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""prepare a patch and send it upstream.""" start="00:11:37.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""In these examples here,""" start="00:11:41.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""the first example Lisp instructs package-vc""" start="00:11:44.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to download the source code from a URL.""" start="00:11:49.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""So this is a git URL where it will download""" start="00:11:52.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""the source code from, and in this case,""" start="00:11:55.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""choose the newest checkout of the source code,""" start="00:11:57.400" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""not the latest release. Down here, we have another example.""" start="00:12:00.400" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""I prefer to consider the following example here.""" start="00:12:05.060" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""If we just had written this,""" start="00:12:09.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""then package-vc would use the metadata""" start="00:12:10.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which an ELPA server provides""" start="00:12:13.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to fetch the URL from the official repository of,""" start="00:12:16.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""in this case, BBDB, without having to...""" start="00:12:19.800" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""It would be more or less the same like this up here,""" start="00:12:22.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""with the simple difference that package-vc integration""" start="00:12:28.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""into use-package doesn't check out the latest commit,""" start="00:12:32.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""but the latest release,""" start="00:12:36.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""just to keep configurations more deterministic by default.""" start="00:12:38.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Of course, if you prefer to use latest commit,""" start="00:12:44.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""you can use a package-vc install command""" start="00:12:47.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or just update the package manually yourself,""" start="00:12:52.440" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which you can use using package-vc-upgrade.""" start="00:12:54.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Next, I'd like to focus on a few features""" start="00:13:01.740" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which one might not necessarily realize directly,""" start="00:13:04.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""but will hopefully improve your experience with Emacs.""" start="00:13:07.741" video="mainVideo-emacs30" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""JSON""" start="00:13:11.560" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""First up in this list is a new JSON parser.""" start="00:13:11.560" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Let's maybe show the source code for that one:""" start="00:13:15.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""not json.el, json.c. The history of JSON parsing in Emacs""" start="00:13:21.960" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""started with Emacs 23 with the addition of json.el.""" start="00:13:39.566" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This was the file which we had just opened a moment ago.""" start="00:13:43.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This is a JSON parser in Emacs Lisp.""" start="00:13:46.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""It's fine, it does the job, but it can get slow""" start="00:13:50.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""if we have a situation like where""" start="00:13:53.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Eglot uses a LSP server to communicate with""" start="00:13:55.033" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and the LSP server can get a bit chatty,""" start="00:14:00.320" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""sending a lot of JSON data,""" start="00:14:03.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which all has to be parsed and garbage collected,""" start="00:14:05.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which can slow down Emacs a bit.""" start="00:14:08.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""The situation was improved upon in Emacs 29""" start="00:14:09.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""when JSON parsing was added to the core.""" start="00:14:13.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This was the json.c file, which we see on this side,""" start="00:14:18.033" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""the old version of the json.c file,""" start="00:14:21.033" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which employed the Jansson library (it's the C library)""" start="00:14:22.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""for parsing and accelerating JSON parsing in Emacs.""" start="00:14:26.700" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This was good enough,""" start="00:14:31.900" video="mainVideo-emacs30" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""JSON""" start="00:13:11.400" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""First up in this list is a new JSON parser.""" start="00:13:11.400" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Let's maybe show the source code for that one:""" start="00:13:15.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""not json.el, json.c. The history of JSON parsing in Emacs""" start="00:13:21.400" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""started with Emacs 23 with the addition of json.el.""" start="00:13:39.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This was the file which we had just opened a moment ago.""" start="00:13:43.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This is a JSON parser in Emacs Lisp.""" start="00:13:46.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""It's fine, it does the job, but it can get slow""" start="00:13:50.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""if we have a situation like where""" start="00:13:53.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Eglot uses a LSP server to communicate with""" start="00:13:55.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and the LSP server can get a bit chatty,""" start="00:14:00.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""sending a lot of JSON data,""" start="00:14:02.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which all has to be parsed and garbage collected,""" start="00:14:05.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which can slow down Emacs a bit.""" start="00:14:08.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""The situation was improved upon in Emacs 29""" start="00:14:10.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""when JSON parsing was added to the core.""" start="00:14:14.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This was the json.c file, which we see on this side,""" start="00:14:17.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""the old version of the json.c file,""" start="00:14:21.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which employed the Jansson library (it's the C library)""" start="00:14:23.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""for parsing and accelerating JSON parsing in Emacs.""" start="00:14:27.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This was good enough,""" start="00:14:33.160" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""or it certainly improved the situation""" start="00:14:34.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""for a lot of LSP clients.""" start="00:14:36.233" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""But in Emacs 30, the situation has been improved once more""" start="00:14:38.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""with the addition of a JSON parser directly in Emacs.""" start="00:14:44.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""So instead of using an external library,""" start="00:14:49.833" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""there's a custom JSON parser written in C in the Emacs core,""" start="00:14:53.600" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which directly generates Elisp objects.""" start="00:14:57.433" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""The advantage to this approach""" start="00:15:01.540" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""compared to the Jansson approach""" start="00:15:05.066" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""is that there's no intermediate format""" start="00:15:06.466" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which has to be allocated""" start="00:15:07.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and memory managed and freed again,""" start="00:15:09.233" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which of course incurs an additional performance overhead.""" start="00:15:11.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Next to this, there's also a custom serializer""" start="00:15:19.540" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""for JSON contents translating a JSON object into a string.""" start="00:15:22.466" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""... The consequence of this is that""" start="00:15:29.240" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""there is absolutely no dependency on Jansson anymore.""" start="00:15:30.641" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This in turn means that now all Emacs users""" start="00:15:35.520" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""from Emacs 30 onwards""" start="00:15:38.566" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""can take advantage of this new JSON parser""" start="00:15:39.833" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and don't have to worry about whether""" start="00:15:42.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or not they have Jansson, this JSON parsing library,""" start="00:15:44.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""installed on their system or not when they want""" start="00:15:47.666" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to take advantage of this accelerated JSON parsing.""" start="00:15:50.466" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""for a lot of LSP clients.""" start="00:14:36.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""But in Emacs 30, the situation has been improved once more""" start="00:14:38.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""with the addition of a JSON parser directly in Emacs.""" start="00:14:45.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""So instead of using an external library,""" start="00:14:50.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""there's a custom JSON parser written in C in the Emacs core,""" start="00:14:53.000" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which directly generates Elisp objects.""" start="00:14:57.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""The advantage to this approach""" start="00:15:01.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""compared to the Jansson approach""" start="00:15:05.000" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""is that there's no intermediate format""" start="00:15:06.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which has to be allocated""" start="00:15:07.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and memory managed and freed again,""" start="00:15:09.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which of course incurs an additional performance overhead.""" start="00:15:11.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Next to this, there's also a custom serializer""" start="00:15:19.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""for JSON contents translating a JSON object into a string.""" start="00:15:22.660" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""... The consequence of this is that""" start="00:15:27.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""there is absolutely no dependency on Jansson anymore.""" start="00:15:30.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This in turn means that now all Emacs users""" start="00:15:35.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""from Emacs 30 onwards""" start="00:15:38.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""can take advantage of this new JSON parser""" start="00:15:39.800" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and don't have to worry about whether""" start="00:15:43.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or not they have Jansson, this JSON parsing library,""" start="00:15:44.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""installed on their system or not when they want""" start="00:15:47.800" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to take advantage of this accelerated JSON parsing.""" start="00:15:51.000" video="mainVideo-emacs30" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Native compilation""" start="00:15:56.680" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Next up, another behind-the-scenes feature""" start="00:15:56.680" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""is that if you build Emacs on your own from source,""" start="00:16:00.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""you might know that if you wanted""" start="00:16:06.407" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to use native compilation,""" start="00:16:07.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""so the translation of Elisp bytecodes""" start="00:16:09.566" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to whatever the native assembly""" start="00:16:12.380" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or native instruction set is on your system,""" start="00:16:15.566" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""you have to specify with native compilation.""" start="00:16:19.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""when invoking the configure script,""" start="00:16:24.340" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""otherwise it would not have been enabled at all.""" start="00:16:25.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""With Emacs 30, this step is not necessary anymore.""" start="00:16:28.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""The configure script will automatically check""" start="00:16:32.480" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""if you have the libgccjit library installed on your system,""" start="00:16:36.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and if that is so,""" start="00:16:41.700" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""then native compilation will be enabled by default.""" start="00:16:42.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""In other words, if you have an issue with native compilation""" start="00:16:45.600" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or prefer not to use it for whatever reason,""" start="00:16:49.433" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""you now have to type --without-native-compilation""" start="00:16:52.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""when compiling Emacs to prevent this from happening.""" start="00:16:55.566" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""But native compilation was added in Emacs 28""" start="00:16:58.466" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and has proven to be a very stable""" start="00:17:02.466" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and useful feature for most people,""" start="00:17:04.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""so there's probably no reason to do this""" start="00:17:06.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and you can just invoke the configure script""" start="00:17:09.433" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""with one argument less. Right, and I'd like to finish up""" start="00:17:11.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""with a few smaller features, a few smaller highlights.""" start="00:17:16.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Maybe we can go back to the listing here. Here we have it.""" start="00:17:19.500" video="mainVideo-emacs30" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Native compilation""" start="00:15:56.840" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Next up, another behind-the-scenes feature""" start="00:15:56.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""is that if you build Emacs on your own from source,""" start="00:16:00.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""you might know that if you wanted""" start="00:16:04.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to use native compilation,""" start="00:16:07.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""so the translation of Elisp bytecodes""" start="00:16:09.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to whatever the native assembly""" start="00:16:12.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or native instruction set is on your system,""" start="00:16:15.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""you have to specify with native compilation.""" start="00:16:19.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""when invoking the configure script,""" start="00:16:24.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""otherwise it would not have been enabled at all.""" start="00:16:25.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""With Emacs 30, this step is not necessary anymore.""" start="00:16:28.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""The configure script will automatically check""" start="00:16:34.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""if you have the libgccjit library installed on your system,""" start="00:16:36.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and if that is so,""" start="00:16:41.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""then native compilation will be enabled by default.""" start="00:16:42.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""In other words, if you have an issue with native compilation""" start="00:16:46.000" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or prefer not to use it for whatever reason,""" start="00:16:49.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""you now have to type --without-native-compilation""" start="00:16:52.800" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""when compiling Emacs to prevent this from happening.""" start="00:16:55.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""But native compilation was added in Emacs 28""" start="00:16:58.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and has proven to be a very stable""" start="00:17:02.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and useful feature for most people,""" start="00:17:04.400" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""so there's probably no reason to do this""" start="00:17:06.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and you can just invoke the configure script""" start="00:17:10.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""with one argument less. Right, and I'd like to finish up""" start="00:17:10.940" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""with a few smaller features, a few smaller highlights.""" start="00:17:16.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Maybe we can go back to the listing here. Here we have it.""" start="00:17:19.400" video="mainVideo-emacs30" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Tree-sitter""" start="00:17:29.640" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""There are a few new major modes""" start="00:17:29.640" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""based on the tree-sitter library.""" start="00:17:32.866" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""tree-sitter is this parser library""" start="00:17:34.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which has been integrated into Emacs 29.""" start="00:17:37.940" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""It allows the integration""" start="00:17:39.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""of external, specialized, and quick parsers into Emacs,""" start="00:17:44.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which improve stuff like syntax highlighting, indentation,""" start="00:17:48.433" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""structural navigation, imenu support,""" start="00:17:52.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""by simply having a better understanding of, for example,""" start="00:17:55.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""a HTML file, or a Lua file, a PHP file,""" start="00:18:01.066" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""than what people usually implement""" start="00:18:03.900" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""using regular expressions in traditional major modes.""" start="00:18:06.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""So, a few new major modes which you can try out here.""" start="00:18:10.400" video="mainVideo-emacs30" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Tree-sitter""" start="00:17:30.720" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""There are a few new major modes""" start="00:17:30.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""based on the tree-sitter library.""" start="00:17:32.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""tree-sitter is this parser library""" start="00:17:34.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which has been integrated into Emacs 29.""" start="00:17:37.740" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""It allows the integration""" start="00:17:42.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""of external, specialized, and quick parsers into Emacs,""" start="00:17:44.080" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which improve stuff like syntax highlighting, indentation,""" start="00:17:48.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""structural navigation, imenu support,""" start="00:17:52.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""by simply having a better understanding of, for example,""" start="00:17:55.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""a HTML file, or a Lua file, a PHP file,""" start="00:18:00.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""than what people usually implement""" start="00:18:03.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""using regular expressions in traditional major modes.""" start="00:18:06.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""So, a few new major modes which you can try out here.""" start="00:18:10.320" video="mainVideo-emacs30" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Completion preview mode""" start="00:18:16.780" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Another interesting feature is the completion-preview-mode.""" start="00:18:16.780" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""We can maybe try it out here in the scratch buffer.""" start="00:18:20.066" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""If I enable completion-preview-mode...""" start="00:18:23.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This is a non-global minor mode,""" start="00:18:28.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which will display completion options inline using overlays.""" start="00:18:32.066" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""For example, if I start typing a longer symbol like define,""" start="00:18:38.633" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""now we have a derived mode. It suggests me to...""" start="00:18:43.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""I can just press TAB and then it completes the option here,""" start="00:18:48.233" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""but it didn't actually...""" start="00:18:51.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""It's not actually modifying the buffer, it's not pressing,""" start="00:18:51.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""these are just overlays,""" start="00:18:55.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""so if I move around, it gets deleted.""" start="00:18:57.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""It wouldn't get saved if I were to save the buffer.""" start="00:18:59.566" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""The same also should work in a shell buffer.""" start="00:19:02.620" video="mainVideo-emacs30" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Completion preview mode""" start="00:18:16.820" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Another interesting feature is the completion-preview-mode.""" start="00:18:16.820" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""We can maybe try it out here in the scratch buffer.""" start="00:18:19.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""If I enable completion-preview-mode...""" start="00:18:23.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This is a non-global minor mode,""" start="00:18:28.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which will display completion options inline using overlays.""" start="00:18:32.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""For example, if I start typing a longer symbol like define,""" start="00:18:38.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""now we have a derived mode. It suggests me to...""" start="00:18:43.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""I can just press TAB and then it completes the option here,""" start="00:18:48.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""but it didn't actually...""" start="00:18:51.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""It's not actually modifying the buffer, it's not pressing,""" start="00:18:51.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""these are just overlays,""" start="00:18:55.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""so if I move around, it gets deleted.""" start="00:18:57.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""It wouldn't get saved if I were to save the buffer.""" start="00:18:59.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""The same also should work in a shell buffer.""" start="00:19:02.540" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""If I enable completion preview mode here and start...""" start="00:19:05.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""In this case, I'm using the bash completion package,""" start="00:19:08.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which provides additional completion information.""" start="00:19:12.833" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This is not only limited to programming systems,""" start="00:19:15.033" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""but anywhere where you have completion at point in Emacs.""" start="00:19:17.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""I can start typing here, ignore, and put ignore-backups,""" start="00:19:22.900" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and it hints to the options which I have""" start="00:19:26.160" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and allows me to complete them quickly.""" start="00:19:30.033" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""In this case, I'm using the bash completion package,""" start="00:19:09.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which provides additional completion information.""" start="00:19:12.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This is not only limited to programming systems,""" start="00:19:15.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""but anywhere where you have completion at point in Emacs.""" start="00:19:17.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""I can start typing here, ignore, and put ignore-backups,""" start="00:19:22.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and it hints to the options which I have""" start="00:19:26.060" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and allows me to complete them quickly.""" start="00:19:29.920" video="mainVideo-emacs30" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""package-isolate""" start="00:19:34.233" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Another small feature is the package-isolate command.""" start="00:19:34.233" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""What this does is it will start""" start="00:19:38.000" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or it will prompt me for packages""" start="00:19:40.033" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""I have installed in my system""" start="00:19:42.833" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and will start an isolated""" start="00:19:44.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or like "emacs -Q"-ish instance of emacs""" start="00:19:46.500" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""with only these packages installed.""" start="00:19:51.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""So for example, if I said I want slime and I want diff-hl,""" start="00:19:53.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""then this is a new Emacs window.""" start="00:20:00.440" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""It's unrelated to the one around.""" start="00:20:02.700" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""It uses the same executable, of course,""" start="00:20:04.566" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""but will not load your configuration file""" start="00:20:06.500" video="mainVideo-emacs30" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""package-isolate""" start="00:19:34.220" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Another small feature is the package-isolate command.""" start="00:19:34.220" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""What this does is it will start""" start="00:19:37.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or it will prompt me for packages""" start="00:19:39.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""I have installed in my system""" start="00:19:42.760" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and will start an isolated""" start="00:19:44.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or like "emacs -Q"-ish instance of emacs""" start="00:19:46.440" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""with only these packages installed.""" start="00:19:51.080" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""So for example, if I said I want slime and I want diff-hl,""" start="00:19:53.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""then this is a new Emacs window.""" start="00:20:00.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""It's unrelated to the one around.""" start="00:20:02.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""It uses the same executable, of course,""" start="00:20:04.440" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""but will not load your configuration file""" start="00:20:06.840" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""or any other further customizations on your system.""" start="00:20:09.940" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""All it does, it will ensure""" start="00:20:13.680" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""that these packages, which are listed here,""" start="00:20:15.566" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""so in our case SLIME and dependencies of SLIME and diff-hl,""" start="00:20:17.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""in the system""" start="00:20:24.600" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""so that I could, for example, as you can see here,""" start="00:20:25.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""diff-hl-mode works.""" start="00:20:29.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Okay, this is not a version-controlled file.""" start="00:20:32.140" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Maybe if we take a look at, have I enabled diff-hl-mode?""" start="00:20:34.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""It's enabled in this case. What diff-hl-mode does""" start="00:20:41.233" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""is it displays these version control changes""" start="00:20:44.633" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""in the fringe of a buffer.""" start="00:20:48.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""And even though this is a uncustomized version of Emacs,""" start="00:20:49.600" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or an uncustomized instance of Emacs,""" start="00:20:54.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""it was easy for me to load this one package,""" start="00:20:56.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""or these two packages and all the dependencies necessary.""" start="00:20:59.033" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""As you can imagine, the main purpose for this""" start="00:21:02.066" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""is to make debugging issues easier.""" start="00:21:05.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""If you want to report about an issue""" start="00:21:07.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""you have with a package. And if I close this, it's closed""" start="00:21:10.600" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and everything's thrown away.""" start="00:21:14.900" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""All it does, it will ensure""" start="00:20:13.620" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""that these packages, which are listed here,""" start="00:20:15.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""so in our case SLIME and dependencies of SLIME and diff-hl,""" start="00:20:17.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""in the system""" start="00:20:24.500" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""so that I could, for example, as you can see here,""" start="00:20:25.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""diff-hl-mode works.""" start="00:20:29.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Okay, this is not a version-controlled file.""" start="00:20:31.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Maybe if we take a look at, have I enabled diff-hl-mode?""" start="00:20:35.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""It's enabled in this case. What diff-hl-mode does""" start="00:20:41.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""is it displays these version control changes""" start="00:20:44.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""in the fringe of a buffer.""" start="00:20:48.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""And even though this is a uncustomized version of Emacs,""" start="00:20:50.000" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or an uncustomized instance of Emacs,""" start="00:20:54.080" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""it was easy for me to load this one package,""" start="00:20:56.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""or these two packages and all the dependencies necessary.""" start="00:20:58.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""As you can imagine, the main purpose for this""" start="00:21:01.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""is to make debugging issues easier.""" start="00:21:05.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""If you want to report about an issue""" start="00:21:07.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""you have with a package. And if I close this, it's closed""" start="00:21:10.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and everything's thrown away.""" start="00:21:14.520" video="mainVideo-emacs30" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Reindenting""" start="00:21:16.920" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Last up, a nice feature I think""" start="00:21:16.920" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""a lot of people will appreciate is,""" start="00:21:19.033" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""if you are familiar with... Let's open a text buffer.""" start="00:21:20.966" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""The M-q key is traditionally bound to fill-paragraph.""" start="00:21:24.300" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""What this means is that...""" start="00:21:30.280" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Let's, for example, copy this text from here""" start="00:21:32.233" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and squash it all into one line. If I press M-q here,""" start="00:21:35.033" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""then the lines will be broken""" start="00:21:40.400" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""according to the fill column indicator up here.""" start="00:21:42.720" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""This is the traditional usage of M-q,""" start="00:21:49.880" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and it still works in text-mode buffers,""" start="00:21:52.633" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""but in prog-mode buffers--""" start="00:21:54.233" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""so any major mode inheriting prog-mode--""" start="00:21:55.860" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""M-q will now by default be bound""" start="00:22:00.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to prog-fill-reindent-defun. To summarize the point,""" start="00:22:02.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""if you are editing a string or a comment,""" start="00:22:09.780" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""then the comment will be filled.""" start="00:22:13.466" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""But if you are outside of a comment or outside of a string,""" start="00:22:16.040" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""then the defun or the top-level construct""" start="00:22:19.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""in the programming language will be re-indented.""" start="00:22:23.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Let's try that out with maybe some file I have open here.""" start="00:22:26.160" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""If I'm in this... Let's choose some function,""" start="00:22:34.100" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""let's take this for example.""" start="00:22:38.833" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""If we followed all of this again,""" start="00:22:40.766" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and I press M-q in on this paragraph,""" start="00:22:43.960" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""then the paragraph gets re-indented.""" start="00:22:47.433" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""But if I'm down here and I choose to break the indentation""" start="00:22:49.466" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and then press M-q,""" start="00:22:55.833" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""then as you see, it practically selected the defun""" start="00:22:58.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and re-indented everything""" start="00:23:02.366" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""without having me to move the point around in the buffer.""" start="00:23:03.600" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""So I think that's a really nice feature,""" start="00:23:06.960" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which a lot of people can appreciate.""" start="00:23:08.666" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""It's one of those niceties which comes from time to time.""" start="00:23:11.100" video="mainVideo-emacs30" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Reindenting""" start="00:21:16.780" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Last up, a nice feature I think""" start="00:21:16.780" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""a lot of people will appreciate is,""" start="00:21:18.960" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""if you are familiar with... Let's open a text buffer.""" start="00:21:21.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""The M-q key is traditionally bound to fill-paragraph.""" start="00:21:24.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""What this means is that...""" start="00:21:30.080" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Let's, for example, copy this text from here""" start="00:21:32.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and squash it all into one line. If I press M-q here,""" start="00:21:35.000" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""then the lines will be broken""" start="00:21:40.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""according to the fill column indicator up here.""" start="00:21:42.400" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""This is the traditional usage of M-q,""" start="00:21:49.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and it still works in text-mode buffers,""" start="00:21:52.400" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""but in prog-mode buffers--""" start="00:21:54.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""so any major mode inheriting prog-mode--""" start="00:21:56.640" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""M-q will now by default be bound""" start="00:22:00.080" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to prog-fill-reindent-defun. To summarize the point,""" start="00:22:02.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""if you are editing a string or a comment,""" start="00:22:09.720" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""then the comment will be filled.""" start="00:22:13.480" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""But if you are outside of a comment or outside of a string,""" start="00:22:15.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""then the defun or the top-level construct""" start="00:22:19.160" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""in the programming language will be re-indented.""" start="00:22:22.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Let's try that out with maybe some file I have open here.""" start="00:22:26.120" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""If I'm in this... Let's choose some function,""" start="00:22:33.860" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""let's take this for example.""" start="00:22:38.820" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""If we followed all of this again,""" start="00:22:41.280" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and I press M-q in on this paragraph,""" start="00:22:43.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""then the paragraph gets re-indented.""" start="00:22:47.620" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""But if I'm down here and I choose to break the indentation""" start="00:22:50.040" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and then press M-q,""" start="00:22:54.860" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""then as you see, it practically selected the defun""" start="00:22:56.181" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and re-indented everything""" start="00:23:02.400" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""without having need to move the point around in the buffer.""" start="00:23:03.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""So I think that's a really nice feature,""" start="00:23:06.800" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which a lot of people can appreciate.""" start="00:23:08.680" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""It's one of those niceties which comes from time to time.""" start="00:23:11.040" video="mainVideo-emacs30" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Wrapping up""" start="00:23:17.940" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Right, so that was my overview""" start="00:23:17.940" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""of what's going to be new in Emacs 30.""" start="00:23:20.666" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""I hope that most people could take away""" start="00:23:22.633" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""something from this presentation""" start="00:23:24.433" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and have something to look forward""" start="00:23:25.580" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""to try out after upgrading.""" start="00:23:28.900" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""As mentioned initially, as of recording,""" start="00:23:31.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""this release has not been completed yet.""" start="00:23:33.866" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""If this is still not the case""" start="00:23:36.600" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""when you're seeing this video,""" start="00:23:38.866" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""please consider downloading and building Emacs 30 yourself.""" start="00:23:40.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""If you have any issues, which is always the case,""" start="00:23:43.866" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""please report them to using report-emacs-bug.""" start="00:23:48.233" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""That will pop up a mail buffer,""" start="00:23:56.440" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and then you can describe your issue and send them out.""" start="00:23:57.908" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""All bug reports are valuable,""" start="00:23:59.633" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""even if they are false positives or duplicates--""" start="00:24:01.833" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""it doesn't matter--""" start="00:24:04.466" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""because when you take the time to submit a bug report,""" start="00:24:05.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which describes something that's specific to your setup,""" start="00:24:08.566" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which the developers might not have noticed or known about,""" start="00:24:12.266" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""then you are certainly helping out a lot of other people""" start="00:24:16.700" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which might run into the same issue in the future.""" start="00:24:19.166" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""Especially with upgrades,""" start="00:24:21.800" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""it would be nice to figure out small problems""" start="00:24:23.233" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""which make upgrading difficult for some people.""" start="00:24:26.600" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""The ideal is, of course, to have no issues""" start="00:24:30.833" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""when upgrading from one version to another.""" start="00:24:34.700" video="mainVideo-emacs30" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Wrapping up""" start="00:23:17.880" video="mainVideo-emacs30" id="subtitle"]]</div>[[!template text="""Right, so that was my overview""" start="00:23:17.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""of what's going to be new in Emacs 30.""" start="00:23:20.680" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""I hope that most people could take away""" start="00:23:22.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""something from this presentation""" start="00:23:24.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and have something to look forward""" start="00:23:25.660" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""to try out after upgrading.""" start="00:23:29.420" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""As mentioned initially, as of recording,""" start="00:23:31.600" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""this release has not been completed yet.""" start="00:23:33.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""If this is still not the case""" start="00:23:36.940" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""when you're seeing this video,""" start="00:23:38.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""please consider downloading and building Emacs 30 yourself.""" start="00:23:40.200" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""If you have any issues, which is always the case,""" start="00:23:43.800" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""please report them to using report-emacs-bug.""" start="00:23:48.320" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""That will pop up a mail buffer,""" start="00:23:56.340" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and then you can describe your issue and send them out.""" start="00:23:57.741" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""All bug reports are valuable,""" start="00:23:59.520" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""even if they are false positives or duplicates--""" start="00:24:01.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""it doesn't matter--""" start="00:24:04.000" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""because when you take the time to submit a bug report,""" start="00:24:05.240" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which describes something that's specific to your setup,""" start="00:24:08.920" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which the developers might not have noticed or known about,""" start="00:24:12.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""then you are certainly helping out a lot of other people""" start="00:24:16.840" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which might run into the same issue in the future.""" start="00:24:19.080" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""Especially with upgrades,""" start="00:24:21.680" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""it would be nice to figure out small problems""" start="00:24:23.360" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""which make upgrading difficult for some people.""" start="00:24:26.560" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""The ideal is, of course, to have no issues""" start="00:24:30.880" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""when upgrading from one version to another.""" start="00:24:34.560" video="mainVideo-emacs30" id="subtitle"]] [[!template text="""Having said that, I thank you for your attention,""" start="00:24:37.200" video="mainVideo-emacs30" id="subtitle"]] -[[!template text="""and I'm saying goodbye.""" start="00:24:39.600" video="mainVideo-emacs30" id="subtitle"]] +[[!template text="""and I'm saying goodbye.""" start="00:24:41.940" video="mainVideo-emacs30" id="subtitle"]] </div> diff --git a/2024/info/emacs30-before.md b/2024/info/emacs30-before.md index 144472e0..fbefd7b3 100644 --- a/2024/info/emacs30-before.md +++ b/2024/info/emacs30-before.md @@ -11,18 +11,18 @@ Status: TO_CAPTION_QA <div class="vid mainVideo"><video controls preload="none" id="mainVideo-emacs30"><source src="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2024/captions/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-emacs30" data=""" 00:00.000 Introduction -01:41.800 Android -07:45.720 EditorConfig -09:27.310 use-package integration with package-vc -13:11.560 JSON -15:56.680 Native compilation -17:29.640 Tree-sitter -18:16.780 Completion preview mode -19:34.233 package-isolate -21:16.920 Reindenting -23:17.940 Wrapping up - -"""]]<div></div>Duration: 24:55 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--edited.webm">Download --edited.webm (52MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.webm">Download --main.webm (60MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--notes.org">Download --notes.org</a></li><li><a href="https://toobnix.org/w/fxFD5JMMkmj1bazUw4zErx">View on Toobnix</a></li></ul></div></div> +01:41.760 Android +07:44.700 EditorConfig +09:30.240 use-package integration with package-vc +13:11.400 JSON +15:56.840 Native compilation +17:30.720 Tree-sitter +18:16.820 Completion preview mode +19:34.220 package-isolate +21:16.780 Reindenting +23:17.880 Wrapping up + +"""]]<div></div>Duration: 24:55 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--edited.webm">Download --edited.webm (52MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.opus">Download --main.opus (15MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--main.webm">Download --main.webm (53MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--notes.org">Download --notes.org</a></li><li><a href="https://toobnix.org/w/bPze1S1o61QaYXTJuEQFHK">View on Toobnix</a></li><li><a href="https://youtu.be/V1mnDK_tuAs">View on Youtube</a></li></ul></div></div> # Q&A @@ -35,6 +35,6 @@ Status: TO_CAPTION_QA 09:08.648 Q: I am worried about the situation on non-free systems. There was talk about the Windows and the macOS versions being as good as unmaintained. Where do we go from here? 11:35.280 Q: Is there a best practice on what Org to use when following emacs-latest? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-emacs30-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.opus"></audio></div><div></div>Duration: 23:36 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.opus">Download --answers.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.webm">Download --answers.webm (39MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-emacs30-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.opus"></audio></div><div></div>Duration: 23:36 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.opus">Download --answers.opus (10MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-emacs30--emacs-30-highlights--philip-kaludercic--answers.webm">Download --answers.webm (39MB)</a></li><li><a href="https://www.youtube.com/watch?v=xFPpk_lE9Ss">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/guile-before.md b/2024/info/guile-before.md index efee2dfb..d3d7099f 100644 --- a/2024/info/guile-before.md +++ b/2024/info/guile-before.md @@ -9,7 +9,7 @@ Status: TO_CAPTION_QA # Talk -<div class="vid mainVideo"><video controls preload="none" id="mainVideo-guile"><source src="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 15:57 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt.vtt">Download --main.vtt.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.webm">Download --main.webm (61MB)</a></li><li><a href="https://toobnix.org/w/iizGyFwoAetXBw3Uy67vwj">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-guile"><source src="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 15:57 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.vtt.vtt">Download --main.vtt.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--main.webm">Download --main.webm (61MB)</a></li><li><a href="https://toobnix.org/w/iizGyFwoAetXBw3Uy67vwj">View on Toobnix</a></li><li><a href="https://youtu.be/yjC162DnsKI">View on Youtube</a></li></ul></div></div> # Q&A @@ -22,6 +22,6 @@ Status: TO_CAPTION_QA 12:30.000 Q: Do you think guile-emacs will be able to use or (collaborate with) some of the other awesome projects around Emacs Lisp? 15:04.200 Q: SBCL, ...You mentioned Robert Strandh's SICL along with SBCL---does that work help with the implementation of CL in Guile? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-guile-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.opus">Download --answers.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.webm">Download --answers.webm (48MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-guile-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.opus">Download --answers.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-guile--beguiling-emacs-guileemacs-relaunched--robin-templeton--answers.webm">Download --answers.webm (48MB)</a></li><li><a href="https://toobnix.org/w/9o8V4CJ29rK3Fk4CznSPQ4">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=c2RAWGTF0V0">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/gypsum-after.md b/2024/info/gypsum-after.md index 68f4baf9..2cb0cbd8 100644 --- a/2024/info/gypsum-after.md +++ b/2024/info/gypsum-after.md @@ -379,250 +379,250 @@ Captioner: ramin <div class="transcript transcript-qanda"><a name="gypsum-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> -[[!template text="""Troy Hinckley's project that I'm talking about. I was going""" start="00:00:00.069" video="qanda-gypsum" id="subtitle"]] -[[!template text="""to mention this in my presentation, but it's possible,""" start="00:00:02.350" video="qanda-gypsum" id="subtitle"]] -[[!template text="""theoretically, that Troy Hinckley, his project could be""" start="00:00:02.350" video="qanda-gypsum" id="subtitle"]] -[[!template text="""used as a scheme of limitation that actually runs my own""" start="00:00:02.350" video="qanda-gypsum" id="subtitle"]] -[[!template text="""version of Emacs. And although, you know, This is""" start="00:00:02.350" video="qanda-gypsum" id="subtitle"]] -[[!template text="""completely theoretical, and I don't know how difficult""" start="00:00:25.478" video="qanda-gypsum" id="subtitle"]] -[[!template text="""that would be. But if Troy Hinckley implemented enough of""" start="00:00:25.478" video="qanda-gypsum" id="subtitle"]] -[[!template text="""the R7-RS standard in Rust, it would theoretically be""" start="00:00:30.781" video="qanda-gypsum" id="subtitle"]] -[[!template text="""possible to run the Gypsum editor in Troy Hinckley's own""" start="00:00:30.781" video="qanda-gypsum" id="subtitle"]] -[[!template text="""editor. I thought that was kind of interesting, and I""" start="00:00:30.781" video="qanda-gypsum" id="subtitle"]] -[[!template text="""thought it was worth mentioning, at least in the questions""" start="00:00:48.270" video="qanda-gypsum" id="subtitle"]] -[[!template text="""and answers.""" start="00:00:48.270" video="qanda-gypsum" id="subtitle"]] -[[!template text="""I also mentioned this in the presentation. I wanted to see""" start="00:01:12.179" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Robin Templeton's project presentation, but""" start="00:01:14.940" video="qanda-gypsum" id="subtitle"]] -[[!template text="""unfortunately it's going to be at like four in the morning""" start="00:01:14.940" video="qanda-gypsum" id="subtitle"]] -[[!template text="""for me. So I'm going to try and watch that tomorrow, but""" start="00:01:14.940" video="qanda-gypsum" id="subtitle"]] -[[!template text="""that's also going to be a very interesting project to keep an""" start="00:01:22.984" video="qanda-gypsum" id="subtitle"]] -[[!template text="""eye on if you're interested in Scheme. That's the project""" start="00:01:22.984" video="qanda-gypsum" id="subtitle"]] -[[!template text="""where you've got the Guylain interpreter running inside of""" start="00:01:33.149" video="qanda-gypsum" id="subtitle"]] -[[!template text="""the Emacs process. It's dynamically linked as a library.""" start="00:01:33.149" video="qanda-gypsum" id="subtitle"]] -[[!template text="""I'm ready for questions from anybody. You can ask or you can""" start="00:02:04.699" video="qanda-gypsum" id="subtitle"]] -[[!template text="""type. It's up to you.""" start="00:02:07.431" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Okay, let me check the etherpad.""" start="00:02:32.319" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Let's see here.""" start="00:02:37.304" video="qanda-gypsum" id="subtitle"]] -[[!template text="""I'm not sure if I'm doing that right.""" start="00:02:41.208" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Let me check one more time. Oh, there it goes.""" start="00:02:46.373" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Let's see, so this is...""" start="00:02:54.221" video="qanda-gypsum" id="subtitle"]] -[[!template text="""I didn't know about that first bit of history. Oh, I've heard""" start="00:03:00.151" video="qanda-gypsum" id="subtitle"]] -[[!template text="""RMS say that Scheme Guile is just a nicer Lisp, but I didn't""" start="00:03:02.332" video="qanda-gypsum" id="subtitle"]] -[[!template text="""know there were concrete talks attempts to use Guile for""" start="00:03:02.332" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Emacs that early. Let's see, that was from janneke.""" start="00:03:02.332" video="qanda-gypsum" id="subtitle"]] +[[!template text="""...Troy Hinckley's project that I'm talking about. I was going""" start="00:00:00.000" video="qanda-gypsum" id="subtitle"]] +[[!template text="""to mention this in my presentation, but it's possible,""" start="00:00:03.000" video="qanda-gypsum" id="subtitle"]] +[[!template text="""theoretically, that Troy Hinckley, his project could be""" start="00:00:08.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""used as a scheme of limitation that actually runs my own""" start="00:00:16.360" video="qanda-gypsum" id="subtitle"]] +[[!template text="""version of Emacs. And although, you know, This is""" start="00:00:18.560" video="qanda-gypsum" id="subtitle"]] +[[!template text="""completely theoretical, and I don't know how difficult""" start="00:00:23.760" video="qanda-gypsum" id="subtitle"]] +[[!template text="""that would be. But if Troy Hinckley implemented enough of""" start="00:00:30.720" video="qanda-gypsum" id="subtitle"]] +[[!template text="""the R7-RS standard in Rust, it would theoretically be""" start="00:00:34.080" video="qanda-gypsum" id="subtitle"]] +[[!template text="""possible to run the Gypsum editor in Troy Hinckley's own""" start="00:00:39.880" video="qanda-gypsum" id="subtitle"]] +[[!template text="""editor. I thought that was kind of interesting, and I""" start="00:00:46.720" video="qanda-gypsum" id="subtitle"]] +[[!template text="""thought it was worth mentioning, at least in the questions""" start="00:00:50.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""and answers.""" start="00:00:59.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""I also mentioned this in the presentation. I wanted to see""" start="00:01:12.160" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Robin Templeton's project presentation, but""" start="00:01:16.200" video="qanda-gypsum" id="subtitle"]] +[[!template text="""unfortunately it's going to be at like four in the morning""" start="00:01:20.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""for me. So I'm going to try and watch that tomorrow, but""" start="00:01:22.400" video="qanda-gypsum" id="subtitle"]] +[[!template text="""that's also going to be a very interesting project to keep an""" start="00:01:26.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""eye on if you're interested in Scheme. That's the project""" start="00:01:29.560" video="qanda-gypsum" id="subtitle"]] +[[!template text="""where you've got the Guylain interpreter running inside of""" start="00:01:34.040" video="qanda-gypsum" id="subtitle"]] +[[!template text="""the Emacs process. It's dynamically linked as a library.""" start="00:01:37.520" video="qanda-gypsum" id="subtitle"]] +[[!template text="""I'm ready for questions from anybody. You can ask or you can""" start="00:02:04.680" video="qanda-gypsum" id="subtitle"]] +[[!template text="""type. It's up to you.""" start="00:02:08.760" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Okay, let me check the etherpad.""" start="00:02:32.080" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Let's see here.""" start="00:02:37.320" video="qanda-gypsum" id="subtitle"]] +[[!template text="""I'm not sure if I'm doing that right.""" start="00:02:41.160" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Let me check one more time. Oh, there it goes.""" start="00:02:42.720" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Let's see, so this is...""" start="00:02:54.200" video="qanda-gypsum" id="subtitle"]] +[[!template text="""I didn't know about that first bit of history. Oh, I've heard""" start="00:03:00.080" video="qanda-gypsum" id="subtitle"]] +[[!template text="""RMS say that Scheme Guile is just a nicer Lisp, but I didn't""" start="00:03:02.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""know there were concrete talks attempts to use Guile for""" start="00:03:06.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Emacs that early. Let's see, that was from janneke.""" start="00:03:09.080" video="qanda-gypsum" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: I'm curious to know how the hell guile-emacs deals with all of the dynamically scoped modules out there. Is there any effort to automatically modularize and namespace stuff?""" start="00:03:09.370" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""I'm curious to know how the hell Guile Emacs deals with all the""" start="00:03:09.370" video="qanda-gypsum" id="subtitle"]] -[[!template text="""dynamically scoped modules out there. Is there any effort""" start="00:03:14.318" video="qanda-gypsum" id="subtitle"]] -[[!template text="""to automatically modularize and name? Let's see.""" start="00:03:20.181" video="qanda-gypsum" id="subtitle"]] -[[!template text="""That might be a better question for Robin Templeton. In my""" start="00:03:30.523" video="qanda-gypsum" id="subtitle"]] -[[!template text="""own project,""" start="00:03:36.727" video="qanda-gypsum" id="subtitle"]] -[[!template text="""there's no module system for Emacs Lisp. There is a module""" start="00:03:36.727" video="qanda-gypsum" id="subtitle"]] -[[!template text="""system for Scheme. And the Emacs Lisp interpreter runs in""" start="00:03:46.693" video="qanda-gypsum" id="subtitle"]] -[[!template text="""its own environment. the require system or whatever module""" start="00:03:49.695" video="qanda-gypsum" id="subtitle"]] -[[!template text="""system that Emacs has, once it's implemented, all of that""" start="00:03:57.068" video="qanda-gypsum" id="subtitle"]] -[[!template text="""would just happen inside of the Emacs Lisp environment,""" start="00:03:57.068" video="qanda-gypsum" id="subtitle"]] -[[!template text="""which is inside of the Scheme environment. And""" start="00:03:57.068" video="qanda-gypsum" id="subtitle"]] -[[!template text="""environments are objects in Scheme.""" start="00:04:12.437" video="qanda-gypsum" id="subtitle"]] -[[!template text="""I think a more difficult question is how to handle""" start="00:04:21.522" video="qanda-gypsum" id="subtitle"]] -[[!template text="""threading, and Scheme has very good threading built in, in""" start="00:04:26.420" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Serphe-18[??].""" start="00:04:26.420" video="qanda-gypsum" id="subtitle"]] -[[!template text="""But I don't think it will be easy to write Emacs Lisp form""" start="00:04:34.283" video="qanda-gypsum" id="subtitle"]] -[[!template text="""bindings to the Scheme multi-threading implementation.""" start="00:04:34.283" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Emacs Lisp was just not cut out for that kind of thing. So I""" start="00:04:48.548" video="qanda-gypsum" id="subtitle"]] -[[!template text="""think each Emacs Lisp, you could, I suppose, have multiple""" start="00:04:51.710" video="qanda-gypsum" id="subtitle"]] -[[!template text="""threads each running their own Emacs Lisp environment.""" start="00:04:51.710" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Scheme would make that very simple to do.""" start="00:05:01.375" video="qanda-gypsum" id="subtitle"]] -[[!template text="""And then there'd just be a question of how you would get those""" start="00:05:06.018" video="qanda-gypsum" id="subtitle"]] -[[!template text="""different interpreters to communicate with each other,""" start="00:05:06.018" video="qanda-gypsum" id="subtitle"]] -[[!template text="""perhaps using the same protocol that's used by the Emacs""" start="00:05:06.018" video="qanda-gypsum" id="subtitle"]] -[[!template text="""server. But I haven't thought that far ahead yet.""" start="00:05:06.018" video="qanda-gypsum" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: I'm curious to know how the hell guile-emacs deals with all of the dynamically scoped modules out there. Is there any effort to automatically modularize and namespace stuff?""" start="00:03:14.320" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""I'm curious to know how the hell Guile Emacs deals with all the""" start="00:03:14.320" video="qanda-gypsum" id="subtitle"]] +[[!template text="""dynamically scoped modules out there. Is there any effort""" start="00:03:17.440" video="qanda-gypsum" id="subtitle"]] +[[!template text="""to automatically modularize and name? Let's see.""" start="00:03:21.360" video="qanda-gypsum" id="subtitle"]] +[[!template text="""That might be a better question for Robin Templeton. In my""" start="00:03:29.760" video="qanda-gypsum" id="subtitle"]] +[[!template text="""own project,""" start="00:03:40.920" video="qanda-gypsum" id="subtitle"]] +[[!template text="""there's no module system for Emacs Lisp. There is a module""" start="00:03:44.640" video="qanda-gypsum" id="subtitle"]] +[[!template text="""system for Scheme. And the Emacs Lisp interpreter runs in""" start="00:03:49.400" video="qanda-gypsum" id="subtitle"]] +[[!template text="""its own environment. the require system or whatever module""" start="00:03:55.560" video="qanda-gypsum" id="subtitle"]] +[[!template text="""system that Emacs has, once it's implemented, all of that""" start="00:04:01.600" video="qanda-gypsum" id="subtitle"]] +[[!template text="""would just happen inside of the Emacs Lisp environment,""" start="00:04:06.360" video="qanda-gypsum" id="subtitle"]] +[[!template text="""which is inside of the Scheme environment. And""" start="00:04:09.760" video="qanda-gypsum" id="subtitle"]] +[[!template text="""environments are objects in Scheme.""" start="00:04:12.400" video="qanda-gypsum" id="subtitle"]] +[[!template text="""I think a more difficult question is how to handle""" start="00:04:21.480" video="qanda-gypsum" id="subtitle"]] +[[!template text="""threading, and Scheme has very good threading built in, in""" start="00:04:26.400" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Serphe-18[??].""" start="00:04:33.280" video="qanda-gypsum" id="subtitle"]] +[[!template text="""But I don't think it will be easy to write Emacs Lisp form""" start="00:04:34.840" video="qanda-gypsum" id="subtitle"]] +[[!template text="""bindings to the Scheme multi-threading implementation.""" start="00:04:43.400" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Emacs Lisp was just not cut out for that kind of thing. So I""" start="00:04:48.480" video="qanda-gypsum" id="subtitle"]] +[[!template text="""think each Emacs Lisp, you could, I suppose, have multiple""" start="00:04:52.280" video="qanda-gypsum" id="subtitle"]] +[[!template text="""threads each running their own Emacs Lisp environment.""" start="00:04:56.560" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Scheme would make that very simple to do.""" start="00:05:00.040" video="qanda-gypsum" id="subtitle"]] +[[!template text="""And then there'd just be a question of how you would get those""" start="00:05:05.000" video="qanda-gypsum" id="subtitle"]] +[[!template text="""different interpreters to communicate with each other,""" start="00:05:08.760" video="qanda-gypsum" id="subtitle"]] +[[!template text="""perhaps using the same protocol that's used by the Emacs""" start="00:05:11.680" video="qanda-gypsum" id="subtitle"]] +[[!template text="""server. But I haven't thought that far ahead yet.""" start="00:05:16.280" video="qanda-gypsum" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Would it be possible to support a GUI toolkit other than GTK?""" start="00:05:23.646" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""Would it be possible to support a GUI toolkit other than the""" start="00:05:23.646" video="qanda-gypsum" id="subtitle"]] -[[!template text="""GTK? Like, how is it still supports Lucid? Yes, this is""" start="00:05:23.646" video="qanda-gypsum" id="subtitle"]] -[[!template text="""absolutely a goal of the project. I'm trying to keep the back""" start="00:05:31.291" video="qanda-gypsum" id="subtitle"]] -[[!template text="""end separate as possible. The scheme has what you call""" start="00:05:33.873" video="qanda-gypsum" id="subtitle"]] -[[!template text="""parameters. And these are like global variables that are""" start="00:05:39.817" video="qanda-gypsum" id="subtitle"]] -[[!template text="""still somewhat thread safe. And every call to the GUI goes""" start="00:05:43.199" video="qanda-gypsum" id="subtitle"]] -[[!template text="""through a parameter. So the Emacs, the interpreter and the""" start="00:05:47.484" video="qanda-gypsum" id="subtitle"]] -[[!template text="""editor logic is all in one module. And then that module calls""" start="00:05:52.125" video="qanda-gypsum" id="subtitle"]] -[[!template text="""out into a separate GUI module. And then you can implement""" start="00:05:59.987" video="qanda-gypsum" id="subtitle"]] -[[!template text="""different GUI modules. So you could have one for GTK3, one""" start="00:06:04.989" video="qanda-gypsum" id="subtitle"]] -[[!template text="""for GTK4, if you want to write the extern C bindings around Qt""" start="00:06:08.430" video="qanda-gypsum" id="subtitle"]] -[[!template text="""or full tick, that would certainly be possible as well. It""" start="00:06:13.843" video="qanda-gypsum" id="subtitle"]] -[[!template text="""would be nice maybe to have an SDL implementation based""" start="00:06:21.185" video="qanda-gypsum" id="subtitle"]] -[[!template text="""maybe on Chikiti or some kind of immediate mode GUI,""" start="00:06:21.185" video="qanda-gypsum" id="subtitle"]] -[[!template text="""something like that. But definitely GTK3 through Guile GI""" start="00:06:21.185" video="qanda-gypsum" id="subtitle"]] -[[!template text="""is the reference implementation. Things start there. But""" start="00:06:33.808" video="qanda-gypsum" id="subtitle"]] -[[!template text="""I'm very interested in supporting other GUIs, yes. Let's""" start="00:06:41.298" video="qanda-gypsum" id="subtitle"]] -[[!template text="""see.""" start="00:06:45.199" video="qanda-gypsum" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Would it be possible to support a GUI toolkit other than GTK?""" start="00:05:23.640" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""Would it be possible to support a GUI toolkit other than the""" start="00:05:23.640" video="qanda-gypsum" id="subtitle"]] +[[!template text="""GTK? Like, how is it still supports Lucid? Yes, this is""" start="00:05:26.840" video="qanda-gypsum" id="subtitle"]] +[[!template text="""absolutely a goal of the project. I'm trying to keep the back""" start="00:05:31.320" video="qanda-gypsum" id="subtitle"]] +[[!template text="""end separate as possible. The scheme has what you call""" start="00:05:37.000" video="qanda-gypsum" id="subtitle"]] +[[!template text="""parameters. And these are like global variables that are""" start="00:05:41.600" video="qanda-gypsum" id="subtitle"]] +[[!template text="""still somewhat thread safe. And every call to the GUI goes""" start="00:05:45.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""through a parameter. So the Emacs, the interpreter and the""" start="00:05:50.520" video="qanda-gypsum" id="subtitle"]] +[[!template text="""editor logic is all in one module. And then that module calls""" start="00:05:58.200" video="qanda-gypsum" id="subtitle"]] +[[!template text="""out into a separate GUI module. And then you can implement""" start="00:06:01.680" video="qanda-gypsum" id="subtitle"]] +[[!template text="""different GUI modules. So you could have one for GTK3, one""" start="00:06:06.320" video="qanda-gypsum" id="subtitle"]] +[[!template text="""for GTK4, if you want to write the extern C bindings around Qt""" start="00:06:11.600" video="qanda-gypsum" id="subtitle"]] +[[!template text="""or full tick, that would certainly be possible as well. It""" start="00:06:16.880" video="qanda-gypsum" id="subtitle"]] +[[!template text="""would be nice maybe to have an SDL implementation based""" start="00:06:21.200" video="qanda-gypsum" id="subtitle"]] +[[!template text="""maybe on Chikiti or some kind of immediate mode GUI,""" start="00:06:25.920" video="qanda-gypsum" id="subtitle"]] +[[!template text="""something like that. But definitely GTK3 through Guile GI""" start="00:06:31.000" video="qanda-gypsum" id="subtitle"]] +[[!template text="""is the reference implementation. Things start there. But""" start="00:06:37.400" video="qanda-gypsum" id="subtitle"]] +[[!template text="""I'm very interested in supporting other GUIs, yes. Let's""" start="00:06:41.320" video="qanda-gypsum" id="subtitle"]] +[[!template text="""see.""" start="00:06:44.000" video="qanda-gypsum" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Do you plan to provide improvements to Elisp as a language, or is the focus on a compatibility layer to facilitate doing all new extensions, etc. in Scheme?""" start="00:06:45.257" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""Question, do you plan to provide improvements to ELisp""" start="00:06:45.257" video="qanda-gypsum" id="subtitle"]] -[[!template text="""as a language or focus on a compatibility layer to""" start="00:06:47.540" video="qanda-gypsum" id="subtitle"]] -[[!template text="""facilitate all new extensions in Scheme? Yeah, the second""" start="00:06:47.540" video="qanda-gypsum" id="subtitle"]] -[[!template text="""one. I want to move off to Scheme. I would like for this""" start="00:06:57.142" video="qanda-gypsum" id="subtitle"]] -[[!template text="""project to try and keep up to date with each new release of""" start="00:07:03.384" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Emacs and Emacs Lisp. That's a difficult moving target to""" start="00:07:05.666" video="qanda-gypsum" id="subtitle"]] -[[!template text="""follow, I realize. But to the greatest extent possible, any""" start="00:07:11.850" video="qanda-gypsum" id="subtitle"]] -[[!template text="""new features to Emacs Lisp will be pulled in from GNU Emacs.""" start="00:07:15.152" video="qanda-gypsum" id="subtitle"]] -[[!template text="""If we happen to be able to implement something cool in""" start="00:07:25.419" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Scheme, and be able to port it over to Emacs Lisp, then sure,""" start="00:07:25.419" video="qanda-gypsum" id="subtitle"]] -[[!template text="""it'd be nice to be able to upload or to submit that upstream to""" start="00:07:29.437" video="qanda-gypsum" id="subtitle"]] -[[!template text="""the GNU Emacs. But I think I would prefer to have new features""" start="00:07:29.437" video="qanda-gypsum" id="subtitle"]] -[[!template text="""written in Scheme. I would like this gypsum to be more of a""" start="00:07:38.584" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Scheme app platform that just happens to be able to also run""" start="00:07:43.989" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Emacs Lisp. That's how I see it. Of course, this will be a""" start="00:07:43.989" video="qanda-gypsum" id="subtitle"]] -[[!template text="""community project. I'm open to debate about that if anybody""" start="00:07:54.577" video="qanda-gypsum" id="subtitle"]] -[[!template text="""wants to convince me otherwise.""" start="00:07:58.809" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Why is being able to interpret all of that EL a useful goal?""" start="00:08:08.439" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Sure, there is a lot of code written in Elisp. Can we""" start="00:08:12.464" video="qanda-gypsum" id="subtitle"]] -[[!template text="""consider... Oh, it's still being written. Please go ahead""" start="00:08:15.206" video="qanda-gypsum" id="subtitle"]] -[[!template text="""and finish writing.""" start="00:08:18.390" video="qanda-gypsum" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Do you plan to provide improvements to Elisp as a language, or is the focus on a compatibility layer to facilitate doing all new extensions, etc. in Scheme?""" start="00:06:46.040" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""Question, do you plan to provide improvements to ELisp""" start="00:06:46.040" video="qanda-gypsum" id="subtitle"]] +[[!template text="""as a language or focus on a compatibility layer to""" start="00:06:50.760" video="qanda-gypsum" id="subtitle"]] +[[!template text="""facilitate all new extensions in Scheme? Yeah, the second""" start="00:06:54.520" video="qanda-gypsum" id="subtitle"]] +[[!template text="""one. I want to move off to Scheme. I would like for this""" start="00:06:58.000" video="qanda-gypsum" id="subtitle"]] +[[!template text="""project to try and keep up to date with each new release of""" start="00:07:04.720" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Emacs and Emacs Lisp. That's a difficult moving target to""" start="00:07:09.000" video="qanda-gypsum" id="subtitle"]] +[[!template text="""follow, I realize. But to the greatest extent possible, any""" start="00:07:13.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""new features to Emacs Lisp will be pulled in from GNU Emacs.""" start="00:07:18.640" video="qanda-gypsum" id="subtitle"]] +[[!template text="""If we happen to be able to implement something cool in""" start="00:07:25.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Scheme, and be able to port it over to Emacs Lisp, then sure,""" start="00:07:28.600" video="qanda-gypsum" id="subtitle"]] +[[!template text="""it'd be nice to be able to upload or to submit that upstream to""" start="00:07:31.640" video="qanda-gypsum" id="subtitle"]] +[[!template text="""the GNU Emacs. But I think I would prefer to have new features""" start="00:07:35.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""written in Scheme. I would like this gypsum to be more of a""" start="00:07:43.080" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Scheme app platform that just happens to be able to also run""" start="00:07:47.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Emacs Lisp. That's how I see it. Of course, this will be a""" start="00:07:51.480" video="qanda-gypsum" id="subtitle"]] +[[!template text="""community project. I'm open to debate about that if anybody""" start="00:07:56.200" video="qanda-gypsum" id="subtitle"]] +[[!template text="""wants to convince me otherwise.""" start="00:08:00.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Why is being able to interpret all of that EL a useful goal?""" start="00:08:02.080" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Sure, there is a lot of code written in Elisp. Can we""" start="00:08:11.760" video="qanda-gypsum" id="subtitle"]] +[[!template text="""consider... Oh, it's still being written. Please go ahead""" start="00:08:15.520" video="qanda-gypsum" id="subtitle"]] +[[!template text="""and finish writing.""" start="00:08:18.960" video="qanda-gypsum" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Can we consider a translator like utility to convert elisp to scheme, once guile-emacs becomes a reality?""" start="00:08:29.673" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""Can we consider a translator like utility to convert eLisp""" start="00:08:29.673" video="qanda-gypsum" id="subtitle"]] -[[!template text="""to Scheme once Guile-Emacs has become a reality?""" start="00:08:29.673" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Certainly. For the time being, I just wanted to get the""" start="00:08:36.716" video="qanda-gypsum" id="subtitle"]] -[[!template text="""interpreter running. So the actual, the Guile-Emacs Lisp,""" start="00:08:38.717" video="qanda-gypsum" id="subtitle"]] -[[!template text="""the one that was written in 2011 that I didn't write, that""" start="00:08:44.520" video="qanda-gypsum" id="subtitle"]] -[[!template text="""actually does compile to, I think it's the tree""" start="00:08:44.520" video="qanda-gypsum" id="subtitle"]] -[[!template text="""intermediate representation It's one of the intermediate""" start="00:08:44.520" video="qanda-gypsum" id="subtitle"]] -[[!template text="""languages that Guile uses to compile Guile scheme itself.""" start="00:08:59.076" video="qanda-gypsum" id="subtitle"]] -[[!template text="""So the Emacs lisp that was written before actually does""" start="00:09:04.817" video="qanda-gypsum" id="subtitle"]] -[[!template text="""that. It actually compiles and makes use of the entire Guile""" start="00:09:04.817" video="qanda-gypsum" id="subtitle"]] -[[!template text="""compiler tool chain and actually produces like JIT""" start="00:09:09.339" video="qanda-gypsum" id="subtitle"]] -[[!template text="""compilable binaries, which is really cool. Like I said,""" start="00:09:09.339" video="qanda-gypsum" id="subtitle"]] -[[!template text="""that's the one that I had trouble getting to work properly.""" start="00:09:23.342" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Maybe we can follow that architecture. I'm not sure how to do""" start="00:09:29.209" video="qanda-gypsum" id="subtitle"]] -[[!template text="""that, but I would like to be able to do some kind of""" start="00:09:33.052" video="qanda-gypsum" id="subtitle"]] -[[!template text="""translating, keeping in mind that we want to have this be""" start="00:09:33.052" video="qanda-gypsum" id="subtitle"]] -[[!template text="""portable, do various schemes. And so Guile makes this very""" start="00:09:33.052" video="qanda-gypsum" id="subtitle"]] -[[!template text="""easy, but other schemes don't. Gambit might do this pretty""" start="00:09:45.988" video="qanda-gypsum" id="subtitle"]] -[[!template text="""well as well. It compiles to C and then compiles C down to a""" start="00:09:51.549" video="qanda-gypsum" id="subtitle"]] -[[!template text="""dynamically linkable library. So yeah, I think probably""" start="00:09:53.950" video="qanda-gypsum" id="subtitle"]] -[[!template text="""the most portable, I'm just thinking out loud right now,""" start="00:10:03.372" video="qanda-gypsum" id="subtitle"]] -[[!template text="""most portable implementation will just be able to""" start="00:10:10.652" video="qanda-gypsum" id="subtitle"]] -[[!template text="""translate Emacs Lisp directly to Scheme, which is not what""" start="00:10:10.652" video="qanda-gypsum" id="subtitle"]] -[[!template text="""the old Guile Emacs Lisp implementation does. That goes to""" start="00:10:10.652" video="qanda-gypsum" id="subtitle"]] -[[!template text="""TreeIL, so it's very, very Guile-specific, can't be""" start="00:10:21.755" video="qanda-gypsum" id="subtitle"]] -[[!template text="""ported. But yeah, if we could somehow get Emacs Lisp""" start="00:10:21.755" video="qanda-gypsum" id="subtitle"]] -[[!template text="""translated to Scheme and then compiled, say, in Shea Scheme""" start="00:10:28.359" video="qanda-gypsum" id="subtitle"]] -[[!template text="""or Gambit or MIT Scheme or one of those other compilers, that""" start="00:10:28.359" video="qanda-gypsum" id="subtitle"]] -[[!template text="""would be very cool. And I would absolutely love to do that.""" start="00:10:28.359" video="qanda-gypsum" id="subtitle"]] -[[!template text="""And I would very quickly accept any code into the code base""" start="00:10:44.906" video="qanda-gypsum" id="subtitle"]] -[[!template text="""that would do that.""" start="00:10:44.906" video="qanda-gypsum" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Can we consider a translator like utility to convert elisp to scheme, once guile-emacs becomes a reality?""" start="00:08:19.440" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""Can we consider a translator like utility to convert eLisp""" start="00:08:19.440" video="qanda-gypsum" id="subtitle"]] +[[!template text="""to Scheme once Guile-Emacs has become a reality?""" start="00:08:32.520" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Certainly. For the time being, I just wanted to get the""" start="00:08:37.520" video="qanda-gypsum" id="subtitle"]] +[[!template text="""interpreter running. So the actual, the Guile-Emacs Lisp,""" start="00:08:42.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""the one that was written in 2011 that I didn't write, that""" start="00:08:47.560" video="qanda-gypsum" id="subtitle"]] +[[!template text="""actually does compile to, I think it's the tree""" start="00:08:51.920" video="qanda-gypsum" id="subtitle"]] +[[!template text="""intermediate representation It's one of the intermediate""" start="00:08:57.600" video="qanda-gypsum" id="subtitle"]] +[[!template text="""languages that Guile uses to compile Guile scheme itself.""" start="00:08:59.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""So the Emacs lisp that was written before actually does""" start="00:09:03.760" video="qanda-gypsum" id="subtitle"]] +[[!template text="""that. It actually compiles and makes use of the entire Guile""" start="00:09:09.080" video="qanda-gypsum" id="subtitle"]] +[[!template text="""compiler tool chain and actually produces like JIT""" start="00:09:13.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""compilable binaries, which is really cool. Like I said,""" start="00:09:17.480" video="qanda-gypsum" id="subtitle"]] +[[!template text="""that's the one that I had trouble getting to work properly.""" start="00:09:21.720" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Maybe we can follow that architecture. I'm not sure how to do""" start="00:09:27.520" video="qanda-gypsum" id="subtitle"]] +[[!template text="""that, but I would like to be able to do some kind of""" start="00:09:34.400" video="qanda-gypsum" id="subtitle"]] +[[!template text="""translating, keeping in mind that we want to have this be""" start="00:09:37.920" video="qanda-gypsum" id="subtitle"]] +[[!template text="""portable, do various schemes. And so Guile makes this very""" start="00:09:42.000" video="qanda-gypsum" id="subtitle"]] +[[!template text="""easy, but other schemes don't. Gambit might do this pretty""" start="00:09:48.920" video="qanda-gypsum" id="subtitle"]] +[[!template text="""well as well. It compiles to C and then compiles C down to a""" start="00:09:52.720" video="qanda-gypsum" id="subtitle"]] +[[!template text="""dynamically linkable library. So yeah, I think probably""" start="00:09:57.920" video="qanda-gypsum" id="subtitle"]] +[[!template text="""the most portable, I'm just thinking out loud right now,""" start="00:10:06.160" video="qanda-gypsum" id="subtitle"]] +[[!template text="""most portable implementation will just be able to""" start="00:10:09.560" video="qanda-gypsum" id="subtitle"]] +[[!template text="""translate Emacs Lisp directly to Scheme, which is not what""" start="00:10:13.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""the old Guile Emacs Lisp implementation does. That goes to""" start="00:10:17.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""TreeIL, so it's very, very Guile-specific, can't be""" start="00:10:22.440" video="qanda-gypsum" id="subtitle"]] +[[!template text="""ported. But yeah, if we could somehow get Emacs Lisp""" start="00:10:26.440" video="qanda-gypsum" id="subtitle"]] +[[!template text="""translated to Scheme and then compiled, say, in Shea Scheme""" start="00:10:30.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""or Gambit or MIT Scheme or one of those other compilers, that""" start="00:10:37.000" video="qanda-gypsum" id="subtitle"]] +[[!template text="""would be very cool. And I would absolutely love to do that.""" start="00:10:40.880" video="qanda-gypsum" id="subtitle"]] +[[!template text="""And I would very quickly accept any code into the code base""" start="00:10:44.920" video="qanda-gypsum" id="subtitle"]] +[[!template text="""that would do that.""" start="00:10:49.280" video="qanda-gypsum" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Why is being able to interpret all of \`init.el\` an useful goal?""" start="00:10:54.390" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""Oh, and to answer the question about init.el,""" start="00:10:54.390" video="qanda-gypsum" id="subtitle"]] -[[!template text="""It's just because people spend a lot of time on their configs""" start="00:10:59.207" video="qanda-gypsum" id="subtitle"]] -[[!template text="""and it would be nice if, you know, you're starting to use this""" start="00:10:59.207" video="qanda-gypsum" id="subtitle"]] -[[!template text="""new editor and want it to be similar to Emacs users, just the""" start="00:10:59.207" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Emacs community in general and people who are familiar with""" start="00:10:59.207" video="qanda-gypsum" id="subtitle"]] -[[!template text="""using Emacs. It would be more useful to everybody in the""" start="00:10:59.207" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Emacs community if this were more compatible with GNU""" start="00:11:17.715" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Emacs. And so that's why that's, I think that's an important""" start="00:11:17.715" video="qanda-gypsum" id="subtitle"]] -[[!template text="""goal.""" start="00:11:25.679" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Question is not yet. Great. Oh, here comes another""" start="00:11:34.465" video="qanda-gypsum" id="subtitle"]] -[[!template text="""question.""" start="00:11:38.471" video="qanda-gypsum" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Why is being able to interpret all of \`init.el\` an useful goal?""" start="00:10:50.600" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""Oh, and to answer the question about init.el,""" start="00:10:50.600" video="qanda-gypsum" id="subtitle"]] +[[!template text="""It's just because people spend a lot of time on their configs""" start="00:10:59.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""and it would be nice if, you know, you're starting to use this""" start="00:11:02.840" video="qanda-gypsum" id="subtitle"]] +[[!template text="""new editor and want it to be similar to Emacs users, just the""" start="00:11:06.960" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Emacs community in general and people who are familiar with""" start="00:11:14.080" video="qanda-gypsum" id="subtitle"]] +[[!template text="""using Emacs. It would be more useful to everybody in the""" start="00:11:16.520" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Emacs community if this were more compatible with GNU""" start="00:11:20.880" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Emacs. And so that's why that's, I think that's an important""" start="00:11:25.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""goal.""" start="00:11:36.000" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Question is not yet. Great. Oh, here comes another""" start="00:11:38.560" video="qanda-gypsum" id="subtitle"]] +[[!template text="""question.""" start="00:12:01.840" video="qanda-gypsum" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: What is the plan to handle elisp packages that depend on 3rd party/external libraries? (libgit/magit or rg/ripgrep)?""" start="00:12:08.539" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""Okay, what is the plan to handle elisp packages that depend""" start="00:12:08.539" video="qanda-gypsum" id="subtitle"]] -[[!template text="""on third-party or external libraries like git or magit""" start="00:12:08.539" video="qanda-gypsum" id="subtitle"]] -[[!template text="""or ripgrep? So that's going to be tricky. It depends on how""" start="00:12:08.539" video="qanda-gypsum" id="subtitle"]] -[[!template text="""these external packages are linked into emacs. If it's""" start="00:12:21.523" video="qanda-gypsum" id="subtitle"]] -[[!template text="""going to be a dynamic library like Robin Templeton's""" start="00:12:26.844" video="qanda-gypsum" id="subtitle"]] -[[!template text="""project which you load the libgit library into the Emacs""" start="00:12:26.844" video="qanda-gypsum" id="subtitle"]] -[[!template text="""process, that is going to be extremely difficult. So if you""" start="00:12:35.289" video="qanda-gypsum" id="subtitle"]] -[[!template text="""have an external library like, I don't know, libgit or""" start="00:12:44.032" video="qanda-gypsum" id="subtitle"]] -[[!template text="""what's the GUI thing? Cabal. No, not Cabal. Cairo, libcairo""" start="00:12:44.032" video="qanda-gypsum" id="subtitle"]] -[[!template text="""to do SVG graphics and so on.""" start="00:12:57.736" video="qanda-gypsum" id="subtitle"]] -[[!template text="""You can do that very easily with Guile, but then on top of""" start="00:13:04.483" video="qanda-gypsum" id="subtitle"]] -[[!template text="""that, implementing Emacs list bindings to it, I mean,""" start="00:13:04.483" video="qanda-gypsum" id="subtitle"]] -[[!template text="""you've got two layers there, and that makes things pretty""" start="00:13:04.483" video="qanda-gypsum" id="subtitle"]] -[[!template text="""difficult. So it's possible. And to some degree, maybe""" start="00:13:04.483" video="qanda-gypsum" id="subtitle"]] -[[!template text="""necessary for example, Cairo, if we want to do SVG graphics""" start="00:13:21.935" video="qanda-gypsum" id="subtitle"]] -[[!template text="""the way that Emacs Lisp does, we're going to have to have""" start="00:13:21.935" video="qanda-gypsum" id="subtitle"]] -[[!template text="""that. So that would be necessary. We would have to have those""" start="00:13:21.935" video="qanda-gypsum" id="subtitle"]] -[[!template text="""two layers. Yes, let's do that. But if it's like for Magit,""" start="00:13:32.643" video="qanda-gypsum" id="subtitle"]] -[[!template text="""you can just call out to your git process, and then you're""" start="00:13:38.047" video="qanda-gypsum" id="subtitle"]] -[[!template text="""just using the regular process APIs that Emacs Lisp has. And""" start="00:13:38.047" video="qanda-gypsum" id="subtitle"]] -[[!template text="""that can be, already we, like Guile has some very good""" start="00:13:51.451" video="qanda-gypsum" id="subtitle"]] -[[!template text="""implementations for process management. And so it would""" start="00:13:51.451" video="qanda-gypsum" id="subtitle"]] -[[!template text="""just be a matter of wrapping up those in the Emacs lisp form""" start="00:13:59.055" video="qanda-gypsum" id="subtitle"]] -[[!template text="""bindings. So yeah, dynamic libraries, I wanna try to avoid.""" start="00:13:59.055" video="qanda-gypsum" id="subtitle"]] -[[!template text="""And I would prefer to do things more through, you know,""" start="00:14:12.222" video="qanda-gypsum" id="subtitle"]] -[[!template text="""launching a child process in the Emacs process. and then""" start="00:14:12.222" video="qanda-gypsum" id="subtitle"]] -[[!template text="""communicating over the standard in, standard out""" start="00:14:20.956" video="qanda-gypsum" id="subtitle"]] -[[!template text="""channels.""" start="00:14:20.956" video="qanda-gypsum" id="subtitle"]] -[[!template text="""That's the easier way to do things, I think, because then you""" start="00:14:29.460" video="qanda-gypsum" id="subtitle"]] -[[!template text="""can just use the process library that Emacs already has, and""" start="00:14:29.460" video="qanda-gypsum" id="subtitle"]] -[[!template text="""you can just reuse all of that code.""" start="00:14:29.460" video="qanda-gypsum" id="subtitle"]] -[[!template text="""I'm not sure how ripgrep works, unfortunately, but I""" start="00:14:43.969" video="qanda-gypsum" id="subtitle"]] -[[!template text="""believe that's also a process, a child process. So, we can""" start="00:14:43.969" video="qanda-gypsum" id="subtitle"]] -[[!template text="""just reuse all of the Emacs Lisp code that does that already.""" start="00:14:50.412" video="qanda-gypsum" id="subtitle"]] -[[!template text="""We just need to make sure that the process management""" start="00:14:54.014" video="qanda-gypsum" id="subtitle"]] -[[!template text="""implementation and scheme is properly bound to Emacs Lisp,""" start="00:14:54.014" video="qanda-gypsum" id="subtitle"]] -[[!template text="""and it works the same as GNU Emacs does. Once that's all set,""" start="00:14:54.014" video="qanda-gypsum" id="subtitle"]] -[[!template text="""then these porcelains, like around git, should fall into""" start="00:15:06.360" video="qanda-gypsum" id="subtitle"]] -[[!template text="""place. without too much difficulty, hopefully.""" start="00:15:06.360" video="qanda-gypsum" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: What is the plan to handle elisp packages that depend on 3rd party/external libraries? (libgit/magit or rg/ripgrep)?""" start="00:12:02.280" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""Okay, what is the plan to handle elisp packages that depend""" start="00:12:02.280" video="qanda-gypsum" id="subtitle"]] +[[!template text="""on third-party or external libraries like git or magit""" start="00:12:11.880" video="qanda-gypsum" id="subtitle"]] +[[!template text="""or ripgrep? So that's going to be tricky. It depends on how""" start="00:12:16.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""these external packages are linked into emacs. If it's""" start="00:12:22.720" video="qanda-gypsum" id="subtitle"]] +[[!template text="""going to be a dynamic library like Robin Templeton's""" start="00:12:27.080" video="qanda-gypsum" id="subtitle"]] +[[!template text="""project which you load the libgit library into the Emacs""" start="00:12:32.880" video="qanda-gypsum" id="subtitle"]] +[[!template text="""process, that is going to be extremely difficult. So if you""" start="00:12:38.040" video="qanda-gypsum" id="subtitle"]] +[[!template text="""have an external library like, I don't know, libgit or""" start="00:12:43.160" video="qanda-gypsum" id="subtitle"]] +[[!template text="""what's the GUI thing? Cabal. No, not Cabal. Cairo, libcairo""" start="00:12:49.360" video="qanda-gypsum" id="subtitle"]] +[[!template text="""to do SVG graphics and so on.""" start="00:12:59.280" video="qanda-gypsum" id="subtitle"]] +[[!template text="""You can do that very easily with Guile, but then on top of""" start="00:13:01.440" video="qanda-gypsum" id="subtitle"]] +[[!template text="""that, implementing Emacs list bindings to it, I mean,""" start="00:13:09.720" video="qanda-gypsum" id="subtitle"]] +[[!template text="""you've got two layers there, and that makes things pretty""" start="00:13:14.720" video="qanda-gypsum" id="subtitle"]] +[[!template text="""difficult. So it's possible. And to some degree, maybe""" start="00:13:17.200" video="qanda-gypsum" id="subtitle"]] +[[!template text="""necessary for example, Cairo, if we want to do SVG graphics""" start="00:13:23.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""the way that Emacs Lisp does, we're going to have to have""" start="00:13:27.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""that. So that would be necessary. We would have to have those""" start="00:13:30.600" video="qanda-gypsum" id="subtitle"]] +[[!template text="""two layers. Yes, let's do that. But if it's like for Magit,""" start="00:13:33.960" video="qanda-gypsum" id="subtitle"]] +[[!template text="""you can just call out to your git process, and then you're""" start="00:13:39.200" video="qanda-gypsum" id="subtitle"]] +[[!template text="""just using the regular process APIs that Emacs Lisp has. And""" start="00:13:45.480" video="qanda-gypsum" id="subtitle"]] +[[!template text="""that can be, already we, like Guile has some very good""" start="00:13:50.720" video="qanda-gypsum" id="subtitle"]] +[[!template text="""implementations for process management. And so it would""" start="00:13:57.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""just be a matter of wrapping up those in the Emacs lisp form""" start="00:14:08.080" video="qanda-gypsum" id="subtitle"]] +[[!template text="""bindings. So yeah, dynamic libraries, I wanna try to avoid.""" start="00:14:12.440" video="qanda-gypsum" id="subtitle"]] +[[!template text="""And I would prefer to do things more through, you know,""" start="00:14:24.920" video="qanda-gypsum" id="subtitle"]] +[[!template text="""launching a child process in the Emacs process. and then""" start="00:14:32.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""communicating over the standard in, standard out""" start="00:14:40.400" video="qanda-gypsum" id="subtitle"]] +[[!template text="""channels.""" start="00:14:47.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""That's the easier way to do things, I think, because then you""" start="00:14:47.960" video="qanda-gypsum" id="subtitle"]] +[[!template text="""can just use the process library that Emacs already has, and""" start="00:14:52.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""you can just reuse all of that code.""" start="00:14:58.520" video="qanda-gypsum" id="subtitle"]] +[[!template text="""I'm not sure how ripgrep works, unfortunately, but I""" start="00:15:03.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""believe that's also a process, a child process. So, we can""" start="00:15:09.080" video="qanda-gypsum" id="subtitle"]] +[[!template text="""just reuse all of the Emacs Lisp code that does that already.""" start="00:15:15.280" video="qanda-gypsum" id="subtitle"]] +[[!template text="""We just need to make sure that the process management""" start="00:15:23.480" video="qanda-gypsum" id="subtitle"]] +[[!template text="""implementation and scheme is properly bound to Emacs Lisp,""" start="00:15:30.400" video="qanda-gypsum" id="subtitle"]] +[[!template text="""and it works the same as GNU Emacs does. Once that's all set,""" start="00:15:35.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""then these porcelains, like around git, should fall into""" start="00:15:43.360" video="qanda-gypsum" id="subtitle"]] +[[!template text="""place. without too much difficulty, hopefully.""" start="00:15:48.400" video="qanda-gypsum" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Not really a question, but how about Schemacs as a name?""" start="00:15:21.112" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""How about Schemax as a name? I like the name. I like that name.""" start="00:15:21.112" video="qanda-gypsum" id="subtitle"]] -[[!template text="""I haven't really looked into like, is that already used or is""" start="00:15:28.937" video="qanda-gypsum" id="subtitle"]] -[[!template text="""that going to be confusing? But certainly something we can""" start="00:15:28.937" video="qanda-gypsum" id="subtitle"]] -[[!template text="""discuss.""" start="00:15:33.380" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Another thing I should mention,""" start="00:15:38.243" video="qanda-gypsum" id="subtitle"]] -[[!template text="""I should probably set up a server or something like Discord""" start="00:15:42.157" video="qanda-gypsum" id="subtitle"]] -[[!template text="""or something like that. Discourse, not Discord.""" start="00:15:42.157" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Discourse, the open source one, where we could actually""" start="00:15:51.619" video="qanda-gypsum" id="subtitle"]] -[[!template text="""chat about this stuff. For the time being, ActivityPub,""" start="00:15:51.619" video="qanda-gypsum" id="subtitle"]] -[[!template text="""mostly Mastodon, is how I communicate with people in real""" start="00:15:56.540" video="qanda-gypsum" id="subtitle"]] -[[!template text="""time, that or email. So if you want to get a hold of me, check""" start="00:15:56.540" video="qanda-gypsum" id="subtitle"]] -[[!template text="""the notes for this presentation and just send me an email.""" start="00:16:09.809" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Any question at all is fine. If you want to contribute code,""" start="00:16:16.752" video="qanda-gypsum" id="subtitle"]] -[[!template text="""if you want to just learn how to contribute code, send me any""" start="00:16:19.633" video="qanda-gypsum" id="subtitle"]] -[[!template text="""questions. It's fine. I'm happy to answer them. And we can""" start="00:16:19.633" video="qanda-gypsum" id="subtitle"]] -[[!template text="""talk about the name as well.""" start="00:16:30.256" video="qanda-gypsum" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Not really a question, but how about Schemacs as a name?""" start="00:15:55.280" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""How about Schemax as a name? I like the name. I like that name.""" start="00:15:55.280" video="qanda-gypsum" id="subtitle"]] +[[!template text="""I haven't really looked into like, is that already used or is""" start="00:15:59.200" video="qanda-gypsum" id="subtitle"]] +[[!template text="""that going to be confusing? But certainly something we can""" start="00:16:03.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""discuss.""" start="00:16:09.760" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Another thing I should mention,""" start="00:16:10.960" video="qanda-gypsum" id="subtitle"]] +[[!template text="""I should probably set up a server or something like Discord""" start="00:16:13.040" video="qanda-gypsum" id="subtitle"]] +[[!template text="""or something like that. Discourse, not Discord.""" start="00:16:18.760" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Discourse, the open source one, where we could actually""" start="00:16:25.360" video="qanda-gypsum" id="subtitle"]] +[[!template text="""chat about this stuff. For the time being, ActivityPub,""" start="00:16:31.600" video="qanda-gypsum" id="subtitle"]] +[[!template text="""mostly Mastodon, is how I communicate with people in real""" start="00:16:49.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""time, that or email. So if you want to get a hold of me, check""" start="00:16:52.400" video="qanda-gypsum" id="subtitle"]] +[[!template text="""the notes for this presentation and just send me an email.""" start="00:16:57.280" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Any question at all is fine. If you want to contribute code,""" start="00:17:02.440" video="qanda-gypsum" id="subtitle"]] +[[!template text="""if you want to just learn how to contribute code, send me any""" start="00:17:09.040" video="qanda-gypsum" id="subtitle"]] +[[!template text="""questions. It's fine. I'm happy to answer them. And we can""" start="00:17:12.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""talk about the name as well.""" start="00:17:22.200" video="qanda-gypsum" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Why is it not feasible for the Emacs layer that interprets Emacs Lisp (the core in C) ot have a Scheme interpreter, instead of using Guile?""" start="00:16:45.931" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""Okay, why is it not feasible for the Emacs layer that""" start="00:16:45.931" video="qanda-gypsum" id="subtitle"]] -[[!template text="""interprets Emacs Lisp, the core in C, have a Scheme""" start="00:16:45.931" video="qanda-gypsum" id="subtitle"]] -[[!template text="""interpreter instead of using Guile? Let's see, I have to,""" start="00:16:45.931" video="qanda-gypsum" id="subtitle"]] -[[!template text="""okay. Emacs layer interprets Emacs Lisp, the core in C, have""" start="00:16:55.496" video="qanda-gypsum" id="subtitle"]] -[[!template text="""a Scheme interpreter instead of using Guile. Okay, so that,""" start="00:16:57.737" video="qanda-gypsum" id="subtitle"]] -[[!template text="""the question xlarsx is asking, xlars, x, So Lars is asking,""" start="00:17:07.362" video="qanda-gypsum" id="subtitle"]] -[[!template text="""is it not feasible for there to be an""" start="00:17:14.744" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Emacs layer that interprets Emacs Lisp have a scheme""" start="00:17:14.744" video="qanda-gypsum" id="subtitle"]] -[[!template text="""interpreter? This is Robin Templeton's project. And""" start="00:17:14.744" video="qanda-gypsum" id="subtitle"]] -[[!template text="""they're presenting later today. So check the roster and be""" start="00:17:30.815" video="qanda-gypsum" id="subtitle"]] -[[!template text="""sure to see that presentation because that's exactly what""" start="00:17:32.697" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Robin Templeton is doing. That's not what I'm doing though.""" start="00:17:32.697" video="qanda-gypsum" id="subtitle"]] -[[!template text="""I'm trying to create something in Scheme. But yes, there is""" start="00:17:44.419" video="qanda-gypsum" id="subtitle"]] -[[!template text="""an attempt to get an Scheme interpreter to run inside of""" start="00:17:48.280" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Emacs itself. And it has its own method of binding to Emacs""" start="00:17:48.280" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Lisp functions and translating data like Lisp structures""" start="00:17:55.181" video="qanda-gypsum" id="subtitle"]] -[[!template text="""between Guile Scheme and Emacs Lisp. Robin will explain all""" start="00:17:55.181" video="qanda-gypsum" id="subtitle"]] -[[!template text="""of that in their presentation.""" start="00:18:05.943" video="qanda-gypsum" id="subtitle"]] -[[!template text="""OK, I think I've got through all the questions on Etherpad.""" start="00:18:28.519" video="qanda-gypsum" id="subtitle"]] -[[!template text="""But I'm going to hang out here for a bit longer. And yeah, feel""" start="00:18:33.620" video="qanda-gypsum" id="subtitle"]] -[[!template text="""free to do a video chat with me or send me more questions on""" start="00:18:37.621" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Etherpad or here in the big blue button. And so I'm just going""" start="00:18:37.621" video="qanda-gypsum" id="subtitle"]] -[[!template text="""to hang out. And thanks for asking all your questions. And""" start="00:18:47.002" video="qanda-gypsum" id="subtitle"]] -[[!template text="""yeah, I look forward to working with all of you if you're""" start="00:18:51.663" video="qanda-gypsum" id="subtitle"]] -[[!template text="""interested. take it easy. Thanks so much for the talk and""" start="00:18:51.663" video="qanda-gypsum" id="subtitle"]] -[[!template text="""looking forward to seeing some of your progress as this""" start="00:18:59.935" video="qanda-gypsum" id="subtitle"]] -[[!template text="""moves forward, exciting space. We'll go ahead and leave the""" start="00:18:59.935" video="qanda-gypsum" id="subtitle"]] -[[!template text="""room open for you and thanks for offering to hang out and chat""" start="00:19:09.261" video="qanda-gypsum" id="subtitle"]] -[[!template text="""with other people that come by. Feel free to throw something""" start="00:19:09.261" video="qanda-gypsum" id="subtitle"]] -[[!template text="""in the chat if you want to remind people you're still here.""" start="00:19:15.025" video="qanda-gypsum" id="subtitle"]] -[[!template text="""Meanwhile, on the stream, we have moved along to our next""" start="00:19:19.557" video="qanda-gypsum" id="subtitle"]] -[[!template text="""talk on Rust, and that is just getting started. But again,""" start="00:19:19.557" video="qanda-gypsum" id="subtitle"]] -[[!template text="""we're continuing to record this, and I'll just keep an eye on""" start="00:19:25.283" video="qanda-gypsum" id="subtitle"]] -[[!template text="""it to stop the recording. Thank you. Thank you. It was""" start="00:19:25.283" video="qanda-gypsum" id="subtitle"]] -[[!template text="""awesome.""" start="00:19:33.352" video="qanda-gypsum" id="subtitle"]] -[[!template text="""So it seems like it's slowed down here for the Q&A. I don't see""" start="00:21:47.935" video="qanda-gypsum" id="subtitle"]] -[[!template text="""anybody else on BBB, so I'm going to go ahead and stop the""" start="00:21:50.638" video="qanda-gypsum" id="subtitle"]] -[[!template text="""recording. We can start it back up. I would say, yes, there's""" start="00:21:50.638" video="qanda-gypsum" id="subtitle"]] -[[!template text="""a lot of things you can do with this. You can handle""" start="00:21:55.282" video="qanda-gypsum" id="subtitle"]] -[[!template text="""processing. Yeah, I'm going to try and join over the chat for""" start="00:21:58.926" video="qanda-gypsum" id="subtitle"]] -[[!template text="""the next talk. I'm not sure if I can do both big blue buttons at""" start="00:22:02.029" video="qanda-gypsum" id="subtitle"]] -[[!template text="""the same time. You should be able to just watch your mute""" start="00:22:08.635" video="qanda-gypsum" id="subtitle"]] -[[!template text="""settings and mute tab settings and whatever all you have to""" start="00:22:13.206" video="qanda-gypsum" id="subtitle"]] -[[!template text="""avoid bleed through. Okay.""" start="00:22:13.206" video="qanda-gypsum" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Why is it not feasible for the Emacs layer that interprets Emacs Lisp (the core in C) ot have a Scheme interpreter, instead of using Guile?""" start="00:17:25.880" video="qanda-gypsum" id="subtitle"]]</div>[[!template text="""Okay, why is it not feasible for the Emacs layer that""" start="00:17:25.880" video="qanda-gypsum" id="subtitle"]] +[[!template text="""interprets Emacs Lisp, the core in C, have a Scheme""" start="00:17:30.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""interpreter instead of using Guile? Let's see, I have to,""" start="00:17:34.320" video="qanda-gypsum" id="subtitle"]] +[[!template text="""okay. Emacs layer interprets Emacs Lisp, the core in C, have""" start="00:17:39.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""a Scheme interpreter instead of using Guile. Okay, so that,""" start="00:17:48.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""the question xlarsx is asking, xlars, x, So Lars is asking,""" start="00:17:54.080" video="qanda-gypsum" id="subtitle"]] +[[!template text="""is it not feasible for there to be an""" start="00:17:59.960" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Emacs layer that interprets Emacs Lisp have a scheme""" start="00:18:02.320" video="qanda-gypsum" id="subtitle"]] +[[!template text="""interpreter? This is Robin Templeton's project. And""" start="00:18:06.840" video="qanda-gypsum" id="subtitle"]] +[[!template text="""they're presenting later today. So check the roster and be""" start="00:18:33.080" video="qanda-gypsum" id="subtitle"]] +[[!template text="""sure to see that presentation because that's exactly what""" start="00:18:39.840" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Robin Templeton is doing. That's not what I'm doing though.""" start="00:18:45.200" video="qanda-gypsum" id="subtitle"]] +[[!template text="""I'm trying to create something in Scheme. But yes, there is""" start="00:18:52.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""an attempt to get an Scheme interpreter to run inside of""" start="00:18:57.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Emacs itself. And it has its own method of binding to Emacs""" start="00:19:02.960" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Lisp functions and translating data like Lisp structures""" start="00:19:07.160" video="qanda-gypsum" id="subtitle"]] +[[!template text="""between Guile Scheme and Emacs Lisp. Robin will explain all""" start="00:19:11.200" video="qanda-gypsum" id="subtitle"]] +[[!template text="""of that in their presentation.""" start="00:19:14.440" video="qanda-gypsum" id="subtitle"]] +[[!template text="""OK, I think I've got through all the questions on Etherpad.""" start="00:19:15.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""But I'm going to hang out here for a bit longer. And yeah, feel""" start="00:19:18.920" video="qanda-gypsum" id="subtitle"]] +[[!template text="""free to do a video chat with me or send me more questions on""" start="00:19:23.880" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Etherpad or here in the big blue button. And so I'm just going""" start="00:19:28.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""to hang out. And thanks for asking all your questions. And""" start="00:19:33.840" video="qanda-gypsum" id="subtitle"]] +[[!template text="""yeah, I look forward to working with all of you if you're""" start="00:21:49.120" video="qanda-gypsum" id="subtitle"]] +[[!template text="""interested. take it easy. Thanks so much for the talk and""" start="00:21:50.840" video="qanda-gypsum" id="subtitle"]] +[[!template text="""looking forward to seeing some of your progress as this""" start="00:21:51.800" video="qanda-gypsum" id="subtitle"]] +[[!template text="""moves forward, exciting space. We'll go ahead and leave the""" start="00:21:53.200" video="qanda-gypsum" id="subtitle"]] +[[!template text="""room open for you and thanks for offering to hang out and chat""" start="00:21:54.360" video="qanda-gypsum" id="subtitle"]] +[[!template text="""with other people that come by. Feel free to throw something""" start="00:21:54.880" video="qanda-gypsum" id="subtitle"]] +[[!template text="""in the chat if you want to remind people you're still here.""" start="00:21:55.640" video="qanda-gypsum" id="subtitle"]] +[[!template text="""Meanwhile, on the stream, we have moved along to our next""" start="00:21:56.720" video="qanda-gypsum" id="subtitle"]] +[[!template text="""talk on Rust, and that is just getting started. But again,""" start="00:21:57.920" video="qanda-gypsum" id="subtitle"]] +[[!template text="""we're continuing to record this, and I'll just keep an eye on""" start="00:21:59.600" video="qanda-gypsum" id="subtitle"]] +[[!template text="""it to stop the recording. Thank you. Thank you. It was""" start="00:22:00.480" video="qanda-gypsum" id="subtitle"]] +[[!template text="""awesome.""" start="00:22:01.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""So it seems like it's slowed down here for the Q&A. I don't see""" start="00:22:01.560" video="qanda-gypsum" id="subtitle"]] +[[!template text="""anybody else on BBB, so I'm going to go ahead and stop the""" start="00:22:03.960" video="qanda-gypsum" id="subtitle"]] +[[!template text="""recording. We can start it back up. I would say, yes, there's""" start="00:22:05.440" video="qanda-gypsum" id="subtitle"]] +[[!template text="""a lot of things you can do with this. You can handle""" start="00:22:08.480" video="qanda-gypsum" id="subtitle"]] +[[!template text="""processing. Yeah, I'm going to try and join over the chat for""" start="00:22:09.520" video="qanda-gypsum" id="subtitle"]] +[[!template text="""the next talk. I'm not sure if I can do both big blue buttons at""" start="00:22:11.240" video="qanda-gypsum" id="subtitle"]] +[[!template text="""the same time. You should be able to just watch your mute""" start="00:22:14.680" video="qanda-gypsum" id="subtitle"]] +[[!template text="""settings and mute tab settings and whatever all you have to""" start="00:22:15.760" video="qanda-gypsum" id="subtitle"]] +[[!template text="""avoid bleed through. Okay.""" start="00:22:19.160" video="qanda-gypsum" id="subtitle"]] </div>Questions or comments? Please e-mail [ramin.honary@gmail.com](mailto:ramin.honary@gmail.com?subject=Comment%20for%20EmacsConf%202023%20gypsum%3A%20Gypsum%3A%20my%20clone%20of%20Emacs%20and%20ELisp%20written%20in%20Scheme) diff --git a/2024/info/gypsum-before.md b/2024/info/gypsum-before.md index ae5c0975..7f437b35 100644 --- a/2024/info/gypsum-before.md +++ b/2024/info/gypsum-before.md @@ -9,20 +9,20 @@ Status: TO_CAPTION_QA # Talk -<div class="vid mainVideo"><video controls preload="none" id="mainVideo-gypsum"><source src="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 24:36 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--main.webm">Download --main.webm (56MB)</a></li><li><a href="https://toobnix.org/w/8yqjkevWPH7RSRzPpHb5JB">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-gypsum"><source src="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 24:36 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--main.webm">Download --main.webm (56MB)</a></li><li><a href="https://toobnix.org/w/8yqjkevWPH7RSRzPpHb5JB">View on Toobnix</a></li><li><a href="https://youtu.be/gLEFuDolR6Y">View on Youtube</a></li></ul></div></div> # Q&A <div class="vid qanda"><video controls preload="none" id="qanda-gypsum"><source src="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.vtt" default />"""<track kind="chapters" label="Chapters" src="/2024/captions/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="qanda-gypsum" data=""" -03:09.370 Q: I'm curious to know how the hell guile-emacs deals with all of the dynamically scoped modules out there. Is there any effort to automatically modularize and namespace stuff? -05:23.646 Q: Would it be possible to support a GUI toolkit other than GTK? -06:45.257 Q: Do you plan to provide improvements to Elisp as a language, or is the focus on a compatibility layer to facilitate doing all new extensions, etc. in Scheme? -08:29.673 Q: Can we consider a translator like utility to convert elisp to scheme, once guile-emacs becomes a reality? -10:54.390 Q: Why is being able to interpret all of \`init.el\` an useful goal? -12:08.539 Q: What is the plan to handle elisp packages that depend on 3rd party/external libraries? (libgit/magit or rg/ripgrep)? -15:21.112 Q: Not really a question, but how about Schemacs as a name? -16:45.931 Q: Why is it not feasible for the Emacs layer that interprets Emacs Lisp (the core in C) ot have a Scheme interpreter, instead of using Guile? - -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-gypsum-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.opus"></audio></div><div></div>Duration: 23:38 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.opus">Download --answers.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.webm">Download --answers.webm (31MB)</a></li></ul></div></div> +03:14.320 Q: I'm curious to know how the hell guile-emacs deals with all of the dynamically scoped modules out there. Is there any effort to automatically modularize and namespace stuff? +05:23.640 Q: Would it be possible to support a GUI toolkit other than GTK? +06:46.040 Q: Do you plan to provide improvements to Elisp as a language, or is the focus on a compatibility layer to facilitate doing all new extensions, etc. in Scheme? +08:19.440 Q: Can we consider a translator like utility to convert elisp to scheme, once guile-emacs becomes a reality? +10:50.600 Q: Why is being able to interpret all of \`init.el\` an useful goal? +12:02.280 Q: What is the plan to handle elisp packages that depend on 3rd party/external libraries? (libgit/magit or rg/ripgrep)? +15:55.280 Q: Not really a question, but how about Schemacs as a name? +17:25.880 Q: Why is it not feasible for the Emacs layer that interprets Emacs Lisp (the core in C) ot have a Scheme interpreter, instead of using Guile? + +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-gypsum-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.opus"></audio></div><div></div>Duration: 23:38 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.opus">Download --answers.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-gypsum--gypsum-my-clone-of-emacs-and-elisp-written-in-scheme--ramin-honary--answers.webm">Download --answers.webm (31MB)</a></li><li><a href="https://toobnix.org/w/2c8K6cXhofT9dRgwcSrugm">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=sLw3IdJMabU">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/hyperbole-before.md b/2024/info/hyperbole-before.md index 24e259b2..4f40ce4a 100644 --- a/2024/info/hyperbole-before.md +++ b/2024/info/hyperbole-before.md @@ -20,7 +20,7 @@ Status: TO_CAPTION_QA 11:19.720 Select a thing 12:33.818 Web search -"""]]<div></div>Duration: 14:10 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--main.webm">Download --main.webm (47MB)</a></li><li><a href="https://toobnix.org/w/jrZezGxN7xhH9gjfEC3Ux6">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 14:10 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--main.webm">Download --main.webm (47MB)</a></li><li><a href="https://toobnix.org/w/jrZezGxN7xhH9gjfEC3Ux6">View on Toobnix</a></li><li><a href="https://youtu.be/cFdgpb0TeQo">View on Youtube</a></li></ul></div></div> # Q&A @@ -30,6 +30,6 @@ Status: TO_CAPTION_QA 07:09.972 Q: What is a recent tool that you find exciting to think about using in combination with Hyperbole, or would like to suggest using in combination with it? 10:00.255 On Ihor as the new maintainer for Org Mode -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-hyperbole-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.opus"></audio></div><div></div>Duration: 21:56 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.opus">Download --answers.opus (8.1MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.webm">Download --answers.webm (30MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-hyperbole-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.opus"></audio></div><div></div>Duration: 21:56 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.opus">Download --answers.opus (8.1MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.webm">Download --answers.webm (30MB)</a></li><li><a href="https://www.youtube.com/watch?v=95rtYf2DISo">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/hyperdrive-before.md b/2024/info/hyperdrive-before.md index 9b73f69f..1f1493d8 100644 --- a/2024/info/hyperdrive-before.md +++ b/2024/info/hyperdrive-before.md @@ -3,31 +3,13 @@ Format: 21-min talk ; Q&A: BigBlueButton conference room Status: TO_CAPTION_QA -<!-- End of `emacsconf-publish-before-page' --> -<!-- manually added markers with Emacs-next 30.0.92-0.881d593 --> -# Talk - -<div class="vid mainVideo"><video controls preload="none" id="mainVideo-hyperdrive"><source src="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-hyperdrive" data=""" -00:01.000 Welcome -01:34.700 `hyperdrive.el` quick start installation -03:23.400 open a file on a hyperdrive -04:02.559 marking a hyperdrive as trusted safe -04:30.739 giving hyperdrives petnames -05:15.259 hyperdrive peer graphs -07:19.879 explaination for blockers -09:01.839 wingsuit-flying-grand-canyon-point-of-view-NOT-CLICKBAIT.mp4 -12:57.480 how to new hyperdrive public key -14:42.359 bound keys for hyperdrive's transient menu -15:27.080 `hyperdrive-org-transclusion' installation -17:02.799 inserting link to a hyperdrive stored file -"""]]<div></div>Duration: 20:25 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.webm">Download --main.webm (74MB)</a></li><li><a href="https://toobnix.org/w/pea2Nfx82eZhBAN2zatdix">View on Toobnix</a></li></ul></div></div> -<!-- End manually added markers with Emacs-next 30.0.92-0.881d593 --> +# Talk -<!-- Automatically generated by `emacsconf-publish-before-page' --> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-hyperdrive"><source src="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 20:25 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--main.webm">Download --main.webm (74MB)</a></li><li><a href="https://toobnix.org/w/pea2Nfx82eZhBAN2zatdix">View on Toobnix</a></li><li><a href="https://youtu.be/zG9qFogCY2A">View on Youtube</a></li></ul></div></div> # Q&A @@ -37,6 +19,6 @@ Status: TO_CAPTION_QA 07:31.064 Q: blocklist or whitelist so I can make them containing useful information for only me while also being useful with in a public sense 11:41.024 Q: Could you comment on the "visualization" thing, (org visualization), and your experience with this type of content in buffers and the various possibilities (svg, etc.)? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-hyperdrive-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.opus"></audio></div><div></div>Duration: 22:34 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.opus">Download --answers.opus (7.7MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt">Download --answers.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.webm">Download --answers.webm (25MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-hyperdrive-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.opus"></audio></div><div></div>Duration: 22:34 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.opus">Download --answers.opus (7.7MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.vtt">Download --answers.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperdrive--new-in-hyperdriveel-quick-install-peer-graph-transclusion--joseph-turner--answers.webm">Download --answers.webm (25MB)</a></li><li><a href="https://toobnix.org/w/m5WTxCLDF37J2qgdge8gua">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=Cibcdy1AceM">View on Youtube</a></li></ul></div></div> # Description -<!-- End of emacsconf-publish-before-page --> +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/julia-after.md b/2024/info/julia-after.md index 9a2d879c..9a498298 100644 --- a/2024/info/julia-after.md +++ b/2024/info/julia-after.md @@ -212,122 +212,122 @@ </div><div class="transcript transcript-qanda"><a name="julia-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1> -<div class="transcript-heading">[[!template new="1" text="""Q: Do you have any suggestions for interactive debugging of Julia code in Emacs?""" start="00:00:00.089" video="qanda-julia" id="subtitle"]]</div>[[!template text="""... answer to that. I, I think the infrastructure for an""" start="00:00:00.089" video="qanda-julia" id="subtitle"]] -[[!template text="""ecosystem in Julia in general is as mature as other""" start="00:00:01.509" video="qanda-julia" id="subtitle"]] -[[!template text="""languages, and even debugger infiltrator themselves are""" start="00:00:01.509" video="qanda-julia" id="subtitle"]] -[[!template text="""not particularly well developed. And so I don't think""" start="00:00:01.509" video="qanda-julia" id="subtitle"]] -[[!template text="""there's much we can do about that right now. I think that it's""" start="00:00:15.853" video="qanda-julia" id="subtitle"]] -[[!template text="""unfortunate that most of the development for these type of""" start="00:00:21.570" video="qanda-julia" id="subtitle"]] -[[!template text="""tools is tightly linked to VS code. But even there, I don't""" start="00:00:21.570" video="qanda-julia" id="subtitle"]] -[[!template text="""think that there's much done in terms of interactive""" start="00:00:29.218" video="qanda-julia" id="subtitle"]] -[[!template text="""debugging. So I, yeah, I think this has to be worked on mostly""" start="00:00:29.218" video="qanda-julia" id="subtitle"]] -[[!template text="""on the Julia side first. And then probably Emacs can get""" start="00:00:36.866" video="qanda-julia" id="subtitle"]] -[[!template text="""something out of that. I know that there's development in""" start="00:00:43.820" video="qanda-julia" id="subtitle"]] -[[!template text="""debugger.jl itself for future releases to make it at least""" start="00:00:49.183" video="qanda-julia" id="subtitle"]] -[[!template text="""faster and more stable. But yeah, I think we're not there as""" start="00:00:49.183" video="qanda-julia" id="subtitle"]] -[[!template text="""Julia community itself. So let alone Emacs, integration""" start="00:00:58.809" video="qanda-julia" id="subtitle"]] -[[!template text="""with Emacs. The way I personally debug is mostly using,""" start="00:01:04.192" video="qanda-julia" id="subtitle"]] -[[!template text="""well, debugger and infiltrator with Julia REPL mode in""" start="00:01:08.286" video="qanda-julia" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Do you have any suggestions for interactive debugging of Julia code in Emacs?""" start="00:00:00.000" video="qanda-julia" id="subtitle"]]</div>[[!template text="""... answer to that. I, I think the infrastructure for an""" start="00:00:00.000" video="qanda-julia" id="subtitle"]] +[[!template text="""ecosystem in Julia in general is as mature as other""" start="00:00:05.320" video="qanda-julia" id="subtitle"]] +[[!template text="""languages, and even debugger infiltrator themselves are""" start="00:00:08.600" video="qanda-julia" id="subtitle"]] +[[!template text="""not particularly well developed. And so I don't think""" start="00:00:12.560" video="qanda-julia" id="subtitle"]] +[[!template text="""there's much we can do about that right now. I think that it's""" start="00:00:17.520" video="qanda-julia" id="subtitle"]] +[[!template text="""unfortunate that most of the development for these type of""" start="00:00:21.520" video="qanda-julia" id="subtitle"]] +[[!template text="""tools is tightly linked to VS code. But even there, I don't""" start="00:00:26.000" video="qanda-julia" id="subtitle"]] +[[!template text="""think that there's much done in terms of interactive""" start="00:00:31.760" video="qanda-julia" id="subtitle"]] +[[!template text="""debugging. So I, yeah, I think this has to be worked on mostly""" start="00:00:35.720" video="qanda-julia" id="subtitle"]] +[[!template text="""on the Julia side first. And then probably Emacs can get""" start="00:00:42.360" video="qanda-julia" id="subtitle"]] +[[!template text="""something out of that. I know that there's development in""" start="00:00:47.520" video="qanda-julia" id="subtitle"]] +[[!template text="""debugger.jl itself for future releases to make it at least""" start="00:00:51.240" video="qanda-julia" id="subtitle"]] +[[!template text="""faster and more stable. But yeah, I think we're not there as""" start="00:00:55.560" video="qanda-julia" id="subtitle"]] +[[!template text="""Julia community itself. So let alone Emacs, integration""" start="00:01:01.840" video="qanda-julia" id="subtitle"]] +[[!template text="""with Emacs. The way I personally debug is mostly using,""" start="00:01:06.880" video="qanda-julia" id="subtitle"]] +[[!template text="""well, debugger and infiltrator with Julia REPL mode in""" start="00:01:11.240" video="qanda-julia" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Can you call out something that Julia has that Emacs does not, and which could benefit Emacs?""" start="00:01:08.286" video="qanda-julia" id="subtitle"]]</div>[[!template text="""Emacs. The second question, can you call out something that""" start="00:01:08.286" video="qanda-julia" id="subtitle"]] -[[!template text="""Julia has that Emacs does not and which could benefit Emacs?""" start="00:01:18.009" video="qanda-julia" id="subtitle"]] -[[!template text="""Nothing stands out to me except the usual multi-threading""" start="00:01:26.852" video="qanda-julia" id="subtitle"]] -[[!template text="""and things like this. I don't necessarily see something""" start="00:01:28.848" video="qanda-julia" id="subtitle"]] -[[!template text="""that Julia has going on that DMX doesn't have, but I see some""" start="00:01:33.432" video="qanda-julia" id="subtitle"]] -[[!template text="""differences and approaches that I think are important,""" start="00:01:33.432" video="qanda-julia" id="subtitle"]] -[[!template text="""like the community. I think Julia is a very active and tight""" start="00:01:33.432" video="qanda-julia" id="subtitle"]] -[[!template text="""community. Julia uses Slack and is very, very active. I""" start="00:01:47.384" video="qanda-julia" id="subtitle"]] -[[!template text="""think he might say something like that, but it's maybe more""" start="00:01:54.093" video="qanda-julia" id="subtitle"]] -[[!template text="""on Reddit, IRC. JuliaCon is big and brings together lots and""" start="00:01:54.093" video="qanda-julia" id="subtitle"]] -[[!template text="""lots of people. And I think the sense of community is really""" start="00:01:59.078" video="qanda-julia" id="subtitle"]] -[[!template text="""powerful. It's very easy to essentially meet people that""" start="00:02:03.221" video="qanda-julia" id="subtitle"]] -[[!template text="""are interested in what we're building and interested in""" start="00:02:06.364" video="qanda-julia" id="subtitle"]] -[[!template text="""what we're doing and interested in Julian, our, you know,""" start="00:02:06.364" video="qanda-julia" id="subtitle"]] -[[!template text="""hacker spirit. I think Emacs is a very strong community.""" start="00:02:06.364" video="qanda-julia" id="subtitle"]] -[[!template text="""We're here on a Saturday talking about Emacs, which again""" start="00:02:21.228" video="qanda-julia" id="subtitle"]] -[[!template text="""proves that we are doing this. But I'd like to emphasize that""" start="00:02:21.228" video="qanda-julia" id="subtitle"]] -[[!template text="""the community is a really important aspect in Julia that I""" start="00:02:27.192" video="qanda-julia" id="subtitle"]] -[[!template text="""think we should double down on our side. The next question is""" start="00:02:27.192" video="qanda-julia" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Can you call out something that Julia has that Emacs does not, and which could benefit Emacs?""" start="00:01:15.200" video="qanda-julia" id="subtitle"]]</div>[[!template text="""Emacs. The second question, can you call out something that""" start="00:01:15.200" video="qanda-julia" id="subtitle"]] +[[!template text="""Julia has that Emacs does not and which could benefit Emacs?""" start="00:01:21.680" video="qanda-julia" id="subtitle"]] +[[!template text="""Nothing stands out to me except the usual multi-threading""" start="00:01:26.840" video="qanda-julia" id="subtitle"]] +[[!template text="""and things like this. I don't necessarily see something""" start="00:01:31.880" video="qanda-julia" id="subtitle"]] +[[!template text="""that Julia has going on that DMX doesn't have, but I see some""" start="00:01:36.120" video="qanda-julia" id="subtitle"]] +[[!template text="""differences and approaches that I think are important,""" start="00:01:42.480" video="qanda-julia" id="subtitle"]] +[[!template text="""like the community. I think Julia is a very active and tight""" start="00:01:45.840" video="qanda-julia" id="subtitle"]] +[[!template text="""community. Julia uses Slack and is very, very active. I""" start="00:01:49.760" video="qanda-julia" id="subtitle"]] +[[!template text="""think he might say something like that, but it's maybe more""" start="00:01:54.160" video="qanda-julia" id="subtitle"]] +[[!template text="""on Reddit, IRC. JuliaCon is big and brings together lots and""" start="00:01:56.560" video="qanda-julia" id="subtitle"]] +[[!template text="""lots of people. And I think the sense of community is really""" start="00:02:01.800" video="qanda-julia" id="subtitle"]] +[[!template text="""powerful. It's very easy to essentially meet people that""" start="00:02:05.160" video="qanda-julia" id="subtitle"]] +[[!template text="""are interested in what we're building and interested in""" start="00:02:10.480" video="qanda-julia" id="subtitle"]] +[[!template text="""what we're doing and interested in Julian, our, you know,""" start="00:02:12.920" video="qanda-julia" id="subtitle"]] +[[!template text="""hacker spirit. I think Emacs is a very strong community.""" start="00:02:16.000" video="qanda-julia" id="subtitle"]] +[[!template text="""We're here on a Saturday talking about Emacs, which again""" start="00:02:21.240" video="qanda-julia" id="subtitle"]] +[[!template text="""proves that we are doing this. But I'd like to emphasize that""" start="00:02:24.280" video="qanda-julia" id="subtitle"]] +[[!template text="""the community is a really important aspect in Julia that I""" start="00:02:29.680" video="qanda-julia" id="subtitle"]] +[[!template text="""think we should double down on our side. The next question is""" start="00:02:33.640" video="qanda-julia" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Is there a way to use lisp syntax with Julia, like hy for python or lisp flavoured erlang?""" start="00:02:36.797" video="qanda-julia" id="subtitle"]]</div>[[!template text="""about Lisp syntax with Julia, like what we can do in Python.""" start="00:02:36.797" video="qanda-julia" id="subtitle"]] -[[!template text="""I don't think that's, I don't, I am not aware of any package""" start="00:02:48.038" video="qanda-julia" id="subtitle"]] -[[!template text="""that does that. I would bet that there's something there. I""" start="00:02:48.038" video="qanda-julia" id="subtitle"]] -[[!template text="""think that that's possible. Indeed, there used to be a Lisp""" start="00:02:56.722" video="qanda-julia" id="subtitle"]] -[[!template text="""interpreter in Julia itself until the latest release. The""" start="00:02:59.243" video="qanda-julia" id="subtitle"]] -[[!template text="""syntax parsing was done with a Lisp, it was called TemtoList""" start="00:03:07.647" video="qanda-julia" id="subtitle"]] -[[!template text="""indeed. I think this got rid, get rid of this for our more""" start="00:03:07.647" video="qanda-julia" id="subtitle"]] -[[!template text="""Julia-based solution that is faster and with better code""" start="00:03:16.124" video="qanda-julia" id="subtitle"]] -[[!template text="""provenance. I think that it should be possible to use the""" start="00:03:16.124" video="qanda-julia" id="subtitle"]] -[[!template text="""metaprogramming features in Julia to change the structure""" start="00:03:25.430" video="qanda-julia" id="subtitle"]] -[[!template text="""of your syntax to be a Lispy syntax. I do want to emphasize""" start="00:03:25.430" video="qanda-julia" id="subtitle"]] -[[!template text="""that Julia is heavily inspired by Lisp, so I wouldn't be""" start="00:03:36.238" video="qanda-julia" id="subtitle"]] -[[!template text="""surprised if if something like this were possible.""" start="00:03:36.238" video="qanda-julia" id="subtitle"]] -[[!template text="""I have tried Julia Snail.""" start="00:03:49.309" video="qanda-julia" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Is there a way to use lisp syntax with Julia, like hy for python or lisp flavoured erlang?""" start="00:02:38.160" video="qanda-julia" id="subtitle"]]</div>[[!template text="""about Lisp syntax with Julia, like what we can do in Python.""" start="00:02:38.160" video="qanda-julia" id="subtitle"]] +[[!template text="""I don't think that's, I don't, I am not aware of any package""" start="00:02:46.520" video="qanda-julia" id="subtitle"]] +[[!template text="""that does that. I would bet that there's something there. I""" start="00:02:52.360" video="qanda-julia" id="subtitle"]] +[[!template text="""think that that's possible. Indeed, there used to be a Lisp""" start="00:02:56.880" video="qanda-julia" id="subtitle"]] +[[!template text="""interpreter in Julia itself until the latest release. The""" start="00:03:01.520" video="qanda-julia" id="subtitle"]] +[[!template text="""syntax parsing was done with a Lisp, it was called TemtoList""" start="00:03:08.080" video="qanda-julia" id="subtitle"]] +[[!template text="""indeed. I think this got rid, get rid of this for our more""" start="00:03:12.040" video="qanda-julia" id="subtitle"]] +[[!template text="""Julia-based solution that is faster and with better code""" start="00:03:18.680" video="qanda-julia" id="subtitle"]] +[[!template text="""provenance. I think that it should be possible to use the""" start="00:03:23.040" video="qanda-julia" id="subtitle"]] +[[!template text="""metaprogramming features in Julia to change the structure""" start="00:03:28.600" video="qanda-julia" id="subtitle"]] +[[!template text="""of your syntax to be a Lispy syntax. I do want to emphasize""" start="00:03:33.320" video="qanda-julia" id="subtitle"]] +[[!template text="""that Julia is heavily inspired by Lisp, so I wouldn't be""" start="00:03:38.160" video="qanda-julia" id="subtitle"]] +[[!template text="""surprised if if something like this were possible.""" start="00:03:43.880" video="qanda-julia" id="subtitle"]] +[[!template text="""I have tried Julia Snail.""" start="00:03:49.240" video="qanda-julia" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Have you tried the Julia Snail package for Emacs? It tries to be like SLY/SLIME for Common Lisp.""" start="00:03:51.168" video="qanda-julia" id="subtitle"]]</div>[[!template text="""So the next question is about Julia""" start="00:03:51.168" video="qanda-julia" id="subtitle"]] -[[!template text="""Snail. I found Julia REPL to be a little bit easier to set up""" start="00:03:51.270" video="qanda-julia" id="subtitle"]] -[[!template text="""and use. So I just settled on that. I should maybe revisit""" start="00:03:53.312" video="qanda-julia" id="subtitle"]] -[[!template text="""that. In particular, I use the Julia REPL with the vterm""" start="00:04:00.918" video="qanda-julia" id="subtitle"]] -[[!template text="""backend, which essentially makes a companion REPL to my""" start="00:04:03.720" video="qanda-julia" id="subtitle"]] -[[!template text="""scripts. And that works for me. I do think that the tooling""" start="00:04:03.720" video="qanda-julia" id="subtitle"]] -[[!template text="""uh, could be improved. I think there is definitely much room""" start="00:04:15.638" video="qanda-julia" id="subtitle"]] -[[!template text="""and I would like to see improvement in that area. Um, and, uh,""" start="00:04:17.399" video="qanda-julia" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Have you tried the Julia Snail package for Emacs? It tries to be like SLY/SLIME for Common Lisp.""" start="00:03:51.240" video="qanda-julia" id="subtitle"]]</div>[[!template text="""So the next question is about Julia""" start="00:03:51.240" video="qanda-julia" id="subtitle"]] +[[!template text="""Snail. I found Julia REPL to be a little bit easier to set up""" start="00:03:54.400" video="qanda-julia" id="subtitle"]] +[[!template text="""and use. So I just settled on that. I should maybe revisit""" start="00:03:58.200" video="qanda-julia" id="subtitle"]] +[[!template text="""that. In particular, I use the Julia REPL with the vterm""" start="00:04:02.840" video="qanda-julia" id="subtitle"]] +[[!template text="""backend, which essentially makes a companion REPL to my""" start="00:04:06.000" video="qanda-julia" id="subtitle"]] +[[!template text="""scripts. And that works for me. I do think that the tooling""" start="00:04:10.960" video="qanda-julia" id="subtitle"]] +[[!template text="""uh, could be improved. I think there is definitely much room""" start="00:04:15.440" video="qanda-julia" id="subtitle"]] +[[!template text="""and I would like to see improvement in that area. Um, and, uh,""" start="00:04:19.240" video="qanda-julia" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Is there a data inspector for a Julia REPL available that you can use in Emacs?""" start="00:04:22.940" video="qanda-julia" id="subtitle"]]</div>[[!template text="""so we have data inspector for Julia REPL.""" start="00:04:22.940" video="qanda-julia" id="subtitle"]] -[[!template text="""I don't think so. I don't, is there any data inspector""" start="00:04:32.043" video="qanda-julia" id="subtitle"]] -[[!template text="""in for, for the Julia REPL that we can use in Emacs?""" start="00:04:34.804" video="qanda-julia" id="subtitle"]] -[[!template text="""I'm not sure. I don't think so.""" start="00:04:43.223" video="qanda-julia" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Is there a data inspector for a Julia REPL available that you can use in Emacs?""" start="00:04:26.080" video="qanda-julia" id="subtitle"]]</div>[[!template text="""so we have data inspector for Julia REPL.""" start="00:04:26.080" video="qanda-julia" id="subtitle"]] +[[!template text="""I don't think so. I don't, is there any data inspector""" start="00:04:31.640" video="qanda-julia" id="subtitle"]] +[[!template text="""in for, for the Julia REPL that we can use in Emacs?""" start="00:04:37.280" video="qanda-julia" id="subtitle"]] +[[!template text="""I'm not sure. I don't think so.""" start="00:04:40.440" video="qanda-julia" id="subtitle"]] [[!template text="""I think the way I look at data is""" start="00:04:44.840" video="qanda-julia" id="subtitle"]] -[[!template text="""essentially ignoring Emacs when encoded. It's just using the""" start="00:04:47.840" video="qanda-julia" id="subtitle"]] +[[!template text="""essentially ignoring Emacs when encoded. It's just using the""" start="00:04:47.800" video="qanda-julia" id="subtitle"]] [[!template text="""REPL. And again, with Julia REPL. So I'm not aware of any""" start="00:04:50.520" video="qanda-julia" id="subtitle"]] -[[!template text="""specialized tool And again, maybe this is, again, a good""" start="00:04:54.760" video="qanda-julia" id="subtitle"]] -[[!template text="""moment to emphasize that tooling, the Julia community""" start="00:04:58.652" video="qanda-julia" id="subtitle"]] -[[!template text="""clusters around VS Code. And there is tools like the, pretty""" start="00:04:58.652" video="qanda-julia" id="subtitle"]] -[[!template text="""much all the work with VS Code, unfortunately. And while""" start="00:05:06.315" video="qanda-julia" id="subtitle"]] -[[!template text="""there's a very, very decent Julia mode and Julia repo mode""" start="00:05:12.578" video="qanda-julia" id="subtitle"]] -[[!template text="""and Julia snail, there's definitely, definitely room for""" start="00:05:12.578" video="qanda-julia" id="subtitle"]] -[[!template text="""improvement.""" start="00:05:12.578" video="qanda-julia" id="subtitle"]] +[[!template text="""specialized tool And again, maybe this is, again, a good""" start="00:04:56.840" video="qanda-julia" id="subtitle"]] +[[!template text="""moment to emphasize that tooling, the Julia community""" start="00:05:00.480" video="qanda-julia" id="subtitle"]] +[[!template text="""clusters around VS Code. And there is tools like the, pretty""" start="00:05:04.280" video="qanda-julia" id="subtitle"]] +[[!template text="""much all the work with VS Code, unfortunately. And while""" start="00:05:09.080" video="qanda-julia" id="subtitle"]] +[[!template text="""there's a very, very decent Julia mode and Julia repo mode""" start="00:05:14.200" video="qanda-julia" id="subtitle"]] +[[!template text="""and Julia snail, there's definitely, definitely room for""" start="00:05:17.760" video="qanda-julia" id="subtitle"]] +[[!template text="""improvement.""" start="00:05:21.440" video="qanda-julia" id="subtitle"]] -<div class="transcript-heading">[[!template new="1" text="""Q: Have you tried literate programming Julia (using Org babel or some other means) in Emacs?""" start="00:05:24.443" video="qanda-julia" id="subtitle"]]</div>[[!template text="""Next, we have a question about literate programming in""" start="00:05:24.443" video="qanda-julia" id="subtitle"]] -[[!template text="""Julia. I haven't done much of it with Org Babel or""" start="00:05:24.443" video="qanda-julia" id="subtitle"]] -[[!template text="""anything else. I haven't done much of it. I can say that Julia""" start="00:05:29.505" video="qanda-julia" id="subtitle"]] -[[!template text="""has developed a new iteration of notebooks called Pluto.""" start="00:05:35.827" video="qanda-julia" id="subtitle"]] -[[!template text="""Here I'm thinking about Jupyter notebooks. The Pluto""" start="00:05:46.090" video="qanda-julia" id="subtitle"]] -[[!template text="""notebooks for Julia try to remove a bunch of the pain points""" start="00:05:51.021" video="qanda-julia" id="subtitle"]] -[[!template text="""that Jupyter notebooks have, meaning you cannot easily""" start="00:05:51.021" video="qanda-julia" id="subtitle"]] -[[!template text="""commit them to Git or things like this.""" start="00:05:51.021" video="qanda-julia" id="subtitle"]] -[[!template text="""I haven't used them, but I know some people are very fond of""" start="00:06:06.450" video="qanda-julia" id="subtitle"]] -[[!template text="""them. And so I think that that's what some of the Julia""" start="00:06:06.450" video="qanda-julia" id="subtitle"]] -[[!template text="""community would use for notebooks. And I think they can""" start="00:06:09.872" video="qanda-julia" id="subtitle"]] -[[!template text="""interact with Emacs with no problem. And that would be a form""" start="00:06:15.315" video="qanda-julia" id="subtitle"]] -[[!template text="""of later programming. But if you can do it in Python, you can""" start="00:06:20.974" video="qanda-julia" id="subtitle"]] -[[!template text="""do it in Julia. I think there is no reason. And actually, you""" start="00:06:24.015" video="qanda-julia" id="subtitle"]] -[[!template text="""can take advantage of all this just-in-time or""" start="00:06:30.617" video="qanda-julia" id="subtitle"]] -[[!template text="""just-out-of-time compilation by keeping the same""" start="00:06:30.617" video="qanda-julia" id="subtitle"]] -[[!template text="""session. So I think it will be definitely a nice use case. So""" start="00:06:30.617" video="qanda-julia" id="subtitle"]] -[[!template text="""these are the questions that I see here. I'm going to scroll""" start="00:06:44.681" video="qanda-julia" id="subtitle"]] -[[!template text="""through the comments and see if there's something that I""" start="00:06:48.561" video="qanda-julia" id="subtitle"]] -[[!template text="""should say about comments. I'm excited people want to learn""" start="00:06:48.561" video="qanda-julia" id="subtitle"]] -[[!template text="""Julia. I have to say that if I want to do GPU computing""" start="00:06:56.228" video="qanda-julia" id="subtitle"]] -[[!template text="""nowadays, I find it much easier to do it with Julia than with""" start="00:06:58.990" video="qanda-julia" id="subtitle"]] -[[!template text="""CUDA. So I encourage people to look into that. And I do,""" start="00:06:58.990" video="qanda-julia" id="subtitle"]] -[[!template text="""again, I would like to share what makes me excited about""" start="00:07:11.758" video="qanda-julia" id="subtitle"]] -[[!template text="""Emacs, about this being open, being collaborative, being""" start="00:07:11.758" video="qanda-julia" id="subtitle"]] -[[!template text="""respectable with documentation is something that I find in""" start="00:07:11.758" video="qanda-julia" id="subtitle"]] -[[!template text="""Julia. So I think people that are excited about the same""" start="00:07:11.758" video="qanda-julia" id="subtitle"]] -[[!template text="""features will find a little bit of joy in working with Julia.""" start="00:07:27.367" video="qanda-julia" id="subtitle"]] -[[!template text="""I think I addressed what I have here. I don't know if there's""" start="00:07:38.214" video="qanda-julia" id="subtitle"]] -[[!template text="""anything else that I should add.""" start="00:07:40.189" video="qanda-julia" id="subtitle"]] -[[!template text="""It took me a minute to unmute there.""" start="00:07:51.718" video="qanda-julia" id="subtitle"]] -[[!template text="""No, I think that was awesome. And thank you so much.""" start="00:07:54.040" video="qanda-julia" id="subtitle"]] -[[!template text="""I guess I thought it would""" start="00:07:58.400" video="qanda-julia" id="subtitle"]] -[[!template text="""collapse that shared area on BBB, my mistake, on the stream,""" start="00:08:00.400" video="qanda-julia" id="subtitle"]] -[[!template text="""or I would have left it open. But in any case, no, I thought""" start="00:08:06.560" video="qanda-julia" id="subtitle"]] -[[!template text="""that was great. You did a great job of responding to all the""" start="00:08:12.400" video="qanda-julia" id="subtitle"]] +<div class="transcript-heading">[[!template new="1" text="""Q: Have you tried literate programming Julia (using Org babel or some other means) in Emacs?""" start="00:05:24.360" video="qanda-julia" id="subtitle"]]</div>[[!template text="""Next, we have a question about literate programming in""" start="00:05:24.360" video="qanda-julia" id="subtitle"]] +[[!template text="""Julia. I haven't done much of it with Org Babel or""" start="00:05:27.760" video="qanda-julia" id="subtitle"]] +[[!template text="""anything else. I haven't done much of it. I can say that Julia""" start="00:05:32.440" video="qanda-julia" id="subtitle"]] +[[!template text="""has developed a new iteration of notebooks called Pluto.""" start="00:05:37.080" video="qanda-julia" id="subtitle"]] +[[!template text="""Here I'm thinking about Jupyter notebooks. The Pluto""" start="00:05:40.720" video="qanda-julia" id="subtitle"]] +[[!template text="""notebooks for Julia try to remove a bunch of the pain points""" start="00:05:47.120" video="qanda-julia" id="subtitle"]] +[[!template text="""that Jupyter notebooks have, meaning you cannot easily""" start="00:05:55.360" video="qanda-julia" id="subtitle"]] +[[!template text="""commit them to Git or things like this.""" start="00:06:00.440" video="qanda-julia" id="subtitle"]] +[[!template text="""I haven't used them, but I know some people are very fond of""" start="00:06:03.640" video="qanda-julia" id="subtitle"]] +[[!template text="""them. And so I think that that's what some of the Julia""" start="00:06:09.280" video="qanda-julia" id="subtitle"]] +[[!template text="""community would use for notebooks. And I think they can""" start="00:06:13.560" video="qanda-julia" id="subtitle"]] +[[!template text="""interact with Emacs with no problem. And that would be a form""" start="00:06:16.880" video="qanda-julia" id="subtitle"]] +[[!template text="""of later programming. But if you can do it in Python, you can""" start="00:06:22.240" video="qanda-julia" id="subtitle"]] +[[!template text="""do it in Julia. I think there is no reason. And actually, you""" start="00:06:26.880" video="qanda-julia" id="subtitle"]] +[[!template text="""can take advantage of all this just-in-time or""" start="00:06:32.120" video="qanda-julia" id="subtitle"]] +[[!template text="""just-out-of-time compilation by keeping the same""" start="00:06:35.840" video="qanda-julia" id="subtitle"]] +[[!template text="""session. So I think it will be definitely a nice use case. So""" start="00:06:38.240" video="qanda-julia" id="subtitle"]] +[[!template text="""these are the questions that I see here. I'm going to scroll""" start="00:06:45.200" video="qanda-julia" id="subtitle"]] +[[!template text="""through the comments and see if there's something that I""" start="00:06:49.200" video="qanda-julia" id="subtitle"]] +[[!template text="""should say about comments. I'm excited people want to learn""" start="00:06:52.760" video="qanda-julia" id="subtitle"]] +[[!template text="""Julia. I have to say that if I want to do GPU computing""" start="00:06:57.320" video="qanda-julia" id="subtitle"]] +[[!template text="""nowadays, I find it much easier to do it with Julia than with""" start="00:07:02.520" video="qanda-julia" id="subtitle"]] +[[!template text="""CUDA. So I encourage people to look into that. And I do,""" start="00:07:06.400" video="qanda-julia" id="subtitle"]] +[[!template text="""again, I would like to share what makes me excited about""" start="00:07:11.760" video="qanda-julia" id="subtitle"]] +[[!template text="""Emacs, about this being open, being collaborative, being""" start="00:07:19.360" video="qanda-julia" id="subtitle"]] +[[!template text="""respectable with documentation is something that I find in""" start="00:07:23.800" video="qanda-julia" id="subtitle"]] +[[!template text="""Julia. So I think people that are excited about the same""" start="00:07:26.400" video="qanda-julia" id="subtitle"]] +[[!template text="""features will find a little bit of joy in working with Julia.""" start="00:07:31.000" video="qanda-julia" id="subtitle"]] +[[!template text="""I think I addressed what I have here. I don't know if there's""" start="00:07:35.280" video="qanda-julia" id="subtitle"]] +[[!template text="""anything else that I should add.""" start="00:07:42.000" video="qanda-julia" id="subtitle"]] +[[!template text="""It took me a minute to unmute there.""" start="00:07:43.560" video="qanda-julia" id="subtitle"]] +[[!template text="""No, I think that was awesome. And thank you so much.""" start="00:07:52.880" video="qanda-julia" id="subtitle"]] +[[!template text="""I guess I thought it would""" start="00:07:57.520" video="qanda-julia" id="subtitle"]] +[[!template text="""collapse that shared area on BBB, my mistake, on the stream,""" start="00:08:00.120" video="qanda-julia" id="subtitle"]] +[[!template text="""or I would have left it open. But in any case, no, I thought""" start="00:08:06.280" video="qanda-julia" id="subtitle"]] +[[!template text="""that was great. You did a great job of responding to all the""" start="00:08:12.360" video="qanda-julia" id="subtitle"]] [[!template text="""questions and comments. And thank you again so much for your""" start="00:08:15.080" video="qanda-julia" id="subtitle"]] -[[!template text="""talk and getting us all excited to learn Julia. Thank you.""" start="00:08:17.880" video="qanda-julia" id="subtitle"]] -[[!template text="""Enjoy EmacsConf. And again, thanks so much for attending,""" start="00:08:24.094" video="qanda-julia" id="subtitle"]] -[[!template text="""for being EmacsConf. Thank you.""" start="00:08:25.335" video="qanda-julia" id="subtitle"]] +[[!template text="""talk and getting us all excited to learn Julia. Thank you.""" start="00:08:17.840" video="qanda-julia" id="subtitle"]] +[[!template text="""Enjoy EmacsConf. And again, thanks so much for attending,""" start="00:08:23.200" video="qanda-julia" id="subtitle"]] +[[!template text="""for being EmacsConf. Thank you.""" start="00:08:27.760" video="qanda-julia" id="subtitle"]] </div>Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20julia%3A%20Exploring%20shared%20philosophies%20in%20Julia%20and%20Emacs) diff --git a/2024/info/julia-before.md b/2024/info/julia-before.md index cbab3774..e9d43975 100644 --- a/2024/info/julia-before.md +++ b/2024/info/julia-before.md @@ -9,18 +9,18 @@ Status: TO_CAPTION_QA # Talk -<div class="vid mainVideo"><video controls preload="none" id="mainVideo-julia"><source src="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 09:17 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--main.webm">Download --main.webm (17MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola.mp4">Download .mp4 (24MB)</a></li><li><a href="https://toobnix.org/w/eftuibSfVSWF4okoG5ChfC">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-julia"><source src="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 09:17 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--main.webm">Download --main.webm (17MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola.mp4">Download .mp4 (24MB)</a></li><li><a href="https://toobnix.org/w/eftuibSfVSWF4okoG5ChfC">View on Toobnix</a></li><li><a href="https://youtu.be/RTVXaDR697k">View on Youtube</a></li></ul></div></div> # Q&A <div class="vid qanda"><video controls preload="none" id="qanda-julia"><source src="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt" default />"""<track kind="chapters" label="Chapters" src="/2024/captions/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="qanda-julia" data=""" -00:00.089 Q: Do you have any suggestions for interactive debugging of Julia code in Emacs? -01:08.286 Q: Can you call out something that Julia has that Emacs does not, and which could benefit Emacs? -02:36.797 Q: Is there a way to use lisp syntax with Julia, like hy for python or lisp flavoured erlang? -03:51.168 Q: Have you tried the Julia Snail package for Emacs? It tries to be like SLY/SLIME for Common Lisp. -04:22.940 Q: Is there a data inspector for a Julia REPL available that you can use in Emacs? -05:24.443 Q: Have you tried literate programming Julia (using Org babel or some other means) in Emacs? - -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-julia-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.opus">Download --answers.opus (4.3MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.webm">Download --answers.webm (21MB)</a></li></ul></div></div> +00:00.000 Q: Do you have any suggestions for interactive debugging of Julia code in Emacs? +01:15.200 Q: Can you call out something that Julia has that Emacs does not, and which could benefit Emacs? +02:38.160 Q: Is there a way to use lisp syntax with Julia, like hy for python or lisp flavoured erlang? +03:51.240 Q: Have you tried the Julia Snail package for Emacs? It tries to be like SLY/SLIME for Common Lisp. +04:26.080 Q: Is there a data inspector for a Julia REPL available that you can use in Emacs? +05:24.360 Q: Have you tried literate programming Julia (using Org babel or some other means) in Emacs? + +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-julia-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.opus">Download --answers.opus (4.3MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-julia--exploring-shared-philosophies-in-julia-and-emacs--gabriele-bozzola--answers.webm">Download --answers.webm (21MB)</a></li><li><a href="https://toobnix.org/w/8j563gDQLnQ624TLeF1PYA">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=CkpadkAZOxs">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/learning-before.md b/2024/info/learning-before.md index 09dcd728..432d6c2d 100644 --- a/2024/info/learning-before.md +++ b/2024/info/learning-before.md @@ -28,13 +28,13 @@ Status: TO_CAPTION_QA 18:36.957 Summary 19:03.210 References -"""]]<div></div>Duration: 19:39 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--edited.webm">Download --edited.webm (57MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--main.webm">Download --main.webm (137MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--slides.pdf">Download --slides.pdf (9.5MB)</a></li><li><a href="https://toobnix.org/w/2FSZbvb7v5eZMRFL1f2DXP">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 19:39 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--edited.webm">Download --edited.webm (57MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--main.webm">Download --main.webm (137MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--slides.pdf">Download --slides.pdf (9.5MB)</a></li><li><a href="https://toobnix.org/w/2FSZbvb7v5eZMRFL1f2DXP">View on Toobnix</a></li><li><a href="https://youtu.be/VcHy8XnPia8">View on Youtube</a></li></ul></div></div> # Q&A <div class="vid qanda"><video controls preload="none" id="qanda-learning"><source src="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.vtt" default />"""<track kind="chapters" label="Chapters" src="/2024/captions/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="qanda-learning" data=""" 00:00.000 -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-learning-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.opus"></audio></div><div></div>Duration: 24:41 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers--edited.opus">Download --answers--edited.opus (20MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.opus">Download --answers.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.webm">Download --answers.webm (57MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-learning-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.opus"></audio></div><div></div>Duration: 24:41 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers--edited.opus">Download --answers--edited.opus (20MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.opus">Download --answers.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.webm">Download --answers.webm (57MB)</a></li><li><a href="https://toobnix.org/w/rnG2fEoHDDeNRSQYRRTrwR">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=IbI37PTJWQw">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/links-before.md b/2024/info/links-before.md index 29d08889..fadd060a 100644 --- a/2024/info/links-before.md +++ b/2024/info/links-before.md @@ -15,6 +15,6 @@ Status: TO_FOLLOW_UP 08:26.000 Exposing notes outside Emacs 10:38.000 Future Directions and Potential Improvements -"""]]<div></div>Duration: 11:21 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--main.webm">Download --main.webm (21MB)</a></li><li><a href="https://toobnix.org/w/qUW7dHGcHqXW5ZVKtwXspy">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 11:21 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--main.webm">Download --main.webm (21MB)</a></li><li><a href="https://toobnix.org/w/qUW7dHGcHqXW5ZVKtwXspy">View on Toobnix</a></li><li><a href="https://youtu.be/yp01TbmeWpc">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/literate-before.md b/2024/info/literate-before.md index 27e4caff..78a10476 100644 --- a/2024/info/literate-before.md +++ b/2024/info/literate-before.md @@ -26,7 +26,7 @@ Status: TO_CAPTION_QA 14:23.166 LP prose isn't comments 14:55.800 Summary -"""]]<div></div>Duration: 15:51 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--main.webm">Download --main.webm (42MB)</a></li><li><a href="https://toobnix.org/w/mNDvUTsr99KV59dkTsZEbb">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 15:51 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--main.webm">Download --main.webm (42MB)</a></li><li><a href="https://toobnix.org/w/mNDvUTsr99KV59dkTsZEbb">View on Toobnix</a></li><li><a href="https://youtu.be/9eEtPnTknhQ">View on Youtube</a></li></ul></div></div> # Q&A @@ -48,6 +48,6 @@ Status: TO_CAPTION_QA 18:38.936 Q: Have you used Cucumber/Gherkin/BDD and do you think it has a strong overlap to what you talked about here? 19:54.600 Q: What granularity are you looking for re your org files and contents, with respect to a codebase that it tangles to, or in non-coding contexts? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-literate-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.opus"></audio></div><div></div>Duration: 22:48 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.opus">Download --answers.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.webm">Download --answers.webm (56MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-literate-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.opus"></audio></div><div></div>Duration: 22:48 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.opus">Download --answers.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.webm">Download --answers.webm (56MB)</a></li><li><a href="https://toobnix.org/w/24cX5V5z399Ym6QJua8Xbn">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=18POj8u06xc">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/maxima-before.md b/2024/info/maxima-before.md index acbda4a4..84d8dad2 100644 --- a/2024/info/maxima-before.md +++ b/2024/info/maxima-before.md @@ -9,7 +9,7 @@ Status: TO_FOLLOW_UP # Talk -<div class="vid mainVideo"><video controls preload="none" id="mainVideo-maxima"><source src="https://media.emacsconf.org/2024/emacsconf-2024-maxima--emacs-eev-and-maxima-now--eduardo-ochs--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-maxima--emacs-eev-and-maxima-now--eduardo-ochs--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 30:34 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-maxima--emacs-eev-and-maxima-now--eduardo-ochs--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-maxima--emacs-eev-and-maxima-now--eduardo-ochs--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-maxima--emacs-eev-and-maxima-now--eduardo-ochs--main.webm">Download --main.webm (50MB)</a></li><li><a href="https://toobnix.org/w/6odX1p46GQ3XnnRPedgWRr">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-maxima"><source src="https://media.emacsconf.org/2024/emacsconf-2024-maxima--emacs-eev-and-maxima-now--eduardo-ochs--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-maxima--emacs-eev-and-maxima-now--eduardo-ochs--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 30:34 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-maxima--emacs-eev-and-maxima-now--eduardo-ochs--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-maxima--emacs-eev-and-maxima-now--eduardo-ochs--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-maxima--emacs-eev-and-maxima-now--eduardo-ochs--main.webm">Download --main.webm (50MB)</a></li><li><a href="https://toobnix.org/w/6odX1p46GQ3XnnRPedgWRr">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=vIGreLNBqSg">View on Youtube</a></li></ul></div></div> # Q&A diff --git a/2024/info/mcclim-before.md b/2024/info/mcclim-before.md index 02efd13d..70b4798e 100644 --- a/2024/info/mcclim-before.md +++ b/2024/info/mcclim-before.md @@ -15,7 +15,7 @@ Status: TO_CAPTION_QA 19:12.802 Inferior Lisp and McCLIM 29:10.964 Putting things together -"""]]<div></div>Duration: 34:29 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--main.webm">Download --main.webm (110MB)</a></li><li><a href="https://toobnix.org/w/pfYUAuMPmkTRfBZSgXFtbT">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 34:29 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--main.webm">Download --main.webm (110MB)</a></li><li><a href="https://toobnix.org/w/pfYUAuMPmkTRfBZSgXFtbT">View on Toobnix</a></li><li><a href="https://youtu.be/cuJ3qih7408">View on Youtube</a></li></ul></div></div> # Q&A @@ -27,6 +27,6 @@ Status: TO_CAPTION_QA 10:43.600 IELM 12:32.880 Q: Are we going to get a McCLIM LambdaMOO client? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-mcclim-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers.opus">Download --answers.opus (6.9MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers.webm">Download --answers.webm (33MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-mcclim-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers.opus">Download --answers.opus (6.9MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-mcclim--elisp-and-mcclim--screwlisp--answers.webm">Download --answers.webm (33MB)</a></li><li><a href="https://www.youtube.com/watch?v=ot57sGD0XTg">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/org-update-after.md b/2024/info/org-update-after.md index 65b01be7..9bfe0ff2 100644 --- a/2024/info/org-update-after.md +++ b/2024/info/org-update-after.md @@ -614,7 +614,7 @@ [[!template text="""If you don't like emails at all, you don't want to""" start="00:35:05.120" video="mainVideo-org-update" id="subtitle"]] [[!template text="""participate in the mailing list, it's not ideal, but I can""" start="00:35:07.280" video="mainVideo-org-update" id="subtitle"]] [[!template text="""still work with this. I am on IRC, I am on Matrix,""" start="00:35:11.880" video="mainVideo-org-update" id="subtitle"]] -[[!template text="""you can ping me, it's yantar2.""" start="00:35:16.006" video="mainVideo-org-update" id="subtitle"]] +[[!template text="""you can ping me, it's yantar92.""" start="00:35:16.006" video="mainVideo-org-update" id="subtitle"]] [[!template text="""We also have monthly meetup,""" start="00:35:19.800" video="mainVideo-org-update" id="subtitle"]] [[!template text="""so you can go and ask by voice,""" start="00:35:22.348" video="mainVideo-org-update" id="subtitle"]] [[!template text="""we can just talk in person, discuss your ideas,""" start="00:35:23.988" video="mainVideo-org-update" id="subtitle"]] diff --git a/2024/info/org-update-before.md b/2024/info/org-update-before.md index a5151606..886b43b2 100644 --- a/2024/info/org-update-before.md +++ b/2024/info/org-update-before.md @@ -39,7 +39,7 @@ Status: TO_CAPTION_QA 38:30.440 Got no free time, but still want to help? 39:12.997 Thank you -"""]]<div></div>Duration: 39:35 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.webm">Download --main.webm (88MB)</a></li><li><a href="https://toobnix.org/w/2DAHY6wCAXnpeSqwUHaidv">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 39:35 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-org-update">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--main.webm">Download --main.webm (88MB)</a></li><li><a href="https://toobnix.org/w/2DAHY6wCAXnpeSqwUHaidv">View on Toobnix</a></li><li><a href="https://youtu.be/2RJYcqJsldY">View on Youtube</a></li></ul></div></div> # Q&A @@ -54,6 +54,6 @@ Status: TO_CAPTION_QA 26:08.840 microemacs 29:31.920 Q: Is there/could there be a resource with which to recommend particularly well written codebases for review by others? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-org-update-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.opus"></audio></div><div></div>Duration: 30:39 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.opus">Download --answers.opus (16MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.webm">Download --answers.webm (68MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-org-update-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.opus"></audio></div><div></div>Duration: 30:39 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2024-org-update">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.opus">Download --answers.opus (16MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-org-update--the-future-of-org--ihor-radchenko--answers.webm">Download --answers.webm (68MB)</a></li><li><a href="https://toobnix.org/w/jXXgJdCBjM6C1MFqrmqFtQ">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=lqeOvzeYrd0">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/p-search-before.md b/2024/info/p-search-before.md index 50d1b382..fc7c8c39 100644 --- a/2024/info/p-search-before.md +++ b/2024/info/p-search-before.md @@ -23,7 +23,7 @@ Status: TO_CAPTION_QA 20:40.405 Importance 21:38.560 Complement or inverse -"""]]<div></div>Duration: 22:42 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--main.webm">Download --main.webm (63MB)</a></li><li><a href="https://toobnix.org/w/5dxttHedexYoCLxpT4VyMT">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 22:42 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--main.webm">Download --main.webm (63MB)</a></li><li><a href="https://toobnix.org/w/5dxttHedexYoCLxpT4VyMT">View on Toobnix</a></li><li><a href="https://youtu.be/WwgqbT2rnHI">View on Youtube</a></li></ul></div></div> # Q&A @@ -53,6 +53,6 @@ Status: TO_CAPTION_QA 40:04.120 Q: Do you think the Emacs being kinda slow will get in the way of being able to run a lot of scoring algorithms? 43:08.640 Boundary conditions -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-p-search-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers.opus">Download --answers.opus (25MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers.webm">Download --answers.webm (87MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-p-search-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers.opus">Download --answers.opus (25MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-p-search--psearch-a-local-search-engine-in-emacs--zac-romero--answers.webm">Download --answers.webm (87MB)</a></li><li><a href="https://toobnix.org/w/sh5Qns9GeqHwFwbTEMhckh">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=BrT0tlyUgMk">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/papers-before.md b/2024/info/papers-before.md index 7a55a409..46876d15 100644 --- a/2024/info/papers-before.md +++ b/2024/info/papers-before.md @@ -23,7 +23,7 @@ Status: TO_CAPTION_QA 07:09.720 Examples 07:41.240 Tags -"""]]<div></div>Duration: 10:07 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--images.zip">Download --images.zip</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--main.webm">Download --main.webm (35MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--slides.org">Download --slides.org</a></li><li><a href="https://toobnix.org/w/9LYtH8MWCMZ7N4DNteys17">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 10:07 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--images.zip">Download --images.zip</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--main.webm">Download --main.webm (35MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--slides.org">Download --slides.org</a></li><li><a href="https://toobnix.org/w/9LYtH8MWCMZ7N4DNteys17">View on Toobnix</a></li><li><a href="https://youtu.be/BKQcgpZS2GM">View on Youtube</a></li></ul></div></div> # Q&A @@ -37,6 +37,6 @@ Status: TO_CAPTION_QA 14:21.160 Q: Are you using zotra or org-ref? 14:45.120 Q: How much of this is tied to org-roam specifically? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-papers-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers.opus"></audio></div><div></div>Duration: 19:01 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers.opus">Download --answers.opus (9.9MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers.webm">Download --answers.webm (34MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-papers-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers.opus"></audio></div><div></div>Duration: 19:01 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers.opus">Download --answers.opus (9.9MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--answers.webm">Download --answers.webm (34MB)</a></li><li><a href="https://toobnix.org/w/tC5hnamhUC8PJrrMdXsLXJ">View on Toobnix</a></li><li><a href="https://youtu.be/ujUX4vC5TKg">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/pgmacs-before.md b/2024/info/pgmacs-before.md index b08174a2..1770f8ee 100644 --- a/2024/info/pgmacs-before.md +++ b/2024/info/pgmacs-before.md @@ -22,7 +22,7 @@ Status: TO_CAPTION_QA 09:36.250 Extending pgmacs 11:49.400 Conclusion -"""]]<div></div>Duration: 13:17 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--main.webm">Download --main.webm (43MB)</a></li></ul></div></div> +"""]]<div></div>Duration: 13:17 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--main.webm">Download --main.webm (43MB)</a></li><li><a href="https://youtu.be/BLs9gc_MLh0">View on Youtube</a></li></ul></div></div> # Q&A @@ -35,6 +35,6 @@ Status: TO_CAPTION_QA 16:53.850 Q: What do you use for the in-buffer tables? Vtable? 18:16.640 Integrating with Emacs 30? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-pgmacs-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.opus"></audio></div><div></div>Duration: 20:02 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.opus">Download --answers.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.webm">Download --answers.webm (38MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-pgmacs-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.opus"></audio></div><div></div>Duration: 20:02 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.opus">Download --answers.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.webm">Download --answers.webm (38MB)</a></li><li><a href="https://toobnix.org/w/6nLCiZDJECF1uP9fc54gJQ">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=RBS-A-2EboQ">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/project-before.md b/2024/info/project-before.md index 10db6b6a..dd34cb38 100644 --- a/2024/info/project-before.md +++ b/2024/info/project-before.md @@ -30,7 +30,7 @@ Status: TO_CAPTION_QA 19:49.640 Conclusions 20:34.520 Acknowledgements -"""]]<div></div>Duration: 21:38 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--main.webm">Download --main.webm (50MB)</a></li><li><a href="https://toobnix.org/w/dEiXtAr3p16hD3atJk78Ex">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 21:38 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--main.webm">Download --main.webm (50MB)</a></li><li><a href="https://toobnix.org/w/dEiXtAr3p16hD3atJk78Ex">View on Toobnix</a></li><li><a href="https://youtu.be/Wn38JmqyTbk">View on Youtube</a></li></ul></div></div> # Q&A @@ -47,6 +47,6 @@ Status: TO_CAPTION_QA 52:48.680 Org Mode versus Markdown 56:28.560 Raku -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-project-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers.opus"></audio></div><div></div>Duration: 1:02:41 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers.opus">Download --answers.opus (33MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers.webm">Download --answers.webm (94MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-project-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers.opus"></audio></div><div></div>Duration: 1:02:41 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers.opus">Download --answers.opus (33MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-project--managing-writing-project-metadata-with-orgmode--blaine-mooers--answers.webm">Download --answers.webm (94MB)</a></li><li><a href="https://toobnix.org/w/oNdkFWvoxz8mXXtBTCiruv">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=ZJUao__OjBw">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/regex-before.md b/2024/info/regex-before.md index 83e05a1e..b8bf89db 100644 --- a/2024/info/regex-before.md +++ b/2024/info/regex-before.md @@ -7,6 +7,6 @@ Status: TO_FOLLOW_UP -<div class="vid mainVideo"><video controls preload="none" id="mainVideo-regex"><source src="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 24:56 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--main.webm">Download --main.webm (199MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--slides.pdf">Download --slides.pdf</a></li><li><a href="https://toobnix.org/w/q6Mhn7TPtDi7acd6y3KtRf">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-regex"><source src="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 24:56 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--main.webm">Download --main.webm (199MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--slides.pdf">Download --slides.pdf</a></li><li><a href="https://toobnix.org/w/q6Mhn7TPtDi7acd6y3KtRf">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=v3Bl8VLaLqg">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/rust-before.md b/2024/info/rust-before.md index 303796ae..fcd31ab7 100644 --- a/2024/info/rust-before.md +++ b/2024/info/rust-before.md @@ -41,7 +41,7 @@ Status: TO_CAPTION_QA 19:07.247 Next directions 19:22.739 How to get involved -"""]]<div></div>Duration: 20:06 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--main.webm">Download --main.webm (46MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--slides.org">Download --slides.org</a></li><li><a href="https://toobnix.org/w/wYBo5m5jsiu1JUfcHzdhhu">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 20:06 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--main.webm">Download --main.webm (46MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--slides.org">Download --slides.org</a></li><li><a href="https://toobnix.org/w/wYBo5m5jsiu1JUfcHzdhhu">View on Toobnix</a></li><li><a href="https://youtu.be/629ct-cBwSI">View on Youtube</a></li></ul></div></div> # Q&A @@ -61,6 +61,6 @@ Status: TO_CAPTION_QA 14:20.100 Q: Is it possible to bootstrap with just the bytecode interpreter? 17:03.960 What would it take to bootstrap Guile in Rune? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-rust-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.opus"></audio></div><div></div>Duration: 19:15 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.opus">Download --answers.opus (9.8MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.webm">Download --answers.webm (42MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-rust-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.opus"></audio></div><div></div>Duration: 19:15 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.opus">Download --answers.opus (9.8MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-rust--an-experimental-emacs-core-in-rust--troy-hinckley--answers.webm">Download --answers.webm (42MB)</a></li><li><a href="https://toobnix.org/w/8n3SZoZGuon4C2tyHhAd2H">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=sBpTP0kJV-g">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/sat-open-before.md b/2024/info/sat-open-before.md index b6bd7c01..e0edf012 100644 --- a/2024/info/sat-open-before.md +++ b/2024/info/sat-open-before.md @@ -20,6 +20,6 @@ Status: TO_FOLLOW_UP 04:37.333 emacsconf-discuss updates 04:42.249 Let's go! -"""]]<div></div>Duration: 04:50 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sat-open--saturday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sat-open--saturday-opening-remarks--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sat-open--saturday-opening-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sat-open--saturday-opening-remarks--main.webm">Download --main.webm (16MB)</a></li><li><a href="https://toobnix.org/w/19MY8JrR2x6uJRdWAMgASK">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 04:50 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sat-open--saturday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sat-open--saturday-opening-remarks--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sat-open--saturday-opening-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sat-open--saturday-opening-remarks--main.webm">Download --main.webm (16MB)</a></li><li><a href="https://toobnix.org/w/19MY8JrR2x6uJRdWAMgASK">View on Toobnix</a></li><li><a href="https://youtu.be/YrlAfWfgvIQ">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/sharing-before.md b/2024/info/sharing-before.md index ab783b78..e3154751 100644 --- a/2024/info/sharing-before.md +++ b/2024/info/sharing-before.md @@ -28,6 +28,6 @@ Status: TO_FOLLOW_UP 18:06.166 Your secret sauce 19:04.933 Cons of YouTube -"""]]<div></div>Duration: 21:40 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sharing--so-you-want-to-be-an-emacsfluencer--gopar--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sharing--so-you-want-to-be-an-emacsfluencer--gopar--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sharing--so-you-want-to-be-an-emacsfluencer--gopar--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sharing--so-you-want-to-be-an-emacsfluencer--gopar--main.webm">Download --main.webm (64MB)</a></li><li><a href="https://toobnix.org/w/a8CwD5Svj5AeX3rdzLxyP7">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 21:40 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sharing--so-you-want-to-be-an-emacsfluencer--gopar--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sharing--so-you-want-to-be-an-emacsfluencer--gopar--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sharing--so-you-want-to-be-an-emacsfluencer--gopar--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sharing--so-you-want-to-be-an-emacsfluencer--gopar--main.webm">Download --main.webm (64MB)</a></li><li><a href="https://toobnix.org/w/a8CwD5Svj5AeX3rdzLxyP7">View on Toobnix</a></li><li><a href="https://youtu.be/0EF-jNk5kUY">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/shell-before.md b/2024/info/shell-before.md index 18b88f61..6003d0e5 100644 --- a/2024/info/shell-before.md +++ b/2024/info/shell-before.md @@ -23,6 +23,6 @@ Status: TO_FOLLOW_UP 34:21.128 Login shell 36:36.980 Resources -"""]]<div></div>Duration: 37:13 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-shell--emacs-as-a-shell--christopher-howard--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-shell--emacs-as-a-shell--christopher-howard--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-shell--emacs-as-a-shell--christopher-howard--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-shell--emacs-as-a-shell--christopher-howard--main.webm">Download --main.webm (87MB)</a></li><li><a href="https://toobnix.org/w/hJ11FBLcpEF4cMxMpJi3FE">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 37:13 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-shell--emacs-as-a-shell--christopher-howard--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-shell--emacs-as-a-shell--christopher-howard--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-shell--emacs-as-a-shell--christopher-howard--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-shell--emacs-as-a-shell--christopher-howard--main.webm">Download --main.webm (87MB)</a></li><li><a href="https://toobnix.org/w/hJ11FBLcpEF4cMxMpJi3FE">View on Toobnix</a></li><li><a href="https://youtu.be/jhX8wz8LeXE">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/students-before.md b/2024/info/students-before.md index 3fb83974..9358f56c 100644 --- a/2024/info/students-before.md +++ b/2024/info/students-before.md @@ -9,7 +9,7 @@ Status: TO_CAPTION_QA # Talk -<div class="vid mainVideo"><video controls preload="none" id="mainVideo-students"><source src="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 08:27 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--main.webm">Download --main.webm (15MB)</a></li><li><a href="https://toobnix.org/w/kBVhYEDpS6mvUPWLeQHGn1">View on Toobnix</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-students"><source src="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 08:27 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--main.webm">Download --main.webm (15MB)</a></li><li><a href="https://toobnix.org/w/kBVhYEDpS6mvUPWLeQHGn1">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=7WTIKv5g6mw">View on Youtube</a></li></ul></div></div> # Q&A @@ -25,6 +25,6 @@ Status: TO_CAPTION_QA 15:21.920 Q: Has using emacs led to expanded interest in programming/computer science? 16:40.672 Q: How does interaction with others work in technical terms? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-students-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.opus">Download --answers.opus (9.9MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.srt">Download --answers.srt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.tsv">Download --answers.tsv</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.txt">Download --answers.txt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.webm">Download --answers.webm (47MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-students-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.opus"></audio></div><div></div><div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.json">Download --answers.json</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.opus">Download --answers.opus (9.9MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.srt">Download --answers.srt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.tsv">Download --answers.tsv</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.txt">Download --answers.txt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-students--an-example-of-a-cohesive-student-workflow-in-emacs--daniel-pinkston--answers.webm">Download --answers.webm (47MB)</a></li><li><a href="https://toobnix.org/w/tL6A2r56AJ89K2yuxqQNXe">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=1enIJIW2P_w">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/sun-open-before.md b/2024/info/sun-open-before.md index e5461c70..ed155b5e 100644 --- a/2024/info/sun-open-before.md +++ b/2024/info/sun-open-before.md @@ -7,6 +7,6 @@ Status: All done -<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sun-open"><source src="https://media.emacsconf.org/2024/emacsconf-2024-sun-open--sunday-opening-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-sun-open--sunday-opening-remarks--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 04:37 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sun-open--sunday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sun-open--sunday-opening-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sun-open--sunday-opening-remarks--main.webm">Download --main.webm (18MB)</a></li></ul></div></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sun-open"><source src="https://media.emacsconf.org/2024/emacsconf-2024-sun-open--sunday-opening-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2024/captions/emacsconf-2024-sun-open--sunday-opening-remarks--main.vtt" default />"""<p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video><div></div>Duration: 04:37 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sun-open--sunday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sun-open--sunday-opening-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-sun-open--sunday-opening-remarks--main.webm">Download --main.webm (18MB)</a></li><li><a href="https://youtu.be/l8F4C77R4v8">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/theme-before.md b/2024/info/theme-before.md index 7d8e7874..8a945375 100644 --- a/2024/info/theme-before.md +++ b/2024/info/theme-before.md @@ -20,7 +20,7 @@ Status: TO_CAPTION_QA 07:19.780 How to pick a random color palette 08:12.070 XYZ -"""]]<div></div>Duration: 11:28 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--main.webm">Download --main.webm (30MB)</a></li><li><a href="https://toobnix.org/w/i1zSnandCQWd8688pyxhKr">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 11:28 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--main.webm">Download --main.webm (30MB)</a></li><li><a href="https://toobnix.org/w/i1zSnandCQWd8688pyxhKr">View on Toobnix</a></li><li><a href="https://youtu.be/GMzQs-pbueU">View on Youtube</a></li></ul></div></div> # Q&A @@ -30,6 +30,6 @@ Status: TO_CAPTION_QA 02:43.720 Q: One area I see emacs able to do themes that is "underused?" is changing the font 08:53.461 Q: Have you ever kept any of the random themes that were thrown up? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-theme-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers.opus"></audio></div><div></div>Duration: 09:51 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers--main--chapters.vtt">Download --answers--main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers--main.vtt">Download --answers--main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers.opus">Download --answers.opus (5.2MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers.webm">Download --answers.webm (16MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-theme-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers.opus"></audio></div><div></div>Duration: 09:51 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers--main--chapters.vtt">Download --answers--main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers--main.vtt">Download --answers--main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers.opus">Download --answers.opus (5.2MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-theme--my-journey-of-finding-and-creating-the-perfect-emacs-theme--metrowind--answers.webm">Download --answers.webm (16MB)</a></li><li><a href="https://toobnix.org/w/sqEJFjcC2KjnPZRmifpqLC">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=2xiyUItX5Gw">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/transducers-after.md b/2024/info/transducers-after.md index 8dbe9101..3995e5c1 100644 --- a/2024/info/transducers-after.md +++ b/2024/info/transducers-after.md @@ -397,7 +397,7 @@ Captioner: sachac [[!template text="""Hopefully the internet goes well. It's a nice Monday""" start="00:00:00.000" video="qanda-transducers" id="subtitle"]] [[!template text="""morning here in Tokyo.""" start="00:00:07.560" video="qanda-transducers" id="subtitle"]] [[!template text="""Are we connected all right?""" start="00:00:32.000" video="qanda-transducers" id="subtitle"]] -[[!template text="""Okay, I seem to be struggling still with my audio. 1 2nd""" start="00:00:37.880" video="qanda-transducers" id="subtitle"]] +[[!template text="""Okay, I seem to be struggling still with my audio. One second...""" start="00:00:37.880" video="qanda-transducers" id="subtitle"]] [[!template text="""calling. Yeah, you were muted for a moment there. Okay,""" start="00:00:40.880" video="qanda-transducers" id="subtitle"]] [[!template text="""there we are. Okay. All right. Sorry about that. I got a mute""" start="00:00:44.520" video="qanda-transducers" id="subtitle"]] [[!template text="""out my, my back office chatter. That's kind of distracting""" start="00:00:49.960" video="qanda-transducers" id="subtitle"]] diff --git a/2024/info/transducers-before.md b/2024/info/transducers-before.md index 01347152..bd531257 100644 --- a/2024/info/transducers-before.md +++ b/2024/info/transducers-before.md @@ -23,7 +23,7 @@ Status: TO_CAPTION_QA 20:00.520 Transducers in the wild - CSV 26:03.240 Issues and next steps -"""]]<div></div>Duration: 26:51 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--main.webm">Download --main.webm (52MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--silence.webm">Download --silence.webm</a></li></ul></div></div> +"""]]<div></div>Duration: 26:51 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--main.webm">Download --main.webm (52MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--silence.webm">Download --silence.webm</a></li><li><a href="https://youtu.be/0FTBMyLkPFw">View on Youtube</a></li></ul></div></div> # Q&A @@ -31,7 +31,7 @@ Status: TO_CAPTION_QA 01:09.920 Q: When I tried comparing transducers.el to cl-lib and dash (benchmark-compiled), I got the following results 05:40.840 Q: Do you know of any theoretical texts on transducers? 07:04.720 Q: Did you think about [compiler features, macros] viz your cl, fennel, elisp, porting of your transducers? -08:16.579 Q: Does t-buffer-read provide a lazy stream that\'s linewise, or charwise, or do something else entirely? +08:16.579 Q: Does t-buffer-read provide a lazy stream that's linewise, or charwise, or do something else entirely? 09:09.424 Q: Can the Elisp library be combined with the stream.el API or seq in general? 11:47.543 Q: How does one debug a t-comp expression? Can you single step and see intermediate results of the different statements you declare? 14:42.495 Q: Is there a path for transducers to enable elisp processing of otherwise overly large datasets as if just normal Emacs \"buffers\" (i.e. just pulling one thing at a time so essentially stream-like under the hood but buffer-like in interface), with none of the usual perf issues with a traditional buffer structure? @@ -39,7 +39,9 @@ Status: TO_CAPTION_QA 17:50.520 Q: Is the common lisp version ready for 'production' use? Is it complete enough and the API stable enough? 18:17.477 Q: Do we need a pre-written \"t-\" version for every already existing reducing function like + or is there a function to construct them from already defined reducer 2-arg functions? 20:26.320 Q: Is the compelling argument for transducers is that it's a better abstraction? +22:31.960 Q: Question about how the transducers video was made? Did you use Reveal.js? Do you have a pointer to the html hosted presentation? How did you generate the content for Reveal? +24:20.160 Q: From your investigations and tests so far, do you think there would be the necessity of transducers to eventually go down into the C level code for things like using them to solve "infinitely-big" buffer-like interfaces and such? -"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-transducers-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.opus"></audio></div><div></div>Duration: 25:24 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers--main--chapters.vtt">Download --answers--main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers--main.vtt">Download --answers--main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.opus">Download --answers.opus (13MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.webm">Download --answers.webm (57MB)</a></li></ul></div></div> +"""]]<div>Listen to just the audio:<br /><audio controls preload="none" id="qanda-transducers-audio" src="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.opus"></audio></div><div></div>Duration: 25:24 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers--main--chapters.vtt">Download --answers--main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers--main.vtt">Download --answers--main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.opus">Download --answers.opus (13MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-transducers--transducers-finally-ergonomic-data-processing-for-emacs--colin-woodbury--answers.webm">Download --answers.webm (57MB)</a></li><li><a href="https://toobnix.org/w/24KYPBvSmvYmsCUC9vAW7A">View on Toobnix</a></li><li><a href="https://www.youtube.com/watch?v=eiYXvm7pPuc">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/water-before.md b/2024/info/water-before.md index 8a53bd65..cf11c56d 100644 --- a/2024/info/water-before.md +++ b/2024/info/water-before.md @@ -17,6 +17,6 @@ Status: TO_FOLLOW_UP 09:05.724 Managing the plant 13:09.560 Conclusion -"""]]<div></div>Duration: 13:50 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--main.webm">Download --main.webm (37MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard.mp4">Download .mp4 (21MB)</a></li><li><a href="https://toobnix.org/w/kbwz39PxBuNKWcJfr5bGvW">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 13:50 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--main.json">Download --main.json</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard--main.webm">Download --main.webm (37MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-water--watering-my-digital-plant-with-emacs-timers--christopher-howard.mp4">Download .mp4 (21MB)</a></li><li><a href="https://toobnix.org/w/kbwz39PxBuNKWcJfr5bGvW">View on Toobnix</a></li><li><a href="https://youtu.be/dje40OyZuoo">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/info/writing-before.md b/2024/info/writing-before.md index c9ac9ad6..62663ff7 100644 --- a/2024/info/writing-before.md +++ b/2024/info/writing-before.md @@ -20,6 +20,6 @@ Status: TO_FOLLOW_UP 10:05.920 The project file 12:18.720 Conclusions -"""]]<div></div>Duration: 13:31 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main.webm">Download --main.webm (41MB)</a></li><li><a href="https://toobnix.org/w/5iSx9Hu5JvZE7j4UF82t4H">View on Toobnix</a></li></ul></div></div> +"""]]<div></div>Duration: 13:31 minutes<div class="files resources"><ul><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-writing--emacs-writing-studio--peter-prevos--main.webm">Download --main.webm (41MB)</a></li><li><a href="https://toobnix.org/w/5iSx9Hu5JvZE7j4UF82t4H">View on Toobnix</a></li><li><a href="https://youtu.be/sIoCeje53eU">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2024/organizers-notebook.md b/2024/organizers-notebook.md index d1144735..82a4e95f 100644 --- a/2024/organizers-notebook.md +++ b/2024/organizers-notebook.md @@ -16,21 +16,21 @@ You might also like the [general organizers' notebook](/organizers-notebook) and - [Draft CFP](#cfp) - [Draft schedule](#draft-schedule) - [Prepare shift calendar, ask people to sign up](#shifts) - - [Rerecord intros](#intros) -- [Check EmacsConf infrastructure](#orgc175c35):project: - - [BigBlueButton](#org7ebee47) - - [IRC web client](#orgebfb739) - - [IRC announcements](#org60a98ed) - - [Media](#org8c38fe6) - - [Publishing resources to the wiki](#orgd0749f1) - - [Publishing videos to the media server](#org11cdd06) - - [Playing videos, switching to windows](#org4f36836) - - [Etherpad](#orge8409fe) - - [Do a dry run](#org7d9f280) - - [Resizing](#org15ee37b) -- [Processes and notes](#org6ac6986) - - [Hosting](#org5e9b16c) - - [ERC](#org3b05f2e) + - [Record intros and opening remarks](#intros) +- [Check EmacsConf infrastructure](#check-emacsconf-infrastructure):project: + - [BigBlueButton](#check-emacsconf-infrastructure-bigbluebutton) + - [IRC web client](#check-emacsconf-infrastructure-irc-web-client) + - [IRC announcements](#check-emacsconf-infrastructure-irc-announcements) + - [Media](#check-emacsconf-infrastructure-media) + - [Publishing resources to the wiki](#check-emacsconf-infrastructure-publishing-resources-to-the-wiki) + - [Publishing videos to the media server](#check-emacsconf-infrastructure-publishing-videos-to-the-media-server) + - [Playing videos, switching to windows](#check-emacsconf-infrastructure-playing-videos-switching-to-windows) + - [Etherpad](#check-emacsconf-infrastructure-etherpad) + - [Do a dry run](#check-emacsconf-infrastructure-do-a-dry-run) + - [Resizing](#check-emacsconf-infrastructure-resizing) +- [Processes and notes](#processes-and-notes) + - [Hosting](#processes-and-notes-hosting) + - [ERC](#processes-and-notes-erc) - [Decisions](#decisions) - [BigBlueButton replacement (BBB)](#bbb) - [Support code](#support-code) @@ -235,9 +235,9 @@ emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X <a id="draft-schedule"></a> -## DONE Draft schedule +## TODO Draft schedule -<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="125" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="188" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/maxima" title="Emacs, eev, and Maxima - now!" data-slug="maxima"><title>11:30-11:50 Emacs, eev, and Maxima - now!</title><rect x="235" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(264,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">maxima</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="423" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(444,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="462" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(522,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="541" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(570,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(632,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(679,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="698" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="219" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(256,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="462" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(475,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(76,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title>10:30-11:15 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="141" y="15" opacity="0.8" width="70" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(209,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:30-11:45 Fun things with GNU Hyperbole</title><rect x="235" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(256,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:40- 1:55 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="439" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(460,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:15- 2:35 Literate programming for the 21st Century</title><rect x="494" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(523,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 2:55- 3:05 An example of a cohesive student workflow in Emacs</title><rect x="556" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(569,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:15- 3:35 So you want to be an Emacs-fluencer?</title><rect x="588" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(617,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="658" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="https://emacsconf.org/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:50- 5:00 Sunday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg> +<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-11:00 The Future of Org</title><rect x="125" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(185,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:20-11:30 Colour your Emacs with ease</title><rect x="219" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(232,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="423" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(444,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="462" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(522,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="541" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(570,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: quick install, peer graph, transclusion!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: quick install, peer graph, transclusion!</title><rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(632,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(679,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:35- 5:00 Emacs 30 Highlights</title><rect x="713" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="219" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(256,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="462" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(475,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/maxima" title="Emacs, eev, and Maxima - now!" data-slug="maxima"><title> 3:45- 4:05 Emacs, eev, and Maxima - now!</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">maxima</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(76,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title>10:30-11:15 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="141" y="15" opacity="0.8" width="70" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(209,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:30-11:45 Fun things with GNU Hyperbole</title><rect x="235" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(256,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:40- 1:55 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="439" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(460,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:15- 2:35 Literate programming for the 21st Century</title><rect x="494" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(523,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:00- 3:10 An example of a cohesive student workflow in Emacs</title><rect x="564" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(577,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:20- 3:40 So you want to be an Emacs-fluencer?</title><rect x="596" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="658" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="https://emacsconf.org/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:50- 5:00 Sunday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg> Legend: @@ -286,7 +286,7 @@ AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition) Saturday Dec 7 2024 -<table id="org7840df3"> +<table id="org66cc345"> <colgroup> @@ -374,7 +374,7 @@ Saturday Dec 7 2024 Sunday Dec 8 2024 -<table id="orgde5d7a1"> +<table id="org6a12bbd"> <colgroup> @@ -495,10 +495,10 @@ Interested in a shift? Please e-mail <mailto:emacsconf-org-private@gnu.org> and <a id="intros"></a> -## Rerecord intros +## Record intros and opening remarks -### TODO Redo pkal pronunciation :emacsconf:record: +### WAITING Redo pkal pronunciation :emacsconf:record: > kǎlud͡ʑert͡ʃit͡ɕ - zaeph’s guess is kah-loo-dyer-tshitch @@ -508,7 +508,12 @@ Interested in a shift? Please e-mail <mailto:emacsconf-org-private@gnu.org> and or you can ask questions through Etherpad or IRC. -### TODO Rerecord intro for Ihor Radchenko and Bastien Guerry +### WAITING Rerecord intro for Ihor Radchenko and Bastien Guerry + +zaeph’s tips: Ihor said his name in this presentation: <https://youtu.be/YA1RJxH4xfQ?t=1> +You’re rolling your Rs for both “Ihor” and “Guerry”, but I think both +are supposed to be smooth. For Bastien’s family name, it’s +“ghey-ree”. <https://paste.xinu.at/A9DFSN/> zaeph will probably pronounce this so much better than I can. =) @@ -529,9 +534,11 @@ zaeph will probably pronounce this so much better than I can. =) You can ask questions via Etherpad or IRC. -### TODO Rerecord Vincent Conus using psitransfer version :record:emacsconf: +### WAITING Rerecord Vincent Conus using psitransfer version :record:emacsconf: + +<file:///home/sacha/proj/emacsconf/2024/cache/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--name.ogg> -/ssh:orga@media.emacsconf.org:/srv/upload/emacsconf-papers/0b67be8b-10a1-48f8-9a7b-e73a4c46b9db +cuhn-us Next, we have "Writing academic papers in Org-Roam", by Vincent Conus. @@ -540,7 +547,7 @@ zaeph will probably pronounce this so much better than I can. =) or ask questions through Etherpad or IRC. -### TODO Rerecord Joseph Turner with new title :emacsconf:record: +### WAITING Rerecord Joseph Turner with new title :emacsconf:record: [2024-12-02 Emacs news](https://sachachua.com/blog/2024/12/2024-12-02-emacs-news/) @@ -553,7 +560,261 @@ New in hyperdrive.el: quick install, peer graph, transclusion! or you can ask questions through Etherpad or IRC. -<a id="orgc175c35"></a> +### STARTED Record sat-open remarks :emacsconf:record: + +Welcome to EmacsConf 2024, where we have fun +exploring how much we can do with a text editor. +It’s hard to give a general overview +of all the cool talks today and tomorrow, +so you can flip through the talks +and see what sparks your interests. +Don’t feel limited to one track or another. +The best parts of EmacsConf are the conversations. +The wiki has a page on how to watch and participate, +and I’ll give you a quick overview as well. +You can watch both streams at live.emacsconf.org +using free and open source software. +Using a streaming media player like mpv +seems to be the best way to watch in terms of performance +but there are also web-based players +just in case that’s all you’ve got. +The schedule shows the General track on top +and the Development track on the bottom, +so you can see what else is going on. +As you’re watching the talks, +you can refer to the schedule in another window. +Hover over the boxes to see the times and titles, +and click on the boxes in the schedule +to jump to the talk’s page for more details. +You can also get the schedule as an iCalendar file +or as an Org file in different time zones. +Many talks will be followed by +live Q&A web conferences with the speaker, +which will be done in BigBlueButton or BBB. +These are indicated with a solid border on the schedule +and by Q&A: BBB on the schedule page. +You can join the web conference room +by clicking on the BBB link + +on the schedule page or the talk’s webpage. +Then you can ask your questions yourself when the Q&A starts. +To improve performance, please keep your webcam off +and stay muted until it’s your turn to talk. +If you don’t like Javascript, +you can still ask questions via IRC +and the hosts can read them out for you. +We’re probably going to automatically switch +between talks and Q&A sessions, +so the transitions on the stream might be a little sudden. + +People in the BigBlueButton room +can continue the conversation +even after the talk moves off-stream. +and you can also reach out to the speakers +using the contact information on the talk page. + +Other talks will have Q&A via Etherpad or IRC, +depending on what the speakers prefer. +This is indicated in the schedule with a dashed border +and on the schedule page as well. +Some talks will have the Q&A after the event, +so you can add your questions to their Etherpad +or ask on IRC. +We’ll e-mail the speakers afterwards +and update the talk pages when they answer. +The schedule pages and track pages have quick shortcuts +so that you can find out more about talks, open the Etherpads, +and join the Q&A sessions. The watch page has more tips +on how to make the most of Q&A. +If you can, please add notes and ask questions +in the Etherpad for the talk. That makes it easier +for everyone to share their notes, +and speakers and hosts can read the questions from there. +We’ll copy the notes to the talk pages afterwards. +We have one pad for each talk, +so you can follow the links to get to the next one +or go back to the schedule and get the link from there. +If you have general feedback about +the conference itself, please put it in +pad.emacsconf.org/2024 , which is linked on each pad. +You can also use this as a general community message board +for things like Help Wanted. +Internet Relay Chat or IRC can be another great way +to be part of lots of conversations. +You can use chat.emacsconf.org to join the IRC channels +through your web browser. The tabs on the left can help you +switch between the different channels. +There’s #emacsconf-gen for the General track +and #emacsconf-dev for the Development track. +If you need to reach us, you can join #emacsconf-org +or e-mail emacsconf-org-private@gnu.org. +You can use #emacsconf for hallway conversations. +Of course, you can join any of these channels +with your favourite IRC client. +You can connect to irc.libera.chat +port 6697 with TLS. +Once again, we’re going to be streaming with open captions +for most of the talks this year, thanks to our speakers and +captioning volunteers. The captioned talks are indicated +on the schedule, and with any luck, we’ll be posting +transcripts on talk pages shortly after the talks start. +If you need additional accommodations, +please let us know in #emacsconf-org +and we’ll see if we can make things happen. +If something goes down, we’ll update status.emacsconf.org. +If it doesn’t look like we’ve noticed yet, +please let us know in the #emacsconf-org IRC channel, +where we will be quietly panicking. +In all of these conversations, please keep in mind +our guidelines for conduct. You can find them on the wiki, +They basically boil down to: please be nice. +If all goes well, the prerecorded talks and transcripts +should be available from the talk pages +shortly after they start playing, +and we’ll post the recordings of live talks +and Q&A sessions within the next month or so. +If you’d like to get an update, you can subscribe to +the emacsconf-discuss mailing list. +All right, let’s get going. +Leo is hosting the general track, +and Corwin hosting the development track. +The other volunteers and I will run around mostly backstage, +and you’ll probably meet us in the closing remarks. +That’s also where we get to thank +all the people and organizations +who make EmacsConf possible. +Thanks for coming to EmacsConf 2024. + + +### TODO Record sun-open remarks + +Welcome to the second day of EmacsConf 2024. +Today we have one track of talks, +so you don’t have to worry about +missing out on anything. +The best parts of EmacsConf are the conversations. +The wiki has a page on how to watch and participate, +and I’ll give you a quick overview as well. +You can watch the stream at live.emacsconf.org +using free and open source software. +Using a streaming media player like mpv +seems to be the best way to watch in terms of performance +but there are also web-based players +just in case that’s all you’ve got. +As you’re watching the talks, +you can refer to the schedule in another window. +Hover over the boxes to see the times and titles, +and click on the boxes in the schedule +to jump to the talk’s page for more details. +You can also get the schedule as an iCalendar file +or as an Org file in different time zones. + +Many talks will be followed by +live Q&A web conferences with the speaker, +which will be done in BigBlueButton or BBB. +These are indicated with a solid border on the schedule +and by Q&A: BBB on the schedule page. +You can join the web conference room +by clicking on the BBB link +on the schedule page or the talk’s webpage. +Then you can ask your questions yourself when the Q&A starts. +To improve performance, please keep your webcam off +and stay muted until it’s your turn to talk. +If you don’t like Javascript, +you can still ask questions via IRC +and the hosts can read them out for you. + +We’re probably going to automatically switch +between talks and Q&A sessions, +so the transitions on the stream might be a little sudden, +People in the BigBlueButton room +can continue the conversation +even after the talk moves off-stream, +and you can also reach out to the speakers +using the contact information on the talk page. + +Other talks will have Q&A via Etherpad or IRC, +depending on what the speakers prefer. +This is indicated in the schedule with a dashed border +and on the schedule page as well. +Please ask your questions in the recommended places +so that the speakers can easily see them. + +Some talks will have the Q&A after the event, +so you can add your questions to their Etherpad. +We’ll e-mail the speakers afterwards +and update the talk pages when they answer. + +We’re going to start Sunday morning +with more IRC/Etherpad Q&A +to try to get around +some of the bandwidth issues +that we noticed last year. + +The schedule pages and track pages have quick shortcuts +so that you can find out more about talks, open the Etherpads, +and join the Q&A sessions. The watch page has more tips +on how to make the most of Q&A. +If you can, please add notes and ask questions +in the Etherpad for the talk. That makes it easier +for everyone to share their notes, +and speakers and hosts can read the questions from there. +We’ll copy the notes to the talk pages afterwards. +We have one pad for each talk, +so you can follow the links to get to the next one +or go back to the schedule and get the link from there. +If you have general feedback about +the conference itself, please put it in +pad.emacsconf.org/2024 , which is linked on each pad. +You can also use this as a general community message board +for things like Help Wanted. +Internet Relay Chat or IRC can be another great way +to be part of lots of conversations. +You can use chat.emacsconf.org to join the IRC channels +through your web browser. The tabs on the left can help you +switch between the different channels. +Most discussions will be in +\#emacsconf-gen for the General track. +If you need to reach us, you can join #emacsconf-org +or e-mail emacsconf-org-private@gnu.org. +You can use #emacsconf for hallway conversations. +Of course, you can join any of these channels +with your favourite IRC client. +You can connect to irc.libera.chat +port 6697 with TLS. +Once again, we’re going to be streaming with open captions +for most of the talks this year, thanks to our speakers and +captioning volunteers. The captioned talks are indicated +on the schedule, and with any luck, we’ll be posting +transcripts on talk pages shortly after the talks start. +If you need additional accommodations, +please let us know in #emacsconf-org +and we’ll see if we can make things happen. +If something goes down, we’ll update status.emacsconf.org. +If it doesn’t look like we’ve noticed yet, +please let us know in the #emacsconf-org IRC channel, +where we will be quietly panicking. +In all of these conversations, please keep in mind +our guidelines for conduct. You can find them on the wiki, +They basically boil down to: please be nice. +If all goes well, the prerecorded talks and transcripts +should be available from the talk pages +shortly after they start playing, +and we’ll post the recordings of live talks +and Q&A sessions within the next month or so. +If you’d like to get an update, you can subscribe to +the emacsconf-discuss mailing list. +All right, let’s get going. +Leo Vivier is hosting the general track again today. +The other volunteers and I will run around mostly backstage, +and you’ll probably meet us in the closing remarks. +That’s also where we get to thank +all the people and organizations +who make EmacsConf even possible. +Thanks for coming to EmacsConf 2024. + + +<a id="check-emacsconf-infrastructure"></a> # TODO Check EmacsConf infrastructure :project: @@ -567,9 +828,10 @@ New in hyperdrive.el: quick install, peer graph, transclusion! - [ ] Streaming - [ ] Toobnix - [ ] YouTube +- [X] Mumble: Can join from my phone, can speak on stream -<a id="org7ebee47"></a> +<a id="check-emacsconf-infrastructure-bigbluebutton"></a> ## TODO BigBlueButton @@ -586,10 +848,11 @@ New in hyperdrive.el: quick install, peer graph, transclusion! Prerequisites: - BBB requires 4 CPU cores before it will install. bbb-conf.sh is fairly straightforward, so I guess we could spin down and then spin up again. + Image: Ubuntu 22.04 Steps: -1. Run the BBB installer: ~./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g ~ +1. Run the BBB installer: `./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g` 2. `sudo apt install bbb-playback-video` and then follow the instructions at [Server Customization | BigBlueButton](https://docs.bigbluebutton.org/3.0/administration/customize/#install-additional-recording-processing-formats) . 3. <https://docs.bigbluebutton.org/3.0/administration/customize/#mute-all-users-on-startup> @@ -766,11 +1029,6 @@ Print out the room IDs with <https://github.com/bigbluebutton/greenlight/issues/1925> -After about 6 seconds, the rails console quits. -502 bad gateway - -aaaaaaaaaah - ### DONE Check BBB audio from my phone @@ -828,7 +1086,7 @@ yq e -i “.public.app.clientTitle = \\”EmacsConf\\“” $TAR ### TODO Explore meeting layout? Default to custom, hosts will need to drag people’s webcam over if there’s a share -<a id="orgebfb739"></a> +<a id="check-emacsconf-infrastructure-irc-web-client"></a> ## IRC web client @@ -836,7 +1094,7 @@ yq e -i “.public.app.clientTitle = \\”EmacsConf\\“” $TAR ### DONE Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 7 and 8 -<a id="org60a98ed"></a> +<a id="check-emacsconf-infrastructure-irc-announcements"></a> ## IRC announcements @@ -847,7 +1105,7 @@ yq e -i “.public.app.clientTitle = \\”EmacsConf\\“” $TAR ### TODO Confirm automated IRC announcements from res -<a id="org8c38fe6"></a> +<a id="check-emacsconf-infrastructure-media"></a> ## Media @@ -861,19 +1119,19 @@ yq e -i “.public.app.clientTitle = \\”EmacsConf\\“” $TAR You can generate the index with `emacsconf-publish-update-media`. -<a id="orgd0749f1"></a> +<a id="check-emacsconf-infrastructure-publishing-resources-to-the-wiki"></a> ## TODO Publishing resources to the wiki ansible-playbook -i inventory.yml prod-playbook.yml –tags publish -<a id="org11cdd06"></a> +<a id="check-emacsconf-infrastructure-publishing-videos-to-the-media-server"></a> ## TODO Publishing videos to the media server -<a id="org4f36836"></a> +<a id="check-emacsconf-infrastructure-playing-videos-switching-to-windows"></a> ## Playing videos, switching to windows @@ -884,7 +1142,7 @@ ansible-playbook -i inventory.yml prod-playbook.yml –tags publish ### TODO Document how to get that set up again -<a id="orge8409fe"></a> +<a id="check-emacsconf-infrastructure-etherpad"></a> ## Etherpad @@ -895,7 +1153,7 @@ ansible-playbook -i inventory.yml prod-playbook.yml –tags publish ### TODO Generate the main index -<a id="org7d9f280"></a> +<a id="check-emacsconf-infrastructure-do-a-dry-run"></a> ## TODO Do a dry run @@ -906,7 +1164,7 @@ ansible-playbook -i inventory.yml prod-playbook.yml –tags publish ### TODO Test connecting to VNC and streaming via OBS -<a id="org15ee37b"></a> +<a id="check-emacsconf-infrastructure-resizing"></a> ## Resizing @@ -933,12 +1191,12 @@ front0: nanode meet: nanode -<a id="org6ac6986"></a> +<a id="processes-and-notes"></a> # Processes and notes -<a id="org5e9b16c"></a> +<a id="processes-and-notes-hosting"></a> ## Hosting @@ -946,7 +1204,7 @@ meet: nanode ### TODO Finalize host for dev track -<a id="org3b05f2e"></a> +<a id="processes-and-notes-erc"></a> ## ERC diff --git a/2024/organizers-notebook/index.org b/2024/organizers-notebook/index.org index 7b32b803..4c47e4b1 100644 --- a/2024/organizers-notebook/index.org +++ b/2024/organizers-notebook/index.org @@ -55,6 +55,9 @@ You might also like the [general organizers' notebook](/organizers-notebook) and #+TOC: headlines 2 * COMMENT Shortcuts +:PROPERTIES: +:CUSTOM_ID: shortcuts +:END: [[file:~/proj/emacsconf/wiki/organizers-notebook/index.org][Common notebook]] @@ -137,6 +140,9 @@ CLOSED: [2024-09-17 Tue 16:45] :END: **** Draft linked pages +:PROPERTIES: +:CUSTOM_ID: phases-draft-cfp-draft-linked-pages +:END: - [X] cfp - [X] submit page @@ -146,9 +152,13 @@ CLOSED: [2024-09-17 Tue 16:45] CLOSED: [2024-06-11 Tue 19:21] DEADLINE: <2024-06-14 Fri> :PROPERTIES: :CREATED: [024-06-03 Mon 10:1] +:CUSTOM_ID: phases-draft-cfp-check-with-other-organizers :END: **** DONE Post CFP in the usual places CLOSED: [2024-09-17 Tue 16:45] +:PROPERTIES: +:CUSTOM_ID: phases-draft-cfp-post-cfp-in-the-usual-places +:END: emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X ** TODO Draft schedule :PROPERTIES: @@ -482,6 +492,7 @@ Interested in a shift? Please e-mail [[mailto:emacsconf-org-private@gnu.org]] an SCHEDULED: <2024-12-03 Tue> :PROPERTIES: :CREATED: [2024-12-02 Mon 16:48] +:CUSTOM_ID: phases-record-intros-and-opening-remarks-redo-pkal-pronunciation :END: #+begin_quote @@ -496,6 +507,9 @@ or you can ask questions through Etherpad or IRC. #+end_example *** WAITING Rerecord intro for Ihor Radchenko and Bastien Guerry +:PROPERTIES: +:CUSTOM_ID: phases-record-intros-and-opening-remarks-rerecord-intro-for-ihor-radchenko-and-bastien-guerry +:END: zaeph's tips: Ihor said his name in this presentation: https://youtu.be/YA1RJxH4xfQ?t=1 @@ -514,6 +528,9 @@ or ask questions through Etherpad or IRC. #+end_example *** TODO Rerecord Eev intro with MAC-SYM-A pronunciation :record:emacsconf: +:PROPERTIES: +:CUSTOM_ID: phases-record-intros-and-opening-remarks-rerecord-eev-intro-with-mac-sym-a-pronunciation +:END: #+begin_quote My name in the intro is perfect, but Maxima comes from Macsyma, and it is @@ -530,6 +547,7 @@ You can ask questions via Etherpad or IRC. SCHEDULED: <2024-12-03 Tue> :PROPERTIES: :CREATED: [2024-12-02 Mon 19:48] +:CUSTOM_ID: phases-record-intros-and-opening-remarks-rerecord-vincent-conus-using-psitransfer-version :END: [[file:~/proj/emacsconf/2024/cache/emacsconf-2024-papers--writing-academic-papers-in-orgroam--vincent-conus--name.ogg]] @@ -548,6 +566,7 @@ or ask questions through Etherpad or IRC. *** WAITING Rerecord Joseph Turner with new title :emacsconf:record: :PROPERTIES: :CREATED: [2024-12-02 Mon 13:51] +:CUSTOM_ID: phases-record-intros-and-opening-remarks-rerecord-joseph-turner-with-new-title :END: [[https://sachachua.com/blog/2024/12/2024-12-02-emacs-news/][2024-12-02 Emacs news]] @@ -564,6 +583,7 @@ or you can ask questions through Etherpad or IRC. *** STARTED Record sat-open remarks :emacsconf:record: :PROPERTIES: :Effort: 0:30 +:CUSTOM_ID: phases-record-intros-and-opening-remarks-record-sat-open-remarks :END: :LOGBOOK: CLOCK: [2024-12-03 Tue 13:38]--[2024-12-04 Wed 08:48] => 19:10 @@ -692,6 +712,9 @@ all the people and organizations who make EmacsConf possible. Thanks for coming to EmacsConf 2024. *** TODO Record sun-open remarks +:PROPERTIES: +:CUSTOM_ID: phases-record-intros-and-opening-remarks-record-sun-open-remarks +:END: Welcome to the second day of EmacsConf 2024. Today we have one track of talks, @@ -819,6 +842,9 @@ who make EmacsConf even possible. Thanks for coming to EmacsConf 2024. * TODO [#A] Check EmacsConf infrastructure :project: +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure +:END: - [X] IRC - [ ] Streaming assets @@ -836,19 +862,27 @@ Thanks for coming to EmacsConf 2024. DEADLINE: <2024-11-15 Fri> :PROPERTIES: :CREATED: [2024-11-02 Sat 11:38] +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton :END: - Plan: spin up Linode temporarily: [[#bbb][BigBlueButton replacement]] *** Notes +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-notes +:END: **** install, sizes +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-notes-install-sizes +:END: [2024-11-19 Tue] Prerequisites: - BBB requires 4 CPU cores before it will install. bbb-conf.sh is fairly straightforward, so I guess we could spin down and then spin up again. + Image: Ubuntu 22.04 Steps: -1. Run the BBB installer: ~./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g ~ +1. Run the BBB installer: ~./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g~ 2. ~sudo apt install bbb-playback-video~ and then follow the instructions at [[https://docs.bigbluebutton.org/3.0/administration/customize/#install-additional-recording-processing-formats][Server Customization | BigBlueButton]] . 3. https://docs.bigbluebutton.org/3.0/administration/customize/#mute-all-users-on-startup @@ -868,7 +902,6 @@ linode-cli linodes resize 67329098 --type g6-nanode-1 --allow_auto_disk_resize t #+begin_src echo "notify-send 'Resizing BBB...'; linode-cli linodes resize 67329098 --type g6-nanode-1 --allow_auto_disk_resize true" | at 'now + 1 hour' - #+end_src Resize disk @@ -881,11 +914,15 @@ https://techdocs.akamai.com/linode-api/reference/post-resize-disk https://www.linode.com/community/questions/21942/how-can-i-schedule-resizing-a-linode **** backing up +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-notes-backing-up +:END: [2024-11-20 Wed] ssh root@66.175.208.243 'tar zcvf - /var/bigbluebutton /etc/bigbluebutton /root/greenlight-v3 /usr/local/bigbluebutton /usr/share/bbb-web' > bbb-backup.tar.gz **** DONE Set up bbb with new domain name CLOSED: [2024-11-28 Thu 10:00] :PROPERTIES: :Effort: 1:00 +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-notes-set-up-bbb-with-new-domain-name :END: :LOGBOOK: CLOCK: [2024-11-28 Thu 09:06]--[2024-11-28 Thu 09:17] => 0:11 @@ -929,6 +966,7 @@ SCHEDULED: <2024-11-28 Thu> :PROPERTIES: :CREATED: [2024-11-28 Thu 11:12] :Effort: 0:30 +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-set-up-moderator-access-codes-for-all-the-meeting-rooms-and-make-it-so-people-can-start-the-meeting :END: :LOGBOOK: CLOCK: [2024-11-28 Thu 12:13]--[2024-11-28 Thu 13:10] => 0:57 @@ -1009,6 +1047,7 @@ CLOSED: [2024-11-28 Thu 10:59] SCHEDULED: <2024-11-28 Thu> :PROPERTIES: :CREATED: [2024-11-28 Thu 10:12] :Effort: 1:00 +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-figure-out-what-s-going-on-with-bbb :END: :LOGBOOK: CLOCK: [2024-11-28 Thu 10:47]--[2024-11-28 Thu 10:59] => 0:12 @@ -1093,13 +1132,18 @@ https://github.com/bigbluebutton/greenlight/issues/1925 CLOSED: [2024-11-28 Thu 13:03] SCHEDULED: <2024-11-21 Thu> :PROPERTIES: :CREATED: [2024-11-19 Tue 15:39] +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-check-bbb-audio-from-my-phone :END: *** DONE Create accounts for corwin CLOSED: [2024-11-28 Thu 10:11] +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-create-accounts-for-corwin +:END: *** CANCELLED [#C] Customize BBB to process at night CLOSED: [2024-11-27 Wed 13:17] :PROPERTIES: :CREATED: [2024-11-20 Wed 12:11] +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-customize-bbb-to-process-at-night :END: https://docs.bigbluebutton.org/3.0/administration/customize/ @@ -1117,40 +1161,75 @@ and do systemctl daemon-reload. This file overrides the timing of when systemd r - [[file:~/sync/orgzly/Inbox.org::*Set up rooms and assign as properties][Set up rooms and assign as properties]] *** TODO [#C] Change background presentation +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-change-background-presentation +:END: https://docs.bigbluebutton.org/3.0/administration/customize/#change-the-default-presentation *** TODO [#C] Modify landing page +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-modify-landing-page +:END: /var/www/bigbluebutton-default/assets/index.html keep backup copy as it will be overwritten when bbb-conf is called *** TODO [#C] Change default welcome message :PROPERTIES: :Effort: 0:30 +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-change-default-welcome-message :END: :LOGBOOK: CLOCK: [2024-11-20 Wed 12:21]--[2024-11-20 Wed 12:46] => 0:25 :END: https://docs.bigbluebutton.org/3.0/administration/customize/#change-the-default-welcome-message *** TODO [#C] Change html5 title +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-change-html5-title +:END: /usr/share/bigbluebutton/html5-client/private/config/settings.yml TARGET=/usr/share/bigbluebutton/html5-client/private/config/settings.yml yq e -i ".public.app.clientTitle = \"EmacsConf\"" $TARGET *** TODO [#C] Try live captions +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-try-live-captions +:END: https://docs.bigbluebutton.org/3.0/administration/customize/#enable-live-captions *** TODO Explore meeting layout? Default to custom, hosts will need to drag people's webcam over if there's a share +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-explore-meeting-layout-default-to-custom-hosts-will-need-to-drag-people-s-webcam-over-if-there-s-a-share +:END: ** IRC web client +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-web-client +:END: *** DONE Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 7 and 8 CLOSED: [2024-11-27 Wed 13:18] +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-web-client-ask-libera-chat-to-increase-connections-allowed-from-chat-emacsconf-org-on-dec-7-and-8 +:END: ** IRC announcements +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-announcements +:END: *** DONE Confirm manual IRC announcements CLOSED: [2024-11-02 Sat 12:05] +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-announcements-confirm-manual-irc-announcements +:END: *** TODO Confirm automated IRC announcements from res +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-announcements-confirm-automated-irc-announcements-from-res +:END: ** Media +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-media +:END: *** TODO Switch public media to unprotected root before the conference SCHEDULED: <2024-11-29 Fri> :PROPERTIES: :CREATED: [2024-11-12 Tue 14:18] +:CUSTOM_ID: check-emacsconf-infrastructure-media-switch-public-media-to-unprotected-root-before-the-conference :END: 1. Clear public media directory. @@ -1159,27 +1238,53 @@ SCHEDULED: <2024-11-29 Fri> You can generate the index with =emacsconf-publish-update-media=. ** TODO Publishing resources to the wiki +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-publishing-resources-to-the-wiki +:END: ansible-playbook -i inventory.yml prod-playbook.yml --tags publish ** TODO Publishing videos to the media server +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-publishing-videos-to-the-media-server +:END: ** Playing videos, switching to windows +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows +:END: *** TODO Generate test videos for everything +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows-generate-test-videos-for-everything +:END: *** TODO Document how to get that set up again +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows-document-how-to-get-that-set-up-again +:END: ** Etherpad +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-etherpad +:END: *** TODO Generate pads for all the talks +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-etherpad-generate-pads-for-all-the-talks +:END: *** TODO Generate the main index +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-etherpad-generate-the-main-index +:END: ** TODO Do a dry run SCHEDULED: <2024-11-22 Fri> :PROPERTIES: :CREATED: [2024-11-02 Sat 11:40] +:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run :END: *** DONE Generate all the test assets CLOSED: [2024-11-06 Wed 18:52] :PROPERTIES: :Effort: 0:15 +:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run-generate-all-the-test-assets :END: :LOGBOOK: CLOCK: [2024-11-06 Wed 18:47]--[2024-11-06 Wed 18:52] => 0:05 @@ -1188,8 +1293,12 @@ CLOCK: [2024-11-06 Wed 18:47]--[2024-11-06 Wed 18:52] => 0:05 SCHEDULED: <2024-11-07 Thu> :PROPERTIES: :CREATED: [2024-11-06 Wed 18:52] +:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run-test-connecting-to-vnc-and-streaming-via-obs :END: ** Resizing +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-resizing +:END: live0: 64GB front0: 32GB @@ -1199,6 +1308,7 @@ meet: 64GB SCHEDULED: <2024-12-06 Fri> :PROPERTIES: :CREATED: [2024-11-22 Fri 13:46] +:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-nodes-before-production :END: live0: 64GB @@ -1209,6 +1319,7 @@ meet: 64GB SCHEDULED: <2024-12-08 Sun> :PROPERTIES: :CREATED: [2024-11-22 Fri 13:46] +:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-nodes-after-production :END: live0: nanode @@ -1217,12 +1328,25 @@ front0: nanode SCHEDULED: <2024-12-10 Tue> :PROPERTIES: :CREATED: [2024-11-22 Fri 13:47] +:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-meet-after-production :END: meet: nanode * Processes and notes +:PROPERTIES: +:CUSTOM_ID: processes-and-notes +:END: ** Hosting +:PROPERTIES: +:CUSTOM_ID: processes-and-notes-hosting +:END: *** TODO Finalize host for dev track +:PROPERTIES: +:CUSTOM_ID: processes-and-notes-hosting-finalize-host-for-dev-track +:END: ** ERC +:PROPERTIES: +:CUSTOM_ID: processes-and-notes-erc +:END: Some convenient commands are defined in emacsconf-el:emacsconf-erc.el. diff --git a/2024/report.md b/2024/report.md new file mode 100644 index 00000000..3064515c --- /dev/null +++ b/2024/report.md @@ -0,0 +1,199 @@ +<!-- report.md is exported report.org, please modify that instead. --> +[[!sidebar content=""]] + +This file is automatically exported from [/2024/report.org](/2024/report.org). You might prefer to navigate this as an Org file instead. To do so, [clone the wiki repository](https://emacsconf.org/edit/). +[[!meta title="EmacsConf 2024 Report"]] +[[!date "2024-12-28"]] +[[!meta copyright="Copyright © 2024 Sacha Chua"]] + + +# Table of Contents + +- [Overview](#overview) +- [Technical details](#technical-details) +- [Process improvements](#process-improvements) +- [Finances](#finances) +- [Acknowledgements](#acknowledgements) +- [Updates](#updates) + + +<a id="overview"></a> + +# Overview + +EmacsConf 2024 was held on December 7 and 8 as an online conference. We had 31 talks across two tracks (general and development), with a total of 11 hours of presentations, 8 hours of Q&A via web conference, and lots of lively discussion across IRC and Etherpad. Throughout the conference, there were up to 430 people watching via the livestream, and more than 80 people joined the live Q&A web conferences. There were also satellite events in Switzerland and Slovenia where people watched together. + +Thanks to volunteers who edited captions for pre-recorded videos, we were able to broadcast all the early submissions with open captions. This not only made talks more accessible while watching the livestreams, but it also made it easier to enjoy the talks in noisy environments or to catch up on talks. People said: + +We posted pre-recorded videos and transcripts on talk pages shortly after they started streaming, and the recordings of live talks and Q&A sessions are now also available. We've also archived questions and comments from IRC and Etherpad onto the talk pages. You can find the talk pages at <https://emacsconf.org/2024/talks> . The videos are also available on Toobnix (<https://toobnix.org/c/emacsconf/videos>) and YouTube (<https://www.youtube.com/@EmacsConf>). + +Overall, people said: + +- "It's the first time I've been able to attend the whole conference live, and it's been great fun, I've had a blast :)" +- "Thanks again to the organizers, and presenters for many great talks, and participants for interesting exchanges, see you all next year (fingers crossed)" +- "EmacsConf is one of the big highlights of my year every year." + + +<a id="technical-details"></a> + +# Technical details + +EmacsConf is committed to software freedom. We used the following tools +for this year's conference: + +- [Org Mode](https://orgmode.org/), [Emacs](https://www.gnu.org/software/emacs/): organization and collaboration +- [MPV](https://mpv.io): video player +- [BigBlueButton](https://bigbluebutton.org/): web conference +- [OBS Studio](https://obsproject.com/): streaming +- [TigerVNC](https://tigervnc.org/): controlling the remote server +- [Icecast](https://icecast.org/): streaming WEBM +- [Internet Relay Chat via Libera.chat](https://libera.chat/), [The Lounge](https://thelounge.chat/), and [ERC](https://www.gnu.org/software/emacs/erc.html): conversation +- [Mumble](https://www.mumble.info/): audio conferencing for coordination +- [Etherpad](https://etherpad.org/): questions and notes +- [Ikiwiki](https://ikiwiki.info/): website +- [PsiTransfer](https://github.com/psi-4ward/psitransfer): uploads +- [FFmpeg](https://ffmpeg.org): video and audio processing +- [Audacity](https://www.audacityteam.org/): audio editing +- [WhisperX](https://github.com/m-bain/whisperX): captioning +- [Aeneas](https://www.readbeyond.it/aeneas/): forced alignment to get timestamps +- [subed-mode](https://codeberg.org/sachac/subed): captioning +- [Git](https://git-scm.com/): version control +- [Mailman](https://list.org/): mailing lists; service provided by the Free Software Foundation +- [Nginx](https://www.nginx.com/): web server; server provided by the Free Software Foundation +- [Ansible](https://www.ansible.com/): system configuration + +You can find out more about our infrastructure at +<https://emacsconf.org/infra> . + + +<a id="process-improvements"></a> + +# Process improvements + +This year we tried out the following experiments: + +- BigBlueButton 3.0: We set up our own server since the previous donated server was decommissioned. + Using BBB 3.0 let us customize the on-screen layout and export recorded videos easily. +- We added an open mic session and moved some of our closing remarks earlier. This let people share last-minute updates and also allowed us to wrap up the conference more promptly. +- We used WhisperX for the first draft of captions for improved performance. +- Automatic normalization with ffmpeg-normalize didn't work out, so we manually normalized the video files. +- We needed to upgrade MPV to v0.38 in order to deal with palette smearing. +- In addition to livestreaming to live.emacsconf.org via Icecast, we also livestreamed via YouTube. We were unable to livestream via Toobnix due to technical difficulties. +- We experimented with upgrading the streaming server to a 64GB 32core dedicated CPU server, but this additional capacity was not needed. We downgraded back to 64GB 16core shared. +- We updated the wiki layout to include sticky videos on the talk pages. +- We developed more tools for copying IRC messages to the clipboard, checking and adjusting subtitle timing, and cropping media files. +- We offered stickers and pins as tokens of appreciation. + +For in-depth notes, see <https://sachachua.com/blog/2024/12/emacsconf-2024-notes/> . + +Next year we're looking forward to building on top of even more documentation and automation. Fun! + + +<a id="finances"></a> + +# Finances + +Costs (USD, not including 13% tax): + +<table> + + +<colgroup> +<col class="org-right"> + +<col class="org-left"> +</colgroup> +<tbody> +<tr> +<td class="org-right">52.54</td> +<td class="org-left">Extra costs for hosting in December</td> +</tr> + +<tr> +<td class="org-right">3.11</td> +<td class="org-left">Extra costs for BBB testing in November</td> +</tr> + +<tr> +<td class="org-right">120</td> +<td class="org-left">Hosting costs year-round (two Linode nanodes)</td> +</tr> +</tbody> +</table> + +Total of USD 175.65 + tax, or USD 198.48 for 2024. + +Thanks to people who donated through the [Working +Together](https://www.fsf.org/working-together/fund) program of the Free Software Foundation, +we are well-equipped to cover those costs for this +year. + + +<a id="acknowledgements"></a> + +# Acknowledgements + +We would like to thank the following: + +- Thank you to all the speakers, volunteers, and participants, and to all those other people in our lives who make it possible through time and support. +- Thanks to Leo Vivier and Corwin Brust for hosting the sessions, and to FlowyCoder for checking people in. +- Thanks to our proposal review volunteers James Howell, JC Helary, and others for helping with the early acceptance process. +- Thanks to our captioning volunteers: Mark Lewin, Rodrigo Morales, Anush, annona, and James Howell, and some speakers who captioned their own talks. +- Thanks to Leo Vivier for fiddling with the audio to get things nicely synced. +- Thanks to volunteers who kept the mailing lists free from spam. +- Thanks to Bhavin Gandhi, Christopher Howard, Joseph Turner, and screwlisp for quality-checking. +- Thanks to shoshin for the music. +- Thanks to Amin Bandali for help with infrastructure and communication. +- Thanks to Ry P for the server that we're using for OBS streaming and for processing videos. +- Thanks to the Free Software Foundation for Emacs itself, the mailing lists, the media.emacsconf.org server, and handling donations on our behalf through the FSF Working Together program. <https://www.fsf.org/working-together/fund> +- Thanks to the many users and contributers and project teams that create all the awesome free software we use, especially: BigBlueButton, Etherpad, Icecast, OBS, TheLounge, libera.chat, ffmpeg, OpenAI Whisper, WhisperX, the aeneas forced alignment tool, PsiTransfer, subed, and many, many other tools and services we used to prepare and host this years conference +- Thanks to everyone! + + +<a id="updates"></a> + +# Updates + +If you would like to get updates and announcements, you can sign up at +<https://lists.gnu.org/mailman/listinfo/emacsconf-discuss> . + +Please keep an eye out for interesting things that +might be fun to present at next year's EmacsConf. +We'd love to get talks at all levels of experience +and about lots of different kinds of interests. +Previous speakers wrote: + +- "I always got the feeling of being heard and + welcome in spite of the vast distances and + cultures separating us. This community always + feels like it is open to new members any time. + With regards to the conference process also, it + was a microcosm of the bigger community and + hence I got the same feeling. You didn't have to + be an expert or a person who's been using emacs + for a long time to talk about something useful + for the community. Even the struggles of a noob + may be useful for someone else in the + community." +- "I can honestly say though that I had a great + time putting my talk together. I hope people + will have a good time listening to it. Now that + the work is over, I can say it was worth it. so + I recommend it warmly" +- "This has been an all-around fantastic + experience, both as a first-time attendee and + speaker. many thanks to the volunteers who make + emacsconf possible, and the other speakers for + their wonderful talks (many of which i'll be + reviewing now that i'm not so busy preparing)" + +If you'd like to volunteer for EmacsConf, check +out <https://emacsconf.org/volunteer/> to see if +anything resonates with you, and e-mail us at +<mailto:emacsconf-org@gnu.org>. We'd love to have +you on board. + +Hope to see you next year! + +- Sacha Chua + diff --git a/2024/report.org b/2024/report.org new file mode 100644 index 00000000..2591a9d8 --- /dev/null +++ b/2024/report.org @@ -0,0 +1,237 @@ +# [[elisp:(org-md-export-to-markdown)][Export this file to Markdown]] + +#+begin_export md +<!-- report.md is exported report.org, please modify that instead. --> +[[!sidebar content=""]] + +This file is automatically exported from [/2024/report.org](/2024/report.org). You might prefer to navigate this as an Org file instead. To do so, [clone the wiki repository](https://emacsconf.org/edit/). +[[!meta title="EmacsConf 2024 Report"]] +[[!date "2024-12-28"]] +[[!meta copyright="Copyright © 2024 Sacha Chua"]] +#+end_export + +#+TOC: headlines 1 + +* COMMENT About this document +:PROPERTIES: +:CUSTOM_ID: comment-about-this-document +:END: + +Goal for this document: + +- summarize results of EmacsConf into something that we can pull + relevant excerpts from depending on the audience + - fundraising, FSF + +Examples: + +- https://emacsconf.org/2023/report/ +- [[https://www.linkedin.com/pulse/pycon-namibia-2023-report-pycon-namibia]] - brief +- [[https://pycon.blogspot.com/2023/06/pycon-us-2023-recap-and-recording.html]] - recap PDF with stats and quotes +- [[https://media.debconf.org/dc14/report/DebConf14_final_report.en.pdf]] - PDF with lots of details +- [[https://www.fsf.org/blogs/community/from-freedom-trail-to-free-boot-and-free-farms-charting-the-course-at-libreplanet-day-2]] + +* COMMENT Generating stats + +Other notes from +https://sachachua.com/blog/2024/12/emacsconf-2024-notes/ + +** Presentation and Q&A stats + +#+begin_src emacs-lisp :results table replace :exports results :eval never-export +(let ((main + (seq-remove (lambda (o) (string-match "\\(sat\\|sun\\)-\\(open\\|close\\)" o)) + (directory-files emacsconf-cache-dir t "--main.webm"))) + (answers + (seq-remove (lambda (o) (string-match "\\(sat\\|sun\\)-\\(open\\|close\\)" o)) + (directory-files emacsconf-cache-dir t "--answers.webm")))) + `(("Talks" ,(length main)) + ("Hours" ,(format "%.1f" (/ (apply '+ (mapcar #'compile-media-get-file-duration-ms main)) (* 1000 60 60)))) + ("Q&A web conferences" ,(length answers)) + ("Hours" ,(format "%.1f" (/ (apply '+ (mapcar #'compile-media-get-file-duration-ms answers)) (* 1000 60 60)))))) +#+end_src + +#+RESULTS: +:results: +| Talks | 31 | +| Hours | 10.7 | +| Q&A web conferences | 21 | +| Hours | 7.8 | +:end: + +** BigBlueButton + +#+begin_src emacs-lisp :results table :eval never-export +(emacsconf-extract-bbb-report + (directory-files-recursively + "~/proj/emacsconf/2024/backups/bigbluebutton/recording/raw" + "events.xml")) +#+end_src + +#+RESULTS: +:results: +| 107 | Max number of simultaneous users | +| 7 | Max number of simultaneous meetings | +| 25 | Max number of people in one meeting | +| 102 | Total unique users | +| 40 | Total unique talking | +:end: + +* Overview +:PROPERTIES: +:CUSTOM_ID: overview +:END: + +EmacsConf 2024 was held on December 7 and 8 as an online conference. We had 31 talks across two tracks (general and development), with a total of 11 hours of presentations, 8 hours of Q&A via web conference, and lots of lively discussion across IRC and Etherpad. Throughout the conference, there were up to 430 people watching via the livestream, and more than 80 people joined the live Q&A web conferences. There were also satellite events in Switzerland and Slovenia where people watched together. + +Thanks to volunteers who edited captions for pre-recorded videos, we were able to broadcast all the early submissions with open captions. This not only made talks more accessible while watching the livestreams, but it also made it easier to enjoy the talks in noisy environments or to catch up on talks. People said: + +We posted pre-recorded videos and transcripts on talk pages shortly after they started streaming, and the recordings of live talks and Q&A sessions are now also available. We've also archived questions and comments from IRC and Etherpad onto the talk pages. You can find the talk pages at [[https://emacsconf.org/2024/talks]] . The videos are also available on Toobnix ([[https://toobnix.org/c/emacsconf/videos]]) and YouTube ([[https://www.youtube.com/@EmacsConf]]). + +Overall, people said: + +- "It's the first time I've been able to attend the whole conference live, and it's been great fun, I've had a blast :)" +- "Thanks again to the organizers, and presenters for many great talks, and participants for interesting exchanges, see you all next year (fingers crossed)" +- "EmacsConf is one of the big highlights of my year every year." + +* Technical details +:PROPERTIES: +:CUSTOM_ID: technical-details +:END: + +EmacsConf is committed to software freedom. We used the following tools +for this year's conference: + +- [[https://orgmode.org/][Org Mode]], [[https://www.gnu.org/software/emacs/][Emacs]]: organization and collaboration +- [[https://mpv.io][MPV]]: video player +- [[https://bigbluebutton.org/][BigBlueButton]]: web conference +- [[https://obsproject.com/][OBS Studio]]: streaming +- [[https://tigervnc.org/][TigerVNC]]: controlling the remote server +- [[https://icecast.org/][Icecast]]: streaming WEBM +- [[https://libera.chat/][Internet Relay Chat via Libera.chat]], [[https://thelounge.chat/][The Lounge]], and [[https://www.gnu.org/software/emacs/erc.html][ERC]]: conversation +- [[https://www.mumble.info/][Mumble]]: audio conferencing for coordination +- [[https://etherpad.org/][Etherpad]]: questions and notes +- [[https://ikiwiki.info/][Ikiwiki]]: website +- [[https://github.com/psi-4ward/psitransfer][PsiTransfer]]: uploads +- [[https://ffmpeg.org][FFmpeg]]: video and audio processing +- [[https://www.audacityteam.org/][Audacity]]: audio editing +- [[https://github.com/m-bain/whisperX][WhisperX]]: captioning +- [[https://www.readbeyond.it/aeneas/][Aeneas]]: forced alignment to get timestamps +- [[https://codeberg.org/sachac/subed][subed-mode]]: captioning +- [[https://git-scm.com/][Git]]: version control +- [[https://list.org/][Mailman]]: mailing lists; service provided by the Free Software Foundation +- [[https://www.nginx.com/][Nginx]]: web server; server provided by the Free Software Foundation +- [[https://www.ansible.com/][Ansible]]: system configuration + +You can find out more about our infrastructure at +[[https://emacsconf.org/infra]] . + +* Process improvements +:PROPERTIES: +:CUSTOM_ID: process-improvements +:END: + +This year we tried out the following experiments: + +- BigBlueButton 3.0: We set up our own server since the previous donated server was decommissioned. + Using BBB 3.0 let us customize the on-screen layout and export recorded videos easily. +- We added an open mic session and moved some of our closing remarks earlier. This let people share last-minute updates and also allowed us to wrap up the conference more promptly. +- We used WhisperX for the first draft of captions for improved performance. +- Automatic normalization with ffmpeg-normalize didn't work out, so we manually normalized the video files. +- We needed to upgrade MPV to v0.38 in order to deal with palette smearing. +- In addition to livestreaming to live.emacsconf.org via Icecast, we also livestreamed via YouTube. We were unable to livestream via Toobnix due to technical difficulties. +- We experimented with upgrading the streaming server to a 64GB 32core dedicated CPU server, but this additional capacity was not needed. We downgraded back to 64GB 16core shared. +- We updated the wiki layout to include sticky videos on the talk pages. +- We developed more tools for copying IRC messages to the clipboard, checking and adjusting subtitle timing, and cropping media files. +- We offered stickers and pins as tokens of appreciation. + +For in-depth notes, see https://sachachua.com/blog/2024/12/emacsconf-2024-notes/ . + +Next year we're looking forward to building on top of even more documentation and automation. Fun! + +* Finances +:PROPERTIES: +:CUSTOM_ID: finances +:END: + +Costs (USD, not including 13% tax): + +| 52.54 | Extra costs for hosting in December | +| 3.11 | Extra costs for BBB testing in November | +| 120 | Hosting costs year-round (two Linode nanodes) | + +Total of USD 175.65 + tax, or USD 198.48 for 2024. + +Thanks to people who donated through the [[https://www.fsf.org/working-together/fund][Working +Together]] program of the Free Software Foundation, +we are well-equipped to cover those costs for this +year. + +* Acknowledgements +:PROPERTIES: +:CUSTOM_ID: acknowledgements +:END: + +We would like to thank the following: + +- Thank you to all the speakers, volunteers, and participants, and to all those other people in our lives who make it possible through time and support. +- Thanks to Leo Vivier and Corwin Brust for hosting the sessions, and to FlowyCoder for checking people in. +- Thanks to our proposal review volunteers James Howell, JC Helary, and others for helping with the early acceptance process. +- Thanks to our captioning volunteers: Mark Lewin, Rodrigo Morales, Anush, annona, and James Howell, and some speakers who captioned their own talks. +- Thanks to Leo Vivier for fiddling with the audio to get things nicely synced. +- Thanks to volunteers who kept the mailing lists free from spam. +- Thanks to Bhavin Gandhi, Christopher Howard, Joseph Turner, and screwlisp for quality-checking. +- Thanks to shoshin for the music. +- Thanks to Amin Bandali for help with infrastructure and communication. +- Thanks to Ry P for the server that we're using for OBS streaming and for processing videos. +- Thanks to the Free Software Foundation for Emacs itself, the mailing lists, the media.emacsconf.org server, and handling donations on our behalf through the FSF Working Together program. https://www.fsf.org/working-together/fund +- Thanks to the many users and contributers and project teams that create all the awesome free software we use, especially: BigBlueButton, Etherpad, Icecast, OBS, TheLounge, libera.chat, ffmpeg, OpenAI Whisper, WhisperX, the aeneas forced alignment tool, PsiTransfer, subed, and many, many other tools and services we used to prepare and host this years conference +- Thanks to everyone! + +* Updates +:PROPERTIES: +:CUSTOM_ID: updates +:END: + +If you would like to get updates and announcements, you can sign up at +[[https://lists.gnu.org/mailman/listinfo/emacsconf-discuss]] . + +Please keep an eye out for interesting things that +might be fun to present at next year's EmacsConf. +We'd love to get talks at all levels of experience +and about lots of different kinds of interests. +Previous speakers wrote: + +- "I always got the feeling of being heard and + welcome in spite of the vast distances and + cultures separating us. This community always + feels like it is open to new members any time. + With regards to the conference process also, it + was a microcosm of the bigger community and + hence I got the same feeling. You didn't have to + be an expert or a person who's been using emacs + for a long time to talk about something useful + for the community. Even the struggles of a noob + may be useful for someone else in the + community." +- "I can honestly say though that I had a great + time putting my talk together. I hope people + will have a good time listening to it. Now that + the work is over, I can say it was worth it. so + I recommend it warmly" +- "This has been an all-around fantastic + experience, both as a first-time attendee and + speaker. many thanks to the volunteers who make + emacsconf possible, and the other speakers for + their wonderful talks (many of which i'll be + reviewing now that i'm not so busy preparing)" + +If you'd like to volunteer for EmacsConf, check +out https://emacsconf.org/volunteer/ to see if +anything resonates with you, and e-mail us at +mailto:emacsconf-org@gnu.org. We'd love to have +you on board. + +Hope to see you next year! + +- Sacha Chua diff --git a/2024/schedule-details.md b/2024/schedule-details.md index 34db3ccc..a769e01b 100644 --- a/2024/schedule-details.md +++ b/2024/schedule-details.md @@ -15,7 +15,7 @@ Jump to: <a href="#dev">Development</a> [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-links--unlocking-linked-data-replacing-specialized-apps-with-an-orgbased-semantic-wiki--abhinav-tushar--main.webm">Download --main.webm (21MB)</a></li>""" title="""Unlocking linked data: replacing specialized apps with an Org-based semantic wiki""" url="""/2024/talks/links""" speakers="""Abhinav Tushar""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""links""" note="""captioned, video posted, video: 11:21"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--main.webm">Download --main.webm (199MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-regex--emacs-regex-compilation-and-future-directions-for-expressive-pattern-matching--danny-mcclanahan--slides.pdf">Download --slides.pdf</a></li>""" title="""Emacs regex compilation and future directions for expressive pattern matching""" url="""/2024/talks/regex""" speakers="""Danny McClanahan""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""regex""" note="""captioned, video posted, video: 24:56"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers--edited.opus">Download --answers--edited.opus (20MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.opus">Download --answers.opus (11MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--answers.webm">Download --answers.webm (57MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--edited.webm">Download --edited.webm (57MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--main.webm">Download --main.webm (137MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-learning--survival-of-the-skillest-thriving-in-the-learning-jungle--bala-ramadurai--slides.pdf">Download --slides.pdf (9.5MB)</a></li>""" title="""Survival of the skillest: Thriving in the learning jungle""" url="""/2024/talks/learning""" speakers="""Bala Ramadurai""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""learning""" note="""captioned, video posted, Q&A posted, video: 19:39, answers: 24:41"""]] -[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.opus">Download --answers.opus (8.9MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.webm">Download --answers.webm (41MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--main.webm">Download --main.webm (110MB)</a></li>""" title="""About Blee: enveloping our own autonomy directed digital ecosystem with Emacs""" url="""/2024/talks/blee""" speakers="""Mohsen BANAN""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""blee""" note="""captioned, video posted, Q&A posted, video: 45:30, answers: 18:11"""]] +[[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.opus">Download --answers.opus (8.9MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.vtt">Download --answers.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--answers.webm">Download --answers.webm (41MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-blee--about-blee-towards-an-integrated-emacs-environment-for-enveloping-our-own-autonomy-directed-digital-ecosystem--mohsen-banan--main.webm">Download --main.webm (110MB)</a></li>""" title="""About Blee: enveloping our own autonomy directed digital ecosystem with Emacs""" url="""/2024/talks/blee""" speakers="""Mohsen BANAN""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""blee""" note="""captioned, video posted, Q&A posted, video: 45:30, answers: 18:11"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.opus">Download --answers.opus (8.1MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--answers.webm">Download --answers.webm (30MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--main.webm">Download --main.webm (47MB)</a></li>""" title="""Fun things with GNU Hyperbole""" url="""/2024/talks/hyperbole""" speakers="""Mats Lidell""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperbole""" note="""captioned, video posted, Q&A posted, video: 14:10, answers: 21:56"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.opus">Download --answers.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--answers.webm">Download --answers.webm (38MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-pgmacs--pgmacs-browsing-and-editing-postgresql-databases-from-emacs--eric-marsden--main.webm">Download --main.webm (43MB)</a></li>""" title="""PGmacs: browsing and editing PostgreSQL databases from Emacs""" url="""/2024/talks/pgmacs""" speakers="""Eric Marsden""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""pgmacs""" note="""captioned, video posted, Q&A posted, video: 13:17, answers: 20:02"""]] [[!template id=sched resources="""<li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers--chapters.vtt">Download --answers--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.opus">Download --answers.opus (12MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.vtt">Download --answers.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--answers.webm">Download --answers.webm (56MB)</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2024/emacsconf-2024-literate--literate-programming-for-the-21st-century--howard-abrams--main.webm">Download --main.webm (42MB)</a></li>""" title="""Literate programming for the 21st Century""" url="""/2024/talks/literate""" speakers="""Howard Abrams""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""literate""" note="""captioned, video posted, Q&A posted, video: 15:51, answers: 22:48"""]] diff --git a/2024/talks/literate.md b/2024/talks/literate.md index 82319369..94f5332c 100644 --- a/2024/talks/literate.md +++ b/2024/talks/literate.md @@ -232,6 +232,8 @@ Feedback: - I for one had been looking forward to this particular talk, so there's that :) - YouTube comment: Legend! - YouTube comment: Howard! Your videos have been such an amazing source of information. You voice is engrained in my brains haha +- Somehow my interest in #emacs reignited and a lot of is due to org presentation by @howard [@mms@bsd.cafe](https://mastodon.bsd.cafe/@mms/113724843960332570) + [[!inline pages="internal(2024/info/literate-after)" raw="yes"]] diff --git a/2024/talks/sun-close.md b/2024/talks/sun-close.md index 56f74ff8..66ed8965 100644 --- a/2024/talks/sun-close.md +++ b/2024/talks/sun-close.md @@ -77,11 +77,6 @@ - \<@sachac\> robin: I write to the pads with Emacs Lisp, but I don't know how to, say, append considering the realtime edits -- \<robin\> this has been an all-around fantastic experience, both as - a first-time attendee and speaker. many thanks to the volunteers who - make emacsconf possible, and the other speakers for their wonderful - talks (many of which i'll be reviewing now that i'm not so busy - preparing \^\^) - Things that have been working well - Crontab - Automation @@ -196,7 +191,7 @@ - Ask speakers what kind of facilitation they want - \<kickingvegas\> wish for next year: localized schedule times on the emacsconf website - + - Next year, I'll add pronouns and pronunciations to the Etherpad template [[!inline pages="internal(2024/info/sun-close-after)" raw="yes"]] diff --git a/2025.md b/2025.md new file mode 100644 index 00000000..e05155e2 --- /dev/null +++ b/2025.md @@ -0,0 +1,43 @@ +[[!meta copyright="Copyright © 2021-2022 Amin Bandali; 2023-2025 Sacha Chua"]] + +<p class="center">EmacsConf 2025 | Online Conference<br /> +<b>December 6 and 7, 2025 (Sat-Sun)</b></p> + +<p class="center">[[!img /i/emacsconf-logo1-256.png +alt="EmacsConf logo"]]</p> + +<p class="center">[[<b>Call for Participation</b>|cfp]] | [[Ideas]] | +[[Submit a Proposal|submit]] | [[Volunteer]] | [[Guidelines for Conduct|conduct]]</p> + +<p class="center">EmacsConf is the conference about the joy of +<a href="https://www.gnu.org/software/emacs/">GNU Emacs</a> and +Emacs Lisp.</p> + +We are busy putting things together for EmacsConf 2025, and we would +love to have *your* help to make EmacsConf 2025 amazing, much like the +previous EmacsConfs. See our [[**Call for Participation**|cfp]], get +involved, and help spread the word! + +We are holding EmacsConf 2025 as an online conference again this year. +We remain fully committed to freedom, and we will continue using our +infrastructure and streaming setup consisting entirely of [free +software][freesw], much like previous EmacsConf conferences. + +For general EmacsConf discussions, join the +[emacsconf-discuss](https://lists.gnu.org/mailman/listinfo/emacsconf-discuss) +mailing list. For discussions related to organizing EmacsConf, join +the +[emacsconf-org](https://lists.gnu.org/mailman/listinfo/emacsconf-org) +mailing list. You can email us publicly at +<mailto:emacsconf-org@gnu.org> or privately at +<mailto:emacsconf-org-private@gnu.org>. + +Come hang out with us in the `#emacsconf` channel on `irc.libera.chat` +([Libera.Chat][libera] IRC network). You can join the chat using +[your favourite IRC client][libera-emacsconf], or by visiting +[chat.emacsconf.org][chat] in your web browser. + +[freesw]: https://www.gnu.org/philosophy/free-sw.html +[libera]: https://libera.chat +[libera-emacsconf]: ircs://irc.libera.chat:6697/emacsconf +[chat]: https://chat.emacsconf.org diff --git a/2025/cfp.md b/2025/cfp.md new file mode 100644 index 00000000..5d3b6d6f --- /dev/null +++ b/2025/cfp.md @@ -0,0 +1,80 @@ +[[!meta title="Call for Participation"]] +[[!meta copyright="Copyright © 2020 Amin Bandali, Sacha Chua, +David Bremner<br /> +Copyright © 2021 Amin Bandali, Sacha Chua, Leo Vivier, +Sebastian Crane<br /> +Copyright © 2022, 2024 Amin Bandali<br /> +Copyright © 2023-2025 Sacha Chua"]] +[[!tag blog]] +[[!date "2025-06-27"]] +<!-- cfp.md is exported from cfp.org, please modify that instead. --> + + +# Call for participation + +What have you found exciting about [Emacs](https://www.gnu.org/software/emacs/) lately? Have you figured out a good workflow? Used Emacs for something interesting? Come share what you've been learning at EmacsConf 2025 and meet other enthusiasts along the way! All backgrounds and all levels of experience are welcome. Emacs isn't just a text editor, it's a way of life! + +[EmacsConf 2025](https://emacsconf.org/2025/) will be a virtual conference on **December 6 and 7, 2025 (Sat-Sun, 9AM-5PM UTC-5 America/Toronto, which is the same as 2PM-10PM UTC)**. We hope to get your talk proposal by ****Friday, September 19, 2025.**** + +If there are similar proposals, we'll work with people so that the talks can cover different facets. + + +# Talk formats + +Ideally, talks will be prerecorded so that you can script and edit them as tightly as you want, and so that they can be captioned for accessibility. Here are the talk options: + +- **5-10 minute lightning talk:** just the essentials! If you can squeeze your prerecorded talk into 5-10 minutes by focusing on the essentials (not by talking super quickly!), we might be able to repeat it during the conference in order to fill gaps. +- **20-minute talk:** short enough to keep people's attention, long enough to get into some details. + +There will be time for questions and answers after your talk, so you don't need to include that in your talk timing. Just like in previous EmacsConf, you can answer questions via a live video conference, IRC ([Internet Relay Chat](https://chat.emacsconf.org)), the Etherpad (a web-based collaborative document), the wiki, or email (your choice). The stream will move on to the next talk at the scheduled time, but interested people can keep hanging out with you for a longer conversation. + +If you are not available during the conference itself but you have a neat idea that you'd like to share, please propose it anyway! You can always handle questions after the conference, and we might even be able to coordinate with other Emacs meetups for events in other time zones. + +We may have time for a few longer sessions. If you'd like to be considered for a longer time slot, please include an outline for the extra time in addition to your 20-minute proposal. Other session formats such as tutorials, workshops, and hangouts are welcome as well. + + +# Submitting your proposal + +[Send us your idea](https://emacsconf.org/2025/submit/) as soon as you can, so that you can have more time +to work on your talk. (Proposal deadline: ****Friday, September 19, 2025****) + +If you need help, you can email us publicly at [emacsconf-org@gnu.org](mailto:emacsconf-org@gnu.org) +or privately at [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org). You can also come and +say hi to us on our IRC channel `#emacsconf` on `irc.libera.chat` +using [your favourite IRC client](ircs://irc.libera.chat:6697/emacsconf), or by visiting [chat.emacsconf.org](https://chat.emacsconf.org) in +your web browser. + + +# Know someone who might have something to share? + +All kinds of people use Emacs for all kinds of things. We'd love it +if EmacsConf 2025 could highlight interesting perspectives and reflect +the diversity of our community. If you know someone who might have a +good idea for a talk, please reach out to them and encourage them to +submit a proposal. Many people (especially from underrepresented +groups such as women, people of colour, non-developers, etc.) might +not consider themselves proficient enough to share their thoughts. +If you let them know that you value their knowledge and experiences, +and maybe even suggest something that you think others would like to +hear about, they may realize that they do have something worth sharing +and that we would love to hear from them. + + +# Want to volunteer? + +If you would like to help with the conference (planning the sessions, +reviewing proposals, helping with infrastructure, making sessions +more accessible, editing video transcripts, checking in speakers, +reading questions out loud, organizing notes, etc.), please see our +[volunteer](https://emacsconf.org/volunteer/) page. Volunteers get early access to talks and learn lots +of things along the way. We'd really appreciate your help in making +EmacsConf 2025 the best one so far! + + +# Commitment to freedom + +We remain fully committed to freedom. You'll be able to participate +in EmacsConf using [free/libre software](https://www.gnu.org/philosophy/free-sw.html), and we use free/libre software +to organize and run the conference. You can find some notes about our +setup and process at <https://emacsconf.org/infra/>. + diff --git a/2025/cfp.org b/2025/cfp.org new file mode 100644 index 00000000..85cb7283 --- /dev/null +++ b/2025/cfp.org @@ -0,0 +1,149 @@ +# [[elisp:(org-md-export-to-markdown)][Export this file to Markdown]] +# [[elisp:(org-ascii-export-as-ascii)][Export this file to ASCII]] +#+title: EmacsConf 2025 Call for Participation +#+subtitle: Online Conference +#+date: December 6 and 7, 2025 +#+options: author:nil toc:nil + +#+begin_export md +[[!meta title="Call for Participation"]] +[[!meta copyright="Copyright © 2020 Amin Bandali, Sacha Chua, +David Bremner<br /> +Copyright © 2021 Amin Bandali, Sacha Chua, Leo Vivier, +Sebastian Crane<br /> +Copyright © 2022, 2024 Amin Bandali<br /> +Copyright © 2023-2025 Sacha Chua"]] +[[!tag blog]] +[[!date "2025-06-27"]] +<!-- cfp.md is exported from cfp.org, please modify that instead. --> +#+end_export + +* COMMENT How to export this file :noexport: + +The =ircs= link type is not part of standard Org Mode, so Org will +throw an error if you try to export this file. + +To work around that, you can use something along the lines of the +Emacs Lisp code below by either adding it to your init file, or by +putting the point in the code block and hitting =C-c C-v e= (that is, +hold Ctrl, then hit c followed by v, then release Ctrl, and hit e) to +evaluate the code, working around the issue only for the current +session. + +#+begin_src emacs-lisp :results silent +(org-link-set-parameters + "ircs" + :export + (lambda (link description format) + "Export an ircs link. +See `org-link-parameters' for details about LINK, DESCRIPTION and +FORMAT." + (let ((desc (or description link))) + (pcase format + (`html (format "<a href=\"ircs:%s\">%s</a>" link desc)) + (`md (format "[%s](ircs:%s)" desc link)) + (_ nil))))) +#+end_src + +Other CFPs we can borrow ideas from: + +- https://debconf23.debconf.org/cfp/ - includes early submission timeline +- https://fosdem.org/2023/news/2022-11-13-call-for-presentations/ - mentions upload date, license +- https://www.fsf.org/blogs/community/libreplanet-2023-will-be-held-march-18-19-cfs-extended-to-november-23 +- https://www.reddit.com/r/scala/comments/103v6e5/scalar_2023_cfp_is_still_open/ - very short + +* Call for participation +:PROPERTIES: +:CUSTOM_ID: cfp +:END: + +What have you found exciting about [[https://www.gnu.org/software/emacs/][Emacs]] lately? Have you figured out a good workflow? Used Emacs for something interesting? Come share what you've been learning at EmacsConf 2025 and meet other enthusiasts along the way! All backgrounds and all levels of experience are welcome. Emacs isn't just a text editor, it's a way of life! + +[[https://emacsconf.org/2025/][EmacsConf 2025]] will be a virtual conference on *December 6 and 7, 2025 (Sat-Sun, 9AM-5PM UTC-5 America/Toronto, which is the same as 2PM-10PM UTC)*. We hope to get your talk proposal by **Friday, September 19, 2025.** + +If there are similar proposals, we'll work with people so that the talks can cover different facets. + +* Talk formats +:PROPERTIES: +:CUSTOM_ID: formats +:END: + +Ideally, talks will be prerecorded so that you can script and edit them as tightly as you want, and so that they can be captioned for accessibility. Here are the talk options: + +- *5-10 minute lightning talk:* just the essentials! If you can squeeze your prerecorded talk into 5-10 minutes by focusing on the essentials (not by talking super quickly!), we might be able to repeat it during the conference in order to fill gaps. +- *20-minute talk:* short enough to keep people's attention, long enough to get into some details. + +There will be time for questions and answers after your talk, so you don't need to include that in your talk timing. Just like in previous EmacsConf, you can answer questions via a live video conference, IRC ([[https://chat.emacsconf.org][Internet Relay Chat]]), the Etherpad (a web-based collaborative document), the wiki, or email (your choice). The stream will move on to the next talk at the scheduled time, but interested people can keep hanging out with you for a longer conversation. + +If you are not available during the conference itself but you have a neat idea that you'd like to share, please propose it anyway! You can always handle questions after the conference, and we might even be able to coordinate with other Emacs meetups for events in other time zones. + +We may have time for a few longer sessions. If you'd like to be considered for a longer time slot, please include an outline for the extra time in addition to your 20-minute proposal. Other session formats such as tutorials, workshops, and hangouts are welcome as well. + +* Submitting your proposal +:PROPERTIES: +:CUSTOM_ID: submitting +:END: + +[[https://emacsconf.org/2025/submit/][Send us your idea]] as soon as you can, so that you can have more time +to work on your talk. (Proposal deadline: **Friday, September 19, 2025**) + +If you need help, you can email us publicly at [[mailto:emacsconf-org@gnu.org][emacsconf-org@gnu.org]] +or privately at [[mailto:emacsconf-org-private@gnu.org][emacsconf-org-private@gnu.org]]. You can also come and +say hi to us on our IRC channel =#emacsconf= on =irc.libera.chat= +using [[ircs://irc.libera.chat:6697/emacsconf][your favourite IRC client]], or by visiting [[https://chat.emacsconf.org][chat.emacsconf.org]] in +your web browser. + +* Know someone who might have something to share? +:PROPERTIES: +:CUSTOM_ID: sharing +:END: + +All kinds of people use Emacs for all kinds of things. We'd love it +if EmacsConf 2025 could highlight interesting perspectives and reflect +the diversity of our community. If you know someone who might have a +good idea for a talk, please reach out to them and encourage them to +submit a proposal. Many people (especially from underrepresented +groups such as women, people of colour, non-developers, etc.) might +not consider themselves proficient enough to share their thoughts. +If you let them know that you value their knowledge and experiences, +and maybe even suggest something that you think others would like to +hear about, they may realize that they do have something worth sharing +and that we would love to hear from them. + +* Want to volunteer? +:PROPERTIES: +:CUSTOM_ID: volunteer +:END: + +If you would like to help with the conference (planning the sessions, +reviewing proposals, helping with infrastructure, making sessions +more accessible, editing video transcripts, checking in speakers, +reading questions out loud, organizing notes, etc.), please see our +[[https://emacsconf.org/volunteer/][volunteer]] page. Volunteers get early access to talks and learn lots +of things along the way. We'd really appreciate your help in making +EmacsConf 2025 the best one so far! + +* Commitment to freedom + +We remain fully committed to freedom. You'll be able to participate +in EmacsConf using [[https://www.gnu.org/philosophy/free-sw.html][free/libre software]], and we use free/libre software +to organize and run the conference. You can find some notes about our +setup and process at https://emacsconf.org/infra/. + +* COMMENT Copyright & License + +Copyright (c) 2020 Amin Bandali, Sacha Chua, David Bremner +Copyright (c) 2021 Amin Bandali, Sacha Chua, Leo Vivier, +Sebastian Crane +Copyright (c) 2022, 2024 Amin Bandali +Copyright (c) 2023-2025 Sacha Chua + +The EmacsConf 2025 Call for Participation is part of the EmacsConf +wiki, and is dual-licensed under the terms of the Creative Commons +Attribution-ShareAlike 4.0 International Public License; and the GNU +General Public License as published by the Free Software Foundation, +either version 3 of the License, or (at your option) any later +version. + +A copy of these two licenses is available on the EmacsConf wiki, in +the [[https://emacsconf.org/COPYING.CC-BY-SA][COPYING.CC-BY-SA]] and [[https://emacsconf.org/COPYING.GPL][COPYING.GPL]] files. diff --git a/2025/draft-schedule.md b/2025/draft-schedule.md new file mode 100644 index 00000000..70f02cd3 --- /dev/null +++ b/2025/draft-schedule.md @@ -0,0 +1,23 @@ +[[!sidebar content=""]] + +This is a *DRAFT* schedule. +Jump to: <a href="#date-2025-12-06">Sat Dec 6</a> - <a href="#date-2025-12-07">Sun Dec 7</a><a name="date-2025-12-06"></a> +# Saturday Dec 6, 2025 +[[!inline pages="internal(2025/schedule-2025-12-06)" raw="yes"]] + +<div class="schedule" data-start="2025-12-06T14:00:00+0000" data-end="2025-12-06T22:30:00+0000" data-tracks="General,Development"> +[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2025-sat-open">Etherpad</a>""" startutc="""2025-12-06T14:00:00+0000""" endutc="""2025-12-06T14:10:00+0000""" start="""9:00""" end="""9:10""" title="""Saturday opening remarks""" url="""/2025/talks/sat-open""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-open""" note=""""""]] +[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-bibliography.html">BBB</a>""" startutc="""2025-12-06T14:50:00+0000""" endutc="""2025-12-06T15:10:00+0000""" start="""9:50""" end="""10:10""" title="""An enhanced bibliography in org-mode for scientific research and self-directed learning""" url="""/2025/talks/bibliography""" speakers="""Blaine Mooers""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""bibliography""" note=""""""]] +[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-python.html">BBB</a>""" startutc="""2025-12-06T15:00:00+0000""" endutc="""2025-12-06T15:20:00+0000""" start="""10:00""" end="""10:20""" title="""Interactive Python development in Emacs""" url="""/2025/talks/python""" speakers="""David Vujic""" track="""Development""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""python""" note=""""""]] +[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: kanakana</a>""" startutc="""2025-12-06T15:40:00+0000""" endutc="""2025-12-06T16:00:00+0000""" start="""10:40""" end="""11:00""" title="""Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java""" url="""/2025/talks/juicemacs""" speakers="""Kana""" track="""Development""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""juicemacs""" note=""""""]] +[[!template id=sched time="""20""" q-and-a="""none""" startutc="""2025-12-06T16:50:00+0000""" endutc="""2025-12-06T17:10:00+0000""" start="""11:50""" end="""12:10""" title="""corfu+yasnippet: Easier than I thought""" url="""/2025/talks/completion""" speakers="""Pedro A. Aranda Gutiérrez""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""completion""" note=""""""]] +[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: screwlisp</a>""" startutc="""2025-12-06T19:00:00+0000""" endutc="""2025-12-06T19:20:00+0000""" start="""2:00""" end="""2:20""" title="""Common Lisp images communicating like-a-human through shared Emacs slime and eev""" url="""/2025/talks/commonlisp""" speakers="""screwlisp""" track="""Development""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""commonlisp""" note=""""""]] +[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2025-sat-close">Etherpad</a>""" startutc="""2025-12-06T21:30:00+0000""" endutc="""2025-12-06T21:40:00+0000""" start="""4:30""" end="""4:40""" title="""Saturday closing remarks""" url="""/2025/talks/sat-close""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-close""" note=""""""]]</div> + +Jump to: <a href="#date-2025-12-06">Sat Dec 6</a> - <a href="#date-2025-12-07">Sun Dec 7</a><a name="date-2025-12-07"></a> +# Sunday Dec 7, 2025 +[[!inline pages="internal(2025/schedule-2025-12-07)" raw="yes"]] + +<div class="schedule" data-start="2025-12-07T14:00:00+0000" data-end="2025-12-07T22:30:00+0000" data-tracks="General,Development"> +[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2025-sun-open">Etherpad</a>""" startutc="""2025-12-07T14:00:00+0000""" endutc="""2025-12-07T14:10:00+0000""" start="""9:00""" end="""9:10""" title="""Sunday opening remarks""" url="""/2025/talks/sun-open""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-open""" note=""""""]] +[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-sun-close.html">BBB</a>""" startutc="""2025-12-07T18:00:00+0000""" endutc="""2025-12-07T18:10:00+0000""" start="""1:00""" end="""1:10""" title="""Sunday closing remarks""" url="""/2025/talks/sun-close""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-close""" note=""""""]]</div>
\ No newline at end of file diff --git a/2025/info/bibliography-after.md b/2025/info/bibliography-after.md new file mode 100644 index 00000000..3a66543c --- /dev/null +++ b/2025/info/bibliography-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [blaine-mooers@ouhsc.edu](mailto:blaine-mooers@ouhsc.edu?subject=Comment%20for%20EmacsConf%202023%20bibliography%3A%20An%20enhanced%20bibliography%20in%20org-mode%20for%20scientific%20research%20and%20self-directed%20learning) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/bibliography-before.md b/2025/info/bibliography-before.md new file mode 100644 index 00000000..a7914b81 --- /dev/null +++ b/2025/info/bibliography-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 20-min talk ; Q&A: BigBlueButton conference room +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/bibliography-nav.md b/2025/info/bibliography-nav.md new file mode 100644 index 00000000..5de511a7 --- /dev/null +++ b/2025/info/bibliography-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2025/talks/reference">Emacs as a fully-fledged reference manager</a> +Next by track: <a href="/2025/talks/life">From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2025/info/claude-code-after.md b/2025/info/claude-code-after.md new file mode 100644 index 00000000..fbc417c7 --- /dev/null +++ b/2025/info/claude-code-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [ywatanabe@alumni.u-tokyo.ac.jp](mailto:ywatanabe@alumni.u-tokyo.ac.jp?subject=Comment%20for%20EmacsConf%202023%20claude-code%3A%20emacs-claude-code%3A%20Intelligent%20Claude%20Integration%20for%20Emacs) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/claude-code-before.md b/2025/info/claude-code-before.md new file mode 100644 index 00000000..934ba044 --- /dev/null +++ b/2025/info/claude-code-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 20-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/claude-code-nav.md b/2025/info/claude-code-nav.md new file mode 100644 index 00000000..42c0e0e1 --- /dev/null +++ b/2025/info/claude-code-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2025/talks/juicemacs">Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</a> +Next by track: <a href="/2025/talks/commonlisp">Common Lisp images communicating like-a-human through shared Emacs slime and eev</a> +Track: <span class="sched-track Development">Development</span> +</div> diff --git a/2025/info/commonlisp-after.md b/2025/info/commonlisp-after.md new file mode 100644 index 00000000..9f008e0e --- /dev/null +++ b/2025/info/commonlisp-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20commonlisp%3A%20Common%20Lisp%20images%20communicating%20like-a-human%20through%20shared%20Emacs%20slime%20and%20eev) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/commonlisp-before.md b/2025/info/commonlisp-before.md new file mode 100644 index 00000000..d8510c7a --- /dev/null +++ b/2025/info/commonlisp-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 20-min talk ; Q&A: IRC +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/commonlisp-nav.md b/2025/info/commonlisp-nav.md new file mode 100644 index 00000000..f65b35b2 --- /dev/null +++ b/2025/info/commonlisp-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2025/talks/claude-code">emacs-claude-code: Intelligent Claude Integration for Emacs</a> +Next by track: <a href="/2025/talks/sat-open">Saturday opening remarks</a> +Track: <span class="sched-track Development">Development</span> +</div> diff --git a/2025/info/completion-after.md b/2025/info/completion-after.md new file mode 100644 index 00000000..886691d9 --- /dev/null +++ b/2025/info/completion-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [paaguti@gmail.com](mailto:paaguti@gmail.com?subject=Comment%20for%20EmacsConf%202023%20completion%3A%20corfu%2Byasnippet%3A%20Easier%20than%20I%20thought) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/completion-before.md b/2025/info/completion-before.md new file mode 100644 index 00000000..934ba044 --- /dev/null +++ b/2025/info/completion-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 20-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/completion-nav.md b/2025/info/completion-nav.md new file mode 100644 index 00000000..82aced38 --- /dev/null +++ b/2025/info/completion-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2025/talks/latex">LaTeX export in org-mode: the overhaul</a> +Next by track: <a href="/2025/talks/python">Interactive Python development in Emacs</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2025/info/juicemacs-after.md b/2025/info/juicemacs-after.md new file mode 100644 index 00000000..4348741d --- /dev/null +++ b/2025/info/juicemacs-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [kana@iroiro.party](mailto:kana@iroiro.party?subject=Comment%20for%20EmacsConf%202023%20juicemacs%3A%20Juicemacs%3A%20Exploring%20Speculative%20JIT%20Compilation%20for%20ELisp%20in%20Java) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/juicemacs-before.md b/2025/info/juicemacs-before.md new file mode 100644 index 00000000..d8510c7a --- /dev/null +++ b/2025/info/juicemacs-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 20-min talk ; Q&A: IRC +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/juicemacs-nav.md b/2025/info/juicemacs-nav.md new file mode 100644 index 00000000..54ca3555 --- /dev/null +++ b/2025/info/juicemacs-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2025/talks/python">Interactive Python development in Emacs</a> +Next by track: <a href="/2025/talks/claude-code">emacs-claude-code: Intelligent Claude Integration for Emacs</a> +Track: <span class="sched-track Development">Development</span> +</div> diff --git a/2025/info/latex-after.md b/2025/info/latex-after.md new file mode 100644 index 00000000..9b7209c5 --- /dev/null +++ b/2025/info/latex-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [paaguti@gmail.com](mailto:paaguti@gmail.com?subject=Comment%20for%20EmacsConf%202023%20latex%3A%20LaTeX%20export%20in%20org-mode%3A%20the%20overhaul) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/latex-before.md b/2025/info/latex-before.md new file mode 100644 index 00000000..a7914b81 --- /dev/null +++ b/2025/info/latex-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 20-min talk ; Q&A: BigBlueButton conference room +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/latex-nav.md b/2025/info/latex-nav.md new file mode 100644 index 00000000..d330c6b3 --- /dev/null +++ b/2025/info/latex-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2025/talks/life">From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact</a> +Next by track: <a href="/2025/talks/completion">corfu+yasnippet: Easier than I thought</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2025/info/life-after.md b/2025/info/life-after.md new file mode 100644 index 00000000..85dbdfc0 --- /dev/null +++ b/2025/info/life-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [adougher9@gmail.com](mailto:adougher9@gmail.com?subject=Comment%20for%20EmacsConf%202023%20life%3A%20From%20FRDCSA%20to%20FLP2%3A%20Building%20AI-Powered%20Life%20Planning%20Systems%20in%20Emacs%20-%20A%20Journey%20from%20Research%20to%20Real-World%20Impact) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/life-before.md b/2025/info/life-before.md new file mode 100644 index 00000000..a7914b81 --- /dev/null +++ b/2025/info/life-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 20-min talk ; Q&A: BigBlueButton conference room +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/life-nav.md b/2025/info/life-nav.md new file mode 100644 index 00000000..6c079f47 --- /dev/null +++ b/2025/info/life-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2025/talks/bibliography">An enhanced bibliography in org-mode for scientific research and self-directed learning</a> +Next by track: <a href="/2025/talks/latex">LaTeX export in org-mode: the overhaul</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2025/info/python-after.md b/2025/info/python-after.md new file mode 100644 index 00000000..ff1ca050 --- /dev/null +++ b/2025/info/python-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20python%3A%20Interactive%20Python%20development%20in%20Emacs) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/python-before.md b/2025/info/python-before.md new file mode 100644 index 00000000..a7914b81 --- /dev/null +++ b/2025/info/python-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 20-min talk ; Q&A: BigBlueButton conference room +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/python-nav.md b/2025/info/python-nav.md new file mode 100644 index 00000000..39d68348 --- /dev/null +++ b/2025/info/python-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2025/talks/completion">corfu+yasnippet: Easier than I thought</a> +Next by track: <a href="/2025/talks/juicemacs">Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</a> +Track: <span class="sched-track Development">Development</span> +</div> diff --git a/2025/info/reference-after.md b/2025/info/reference-after.md new file mode 100644 index 00000000..d6ac8cfc --- /dev/null +++ b/2025/info/reference-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [vidianosgiannitsis@gmail.com](mailto:vidianosgiannitsis@gmail.com?subject=Comment%20for%20EmacsConf%202023%20reference%3A%20Emacs%20as%20a%20fully-fledged%20reference%20manager) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/reference-before.md b/2025/info/reference-before.md new file mode 100644 index 00000000..a7914b81 --- /dev/null +++ b/2025/info/reference-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 20-min talk ; Q&A: BigBlueButton conference room +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/reference-nav.md b/2025/info/reference-nav.md new file mode 100644 index 00000000..21d992c1 --- /dev/null +++ b/2025/info/reference-nav.md @@ -0,0 +1,6 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Next by track: <a href="/2025/talks/bibliography">An enhanced bibliography in org-mode for scientific research and self-directed learning</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2025/info/sat-close-after.md b/2025/info/sat-close-after.md new file mode 100644 index 00000000..7418bd5e --- /dev/null +++ b/2025/info/sat-close-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-close%3A%20Saturday%20closing%20remarks) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/sat-close-before.md b/2025/info/sat-close-before.md new file mode 100644 index 00000000..70f31fd7 --- /dev/null +++ b/2025/info/sat-close-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 10-min talk ; Q&A: Etherpad +Status: Ready to stream + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/sat-close-nav.md b/2025/info/sat-close-nav.md new file mode 100644 index 00000000..af810350 --- /dev/null +++ b/2025/info/sat-close-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2025/talks/sat-open">Saturday opening remarks</a> +Next by track: <a href="/2025/talks/sun-open">Sunday opening remarks</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2025/info/sat-open-after.md b/2025/info/sat-open-after.md new file mode 100644 index 00000000..bb35fb6a --- /dev/null +++ b/2025/info/sat-open-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-open%3A%20Saturday%20opening%20remarks) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/sat-open-before.md b/2025/info/sat-open-before.md new file mode 100644 index 00000000..64226dc9 --- /dev/null +++ b/2025/info/sat-open-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 10-min talk ; Q&A: Etherpad +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/sat-open-nav.md b/2025/info/sat-open-nav.md new file mode 100644 index 00000000..a265bf7e --- /dev/null +++ b/2025/info/sat-open-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2025/talks/commonlisp">Common Lisp images communicating like-a-human through shared Emacs slime and eev</a> +Next by track: <a href="/2025/talks/sat-close">Saturday closing remarks</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2025/info/sun-close-after.md b/2025/info/sun-close-after.md new file mode 100644 index 00000000..951d7071 --- /dev/null +++ b/2025/info/sun-close-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-close%3A%20Sunday%20closing%20remarks) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/sun-close-before.md b/2025/info/sun-close-before.md new file mode 100644 index 00000000..533c7115 --- /dev/null +++ b/2025/info/sun-close-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 10-min talk ; Q&A: BigBlueButton conference room +Status: Ready to stream + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/sun-close-nav.md b/2025/info/sun-close-nav.md new file mode 100644 index 00000000..fab7858b --- /dev/null +++ b/2025/info/sun-close-nav.md @@ -0,0 +1,6 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2025/talks/sun-open">Sunday opening remarks</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2025/info/sun-open-after.md b/2025/info/sun-open-after.md new file mode 100644 index 00000000..817a580e --- /dev/null +++ b/2025/info/sun-open-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-open%3A%20Sunday%20opening%20remarks) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2025/info/sun-open-before.md b/2025/info/sun-open-before.md new file mode 100644 index 00000000..64226dc9 --- /dev/null +++ b/2025/info/sun-open-before.md @@ -0,0 +1,12 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 10-min talk ; Q&A: Etherpad +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2025/info/sun-open-nav.md b/2025/info/sun-open-nav.md new file mode 100644 index 00000000..e970e829 --- /dev/null +++ b/2025/info/sun-open-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2025/talks/sat-close">Saturday closing remarks</a> +Next by track: <a href="/2025/talks/sun-close">Sunday closing remarks</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2025/organizers-notebook.md b/2025/organizers-notebook.md new file mode 100644 index 00000000..69239ef7 --- /dev/null +++ b/2025/organizers-notebook.md @@ -0,0 +1,994 @@ +<!-- organizers-notebook.md is exported from organizers-notebook/index.org, please modify that instead. --> +[[!sidebar content=""]] + +This file is automatically exported from [/2025/organizers-notebook/index.org](/2025/organizers-notebook/index.org). You might prefer to navigate this as an Org file instead. To do so, [clone the wiki repository](https://emacsconf.org/edit/). + +You might also like the [general organizers' notebook](/organizers-notebook) and [the organizers' notebook from 2024](/2024/organizers-notebook). + + +# Table of Contents + +- [Timeline](#timeline) +- [About this document](#about-this-doc) +- [Communications plan](#comms) +- [Good/better/best](#good-better-best) +- [Phases](#phases) + - [Set up organizers notebook](#org965ed4e) + - [Draft CFP](#cfp) + - [Draft schedule](#draft-schedule) + - [Prepare shift calendar, ask people to sign up](#shifts) + - [Record intros and opening remarks](#intros) +- [Check EmacsConf infrastructure](#check-emacsconf-infrastructure):project: + - [BigBlueButton](#check-emacsconf-infrastructure-bigbluebutton) + - [IRC web client](#check-emacsconf-infrastructure-irc-web-client) + - [IRC announcements](#check-emacsconf-infrastructure-irc-announcements) + - [Media](#check-emacsconf-infrastructure-media) + - [Publishing resources to the wiki](#check-emacsconf-infrastructure-publishing-resources-to-the-wiki) + - [Publishing videos to the media server](#check-emacsconf-infrastructure-publishing-videos-to-the-media-server) + - [Playing videos, switching to windows](#check-emacsconf-infrastructure-playing-videos-switching-to-windows) + - [Etherpad](#check-emacsconf-infrastructure-etherpad) + - [Do a dry run](#check-emacsconf-infrastructure-do-a-dry-run) + - [Resizing](#check-emacsconf-infrastructure-resizing) +- [Processes and notes](#processes-and-notes) + - [Hosting](#processes-and-notes-hosting) + - [ERC](#processes-and-notes-erc) +- [Decisions](#decisions) +- [Support code](#support-code) + + +<a id="timeline"></a> + +# TODO Timeline + +<table> + + +<colgroup> +<col class="org-left"> + +<col class="org-left"> + +<col class="org-right"> +</colgroup> +<tbody> +<tr> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-right">Days since previous milestone</td> +</tr> + +<tr> +<td class="org-left">CFP</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2025-06-27 Fri]</span></span></td> +<td class="org-right"> </td> +</tr> + +<tr> +<td class="org-left">CFP deadline</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2025-09-19 Fri]</span></span></td> +<td class="org-right">84</td> +</tr> + +<tr> +<td class="org-left">Speaker notifications</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2025-09-26 Fri]</span></span></td> +<td class="org-right"> </td> +</tr> + +<tr> +<td class="org-left"><b>Publish schedule</b></td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2025-10-24 Fri]</span></span></td> +<td class="org-right"> </td> +</tr> + +<tr> +<td class="org-left">Video submission deadline</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2025-10-31 Fri]</span></span></td> +<td class="org-right">42</td> +</tr> + +<tr> +<td class="org-left">EmacsConf</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2025-12-06 Sat]</span></span></td> +<td class="org-right">36</td> +</tr> +</tbody> +</table> + +We like to have at least a month to work on audio +normalization and transcription, and we want +speakers to have at least a month to work on their +videos (considering early submissions will already +have gotten started on processing). + + +<a id="about-this-doc"></a> + +# About this document + +Tags: + +- `conforg`: Requires access to private conf.org repository + + +<a id="comms"></a> + +# Communications plan + +Objectives: + +- keep everyone in the loop without them feeling like they’re overloaded + +Everyone: + +- [ ] Call for participation (speakers and volunteers) +- [ ] Reminder about CFP +- [ ] Last call + +Speakers: + +- [ ] Send all speakers backstage access and upload instructions +- [ ] Send all speakers check-in instructions + +Volunteers: + +- [ ] Send captioning volunteers the backstage info +- [ ] Send past captioning volunteers an invitation to participate - ask when there’s a lot of load +- [ ] Ask for help with audio processing + + +<a id="good-better-best"></a> + +# Good/better/best + +This table makes it easier to move the slider depending on who wants +to volunteer and how much we can get done. At some point, we’ll figure +out how to track our current status so we know what we need to +scramble to do in order to get the conference off the ground. **bold** +is our current goal. Feel free to volunteer for anything that +interests you! + +<table> + + +<colgroup> +<col class="org-left"> + +<col class="org-left"> + +<col class="org-left"> + +<col class="org-left"> +</colgroup> +<tbody> +<tr> +<td class="org-left"> </td> +<td class="org-left">Good</td> +<td class="org-left">Better</td> +<td class="org-left">Best</td> +</tr> + +<tr> +<td class="org-left">Streaming</td> +<td class="org-left">Regular stream</td> +<td class="org-left">+ alternate streams on PeerTube</td> +<td class="org-left">+ alternate streams on YouTube</td> +</tr> + +<tr> +<td class="org-left">480p</td> +<td class="org-left">Same on live</td> +<td class="org-left">Separate node</td> +<td class="org-left">Ansible setup</td> +</tr> + +<tr> +<td class="org-left">Audio normalization</td> +<td class="org-left">Core org handling it</td> +<td class="org-left">Other volunteer</td> +<td class="org-left">Multiple volunteers</td> +</tr> + +<tr> +<td class="org-left">Video resolution</td> +<td class="org-left">Usual reminders</td> +<td class="org-left">Extra reminders</td> +<td class="org-left">Everyone remembering to use a large font size</td> +</tr> + +<tr> +<td class="org-left">Intros</td> +<td class="org-left">Standard, recorded</td> +<td class="org-left">Reviewed by speakers</td> +<td class="org-left">More details/context</td> +</tr> + +<tr> +<td class="org-left">Pad</td> +<td class="org-left">v1.9.7</td> +<td class="org-left">v2.x</td> +<td class="org-left"> </td> +</tr> +</tbody> +</table> + + +<a id="phases"></a> + +# Phases + + +<a id="org965ed4e"></a> + +## DONE Set up organizers notebook + + +<a id="cfp"></a> + +## TODO Draft CFP + + +#### Draft linked pages + +- [X] cfp +- [X] submit page +- [X] year index + + +#### TODO Check with other organizers + + +#### TODO Post CFP in the usual places + +emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X + + +<a id="draft-schedule"></a> + +## TODO Draft schedule + +<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:30- 4:40 Saturday closing remarks</title><rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(718,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 1:00- 1:10 Sunday closing remarks</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg> + +Legend: + +- light blue: constraint is <= a time +- peach: constraint is >= a time +- solid line: Q&A will be through BigBlueButton web conference +- dashed line: Q&A will be IRC/Etherpad during the event or e-mail after the event + +Notes: + +- Sun: + - Sunday morning in 2023 had some packet loss issues at around 9:30, so we’ll start with some talks that don’t have BBB Q&A: [students](https://emacsconf.org/2025/talks/students "nil"), [links](https://emacsconf.org/2025/talks/links "nil"), [regex](https://emacsconf.org/2025/talks/regex "nil") + + +<a id="shifts"></a> + +## TODO Prepare shift calendar, ask people to sign up + +<a name="shifts"></a> + +AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition) + +Saturday Dec 6 2025 + +<table id="org4b1f399"> + + +<colgroup> +<col class="org-left"> + +<col class="org-right"> + +<col class="org-right"> + +<col class="org-left"> + +<col class="org-left"> + +<col class="org-left"> + +<col class="org-left"> + +<col class="org-left"> + +<col class="org-left"> +</colgroup> +<thead> +<tr> +<th scope="col" class="org-left"> </th> +<th scope="col" class="org-right">Start</th> +<th scope="col" class="org-right">End</th> +<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/host/">Host</a></th> +<th scope="col" class="org-left">Streamer</th> +<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/checkin/">Checkin</a></th> +<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/irc/">IRC</a></th> +<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/pad/">Pad</a></th> +<th scope="col" class="org-left">Coord</th> +</tr> +</thead> +<tbody> +<tr> +<td class="org-left">Gen AM</td> +<td class="org-right">09:00</td> +<td class="org-right">12:00</td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +</tr> + +<tr> +<td class="org-left">Gen PM</td> +<td class="org-right">13:00</td> +<td class="org-right">17:00</td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +</tr> + +<tr> +<td class="org-left">Dev AM</td> +<td class="org-right">10:00</td> +<td class="org-right">12:00</td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +</tr> + +<tr> +<td class="org-left">Dev PM</td> +<td class="org-right">13:00</td> +<td class="org-right">17:00</td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +<td class="org-left"> </td> +</tr> +</tbody> +</table> + +Sunday Dec 7 2025 + +<table id="orgbaba352"> + + +<colgroup> +<col class="org-left"> + +<col class="org-right"> + +<col class="org-right"> + +<col class="org-left"> + +<col class="org-left"> + +<col class="org-left"> + +<col class="org-left"> + +<col class="org-left"> + +<col class="org-left"> +</colgroup> +<thead> +<tr> +<th scope="col" class="org-left"> </th> +<th scope="col" class="org-right">Start</th> +<th scope="col" class="org-right">End</th> +<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/host/">Host</a></th> +<th scope="col" class="org-left">Streamer</th> +<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/checkin/">Checkin</a></th> +<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/irc/">IRC</a></th> +<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/pad/">Pad</a></th> +<th scope="col" class="org-left">Coord</th> +</tr> +</thead> +<tbody> +<tr> +<td class="org-left">Gen AM</td> +<td class="org-right">09:00</td> +<td class="org-right">12:00</td> +</tr> + +<tr> +<td class="org-left">Gen PM</td> +<td class="org-right">13:00</td> +<td class="org-right">17:00</td> +</tr> +</tbody> +</table> + +Backups: + +- dev host/streamer: +- gen host/streamer: +- checkin, IRC, pad: + +Interested in a shift? Please e-mail <mailto:emacsconf-org-private@gnu.org> and we’ll help you figure out what you need to learn. + + `(setq emacsconf-shifts + (list + ,@(apply #'append + (mapcar + (lambda (day) + (let ((headers + (mapcar + (lambda (field) + (intern + (concat + ":" + (downcase + (if (string-match org-link-bracket-re field) + (match-string 2 field) + field))))) + (seq-drop (car (cadr day)) 3)))) + (mapcar + (lambda (row) + (apply #'append + (list 'list :id + (when (string-match "^\\([^ ]+\\) \\(AM\\|PM\\)" (car row)) + (format "%s-%s-%s" + (car day) + (downcase (match-string 2 (car row))) + (downcase (match-string 1 (car row))))) + :track + (if (string-match "^Gen" (car row)) "General" "Development") + :start + (format "%sT%s:00%s" + (elt day 2) + (elt row 1) + emacsconf-timezone-offset) + :end + (format "%sT%s:00%s" + (elt day 2) + (elt row 2) + emacsconf-timezone-offset)) + (seq-map-indexed + (lambda (value index) + (unless (string= value "") + (list (elt headers index) value))) + (seq-drop row 3)))) + (cdr (cadr day))) + )) + (list + (list "sat" sat "2025-12-07") + (list "sun" sun "2025-12-08")))))) + + +<a id="intros"></a> + +## Record intros and opening remarks + + +### TODO Record sat-open remarks :emacsconf:record: + +Welcome to EmacsConf 2025, where we have fun +exploring how much we can do with a text editor. +It’s hard to give a general overview +of all the cool talks today and tomorrow, +so you can flip through the talks +and see what sparks your interests. +Don’t feel limited to one track or another. +The best parts of EmacsConf are the conversations. +The wiki has a page on how to watch and participate, +and I’ll give you a quick overview as well. +You can watch both streams at live.emacsconf.org +using free and open source software. +Using a streaming media player like mpv +seems to be the best way to watch in terms of performance +but there are also web-based players +just in case that’s all you’ve got. +The schedule shows the General track on top +and the Development track on the bottom, +so you can see what else is going on. +As you’re watching the talks, +you can refer to the schedule in another window. +Hover over the boxes to see the times and titles, +and click on the boxes in the schedule +to jump to the talk’s page for more details. +You can also get the schedule as an iCalendar file +or as an Org file in different time zones. +Many talks will be followed by +live Q&A web conferences with the speaker, +which will be done in BigBlueButton or BBB. +These are indicated with a solid border on the schedule +and by Q&A: BBB on the schedule page. +You can join the web conference room +by clicking on the BBB link +on the schedule page or the talk’s webpage. +Then you can ask your questions yourself when the Q&A starts. +To improve performance, please keep your webcam off +and stay muted until it’s your turn to talk. +If you don’t like Javascript, +you can still ask questions via IRC +and the hosts can read them out for you. +We’re probably going to automatically switch +between talks and Q&A sessions, +so the transitions on the stream might be a little sudden. + +People in the BigBlueButton room +can continue the conversation +even after the talk moves off-stream. +and you can also reach out to the speakers +using the contact information on the talk page. + +Other talks will have Q&A via Etherpad or IRC, +depending on what the speakers prefer. +This is indicated in the schedule with a dashed border +and on the schedule page as well. +Some talks will have the Q&A after the event, +so you can add your questions to their Etherpad +or ask on IRC. +We’ll e-mail the speakers afterwards +and update the talk pages when they answer. +The schedule pages and track pages have quick shortcuts +so that you can find out more about talks, open the Etherpads, +and join the Q&A sessions. The watch page has more tips +on how to make the most of Q&A. +If you can, please add notes and ask questions +in the Etherpad for the talk. That makes it easier +for everyone to share their notes, +and speakers and hosts can read the questions from there. +We’ll copy the notes to the talk pages afterwards. +We have one pad for each talk, +so you can follow the links to get to the next one +or go back to the schedule and get the link from there. +If you have general feedback about +the conference itself, please put it in +pad.emacsconf.org/2025 , which is linked on each pad. +You can also use this as a general community message board +for things like Help Wanted. +Internet Relay Chat or IRC can be another great way +to be part of lots of conversations. +You can use chat.emacsconf.org to join the IRC channels +through your web browser. The tabs on the left can help you +switch between the different channels. +There’s #emacsconf-gen for the General track +and #emacsconf-dev for the Development track. +If you need to reach us, you can join #emacsconf-org +or e-mail emacsconf-org-private@gnu.org. +You can use #emacsconf for hallway conversations. +Of course, you can join any of these channels +with your favourite IRC client. +You can connect to irc.libera.chat +port 6697 with TLS. +Once again, we’re going to be streaming with open captions +for most of the talks this year, thanks to our speakers and +captioning volunteers. The captioned talks are indicated +on the schedule, and with any luck, we’ll be posting +transcripts on talk pages shortly after the talks start. +If you need additional accommodations, +please let us know in #emacsconf-org +and we’ll see if we can make things happen. +If something goes down, we’ll update status.emacsconf.org. +If it doesn’t look like we’ve noticed yet, +please let us know in the #emacsconf-org IRC channel, +where we will be quietly panicking. +In all of these conversations, please keep in mind +our guidelines for conduct. You can find them on the wiki, +They basically boil down to: please be nice. +If all goes well, the prerecorded talks and transcripts +should be available from the talk pages +shortly after they start playing, +and we’ll post the recordings of live talks +and Q&A sessions within the next month or so. +If you’d like to get an update, you can subscribe to +the emacsconf-discuss mailing list. +All right, let’s get going. +Leo is hosting the general track, +and Corwin hosting the development track. +The other volunteers and I will run around mostly backstage, +and you’ll probably meet us in the closing remarks. +That’s also where we get to thank +all the people and organizations +who make EmacsConf possible. +Thanks for coming to EmacsConf 2025. + + +### TODO Record sun-open remarks + +Welcome to the second day of EmacsConf 2025. +The best parts of EmacsConf are the conversations. +The wiki has a page on how to watch and participate, +and I’ll give you a quick overview as well. +You can watch the stream at live.emacsconf.org +using free and open source software. +Using a streaming media player like mpv +seems to be the best way to watch in terms of performance +but there are also web-based players +just in case that’s all you’ve got. +As you’re watching the talks, +you can refer to the schedule in another window. +Hover over the boxes to see the times and titles, +and click on the boxes in the schedule +to jump to the talk’s page for more details. +You can also get the schedule as an iCalendar file +or as an Org file in different time zones. + +Many talks will be followed by +live Q&A web conferences with the speaker, +which will be done in BigBlueButton or BBB. +These are indicated with a solid border on the schedule +and by Q&A: BBB on the schedule page. +You can join the web conference room +by clicking on the BBB link +on the schedule page or the talk’s webpage. +Then you can ask your questions yourself when the Q&A starts. +To improve performance, please keep your webcam off +and stay muted until it’s your turn to talk. +If you don’t like Javascript, +you can still ask questions via IRC +and the hosts can read them out for you. + +We’re probably going to automatically switch +between talks and Q&A sessions, +so the transitions on the stream might be a little sudden, +People in the BigBlueButton room +can continue the conversation +even after the talk moves off-stream, +and you can also reach out to the speakers +using the contact information on the talk page. + +Other talks will have Q&A via Etherpad or IRC, +depending on what the speakers prefer. +This is indicated in the schedule with a dashed border +and on the schedule page as well. +Please ask your questions in the recommended places +so that the speakers can easily see them. + +Some talks will have the Q&A after the event, +so you can add your questions to their Etherpad. +We’ll e-mail the speakers afterwards +and update the talk pages when they answer. + +We’re going to start Sunday morning +with more IRC/Etherpad Q&A +to try to get around +some of the bandwidth issues +that we noticed last year. + +The schedule pages and track pages have quick shortcuts +so that you can find out more about talks, open the Etherpads, +and join the Q&A sessions. The watch page has more tips +on how to make the most of Q&A. +If you can, please add notes and ask questions +in the Etherpad for the talk. That makes it easier +for everyone to share their notes, +and speakers and hosts can read the questions from there. +We’ll copy the notes to the talk pages afterwards. +We have one pad for each talk, +so you can follow the links to get to the next one +or go back to the schedule and get the link from there. +If you have general feedback about +the conference itself, please put it in +pad.emacsconf.org/2025 , which is linked on each pad. +You can also use this as a general community message board +for things like Help Wanted. +Internet Relay Chat or IRC can be another great way +to be part of lots of conversations. +You can use chat.emacsconf.org to join the IRC channels +through your web browser. The tabs on the left can help you +switch between the different channels. +Most discussions will be in +\#emacsconf-gen for the General track. +If you need to reach us, you can join #emacsconf-org +or e-mail emacsconf-org-private@gnu.org. +You can use #emacsconf for hallway conversations. +Of course, you can join any of these channels +with your favourite IRC client. +You can connect to irc.libera.chat +port 6697 with TLS. +Once again, we’re going to be streaming with open captions +for most of the talks this year, thanks to our speakers and +captioning volunteers. The captioned talks are indicated +on the schedule, and with any luck, we’ll be posting +transcripts on talk pages shortly after the talks start. +If you need additional accommodations, +please let us know in #emacsconf-org +and we’ll see if we can make things happen. +If something goes down, we’ll update status.emacsconf.org. +If it doesn’t look like we’ve noticed yet, +please let us know in the #emacsconf-org IRC channel, +where we will be quietly panicking. +In all of these conversations, please keep in mind +our guidelines for conduct. You can find them on the wiki, +They basically boil down to: please be nice. +If all goes well, the prerecorded talks and transcripts +should be available from the talk pages +shortly after they start playing, +and we’ll post the recordings of live talks +and Q&A sessions within the next month or so. +If you’d like to get an update, you can subscribe to +the emacsconf-discuss mailing list. +All right, let’s get going. +Leo Vivier is hosting the general track again today. +The other volunteers and I will run around mostly backstage, +and you’ll probably meet us in the closing remarks. +That’s also where we get to thank +all the people and organizations +who make EmacsConf even possible. +Thanks for coming to EmacsConf 2025. + + +<a id="check-emacsconf-infrastructure"></a> + +# TODO Check EmacsConf infrastructure :project: + +- [ ] IRC +- [ ] Streaming assets +- [ ] Publishing to the wiki +- [ ] Web conference +- [ ] OBS +- [ ] Publishing to the media server +- [ ] Etherpad +- [ ] Streaming +- [ ] Toobnix +- [ ] YouTube +- [ ] Mumble: Can join from my phone, can speak on stream + + +<a id="check-emacsconf-infrastructure-bigbluebutton"></a> + +## TODO BigBlueButton + +- Plan: Scale up the bbb.emacsverse.org on Sacha’s Linode account +- [Installation notes from last year](https://emacsconf.org/2024/organizers-notebook/#check-emacsconf-infrastructure-bigbluebutton) + + +### TODO Create meeting rooms for each speaker + +[Creating talk BBB rooms](file:///home/sacha/proj/emacsconf/wiki/organizers-notebook/index.md) + + +### TODO Back up after the conference + +[Backing up BBB](file:///home/sacha/proj/emacsconf/wiki/organizers-notebook/index.md) + + +### TODO Set up moderator access codes for all the meeting rooms, and make it so people can start the meeting + +[Setting up moderator access codes](file:///home/sacha/proj/emacsconf/wiki/organizers-notebook/index.md) + + +### TODO Check BBB audio from my phone + + +### Customize BigBlueButton branding + + +#### TODO Change background presentation + +<https://docs.bigbluebutton.org/3.0/administration/customize/#change-the-default-presentation> + + +#### TODO Modify landing page + +/var/www/bigbluebutton-default/assets/index.html +keep backup copy as it will be overwritten when bbb-conf is called + + +#### TODO Change default welcome message + +<https://docs.bigbluebutton.org/3.0/administration/customize/#change-the-default-welcome-message> + + +#### TODO Change html5 title + +/usr/share/bigbluebutton/html5-client/private/config/settings.yml + +TARGET=/usr/share/bigbluebutton/html5-client/private/config/settings.yml +yq e -i “.public.app.clientTitle = \\”EmacsConf\\“” $TARGET + + +#### TODO Try live captions + +<https://docs.bigbluebutton.org/3.0/administration/customize/#enable-live-captions> + + +#### TODO Explore meeting layout? Default to custom, hosts will need to drag people’s webcam over if there’s a share + + +<a id="check-emacsconf-infrastructure-irc-web-client"></a> + +## IRC web client + + +### TODO Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 6 and 7 + +[IRC web client](file:///home/sacha/proj/emacsconf/wiki/organizers-notebook/index.md) + + +<a id="check-emacsconf-infrastructure-irc-announcements"></a> + +## IRC announcements + + +### TODO Confirm manual IRC announcements + + +### TODO Confirm automated IRC announcements from res + + +<a id="check-emacsconf-infrastructure-media"></a> + +## Media + + +### TODO Switch public media to unprotected root before the conference + +1. Clear public media directory. +2. Set `media_protect_root` to false in Ansible `group_vars/all.yml`. +3. `ansible-playbook -i inventory.yml prod-playbook.yml --tags media` + +You can generate the index with `emacsconf-publish-update-media`. + + +<a id="check-emacsconf-infrastructure-publishing-resources-to-the-wiki"></a> + +## TODO Publishing resources to the wiki + +ansible-playbook -i inventory.yml prod-playbook.yml –tags publish + + +<a id="check-emacsconf-infrastructure-publishing-videos-to-the-media-server"></a> + +## TODO Publishing videos to the media server + + +<a id="check-emacsconf-infrastructure-playing-videos-switching-to-windows"></a> + +## Playing videos, switching to windows + + +### TODO Generate test videos for everything + + +### TODO Document how to get that set up again + + +<a id="check-emacsconf-infrastructure-etherpad"></a> + +## Etherpad + + +### TODO Generate pads for all the talks + + +### TODO Generate the main index + + +<a id="check-emacsconf-infrastructure-do-a-dry-run"></a> + +## TODO Do a dry run + + +### TODO Generate all the test assets + + +### TODO Test connecting to VNC and streaming via OBS + + +<a id="check-emacsconf-infrastructure-resizing"></a> + +## Resizing + +live0: 64GB +front0: 32GB +meet: 64GB + + +### TODO Resize nodes before production + +live0: 64GB +front0: 32GB +meet: 64GB + + +### TODO Resize nodes after production + +live0: nanode +front0: nanode + + +### TODO Resize meet after production + +meet: nanode + + +<a id="processes-and-notes"></a> + +# Processes and notes + + +<a id="processes-and-notes-hosting"></a> + +## Hosting + + +### TODO Finalize host for dev track + + +<a id="processes-and-notes-erc"></a> + +## ERC + +Some convenient commands are defined in <a href="https://git.emacsconf.org/emacsconf-el/tree/emacsconf-erc.el">emacsconf-erc.el</a>. + +<table> + + +<colgroup> +<col class="org-left"> + +<col class="org-left"> +</colgroup> +<tbody> +<tr> +<td class="org-left">/opall</td> +<td class="org-left">Grant operator status in the Emacsconf channels</td> +</tr> + +<tr> +<td class="org-left">/deopall</td> +<td class="org-left">Remove operator status in the Emacsconf channels</td> +</tr> + +<tr> +<td class="org-left">/conftopic</td> +<td class="org-left">Set the first part of the topic</td> +</tr> +</tbody> +</table> + + +<a id="decisions"></a> + +# Decisions + + +<a id="support-code"></a> + +# Support code + + (defun my-ox-link-path (link _ info) + (let* ((raw-path (org-element-property :path link))) + (setq raw-path + (org-export-file-uri + (org-publish-file-relative-name raw-path info))) + ;; Possibly append `:html-link-home' to relative file + ;; name. + (let ((home (and (plist-get info :html-link-home) + (org-trim (plist-get info :html-link-home))))) + (when (and home + (plist-get info :html-link-use-abs-url) + (not (file-name-absolute-p raw-path))) + (setq raw-path (concat (file-name-as-directory home) raw-path)))) + raw-path)) + + (defun my-org-md-link (link desc info) + (if (string= (org-element-property :type link) "file") + (let ((path (my-ox-link-path link desc info))) + (if (string= (file-name-extension path) "svg") + (with-temp-buffer + (insert-file-contents-literally path) + (buffer-string)) + (org-md-link link desc info))) + (org-md-link link desc info))) + + (with-eval-after-load 'ox-md + (setf + (alist-get 'link (org-export-backend-transcoders (org-export-get-backend 'md))) + 'my-org-md-link)) + diff --git a/2025/organizers-notebook/index.org b/2025/organizers-notebook/index.org new file mode 100644 index 00000000..e4bdfccc --- /dev/null +++ b/2025/organizers-notebook/index.org @@ -0,0 +1,908 @@ +# [[elisp:(progn (memoize 'emacsconf-get-talk-info "5 seconds") (condition-case nil (org-md-export-to-markdown) (error nil)) (memoize-restore 'emacsconf-get-talk-info))][Export this file to Markdown]] +#+TAGS: emacsconf +# [[elisp:(memoize 'emacsconf-get-talk-info "5 seconds")][Memoize emacsconf-get-talk-info]] - [[elisp:(memoize-restore 'emacsconf-get-talk-info)][Unmemoize]] +#+todo: TODO(t) SOMEDAY STARTED INPROGRESS(i) WAITING(w) STANDBY(s) BLOCKED(b) | DONE(x) CANCELLED(c) +#+OPTIONS: h:6 toc:nil num:nil ':t +#+PROPERTY: header-args :results silent :exports code :tangle yes +#+EXPORT_FILE_NAME: ../organizers-notebook.md +#+PROPERTY: QUANTIFIED Emacs + +#+begin_export md +<!-- organizers-notebook.md is exported from organizers-notebook/index.org, please modify that instead. --> +[[!sidebar content=""]] + +This file is automatically exported from [/2025/organizers-notebook/index.org](/2025/organizers-notebook/index.org). You might prefer to navigate this as an Org file instead. To do so, [clone the wiki repository](https://emacsconf.org/edit/). + +You might also like the [general organizers' notebook](/organizers-notebook) and [the organizers' notebook from 2024](/2024/organizers-notebook). +#+end_export + + + +#+NAME: list-headings +#+begin_src emacs-lisp :results value replace :exports results :eval never-export :var heading="Help wanted" :var match="helpwanted" +(emacsconf-surround + (concat heading ":\n\n") + (string-join + (delq nil + (org-map-entries + (lambda () + (when (and (org-entry-is-todo-p) (not (org-entry-is-done-p))) + (format "- %s %s\n" + (org-link-make-string + (concat "#" (org-entry-get (point) "CUSTOM_ID")) + (org-entry-get (point) "ITEM")) + (emacsconf-surround + "(by " + (and (org-entry-get (point) "DEADLINE") + (replace-regexp-in-string "[<>]" "" (org-entry-get (point) "DEADLINE"))) + ")" + "")))) + match nil)) + "") +"" "") +#+end_src + +#+RESULTS: list-headings +:results: +:end: + +#+CALL: list-headings(heading="Decisions to make", match="decision") + +#+RESULTS: +:results: +:end: + + +#+TOC: headlines 2 +* COMMENT Shortcuts +:PROPERTIES: +:CUSTOM_ID: shortcuts +:END: + +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org][Common notebook]] + +* TODO Timeline +:PROPERTIES: +:CUSTOM_ID: timeline +:END: + +| | | Days since previous milestone | +| CFP | [2025-06-27 Fri] | | +| CFP deadline | [2025-09-19 Fri] | 84 | +| Speaker notifications | [2025-09-26 Fri] | | +| Publish schedule | [2025-10-24 Fri] | | +| Video submission deadline | [2025-10-31 Fri] | 42 | +| EmacsConf | [2025-12-06 Sat] | 36 | +#+TBLFM: @3$3=@3$2-@2$2::@6$3=@6$2-@3$2::@7$3=@7$2-@6$2 + +We like to have at least a month to work on audio +normalization and transcription, and we want +speakers to have at least a month to work on their +videos (considering early submissions will already +have gotten started on processing). + +* About this document +:PROPERTIES: +:CUSTOM_ID: about-this-doc +:END: + +Tags: +- =conforg=: Requires access to private conf.org repository + +* Communications plan +:PROPERTIES: +:CUSTOM_ID: comms +:END: + +Objectives: +- keep everyone in the loop without them feeling like they're overloaded + +Everyone: +- [ ] Call for participation (speakers and volunteers) +- [ ] Reminder about CFP +- [ ] Last call + +Speakers: +- [ ] Send all speakers backstage access and upload instructions +- [ ] Send all speakers check-in instructions + +Volunteers: +- [ ] Send captioning volunteers the backstage info +- [ ] Send past captioning volunteers an invitation to participate - ask when there's a lot of load +- [ ] Ask for help with audio processing + +* Good/better/best +:PROPERTIES: +:CUSTOM_ID: good-better-best +:END: + +This table makes it easier to move the slider depending on who wants +to volunteer and how much we can get done. At some point, we'll figure +out how to track our current status so we know what we need to +scramble to do in order to get the conference off the ground. *bold* +is our current goal. Feel free to volunteer for anything that +interests you! + + | | Good | Better | Best | + | Streaming | Regular stream | + alternate streams on PeerTube | + alternate streams on YouTube | + | 480p | Same on live | Separate node | Ansible setup | + | Audio normalization | Core org handling it | Other volunteer | Multiple volunteers | + | Video resolution | Usual reminders | Extra reminders | Everyone remembering to use a large font size | + | Intros | Standard, recorded | Reviewed by speakers | More details/context | + | Pad | v1.9.7 | v2.x | | + +* Phases +:PROPERTIES: +:CUSTOM_ID: phases +:END: +** DONE Set up organizers notebook +CLOSED: [2025-06-17 Tue 10:41] +:LOGBOOK: +- State "DONE" from "TODO" [2025-06-17 Tue 10:41] +:END: + +** TODO Draft CFP +:PROPERTIES: +:CUSTOM_ID: cfp +:END: + +**** Draft linked pages +:PROPERTIES: +:CUSTOM_ID: phases-draft-cfp-draft-linked-pages +:END: + +- [X] cfp +- [X] submit page +- [X] year index + +**** DONE Check with other organizers +CLOSED: [2025-06-24 Tue 21:15] DEADLINE: <2025-06-23 Mon> +:PROPERTIES: +:CUSTOM_ID: phases-draft-cfp-check-with-other-organizers +:END: +**** DONE Update dates in emacsconf.el +CLOSED: [2025-06-25 Wed 09:13] + +[[file:~/proj/emacsconf/lisp/emacsconf.el]] +[[file:~/proj/emacsconf/lisp/emacsconf-erc.el]] +**** TODO Update conf topic +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#phases-and-lessons-learned-draft-cfp-update-the-irc-topic][Update the IRC topic]] +**** TODO Remove draft marker + +- [ ] cfp +- [ ] submit + +**** DONE Post CFP in the usual places +CLOSED: [2025-06-30 Mon 16:32] SCHEDULED: <2025-06-27 Fri> +:PROPERTIES: +:CUSTOM_ID: phases-draft-cfp-post-cfp-in-the-usual-places +:END: +- [ ] emacsconf-discuss +- [ ] reddit.com/r/emacs +- [ ] Emacs News +- [ ] emacs-tangents or info-gnu-emacs +- [ ] Mastodon +- [ ] Bluesky +- [ ] X +** TODO Draft schedule +:PROPERTIES: +:CUSTOM_ID: draft-schedule +:END: + +#+NAME: schedule +#+begin_src emacs-lisp :results value replace :exports none :eval never-export :var filename="schedule.svg" +(require 'emacsconf) +(require 'emacsconf-schedule) +(setq emacsconf-schedule-tracks + '((:label "Saturday" + :start "2025-12-06 9:00" + :end "2025-12-06 18:00" + :tracks ("General" "Development")) + (:label "Sunday" + :start "2025-12-07 9:00" + :end "2025-12-07 18:00" + :tracks ("General" "Development")))) +(let ((emacsconf-schedule-default-buffer-minutes 10) + (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 20) + (emacsconf-schedule-break-time 10) + (emacsconf-schedule-lunch-time 60) + (emacsconf-use-absolute-url t) + (emacsconf-schedule-strategies '(emacsconf-schedule-allocate-buffer-time + emacsconf-schedule-copy-previous-track)) + (emacsconf-schedule-validation-functions + '(emacsconf-schedule-validate-time-constraints + ;; emacsconf-schedule-validate-live-q-and-a-sessions-are-staggered + emacsconf-schedule-validate-no-cancelled-talks + emacsconf-schedule-validate-all-talks-present + emacsconf-schedule-validate-no-duplicates))) + (setq emacsconf-schedule-plan + '(("GEN Saturday, Dec 6" :start "2025-12-06 09:00" :set-track "General") + sat-open + reference + bibliography + life + latex + completion + (lunch :start "12:00") + (sat-close :start "16:30") + ("DEV Saturday, Dec 6" :start "2025-12-06 10:00" :set-track "Development") + python + juicemacs + (lunch :start "12:00") + claude-code + (commonlisp :start "14:00") + ("GEN Sunday, Dec 7" :start "2025-12-07 09:00" :set-track "General") + sun-open + (lunch :start "12:00" :start "16:30") + (sun-close) + )) + (setq emacsconf-schedule-draft (emacsconf-schedule-prepare (emacsconf-schedule-inflate-sexp emacsconf-schedule-plan))) + (prog1 (string-join (emacsconf-schedule-validate emacsconf-schedule-draft) "\n") + (let ((emacsconf-schedule-svg-modify-functions + '(emacsconf-schedule-svg-color-by-availability + ;emacsconf-schedule-svg-color-by-status + ))) + (with-temp-file (expand-file-name filename (file-name-directory emacsconf-org-file)) + (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft))) + (with-temp-file (expand-file-name filename (expand-file-name "organizers-notebook" (expand-file-name emacsconf-year emacsconf-directory))) + (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft)))) + (clear-image-cache))) +#+end_src + +#+RESULTS: schedule +:results: +sunday closing remarks: Starts at 13:00 before 16:30 +:end: + +[[file:schedule.svg]] + +Legend: +- light blue: constraint is <= a time +- peach: constraint is >= a time +- solid line: Q&A will be through BigBlueButton web conference +- dashed line: Q&A will be IRC/Etherpad during the event or e-mail after the event + +Notes: + +- Sun: + - Sunday morning in 2023 had some packet loss issues at around 9:30, so we'll start with some talks that don't have BBB Q&A: emacsconf:students, emacsconf:links, emacsconf:regex + +** TODO Prepare shift calendar, ask people to sign up +SCHEDULED: <2025-11-01 Sat> +:PROPERTIES: +:CUSTOM_ID: shifts +:END: + +#+BEGIN_EXPORT md +<a name="shifts"></a> +#+END_EXPORT + +AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition) + +Saturday Dec 6 2025 + +#+NAME: saturday-shifts +| | Start | End | [[https://emacsconf.org/2023/volunteer/host/][Host]] | Streamer | [[https://emacsconf.org/2023/volunteer/checkin/][Checkin]] | [[https://emacsconf.org/2023/volunteer/irc/][IRC]] | [[https://emacsconf.org/2023/volunteer/pad/][Pad]] | Coord | +|--------+-------+-------+------+----------+---------+-----+-----+-------| +| Gen AM | 09:00 | 12:00 | | | | | | | +| Gen PM | 13:00 | 17:00 | | | | | | | +| Dev AM | 10:00 | 12:00 | | | | | | | +| Dev PM | 13:00 | 17:00 | | | | | | | + +Sunday Dec 7 2025 + +#+NAME: sunday-shifts +| | Start | End | [[https://emacsconf.org/2023/volunteer/host/][Host]] | Streamer | [[https://emacsconf.org/2023/volunteer/checkin/][Checkin]] | [[https://emacsconf.org/2023/volunteer/irc/][IRC]] | [[https://emacsconf.org/2023/volunteer/pad/][Pad]] | Coord | +|--------+-------+-------+------+----------+---------+-----+-----+-------| +| Gen AM | 09:00 | 12:00 | | | | | | | +| Gen PM | 13:00 | 17:00 | | | | | | | + +Backups: +- dev host/streamer: +- gen host/streamer: +- checkin, IRC, pad: + +Interested in a shift? Please e-mail [[mailto:emacsconf-org-private@gnu.org]] and we'll help you figure out what you need to learn. + +#+begin_src emacs-lisp :var sat=saturday-shifts :var sun=sunday-shifts :rownames no :colnames no :results verbatim replace +`(setq emacsconf-shifts + (list + ,@(apply #'append + (mapcar + (lambda (day) + (let ((headers + (mapcar + (lambda (field) + (intern + (concat + ":" + (downcase + (if (string-match org-link-bracket-re field) + (match-string 2 field) + field))))) + (seq-drop (car (cadr day)) 3)))) + (mapcar + (lambda (row) + (apply #'append + (list 'list :id + (when (string-match "^\\([^ ]+\\) \\(AM\\|PM\\)" (car row)) + (format "%s-%s-%s" + (car day) + (downcase (match-string 2 (car row))) + (downcase (match-string 1 (car row))))) + :track + (if (string-match "^Gen" (car row)) "General" "Development") + :start + (format "%sT%s:00%s" + (elt day 2) + (elt row 1) + emacsconf-timezone-offset) + :end + (format "%sT%s:00%s" + (elt day 2) + (elt row 2) + emacsconf-timezone-offset)) + (seq-map-indexed + (lambda (value index) + (unless (string= value "") + (list (elt headers index) value))) + (seq-drop row 3)))) + (cdr (cadr day))) + )) + (list + (list "sat" sat "2025-12-07") + (list "sun" sun "2025-12-08")))))) + +#+end_src + +#+RESULTS: +:results: +(setq emacsconf-shifts (list (list :id "sat-am-gen" :track "General" :start "2025-12-07T09:00:00-0500" :end "2025-12-07T12:00:00-0500") (list :id "sat-pm-gen" :track "General" :start "2025-12-07T13:00:00-0500" :end "2025-12-07T17:00:00-0500") (list :id "sat-am-dev" :track "Development" :start "2025-12-07T10:00:00-0500" :end "2025-12-07T12:00:00-0500") (list :id "sat-pm-dev" :track "Development" :start "2025-12-07T13:00:00-0500" :end "2025-12-07T17:00:00-0500") (list :id "sun-am-gen" :track "General" :start "2025-12-08T09:00:00-0500" :end "2025-12-08T12:00:00-0500") (list :id "sun-pm-gen" :track "General" :start "2025-12-08T13:00:00-0500" :end "2025-12-08T17:00:00-0500"))) +:end: + + +** Record intros and opening remarks +:PROPERTIES: +:CUSTOM_ID: intros +:END: + +*** TODO Record sat-open remarks :emacsconf:record: +:PROPERTIES: +:Effort: 0:30 +:CUSTOM_ID: phases-record-intros-and-opening-remarks-record-sat-open-remarks +:END: + +Welcome to EmacsConf 2025, where we have fun +exploring how much we can do with a text editor. +It's hard to give a general overview +of all the cool talks today and tomorrow, +so you can flip through the talks +and see what sparks your interests. +Don't feel limited to one track or another. +The best parts of EmacsConf are the conversations. +The wiki has a page on how to watch and participate, +and I'll give you a quick overview as well. +You can watch both streams at live.emacsconf.org +using free and open source software. +Using a streaming media player like mpv +seems to be the best way to watch in terms of performance +but there are also web-based players +just in case that's all you've got. +The schedule shows the General track on top +and the Development track on the bottom, +so you can see what else is going on. +As you're watching the talks, +you can refer to the schedule in another window. +Hover over the boxes to see the times and titles, +and click on the boxes in the schedule +to jump to the talk's page for more details. +You can also get the schedule as an iCalendar file +or as an Org file in different time zones. +Many talks will be followed by +live Q&A web conferences with the speaker, +which will be done in BigBlueButton or BBB. +These are indicated with a solid border on the schedule +and by Q&A: BBB on the schedule page. +You can join the web conference room +by clicking on the BBB link +on the schedule page or the talk's webpage. +Then you can ask your questions yourself when the Q&A starts. +To improve performance, please keep your webcam off +and stay muted until it's your turn to talk. +If you don't like Javascript, +you can still ask questions via IRC +and the hosts can read them out for you. +We're probably going to automatically switch +between talks and Q&A sessions, +so the transitions on the stream might be a little sudden. + +People in the BigBlueButton room +can continue the conversation +even after the talk moves off-stream. +and you can also reach out to the speakers +using the contact information on the talk page. + +Other talks will have Q&A via Etherpad or IRC, +depending on what the speakers prefer. +This is indicated in the schedule with a dashed border +and on the schedule page as well. +Some talks will have the Q&A after the event, +so you can add your questions to their Etherpad +or ask on IRC. +We'll e-mail the speakers afterwards +and update the talk pages when they answer. +The schedule pages and track pages have quick shortcuts +so that you can find out more about talks, open the Etherpads, +and join the Q&A sessions. The watch page has more tips +on how to make the most of Q&A. +If you can, please add notes and ask questions +in the Etherpad for the talk. That makes it easier +for everyone to share their notes, +and speakers and hosts can read the questions from there. +We'll copy the notes to the talk pages afterwards. +We have one pad for each talk, +so you can follow the links to get to the next one +or go back to the schedule and get the link from there. +If you have general feedback about +the conference itself, please put it in +pad.emacsconf.org/2025 , which is linked on each pad. +You can also use this as a general community message board +for things like Help Wanted. +Internet Relay Chat or IRC can be another great way +to be part of lots of conversations. +You can use chat.emacsconf.org to join the IRC channels +through your web browser. The tabs on the left can help you +switch between the different channels. +There's #emacsconf-gen for the General track +and #emacsconf-dev for the Development track. +If you need to reach us, you can join #emacsconf-org +or e-mail emacsconf-org-private@gnu.org. +You can use #emacsconf for hallway conversations. +Of course, you can join any of these channels +with your favourite IRC client. +You can connect to irc.libera.chat +port 6697 with TLS. +Once again, we're going to be streaming with open captions +for most of the talks this year, thanks to our speakers and +captioning volunteers. The captioned talks are indicated +on the schedule, and with any luck, we'll be posting +transcripts on talk pages shortly after the talks start. +If you need additional accommodations, +please let us know in #emacsconf-org +and we'll see if we can make things happen. +If something goes down, we'll update status.emacsconf.org. +If it doesn't look like we've noticed yet, +please let us know in the #emacsconf-org IRC channel, +where we will be quietly panicking. +In all of these conversations, please keep in mind +our guidelines for conduct. You can find them on the wiki, +They basically boil down to: please be nice. +If all goes well, the prerecorded talks and transcripts +should be available from the talk pages +shortly after they start playing, +and we'll post the recordings of live talks +and Q&A sessions within the next month or so. +If you'd like to get an update, you can subscribe to +the emacsconf-discuss mailing list. +All right, let's get going. +Leo is hosting the general track, +and Corwin hosting the development track. +The other volunteers and I will run around mostly backstage, +and you'll probably meet us in the closing remarks. +That's also where we get to thank +all the people and organizations +who make EmacsConf possible. +Thanks for coming to EmacsConf 2025. +*** TODO Record sun-open remarks +:PROPERTIES: +:CUSTOM_ID: phases-record-intros-and-opening-remarks-record-sun-open-remarks +:END: + +Welcome to the second day of EmacsConf 2025. +The best parts of EmacsConf are the conversations. +The wiki has a page on how to watch and participate, +and I'll give you a quick overview as well. +You can watch the stream at live.emacsconf.org +using free and open source software. +Using a streaming media player like mpv +seems to be the best way to watch in terms of performance +but there are also web-based players +just in case that's all you've got. +As you're watching the talks, +you can refer to the schedule in another window. +Hover over the boxes to see the times and titles, +and click on the boxes in the schedule +to jump to the talk's page for more details. +You can also get the schedule as an iCalendar file +or as an Org file in different time zones. + +Many talks will be followed by +live Q&A web conferences with the speaker, +which will be done in BigBlueButton or BBB. +These are indicated with a solid border on the schedule +and by Q&A: BBB on the schedule page. +You can join the web conference room +by clicking on the BBB link +on the schedule page or the talk's webpage. +Then you can ask your questions yourself when the Q&A starts. +To improve performance, please keep your webcam off +and stay muted until it's your turn to talk. +If you don't like Javascript, +you can still ask questions via IRC +and the hosts can read them out for you. + +We're probably going to automatically switch +between talks and Q&A sessions, +so the transitions on the stream might be a little sudden, +People in the BigBlueButton room +can continue the conversation +even after the talk moves off-stream, +and you can also reach out to the speakers +using the contact information on the talk page. + +Other talks will have Q&A via Etherpad or IRC, +depending on what the speakers prefer. +This is indicated in the schedule with a dashed border +and on the schedule page as well. +Please ask your questions in the recommended places +so that the speakers can easily see them. + +Some talks will have the Q&A after the event, +so you can add your questions to their Etherpad. +We'll e-mail the speakers afterwards +and update the talk pages when they answer. + +We're going to start Sunday morning +with more IRC/Etherpad Q&A +to try to get around +some of the bandwidth issues +that we noticed last year. + +The schedule pages and track pages have quick shortcuts +so that you can find out more about talks, open the Etherpads, +and join the Q&A sessions. The watch page has more tips +on how to make the most of Q&A. +If you can, please add notes and ask questions +in the Etherpad for the talk. That makes it easier +for everyone to share their notes, +and speakers and hosts can read the questions from there. +We'll copy the notes to the talk pages afterwards. +We have one pad for each talk, +so you can follow the links to get to the next one +or go back to the schedule and get the link from there. +If you have general feedback about +the conference itself, please put it in +pad.emacsconf.org/2025 , which is linked on each pad. +You can also use this as a general community message board +for things like Help Wanted. +Internet Relay Chat or IRC can be another great way +to be part of lots of conversations. +You can use chat.emacsconf.org to join the IRC channels +through your web browser. The tabs on the left can help you +switch between the different channels. +Most discussions will be in +#emacsconf-gen for the General track. +If you need to reach us, you can join #emacsconf-org +or e-mail emacsconf-org-private@gnu.org. +You can use #emacsconf for hallway conversations. +Of course, you can join any of these channels +with your favourite IRC client. +You can connect to irc.libera.chat +port 6697 with TLS. +Once again, we're going to be streaming with open captions +for most of the talks this year, thanks to our speakers and +captioning volunteers. The captioned talks are indicated +on the schedule, and with any luck, we'll be posting +transcripts on talk pages shortly after the talks start. +If you need additional accommodations, +please let us know in #emacsconf-org +and we'll see if we can make things happen. +If something goes down, we'll update status.emacsconf.org. +If it doesn't look like we've noticed yet, +please let us know in the #emacsconf-org IRC channel, +where we will be quietly panicking. +In all of these conversations, please keep in mind +our guidelines for conduct. You can find them on the wiki, +They basically boil down to: please be nice. +If all goes well, the prerecorded talks and transcripts +should be available from the talk pages +shortly after they start playing, +and we'll post the recordings of live talks +and Q&A sessions within the next month or so. +If you'd like to get an update, you can subscribe to +the emacsconf-discuss mailing list. +All right, let's get going. +Leo Vivier is hosting the general track again today. +The other volunteers and I will run around mostly backstage, +and you'll probably meet us in the closing remarks. +That's also where we get to thank +all the people and organizations +who make EmacsConf even possible. +Thanks for coming to EmacsConf 2025. + +* TODO [#A] Check EmacsConf infrastructure :project: +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure +:END: + +- [ ] IRC +- [ ] Streaming assets +- [ ] Publishing to the wiki +- [ ] Web conference +- [ ] OBS +- [ ] Publishing to the media server +- [ ] Etherpad +- [ ] Streaming +- [ ] Toobnix +- [ ] YouTube +- [ ] Mumble: Can join from my phone, can speak on stream + +** TODO [#A] BigBlueButton +:PROPERTIES: +:CREATED: [2024-11-02 Sat 11:38] +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton +:END: + +- Plan: Scale up the bbb.emacsverse.org on Sacha's Linode account +- [[https://emacsconf.org/2024/organizers-notebook/#check-emacsconf-infrastructure-bigbluebutton][Installation notes from last year]] + +*** TODO Create meeting rooms for each speaker +:PROPERTIES: +:CREATED: [2024-11-02 Sat 11:50] +:Effort: 0:30 +:CUSTOM_ID: create_rooms +:END: +:LOGBOOK: +CLOCK: [2024-11-28 Thu 10:00]--[2024-11-28 Thu 10:12] => 0:12 +CLOCK: [2024-11-20 Wed 10:48]--[2024-11-20 Wed 12:18] => 1:30 +:END: + +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-bigbluebutton-creating-talk-bbb-rooms][Creating talk BBB rooms]] + +*** TODO Back up after the conference +SCHEDULED: <2025-12-13 Sat> +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-notes-backing-up +:CREATED: [2025-06-17 Tue 10:34] +:END: + +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-bigbluebutton-backing-up-bbb][Backing up BBB]] + +*** TODO Set up moderator access codes for all the meeting rooms, and make it so people can start the meeting +:PROPERTIES: +:Effort: 0:30 +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-set-up-moderator-access-codes-for-all-the-meeting-rooms-and-make-it-so-people-can-start-the-meeting +:END: + +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-bigbluebutton-setting-up-moderator-access-codes][Setting up moderator access codes]] +*** TODO Check BBB audio from my phone +SCHEDULED: <2025-11-21 Fri> +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-check-bbb-audio-from-my-phone +:END: +*** Customize BigBlueButton branding +**** TODO [#C] Change background presentation +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-change-background-presentation +:END: +https://docs.bigbluebutton.org/3.0/administration/customize/#change-the-default-presentation +**** TODO [#C] Modify landing page +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-modify-landing-page +:END: +/var/www/bigbluebutton-default/assets/index.html +keep backup copy as it will be overwritten when bbb-conf is called +**** TODO [#C] Change default welcome message +:PROPERTIES: +:Effort: 0:30 +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-change-default-welcome-message +:END: +https://docs.bigbluebutton.org/3.0/administration/customize/#change-the-default-welcome-message +**** TODO [#C] Change html5 title +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-change-html5-title +:END: +/usr/share/bigbluebutton/html5-client/private/config/settings.yml + +TARGET=/usr/share/bigbluebutton/html5-client/private/config/settings.yml +yq e -i ".public.app.clientTitle = \"EmacsConf\"" $TARGET +**** TODO [#C] Try live captions +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-try-live-captions +:END: +https://docs.bigbluebutton.org/3.0/administration/customize/#enable-live-captions +**** TODO Explore meeting layout? Default to custom, hosts will need to drag people's webcam over if there's a share +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-explore-meeting-layout-default-to-custom-hosts-will-need-to-drag-people-s-webcam-over-if-there-s-a-share +:END: + +** IRC web client +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-web-client +:END: +*** TODO Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 6 and 7 +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-web-client-ask-libera-chat-to-increase-connections-allowed-from-chat-emacsconf-org-on-dec-7-and-8 +:END: +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-irc-web-client][IRC web client]] +** IRC announcements +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-announcements +:END: +*** TODO Confirm manual IRC announcements +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-announcements-confirm-manual-irc-announcements +:END: +*** TODO Confirm automated IRC announcements from res +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-announcements-confirm-automated-irc-announcements-from-res +:END: +** Media +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-media +:END: + +*** TODO Switch public media to unprotected root before the conference +SCHEDULED: <2025-11-29 Sat> +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-media-switch-public-media-to-unprotected-root-before-the-conference +:END: + +1. Clear public media directory. +2. Set =media_protect_root= to false in Ansible =group_vars/all.yml=. +3. =ansible-playbook -i inventory.yml prod-playbook.yml --tags media= + +You can generate the index with =emacsconf-publish-update-media=. +** TODO Publishing resources to the wiki +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-publishing-resources-to-the-wiki +:END: +ansible-playbook -i inventory.yml prod-playbook.yml --tags publish + + + +** TODO Publishing videos to the media server +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-publishing-videos-to-the-media-server +:END: +** Playing videos, switching to windows +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows +:END: + +*** TODO Generate test videos for everything +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows-generate-test-videos-for-everything +:END: +*** TODO Document how to get that set up again +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows-document-how-to-get-that-set-up-again +:END: +** Etherpad +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-etherpad +:END: +*** TODO Generate pads for all the talks +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-etherpad-generate-pads-for-all-the-talks +:END: +*** TODO Generate the main index +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-etherpad-generate-the-main-index +:END: +** TODO Do a dry run +SCHEDULED: <2025-11-22 Sat> +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run +:END: +*** TODO Generate all the test assets +:PROPERTIES: +:Effort: 0:15 +:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run-generate-all-the-test-assets +:END: +*** TODO Test connecting to VNC and streaming via OBS +SCHEDULED: <2025-11-07 Fri> +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run-test-connecting-to-vnc-and-streaming-via-obs +:END: +** Resizing +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-resizing +:END: + +live0: 64GB +front0: 32GB +meet: 64GB + +*** TODO [#A] Resize nodes before production +SCHEDULED: <2025-12-05 Fri> +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-nodes-before-production +:END: + +live0: 64GB +front0: 32GB +meet: 64GB + +*** TODO [#A] Resize nodes after production +SCHEDULED: <2025-12-08 Mon> +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-nodes-after-production +:END: + +live0: nanode +front0: nanode +*** TODO [#A] Resize meet after production +SCHEDULED: <2025-12-10 Wed> +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-meet-after-production +:END: +meet: nanode +* Processes and notes +:PROPERTIES: +:CUSTOM_ID: processes-and-notes +:END: +** Hosting +:PROPERTIES: +:CUSTOM_ID: processes-and-notes-hosting +:END: +*** TODO Finalize host for dev track +:PROPERTIES: +:CUSTOM_ID: processes-and-notes-hosting-finalize-host-for-dev-track +:END: +** ERC +:PROPERTIES: +:CUSTOM_ID: processes-and-notes-erc +:END: + +Some convenient commands are defined in emacsconf-el:emacsconf-erc.el. + +| /opall | Grant operator status in the Emacsconf channels | +| /deopall | Remove operator status in the Emacsconf channels | +| /conftopic | Set the first part of the topic | + +* Decisions +:PROPERTIES: +:CUSTOM_ID: decisions +:END: +* Support code +:PROPERTIES: +:CUSTOM_ID: support-code +:END: + +#+begin_src emacs-lisp :results silent +(defun my-ox-link-path (link _ info) + (let* ((raw-path (org-element-property :path link))) + (setq raw-path + (org-export-file-uri + (org-publish-file-relative-name raw-path info))) + ;; Possibly append `:html-link-home' to relative file + ;; name. + (let ((home (and (plist-get info :html-link-home) + (org-trim (plist-get info :html-link-home))))) + (when (and home + (plist-get info :html-link-use-abs-url) + (not (file-name-absolute-p raw-path))) + (setq raw-path (concat (file-name-as-directory home) raw-path)))) + raw-path)) + +(defun my-org-md-link (link desc info) + (if (string= (org-element-property :type link) "file") + (let ((path (my-ox-link-path link desc info))) + (if (string= (file-name-extension path) "svg") + (with-temp-buffer + (insert-file-contents-literally path) + (buffer-string)) + (org-md-link link desc info))) + (org-md-link link desc info))) + +(with-eval-after-load 'ox-md + (setf + (alist-get 'link (org-export-backend-transcoders (org-export-get-backend 'md))) + 'my-org-md-link)) +#+end_src + +#+RESULTS: +:results: +my-org-md-link +:end: diff --git a/2025/organizers-notebook/schedule.svg b/2025/organizers-notebook/schedule.svg new file mode 100644 index 00000000..7c5f5ef1 --- /dev/null +++ b/2025/organizers-notebook/schedule.svg @@ -0,0 +1 @@ +<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/reference" title="Emacs as a fully-fledged reference manager" data-slug="reference"><title> 9:10- 9:30 Emacs as a fully-fledged reference manager</title><rect x="15" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(44,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">reference</text></g></a><a href="https://emacsconf.org/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 9:50-10:10 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="78" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="https://emacsconf.org/2025/talks/life" title="From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact" data-slug="life"><title>10:30-10:50 From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact</title><rect x="141" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(170,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">life</text></g></a><a href="https://emacsconf.org/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="203" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="https://emacsconf.org/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>11:50-12:10 corfu+yasnippet: Easier than I thought</title><rect x="266" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(295,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">completion</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:30- 4:40 Saturday closing remarks</title><rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(718,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2025/talks/python" title="Interactive Python development in Emacs" data-slug="python"><title>10:00-10:20 Interactive Python development in Emacs</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">python</text></g></a><a href="https://emacsconf.org/2025/talks/juicemacs" title="Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java" data-slug="juicemacs"><title>10:40-11:00 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">juicemacs</text></g></a><a href="https://emacsconf.org/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:00- 1:20 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="376" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(405,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="https://emacsconf.org/2025/talks/commonlisp" title="Common Lisp images communicating like-a-human through shared Emacs slime and eev" data-slug="commonlisp"><title> 2:00- 2:20 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="470" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(499,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 1:00- 1:10 Sunday closing remarks</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg>
\ No newline at end of file diff --git a/2025/prepare.md b/2025/prepare.md new file mode 100644 index 00000000..da5b84db --- /dev/null +++ b/2025/prepare.md @@ -0,0 +1,313 @@ +[[!meta title="Preparing your talk"]] +[[!meta copyright="Copyright © 2019, 2020 Amin Bandali; 2021, 2022 Amin Bandali, Sacha Chua, Leo Vivier; 2023-2025 Sacha Chua"]] + +This page contains tips for preparing your talk. (Target date: on or before +**October 31, 2025**) If you have any questions, concerns, or suggestions +please feel free to write to one our organizational mailing lists: the +public <emacsconf-org@gnu.org> list, or the private +<emacsconf-org-private@gnu.org> list, depending on the nature of the +matter you would like to discuss. + +Note: being part of a wiki, this page is subject to change (including +by you!); so please check back every now and again for any changes and +updates. + +We'll bring up the web-based upload service at some point. Let us know +at <emacsconf-org-private@gnu.org> if you're already ready to go! +<!--[[Already done? Upload your video and other files|upload]]--> + +## Guidelines for conduct + +Please review our [[guidelines for conduct|conduct]] when preparing your +talk to make sure we’re all on the same page and strive to make the +event a great experience for all. If you’re not sure whether your talk +or presentation style meets the guidelines laid out in the guidelines +for conduct, we’d be happy to help. You can email Sacha Chua at +<sacha@sachachua.com> to chat more about this. + +## Recording your talk + +To help EmacsConf 2025 run smoothly, please prerecord your talk, and +plan to upload your video(s) by **October 31, 2025** to allow us enough time +to do any needed processing (e.g. format or codec conversion) in +preparation for the event. Please consider submitting a prerecording as +early as possible so that we can see if volunteers can caption your +video to make it more accessible and searchable. + +To make it easier for people to orient themselves +when listening to lots of EmacsConf videos in the +playlist, you may want to start your video with +something along the lines of: + +"Hi! I’m ${NAME} and I’ll be talking about ${TOPIC}." + +We'll also try to record a brief introduction for +your talk with enough time for you to review the +pronunciation. + +### Appearance + +The talks will be broadcast with a resolution of **1280x720px** +(720p), so it may help to switch to that size before you record. +Please make sure your text will be easy to read. +[You can change the font-size in your Emacs.](https://www.emacswiki.org/emacs/SetFonts#h5o-6) +(Maybe `M-x customize-face default` and set the height to 150 or more, depending on your resolution?) If you +are capturing a single window, you can also resize it before you +record. + +We recommend using **dark text on a light background** for your +recording, as this can be easier to see especially for people who are +visually impaired. Themes with more contrast are easier to read than +low-contrast ones. If you use a dark theme with your Emacs, you can +change to a lighter one with `M-x customize-theme` (look for those +with a `-light` suffix). The `modus-themes-load-operandi` command from +the `modus-themes` package can be a good option. + +### Audio quality + +Audio quality can go a long way in making your talk enjoyable to +watch. Consider the background noise in the room that you are using to +record, and see if you can temporarily turn off things for your +recording. + +You can help us try to denoise the audio by +providing a recording of at least **5 seconds of +quiet** in the same room in which you plan to do +your main recording. You can listen to it to see +how quiet things are, and figure out if there are +other things you can turn off such as fans or +other computers. We can try to use the noise +profile from that recording to reduce the noise in +your presentation. + +If you have an **external microphone or a +headset**, try recording the audio through that so +that you can reduce the sound of the computer +itself. If you have a smartphone, that might also +be a good way to record audio that you can then +combine with your video afterwards. + +Many speakers prefer to record and edit the audio until they're happy +with how it fits in the time, and then add the slides or videos +afterwards. It might be easier than trying to do both the audio and +the video in one go. + +### Tools + +You can use your favorite video recording tool. If you don't have one yet, you can try +any of the following pieces of free software, depending on your needs: + +- [OBS](//obsproject.com) +- [SimpleScreenRecorder](//www.maartenbaert.be/simplescreenrecorder/) +- [vokoscreenNG](//linuxecke.volkoh.de/vokoscreen/vokoscreen.html) +- [peek](//github.com/phw/peek) +- [ffmpeg](//trac.ffmpeg.org/wiki/Capture/Desktop) + +If you decide to use OBS, please make sure to verify the window-capture +options. Most notably, there is a “Swap red and blue” option that is +necessary for some setups, and it's easy to miss it. + +You might find the following free software programs useful for editing +your video recordings: + +- [Kdenlive](//kdenlive.org/en/) +- [Blender](//www.blender.org) +- [Pitivi](http://www.pitivi.org) + +Per GNU Project’s [Guide to +Formats](//audio-video.gnu.org/docs/formatguide.html), we prefer to +receive prerecorded videos in formats unencumbered by software patents, +such as `video/webm` ([WebM](https://www.webmproject.org/)-encoded video +files, with `.webm` file extension) and `video/ogg` (video files encoded +with the Theora video codec, encapsulated in an Ogg transport layer, +with `.ogg` or `.ogv` file extension). However, if for one reason or +another you are unable to send us your prerecorded video in one of the +above formats, you may submit them in other common formats, like MPEG-4 +(`.mp4`), and we will convert them to our preferred formats on your +behalf. + +*Prepare recorded video in 720p (1280px by 720px) or higher, in the +WebM format if possible.* + + +# Compression + +If you would like to compress your video before uploading, the following shell script may be useful: + + Q=32 + CPU=8 + ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -an -row-mt 1 -tile-columns 2 -tile-rows 2 -cpu-used $CPU -g 240 -pass 1 -f webm -threads $CPU /dev/null && + ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -c:a libopus -row-mt 1 -tile-columns 2 -tile-rows 2 -cpu-used $CPU -pass 2 -g 240 -threads $CPU "$2" + +If you put it in a file called `compress-video.sh`, you can execute it +from the command line with something like `sh compress-video.sh +input-file.webm output-file.webm`. It will compress the file in two +passes. During the first pass, the frame count will increase, but the +speed will be 0. After the first pass, it will display proper progress +information. + +<a name="tech-check"></a> +# Tech-check + +We ask that speakers who plan to participate in live Q&A sessions schedule +a short tech-check in the weeks leading to the conference; this is to ensure +that you can perform all the common tasks you’d need such as sharing your +screen or toggling your microphone. + +We use BigBlueButton for our video-conferencing +needs, and we'll send you a URL to your own +BigBlueButton room close to the conference. Tiling +window managers and multi-monitor setups can be a +little tricky, so it's good to figure out a setup +that works for you. If there are things you'd like +to confirm by having another person in the +meeting, such as audio quality, please feel free +to get in touch with us and we’ll sort things out +together. + +Thank you so much for helping with EmacsConf 2025! + +# Frequently-asked questions + +## Can I present live? + +We’d prefer that all talks have prerecorded +videos. + +- It's a lot less stressful for both +presenters and organizers. +- Videos can be immediately available for playback once your session starts. +- We can work on getting the video captioned for better accessibility. + +If you really need or want to present live, +though, let us know and we'll figure that out. + +There will also be time for live questions and +answers, so if you can record a short video +covering your main points, you might be able to go +into more detail in live Q&A. + +## My presentation is over/under the time I proposed. Do I need to stress out about it? + +No need to stress out about it. If it's a little +over or under, we'll adjust the Q&A accordingly. + +If you find that your talk is much shorter than +anticipated, let us know and we can adjust the +schedule. + +If there's so much you want to talk about and you +can't decide what to squeeze in, maybe you can +think of your video as a short teaser that can get +people interested and point them to where they can +find out more. You can email +<emacsconf-submit@gnu.org> links and other notes +to add to the wiki page for your talk. If you’d +like to record a longer video *in addition* to the +short one for the main conference, please feel +free to send us that too. + +Additionally, even though it is tempting, please refrain from speaking +super quickly or fast-forwarding your recording to make it fit within +the format. Trimming out the silences and the filler words can help +sometimes, but a better solution for you might be to condense your +talk to the essentials, then write, record, and edit your voice-over. +Once you've figured out how to use the time, you can record your video +to go along with it. Don't sweat being a few minutes over or under, +that's cool. + +Feel free to send some questions for the host to ask you during the +Q&A so that you can address extra points that didn't make it into the +video. + +## What if there are lots of great questions during Q&A and it's already time for the next talk? + +The stream will move on to the next talk, but people can join the +BigBlueButton meeting room and keep chatting with you for as long as +you want to keep going. You can also continue answering questions on +the collaborative pad or IRC, and we’ll copy questions and answers +onto the wiki page afterwards so that you can answer them in your own +time after the event. + +## Do I need to follow some visual guidelines for the presentation? + +- Dark text on a light background is more legible than the opposite + (especially for people who are visually impaired), and more contrast + is better than a low-contrast theme. This stands for both your + slides and your Emacs theme. +- If you think your fonts might be too small in your slides or in Emacs, + they might very well be. [You can change the font-size in your + Emacs](https://www.emacswiki.org/emacs/SetFonts#h5o-6), but you can + also play with the size of the captured window during your recording. +- Try to minimize the screen-flashes that occur when you switch between + windows, especially if their themes do not cohere (light-to-dark and + the reverse). If you can edit your recording, fades and other + transitions are a neat solution to this problem. + +## How do I show my keystrokes on screen? + +In Emacs, you can use +[interaction-log.el](https://github.com/michael-heerdegen/interaction-log.el) +(in MELPA) to display the keystrokes and the commands they run in a separate +buffer. For a system-wide solution, you can look into +[screenkey](https://gitlab.com/screenkey/screenkey). + +## I’m not used to talking to myself. Can I present the talk to someone? + +We might be able to help you record your talk using the BigBlueButton +web conferencing system before the conference. Please email +<emacsconf-submit@gnu.org> with some times that might work for you and +we’ll see if a volunteer can meet up with you to record it. + +## Can I see the other proposed talks? + +Once we’ve emailed the speakers about their acceptance, we’ll put +up the talk wiki pages. That way, you can see what else is going on +in the conference and maybe coordinate with other speakers in order to +minimize overlap and maximize awesomeness. + +## Do you have an Org TODO I can just copy into my agenda file? + +Sure, modify this as needed: + +``` +* TODO Record presentation for EmacsConf: Title goes here +DEADLINE: <2025-10-31 Fri> + +- 1280x720px +- large text; ideally dark text on a light background +- minimize background noise + - try to use an external microphone if possible (ex: backup audio recording with phone) + - consider recording ~5 seconds of silence in the room you're planning to record in + +https://emacsconf.org/2025/prepare - tips and instructions + +Questions: +- public: mailto:emacsconf-org@gnu.org +- private: mailto:emacsconf-org-private@gnu.org + +Note: 2025-10-31 is a target date and we'd love to +get your video by then. It's not a *deadline* +deadline, so don't stress out if life happens. +Just let us know! + +Thanks for sharing what you're learning! +``` + +## More questions? + +Please email <emacsconf-submit@gnu.org>. We’d love to hear from you. + +Thanks for contributing to EmacsConf 2025! + +<!-- <a name="tech-checklist"></a> --> +<!-- #### Tech checklist --> + +<!-- - Can you speak and be heard? Is there echo? --> +<!-- - Can you hear the organizer? --> +<!-- - Can you share your screen? Is the screen readable? --> +<!-- - If you plan to show your keystrokes, is that display visible? --> +<!-- - If you want to share your webcam (optional), can you enable it? Is it visible? Will there likely be distractions in the background? --> +<!-- - Can you view the collaborative pad? Will you be comfortable reviewing questions on your own (perhaps by keeping it open beside your shared window), or will you need a volunteer to relay questions to you? --> +<!-- - Can you share contact information (ex: phone number) so that we can get in touch with you in case of technical issues or scheduling changes? --> +<!-- - Do you need help finding your way around IRC so that you can check into `#emacsconf-org`? What is your IRC nickname? --> diff --git a/2025/schedule-2025-12-06.md b/2025/schedule-2025-12-06.md new file mode 100644 index 00000000..d0950f75 --- /dev/null +++ b/2025/schedule-2025-12-06.md @@ -0,0 +1 @@ +<div class="schedule-svg-container"><svg width="800" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="800" height="100" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">5 PM</text></g></svg></div>
\ No newline at end of file diff --git a/2025/schedule-2025-12-07.md b/2025/schedule-2025-12-07.md new file mode 100644 index 00000000..e53595d8 --- /dev/null +++ b/2025/schedule-2025-12-07.md @@ -0,0 +1 @@ +<div class="schedule-svg-container"><svg width="800" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="800" height="100" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:50- 5:00 Sunday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(750,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">5 PM</text></g></svg></div>
\ No newline at end of file diff --git a/2025/schedule-details.md b/2025/schedule-details.md new file mode 100644 index 00000000..b476cda3 --- /dev/null +++ b/2025/schedule-details.md @@ -0,0 +1,20 @@ +Jump to: <a href="#dev">Development</a> + +<h1 id="gen" class="sched-track General">General (9 talks)</h1> +[[!template id=sched title="""Emacs as a fully-fledged reference manager""" url="""/2025/talks/reference""" speakers="""Vidianos Giannitsis""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""reference""" note=""""""]] +[[!template id=sched title="""An enhanced bibliography in org-mode for scientific research and self-directed learning""" url="""/2025/talks/bibliography""" speakers="""Blaine Mooers""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""bibliography""" note=""""""]] +[[!template id=sched title="""From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact""" url="""/2025/talks/life""" speakers="""Andrew John Dougherty""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""life""" note=""""""]] +[[!template id=sched title="""LaTeX export in org-mode: the overhaul""" url="""/2025/talks/latex""" speakers="""Pedro A. Aranda Gutiérrez""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""latex""" note=""""""]] +[[!template id=sched title="""corfu+yasnippet: Easier than I thought""" url="""/2025/talks/completion""" speakers="""Pedro A. Aranda Gutiérrez""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""completion""" note=""""""]] +[[!template id=sched title="""Saturday opening remarks""" url="""/2025/talks/sat-open""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-open""" note=""""""]] +[[!template id=sched title="""Saturday closing remarks""" url="""/2025/talks/sat-close""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-close""" note=""""""]] +[[!template id=sched title="""Sunday opening remarks""" url="""/2025/talks/sun-open""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-open""" note=""""""]] +[[!template id=sched title="""Sunday closing remarks""" url="""/2025/talks/sun-close""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-close""" note=""""""]] + +Jump to: <a href="#gen">General</a> + +<h1 id="dev" class="sched-track Development">Development (4 talks)</h1> +[[!template id=sched title="""Interactive Python development in Emacs""" url="""/2025/talks/python""" speakers="""David Vujic""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""python""" note=""""""]] +[[!template id=sched title="""Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java""" url="""/2025/talks/juicemacs""" speakers="""Kana""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""juicemacs""" note=""""""]] +[[!template id=sched title="""emacs-claude-code: Intelligent Claude Integration for Emacs""" url="""/2025/talks/claude-code""" speakers="""Yusuke Watanabe""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""claude-code""" note=""""""]] +[[!template id=sched title="""Common Lisp images communicating like-a-human through shared Emacs slime and eev""" url="""/2025/talks/commonlisp""" speakers="""screwlisp""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""commonlisp""" note=""""""]]
\ No newline at end of file diff --git a/2025/schedule-image.md b/2025/schedule-image.md new file mode 100644 index 00000000..65d25be7 --- /dev/null +++ b/2025/schedule-image.md @@ -0,0 +1 @@ +<div class="schedule-svg-container"><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="100" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,100)"><title>Schedule for Sunday</title><rect width="800" height="100" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:50- 5:00 Sunday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(750,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,200)"><title>Schedule for Tuesday</title><rect width="800" height="100" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Tuesday</text><a href="/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title>10:08-10:08 Sunday opening remarks</title><rect x="12" y="15" opacity="0.8" width="0" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(10,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>10:08-10:08 corfu+yasnippet: Easier than I thought</title><rect x="12" y="15" opacity="0.8" width="0" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(10,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">completion</text></g></a><a href="/2025/talks/python" title="Interactive Python development in Emacs" data-slug="python"><title>10:08-10:08 Interactive Python development in Emacs</title><rect x="12" y="50" opacity="0.8" width="0" height="34" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(10,83)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">python</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">5 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">6 PM</text></g></g></svg></div>
\ No newline at end of file diff --git a/2025/submit.md b/2025/submit.md new file mode 100644 index 00000000..f2c4d5e2 --- /dev/null +++ b/2025/submit.md @@ -0,0 +1,80 @@ +[[!meta title="Submit a proposal"]] +[[!meta copyright="Copyright © 2019, 2020 Amin Bandali<br /> +Copyright 2021 Amin Bandali, Sacha Chua, Leo Vivier<br /> +Copyright 2022 Amin Bandali<br /> +Copyright 2023-2025 Sacha Chua"]] + +When you're ready to submit your proposal, send your submission via +email to <emacsconf-submit@gnu.org> by **Friday, September 19, 2025**. +All speakers will be notified by Friday, September 26 (or earlier) +regarding the status of their proposal. If your talk is accepted, please plan +to put together your prerecorded video by Friday, October 31, 2025 +so that we can normalize all the audio and see if we can transcribe the talk. + +If you put your talk title in your submission e-mail's subject line, +it'll be easier to keep track of the conversation. Please use the +following template for your submission email: + +``` +Talk title: + + +Talk description (<= 500 words): + + + + + + + + +Format (10 minutes, 20 minutes, description of other format) and outline: + +Introduction for you and your talk (<= 100 words): + +Speaker name (and optional pronunciation) and preferred pronouns: + +Speaker availability (times and time zones that you're available Dec 7-8; +ex: after 1pm America/Toronto both Sat and Sun): + +Preferred Q&A approach (live web conference, IRC, pad, wiki, and/or e-mail questions after the event): + +Public contact information (IRC nick, e-mail, website, and/or social media): + +Private emergency contact information (phone number or messaging) in +case we need to reach you due to technical difficulties (optional): + +Please include this speaker release in order to indicate your agreement with it. + + By submitting this proposal, I agree that my presentation at + EmacsConf 2025 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") + under the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use + of the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. +``` + +For other details, see the [[call for participation|cfp]]. + +You can subscribe to the +[emacsconf-discuss mailing list](https://lists.gnu.org/mailman/listinfo/emacsconf-discuss) +for discussions and announcements about EmacsConf 2025. + +We look forward to your ideas and submissions. Thank you! diff --git a/2025/talks.md b/2025/talks.md new file mode 100644 index 00000000..bb651054 --- /dev/null +++ b/2025/talks.md @@ -0,0 +1,11 @@ +We're getting ready for EmacsConf 2025. Want to propose a talk? +[[Check out our call for participation|/2025/cfp]] and submit your proposal +by Friday, September 19, 2025! + +Here are some of the talks we've accepted so far: + +[[!inline pages="internal(2025/schedule-details)" raw="yes"]] + +Want to help make EmacsConf even awesomer? [[Volunteer!|/volunteer]] + +We hope to see you all around on Dec 6-7 for EmacsConf 2025! diff --git a/2025/talks/bibliography.md b/2025/talks/bibliography.md new file mode 100644 index 00000000..eb3c1dff --- /dev/null +++ b/2025/talks/bibliography.md @@ -0,0 +1,83 @@ +[[!meta title="An enhanced bibliography in org-mode for scientific research and self-directed learning"]] +[[!meta copyright="Copyright © 2025 Blaine Mooers"]] +[[!inline pages="internal(2025/info/bibliography-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# An enhanced bibliography in org-mode for scientific research and self-directed learning +Blaine Mooers (he/him) - <mailto:blaine-mooers@ouhsc.edu> + +[[!inline pages="internal(2025/info/bibliography-before)" raw="yes"]] + +This 20-minute talk introduces a modernized approach to creating annotated bibliographies using Org-mode. +This new approach overcomes the limitations of traditional BibTeX-based methods. +Unlike classical annotated bibliographies, this system supports rich content including text-wrapped figures, tables, code listings, equations, and appendices. +These features transform static reference collections into visual knowledge repositories. + +The presentation will demonstrate how this system leverages Org-mode's unique capabilities, particularly literate programming, to enable real-time data transformation and visualization from cited papers. +I introduce a modular architecture to overcome BibTeX's whitespace limitations in the annotation field, which stores notes for assembling annotated bibliographies in the classical approach. + +Key features of the new approach include: + +- A modular design that supports the reuse of annotation files between bibliographies and with literature notes in org-roam and denote +- Support for including figures, tables, equations, code listings, and literature programming blocks +- Citation key injection into subsection headings +- Automated PDF downloading, relabeling, and storing +- Property drawers for keywords, links to annotation note files to ease making further edits, and links to PDF documents +- Specialized sorting function for bibliography organization (by author, year, or keywords) +- Inclusion of a table of contents with hyperlinks +- Specialized glossaries for acronyms, software packages, equations, and mathematical notation + +I will address how this approach complements, rather than replaces, modern personal knowledge management systems like org-roam and denote. +This approach strengthens project-focused knowledge organization. +I will discuss the practical benefits, including improved visual memory reinforcement through embedded figures and reduced context switching during in-depth academic work. + +I will share the implementation details of the Emacs Lisp functions that power this system (available as a package). +The presentation will include demonstrations of how these functions streamline everyday tasks such as adding new entries, navigating between bibliography and source material, and preparing project-specific BibTeX files. +These functions reduce the friction in the academic reading and writing workflow. + +For those interested in adopting this approach, I will discuss adaptations for various workflows and address practical considerations, such as copyright implications when sharing illustrated bibliographies. +The talk will conclude with thoughts on how this system supports different reading styles (reference, survey, and deep reading) as identified by Stephen Heard in his 2022 book "A Scientist's Guide to Writing". +This approach is particularly valuable for researchers, graduate students, and knowledge workers who need to maintain project-specific literature collections. +The approach recognizes the reality that most scientists do not need access to their entire knowledge corpus when working on a specific paper. +Instead, they need a visually reinforced understanding of a targeted subset of the literature. + +The format is a 20-minute talk presented as a narrated slideshow. The outline follows: + +- The role of the annotated bibliography in my three-pronged approach to scientific writing project management, which I introduced last year in my talk about writing logs. +- My innovative use of a modular approach, along with numerous enhancements, promotes deep work. +- Why make an annotated bibliography in the Age of Zettelkastens and Generative AI? +- Why not assemble a notebook instead? +- The classic annotated bibliography and its deficits (i.e., why I developed the enhanced bibliography). +- The advantages of Org-mode for making this annotated bibliography. +- Defining the scope of the enhanced bibliography: research program level versus writing project-specific. +- Tour of the master org file that controls the assembly of the final PDF. +- Project file tree and version control with helper functions. +- The annotation file and accommodation of three levels of detail for reference, survey, and deep reading. +- Demonstrations of creating an entry by wrapping a citar, org-ref, and org-cite citekeys. +- Show how to use literature programming to carry out further analyses using data from a specific paper. +- Show integration with Zettelkasten by including annotation org files in literature notes. +- Feeding annotation files into generative AI for help with querying, brainstorming, planning, and synthesis. +- How does working on an annotated bibliography fit into my weekly writing schedule? +- Tour of the GitHub repository for this project. +- Copyright of figures and limits on sharing the enhanced bibliography in public. +- Summary +- Acknowledgements + +About the speaker: + +Blaine Mooers is an associate professor of biochemistry at the University of Oklahoma Health Sciences, where he specializes in macromolecular crystallography. His research focuses on RNA structures and protein-drug complexes important in cancer. +As an avid Emacs user for five years and LaTeX and Python user for 15 years, Dr. Mooers has developed tools to optimize scientific writing workflows. +In this talk, he shares his system for managing academic literature using Org-mode, which he developed as a solution to his frustration with traditional annotated bibliographies. +This new approach enhances scientific creativity and productivity by combining visual memory reinforcement with project-focused knowledge organization. +This approach addresses the challenging reality of scientific research, where focus is often more valuable than breadth. + + + +[[!inline pages="internal(2025/info/bibliography-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/bibliography-nav)" raw="yes"]] + + diff --git a/2025/talks/claude-code.md b/2025/talks/claude-code.md new file mode 100644 index 00000000..0e4c198c --- /dev/null +++ b/2025/talks/claude-code.md @@ -0,0 +1,69 @@ +[[!meta title="emacs-claude-code: Intelligent Claude Integration for Emacs"]] +[[!meta copyright="Copyright © 2025 Yusuke Watanabe"]] +[[!inline pages="internal(2025/info/claude-code-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# emacs-claude-code: Intelligent Claude Integration for Emacs +Yusuke Watanabe (he/him) - Pronunciation: you-SKAY wah-tah-NAH-bay, GitHub: <https://github.com/ywatanabe1989/emacs-claude-code>, <mailto:ywatanabe@alumni.u-tokyo.ac.jp> + +[[!inline pages="internal(2025/info/claude-code-before)" raw="yes"]] + +As AI coding assistants become essential development tools, integrating +them seamlessly into our Emacs workflows becomes crucial. This talk +introduces emacs-claude-code, a package that transforms how Emacs users +interact with Claude Code through intelligent automation and enhanced vterm +integration. + +The main challenge with terminal-based AI assistants is the repetitive +manual interaction required. Claude Code presents various prompts (Y/N +choices, waiting states, continuation prompts) that interrupt the +development flow. emacs-claude-code solves this by introducing smart +auto-response patterns that recognize Claude's state and respond +appropriately, allowing developers to maintain focus on their code rather +than managing the AI interface. + +Key features I'll demonstrate include: + +1. **Intelligent Auto-Response System**: Automatically handles Claude's various prompt states (INITIAL WAITING, Y/N, Y/Y/N, WAITING) with customizable responses. This allows uninterrupted AI-assisted coding sessions. + +1. **Centralized Buffer Management**: A dashboard view of all Claude sessions showing their current state, auto-response status, and last interaction time. Users can quickly navigate between multiple AI conversations and toggle automation settings. + +1. **Yank-as-File Functionality**: Elegantly handles large code snippets by saving them as files instead of cluttering the terminal, with full TRAMP support for remote development. + +1. **Periodic Command Automation**: Executes custom commands at specified interaction intervals, perfect for maintaining context or triggering regular actions like compacting conversation history. + +The package leverages Emacs' powerful vterm-mode to create a robust +integration layer. I'll share implementation details about state detection +using regular expressions, buffer management techniques, and the advice +system used for seamless clipboard integration. + +Beyond the technical implementation, I'll discuss practical workflows that +emerge from this integration, including custom Claude commands (stored as +Markdown files) that can be triggered automatically based on context. The +talk will include a live demonstration showing how these features work +together to create a fluid AI-assisted development experience. + +This project embodies the Emacs philosophy of extensibility and automation, +making cutting-edge AI tools work the way Emacs users expect - efficiently, +automatically, and under their complete control. + +About the speaker: + +I'm Yusuke Watanabe, a researcher who uses Emacs for both academic work and +software development. After experiencing friction with manual Claude Code +interactions, I developed emacs-claude-code to automate repetitive tasks +and integrate AI assistance smoothly into Emacs workflows. This project +represents my approach to making modern AI tools work within the Emacs +ecosystem while maintaining the editor's core principles of efficiency and +user control. + + + +[[!inline pages="internal(2025/info/claude-code-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/claude-code-nav)" raw="yes"]] + + diff --git a/2025/talks/commonlisp.md b/2025/talks/commonlisp.md new file mode 100644 index 00000000..709d98f4 --- /dev/null +++ b/2025/talks/commonlisp.md @@ -0,0 +1,39 @@ +[[!meta title="Common lisp images communicating like-a-human through shared emacs slime and eev"]] +[[!meta copyright="Copyright © 2025 screwlisp"]] +[[!inline pages="internal(2025/info/commonlisp-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Common lisp images communicating like-a-human through shared emacs slime and eev +screwlisp (he/him, they/them) - IRC: screwlisp, <https://gamerplus.org/@screwlisp>, <https://screwlisp.small-web.org/> + +[[!inline pages="internal(2025/info/commonlisp-before)" raw="yes"]] + +Instead of trying to cram multiple lisp curses +into one lisp image, slime-connect to multiple +common lisp images! Communicating through a shared +emacs pre-solves many race-conditions and other +communication needs. Further, by harnessing +eev-mode's eepitch, you can even watch your lisp +images sharing your emacs with you in real time. +Even further, the lisp images can pitch to other +emacs major mode buffers. Cf. +<https://screwlisp.small-web.org/complex/eepitch-send/> +. + +Q&A will be on IRC and in LambdaMOO. + +About the speaker: + +Flocking lisp images with Screwlisp (Lispy Gopher Climate and +<https://screwlisp.small-web.org/>). + + + +[[!inline pages="internal(2025/info/commonlisp-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/commonlisp-nav)" raw="yes"]] + + diff --git a/2025/talks/completion.md b/2025/talks/completion.md new file mode 100644 index 00000000..a074b568 --- /dev/null +++ b/2025/talks/completion.md @@ -0,0 +1,36 @@ +[[!meta title="corfu+yasnippet: Easier than I thought"]] +[[!meta copyright="Copyright © 2025 Pedro A. Aranda Gutiérrez"]] +[[!inline pages="internal(2025/info/completion-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# corfu+yasnippet: Easier than I thought +Pedro A. Aranda Gutiérrez (he, him) - <mailto:paaguti@gmail.com> + +[[!inline pages="internal(2025/info/completion-before)" raw="yes"]] + +I describe my experience in "getting rid" of company-mode and +transitioning to corfu. I now have yasnippets integrated with +a couple lines Emacs Lisp. The main advantage is that with I +need less packages and configuration, specially on master. +The talk will include some code snippets that show it was +easier than expectedand a life demo. + +20 minutes (with demo) + +About the speaker: + +After 30 years using Emacs, professionally and for my PhD, I'm currenly +quite involved in org-mode, where I'm revamping the LaTeX backend. +To do this, I needed a new approach to auto-completion because +company-mode started requiring too much code and integration. + + + +[[!inline pages="internal(2025/info/completion-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/completion-nav)" raw="yes"]] + + diff --git a/2025/talks/juicemacs.md b/2025/talks/juicemacs.md new file mode 100644 index 00000000..ba29b3f6 --- /dev/null +++ b/2025/talks/juicemacs.md @@ -0,0 +1,106 @@ +[[!meta title="Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java"]] +[[!meta copyright="Copyright © 2025 Kana"]] +[[!inline pages="internal(2025/info/juicemacs-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java +Kana (they/them) - IRC: kanakana, Blog: https://kyo.iroiro.party - ActivityPub: @kana@f.iroiro.party - Bluesky: @kana.iroiro.party, <mailto:kana@iroiro.party> + +[[!inline pages="internal(2025/info/juicemacs-before)" raw="yes"]] + +Just-in-time (JIT) compilation helps dynamic languages run fast, and +speculative compilation makes them run faster, as has been showcased +by JVMs, LuaJIT, JavaScript engines, and many more JIT runtimes. +However, Emacs native-compilation, despite its JIT compilation +(`native-comp-jit-compilation`), does not speculate about runtime +execution, making it effectively a JIT-ish AOT (ahead-of-time) +compiler. By introducing a speculative runtime for ELisp, we could +potentially improve ELisp performance even further, with many new +optimization opportunities. + +Juicemacs <sup><a id="fnr.juicemacs" class="footref" href="#fn.juicemacs" role="doc-backlink">1</a></sup> is my work-in-progress toy project +re-implementing Emacs in Java. At its centre sits an ELisp JIT +runtime powered by Graal Truffle, a JIT interpreter framework based +on partial evaluation and Futamura projections. This talk will cover +the following along with some demonstrations: + +- What is Juicemacs and its ambition? How compatible is it (or does + it plan to be) with GNU Emacs and how feature-complete is it now? + +- What is speculative compilation? How is it useful for an ELisp JIT + runtime? + +- What is Truffle and partial evaluation? What is needed if we are to + implement a speculative runtime in C without Truffle? + +- How many interpreters are there in Emacs? How does Juicemacs + implement them? + +- What JIT techniques does Juicemacs plan to explore? How can you + get involved? + + +# Footnotes + +<sup><a id="fn.1" href="#fnr.1">1</a></sup> <https://codeberg.org/gudzpoz/Juicemacs> + +Outline: + +- Intro: Juicemacs + - Self-introduction + - Emacs `native-compile` versus modern JIT compilers + - Juicemacs: Yet another Emacs rewrite + - Demonstration: REPL, pbootstrap, pdump, elprop, ERT +- Speculative compilation + - What we talk about when we talk about JIT compilers + - Tired: JIT versus AOT + - Wired: With or without runtime information + - Speculative compilation + - Example: arithmetics + - Example: boxing elimination + - Graal+Truffle: a meta-compiler by partial evaluation +- ELisp JIT interpreters + - AST interpreter + - Macros + - Bytecode interpreter + - Regexp: slowish + - CCL: to be done + - Benchmarks + - Fun to be had (i.e., TODO & possible explorations) + - Transparent array-backed cons list + - Regexps + - Leaning on `native-compile` for LIMPLE IR + - Others + - GraalVM native image + - GUI + - Emacs dynamic module support + - How this could be implemented in C + - `transferToInterpreter` + - Bytecode approach + - Problems with the AST approach + +- Closing Words + - Future of Juicemacs + - Future of GNU Emacs Lisp JIT + - Ways to contribute + +About the speaker: + +Hello! This is Kana, an Emacs hobbyist and Java lover from China. A +few years ago I discovered the Truffle JIT compilation framework and +have since hoped to implement a JIT runtime myself. Last year I +finally started implementing one for ELisp, called Juicemacs, and +have made some progress. In this talk I will share what I've learned +during the journey, including how three interpreters out of four (or +more?) in Emacs are implemented in Juicemacs and how speculative +compilation can make some optimizations possible. + + +[[!inline pages="internal(2025/info/juicemacs-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/juicemacs-nav)" raw="yes"]] + + diff --git a/2025/talks/latex.md b/2025/talks/latex.md new file mode 100644 index 00000000..3b277ca0 --- /dev/null +++ b/2025/talks/latex.md @@ -0,0 +1,37 @@ +[[!meta title="LaTeX export in org-mode: the overhaul"]] +[[!meta copyright="Copyright © 2025 Pedro A. Aranda Gutiérrez"]] +[[!inline pages="internal(2025/info/latex-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# LaTeX export in org-mode: the overhaul +Pedro A. Aranda Gutiérrez (he, him) - paaguti@gmail.com, <mailto:paaguti@gmail.com> + +[[!inline pages="internal(2025/info/latex-before)" raw="yes"]] + +During the last year, the LaTeX backend in Org mode has received an overhaul. +The objectives, while keeping backward compatibility, were: + +- Better integration of the font-management features and packages with + lualatex/xelatex +- Reducing the amount of `#+LATEX_HEADER:` lines and avoiding to have to + include a pure LaTeX file to profit from them +- Flexibility, while using native Emacs Lisp features, like file/directory + local variables + +In this talk, I will present the new font management features in the LaTeX +backend and show a couple of examples of what can be achieved. + +About the speaker: + +After 30 years using Emacs, professionally and for my PhD, I'm currently +quite involved in org-mode, where I'm revamping the LaTeX backend. + + +[[!inline pages="internal(2025/info/latex-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/latex-nav)" raw="yes"]] + + diff --git a/2025/talks/life.md b/2025/talks/life.md new file mode 100644 index 00000000..335676d3 --- /dev/null +++ b/2025/talks/life.md @@ -0,0 +1,92 @@ +[[!meta title="From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact"]] +[[!meta copyright="Copyright © 2025 Andrew John Dougherty"]] +[[!inline pages="internal(2025/info/life-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact +Andrew John Dougherty (he/him) - Pronunciation: Andrew DOW-er-tee, IRC: aindilis, Website: <https://frdcsa.org> GitHub: <https://github.com/aindilis>, <mailto:adougher9@gmail.com> + +[[!inline pages="internal(2025/info/life-before)" raw="yes"]] + +Six years after my EmacsConf 2019 presentation on the Formalized Research +Database (FRDCSA), I return to share the evolution of this ambitious +project into the Free Life Planner (FLP) - a comprehensive AI-powered +system designed to help people manage the complex logistics of daily life, +from basic survival to thriving in challenging circumstances. + +This talk chronicles the development journey from FRDCSA's initial vision +of collecting and integrating all free software AI systems, to FLP's +practical focus on solving real-world problems like homelessness, medical +crises, and financial hardship. I'll demonstrate how Emacs serves as both +the development environment and user interface for a system that now +encompasses over 1000 subsystems including meal planning, financial +forecasting, medical management, and emergency preparedness. + +Key highlights include: + +Technical Architecture: How we've built FLP using SWI-Prolog as the core +reasoning engine, with Emacs providing the primary interface through 4680+ +custom ELisp functions. I'll show the integration of modern LLMs (Llama3, +DeepSeek-Prover-V2, etc) with classical AI planning systems (PDDL planners, +behavior trees, agent-based systems) all orchestrated through Emacs. + +Security Evolution: The transition from the original internet-connected +FRDCSA/FLP to air-gapped systems, and the development of FRKCSA/FLP2 as +open-source, internet-facing reboots. How we balance powerful AI +capabilities with privacy and security concerns. + +Real-World Impact: Using generative AI and our PresGen presentation system, +I'll showcase documented case studies where FLP has helped users navigate +homelessness, medical crises, and benefit loss scenarios. These aren't +hypothetical use cases - they represent the system's practical application +to urgent human needs. + +Emacs Integration: Deep dive into our Emacs-based development workflow, +including the CLEAR book reader for academic research, Verber planning +domain editor, UniLang integration for multi-system communication, and our +Academician mode for synchronized document processing. How Emacs serves as +mission control for a complex AI ecosystem. + +AI Planning Systems: Demonstration of how we've integrated automated +planning, temporal reasoning, and contingency planning into daily life +management. Users can ask "How do I get through the next month if I lose my +job?" and receive detailed, executable plans. + +Community Building: How FLP facilitates mutual aid networks and community +resilience, turning individual survival into collective thriving. The +system doesn't just help people - it helps them help each other. + +Future Directions: The roadmap for FLP2, including improved security +models, enhanced AI integration, and broader accessibility. How we're +preparing for a world where AI-powered life assistance could become a +virtual social safety net. + +This presentation will use our PresGen system to generate slides +dynamically, incorporating the latest AI developments and real user +feedback. Attendees will see both the technical implementation and the +humanitarian vision that drives this project - demonstrating how Emacs can +be the foundation for transformative social technology. + +About the speaker: + +Andrew Dougherty is the creator of the FRDCSA (Formalized Research +Database: Cluster, Study and Apply) and Free Life Planner projects. For +over 25 years, he has worked on integrating AI systems to solve real-world +problems, with a focus on helping vulnerable populations navigate complex +life challenges. His work spans automated planning, knowledge +representation, and practical AI applications. Andrew presented FRDCSA at +EmacsConf 2019 and has continued developing these systems with Emacs as the +primary development and deployment environment. He believes in using AI +technology to strengthen communities and provide practical assistance to +those who need it most. + + + +[[!inline pages="internal(2025/info/life-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/life-nav)" raw="yes"]] + + diff --git a/2025/talks/python.md b/2025/talks/python.md new file mode 100644 index 00000000..c96e94a7 --- /dev/null +++ b/2025/talks/python.md @@ -0,0 +1,26 @@ +[[!meta title="Interactive Python development in Emacs"]] +[[!meta copyright="Copyright © 2025 David Vujic"]] +[[!inline pages="internal(2025/info/python-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Interactive Python development in Emacs +David Vujic (he/him) - Mastodon <https://mastodon.nu/@davidvujic> + +[[!inline pages="internal(2025/info/python-before)" raw="yes"]] + +Learning Lisp was an eye opener for me. The Interactive way of writing code is Amazing. Emacs has great support for this in general already. For Python, there's limitations and I have looked for ways to make Python development more interactive (and fun). Python is what I do at work and in Open Source projects. It has lead me to develop Emacs features specific for Python: evaluating code with visual feedback, modify a running Python app without restarts, and some LLM support. I will demo and talk about what I have developed to make Python development interactive and joyful. + +About the speaker: + +My name is David and I'm a software developer. Colleagues and friends may know me as an early adopter of agile ideas and test driven development. I am passionate about things like that, and share the things I learn to the community and the people I work with. My favorite programming languages are Python and Clojure. On my spare time I practice outdoor Parkour & contribute to Open Source. + + + +[[!inline pages="internal(2025/info/python-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/python-nav)" raw="yes"]] + + diff --git a/2025/talks/reference.md b/2025/talks/reference.md new file mode 100644 index 00000000..bfffd5db --- /dev/null +++ b/2025/talks/reference.md @@ -0,0 +1,67 @@ +[[!meta title="Emacs as a fully-fledged reference manager"]] +[[!meta copyright="Copyright © 2025 Vidianos Giannitsis"]] +[[!inline pages="internal(2025/info/reference-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Emacs as a fully-fledged reference manager +Vidianos Giannitsis (he/him) - IRC: vidianos, <https://github.com/Vidianos-Giannitsis>. Vidianos Giannitsis on LinkedIn <mailto:vidianosgiannitsis@gmail.com> + +[[!inline pages="internal(2025/info/reference-before)" raw="yes"]] + +Even though all of my note-taking and literature organization +infrastructure has been in Emacs for a few years, I haven't been able to +make myself independent from a literature manager (Zotero in my case) +until recently. Zotero was just too convenient. You can capture articles +seamlessly (although downloading attachments didn't always work as +intended), organize them in directories and take a quick look at your +lists to determine what to read next, before you move on to actually +reading them and taking notes. + +This year, I finally decided that I am tired of this and I will find a +way to do this fully in Emacs. This talk will be discussing my findings +in this regard. A lot of this was built in Ebib. It turns out that a lot +of what I considered useful for this workflow was already available +through this excellent software, built inside Emacs. Not everything +worked as I wanted on installation, but naturally, this is Emacs, so I +just hacked my way through getting the exact behaviour I wanted. This +required integration with other tools and especially a closer +interaction between Ebib and Org-roam. This came out incredible and I am +now very happy with using it, so I thought I should also showcase it in +EmacsConf! + +With this integration ready, only capturing articles from the web +remains. Zotra can capture articles in a way about as seamless as +Zotero's (it actually uses Zotero's translators, but from Emacs). +Attachments remain a problem sometimes, but that's publishers making +attachments hard to get because third party software can't see that you +have full access to them, so I have decided to do those mostly manually, +I often did that with Zotero anyways. + +Relevant links: + +- [Zotra - Capturing Articles](https://github.com/mpedramfar/zotra) +- [Ebib - Organizing literature before and after reading](https://joostkremers.github.io/ebib/) +- [Org-Roam - The missing link to create an effective reading list](https://www.orgroam.com/) +- [Bibtex Completion - Useful tools for manipulating literature](https://github.com/tmalsburg/helm-bibtex) + +About the speaker: + +I'm Vidianos and I'm currently doing my PhD in KU Leuven in Belgium. +Working on research means I have a need for good tools to help me with +my research. I have been using Emacs for roughly 5 years now and I can +confidently say it is the number one tool that helps me with this +research. This talk will be all about how it helps me and about finally +being able to remove external reference managers from my workflow, +something I have wanted for years, but that I haven't managed to do +before this. + + + +[[!inline pages="internal(2025/info/reference-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/reference-nav)" raw="yes"]] + + @@ -1 +1 @@ -[[!inline pages="blog/* and !*/Discussion" show="10" rootpage="blog"]] +[[!inline pages="(blog/* and !*/Discussion) or tagged(blog)" show="10" rootpage="blog"]] diff --git a/captioning.md b/captioning.md index 9a85080c..e0078652 100644 --- a/captioning.md +++ b/captioning.md @@ -74,8 +74,8 @@ Times don't need to be very precise. If you notice that the times are way out of whack and it's getting in the way of your subtitling, we can adjust the times using the [aeneas forced -alignment tool](https://www.readbeyond.it/aeneas/ -and `subed-align`). +alignment tool](https://www.readbeyond.it/aeneas/) +and `subed-align`. ## Splitting and merging subtitles @@ -16,12 +16,12 @@ order, and those who chose not to are instead listed as 'Anonymous'. ## 2024 -- Jeremy Roe +- Anonymous (4) ## 2023 -- Anonymous (4) -- Jan Prunk +- Anonymous (5) +- Jonathan Mitchell - Scott Randby @@ -1,5 +1,5 @@ [[!meta title="Ideas"]] -[[!meta copyright="Copyright © 2020, 2021, 2022 Amin Bandali; 2023 Sacha Chua"]] +[[!meta copyright="Copyright © 2020-2022 Amin Bandali; 2023-2025 Sacha Chua"]] This is a place to collect ideas for talks and other sessions for EmacsConf. :-) @@ -23,6 +23,7 @@ EmacsConf. :-) You can also check out past EmacsConf programs to see what kinds of things people have shared before: +- [[2024|/2024/talks]] - [[2023|/2023/talks]] - [[2022|/2022/talks]] - [[2021|/2021/schedule]] @@ -7,11 +7,12 @@ Emacs Lisp.</p> ## Current Conferences -**[[EmacsConf 2024|2024]]** - Dec 7-8 (Sat-Sun) +**[[EmacsConf 2025|2025]]** - Dec 6-7 (Sat-Sun) ## Past Conferences -- **[[EmacsConf 2023|2023]]** +- [[EmacsConf 2024|2024]] +- [[EmacsConf 2023|2023]] - [[EmacsConf 2022|2022]] - [[EmacsConf 2021|2021]] - [[EmacsConf 2020|2020]] diff --git a/organizers-notebook.md b/organizers-notebook.md index ef153a5f..7a663664 100644 --- a/organizers-notebook.md +++ b/organizers-notebook.md @@ -20,43 +20,48 @@ This document is the general organizers' notebook that can be used as a starting - [Create the public organizers’ notebook in the wiki](#starting-up-the-conference-planning-process-create-the-public-organizers-notebook-in-the-wiki) - [Phases and lessons learned](#phases-and-lessons-learned) - [Draft CFP](#phases-and-lessons-learned-draft-cfp) - - [Announce](#org897f0c8) - - [Process proposals](#orgd12f3b1) - - [Accept proposals](#orgcbfca65) + - [Announce](#phases-and-lessons-learned-announce) + - [Process proposals](#phases-and-lessons-learned-process-proposals) + - [Accept proposals](#phases-and-lessons-learned-accept-proposals) - [Draft schedule](#draft-schedule) - - [Set up backstage and upload](#orgdbb77f2) - - [Post the schedule](#org9456d25) - - [Process uploaded files](#org75e87bb) - - [Generate assets](#org125bd75) - - [Prepare the infrastructure](#org9759aa9) - - [Getting ready for captions](#org9f978d1) + - [Set up backstage and upload](#phases-and-lessons-learned-set-up-backstage-and-upload) + - [Post the schedule](#phases-and-lessons-learned-post-the-schedule) + - [Process uploaded files](#phases-and-lessons-learned-process-uploaded-files) + - [Generate assets](#phases-and-lessons-learned-generate-assets) + - [Prepare the infrastructure](#phases-and-lessons-learned-prepare-the-infrastructure) + - [Getting ready for captions](#phases-and-lessons-learned-getting-ready-for-captions) - [Getting ready for the conference](#pre-conf) - [During the conference](#conf) -- [General infrastructure](#org85c6f49) + - [After the conference](#phases-and-lessons-learned-after-the-conference) +- [General infrastructure](#general-infrastructure) + - [Linode instance sizes](#general-infrastructure-linode-instance-sizes) + - [File uploads](#upload) - [Icecast](#icecast) - [Watching pages](#watch) - [VNC](#vnc) - [Streaming with OBS](#obs) - - [Shell scripts](#orgab7108a) + - [Shell scripts](#general-infrastructure-shell-scripts) - [Backstage](#backstage) - - [IRC web client](#org5545d42) - - [Etherpad](#orgd7fd9ee) + - [IRC web client](#general-infrastructure-irc-web-client) + - [Etherpad](#general-infrastructure-etherpad) - [Publishing media to the server and to the wiki](#media) - - [Automated IRC announcements](#org75cad9b) + - [Automated IRC announcements](#general-infrastructure-automated-irc-announcements) - [BigBlueButton](#bbb) - - [Manual IRC announcements](#org5a3d818) - - [Low-res stream](#orge08d62d) - - [Upload talks to YouTube](#org7f2e95e) - - [Restream to YouTube](#org0cc19c3) + - [Manual IRC announcements](#general-infrastructure-manual-irc-announcements) + - [Low-res stream](#general-infrastructure-low-res-stream) + - [Upload talks to YouTube](#general-infrastructure-upload-talks-to-youtube) + - [Restream to YouTube](#general-infrastructure-restream-to-youtube) - [Other process notes](#other) - [Adding another user to BBB](#bbb-user) - - [When a talk is added after the schedule has already been drafted](#org4efd774) + - [When a talk is added after the schedule has already been drafted](#other-process-notes-when-a-talk-is-added-after-the-schedule-has-already-been-drafted) - [When a talk is cancelled](#cancel-talk) + - [When a talk changes title](#other-process-notes-when-a-talk-changes-title) - [When a talk Q&A changes method](#change-talk-qa) - - [When a system is down](#org17cc58c) - - [When we need to bring on a last-minute volunteer](#org4636e4e) - - [Checking people in](#org811d67a) - - [Ansible](#org5d78595) + - [To play the other stream](#other-process-notes-to-play-the-other-stream) + - [When a system is down](#other-process-notes-when-a-system-is-down) + - [When we need to bring on a last-minute volunteer](#other-process-notes-when-we-need-to-bring-on-a-last-minute-volunteer) + - [Checking people in](#other-process-notes-checking-people-in) + - [Ansible](#other-process-notes-ansible) <a id="starting-up-the-conference-planning-process"></a> @@ -74,24 +79,25 @@ This repository will store submissions, contact information, etc. 1. Create the repository on `front0`. Ex: + export YEAR=2025 sudo su - git cd repositories - mkdir emacsconf-2024-private.git - cd emacsconf-2024-private.git + mkdir emacsconf-$YEAR-private.git + cd emacsconf-$YEAR-private.git git init --bare -2. Edit `gitolite-admin/config/gitolite-conf`. Add lines for the group and the repo. Commit and push. Ex: +2. In the `gitolite-admin` repo, edit `conf/gitolite-conf`. Add lines for the group and the repo. Commit and push. Ex: @emacsconf-2024-org = bandali sachac ... repo emacsconf-2024-private - RW+ = @admins @emacsconf-2024-org orga -3. Clone the private repository into the appropriate location. `git clone git@git.emacsconf.org:emacsconf-2024-private private` + RW+ = @admins @emacsconf-2024-org orga +3. Clone the private repository into the appropriate location. `git clone git@git.emacsconf.org:emacsconf-2025-private private` <a id="starting-up-the-conference-planning-process-create-the-public-organizers-notebook-in-the-wiki"></a> ## Create the public organizers’ notebook in the wiki -Ex: 2024/organizers-notebook/index.org +Ex: <../2024/organizers-notebook/index.md> <a id="phases-and-lessons-learned"></a> @@ -105,14 +111,67 @@ Ex: 2024/organizers-notebook/index.org Create linked pages -- [ ] year index -- [ ] volunteer page -- [ ] submit page +- [ ] year index: ex: <../2024.md> +- [ ] volunteer page: ex: <../volunteer.md> +- [ ] submit page: ex: <../2024/submit.md> ### How to mark pages as drafts -Put inside double square brackets: `!template id=pagedraft` +Have a Markdown export block with the following contents. Replace { and } with [ and ]. + +\#+begin\_export md +{{!template id=pagedraft}} +\#+end\_export md + + +### Wiki template for year index + +Replace { and } with [ and ]. + + {{!meta copyright="Copyright © 2021-2022 Amin Bandali; 2023-2025 Sacha Chua"}} + + <p class="center">EmacsConf 2025 | Online Conference<br /> + <b>December 6 and 7, 2024 (Sat-Sun)</b></p> + + <p class="center">{{!img /i/emacsconf-logo1-256.png + alt="EmacsConf logo"}}</p> + + <p class="center">{{<b>Call for Participation</b>|cfp}} | {{Ideas}} | + {{Submit a Proposal|submit}} | {{Volunteer}} | {{Guidelines for Conduct|conduct}}</p> + + <p class="center">EmacsConf is the conference about the joy of + <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a> and + Emacs Lisp.</p> + + We are busy putting things together for EmacsConf 2025, and we would + love to have *your* help to make EmacsConf 2025 amazing, much like the + previous EmacsConfs. See our {{**Call for Participation**|cfp}}, get + involved, and help spread the word! + + We are holding EmacsConf 2025 as an online conference again this year. + We remain fully committed to freedom, and we will continue using our + infrastructure and streaming setup consisting entirely of {free + software}{freesw}, much like previous EmacsConf conferences. + + For general EmacsConf discussions, join the + {emacsconf-discuss}(https://lists.gnu.org/mailman/listinfo/emacsconf-discuss) + mailing list. For discussions related to organizing EmacsConf, join + the + {emacsconf-org}(https://lists.gnu.org/mailman/listinfo/emacsconf-org) + mailing list. You can email us publicly at + <mailto:emacsconf-org@gnu.org> or privately at + <mailto:emacsconf-org-private@gnu.org>. + + Come hang out with us in the `#emacsconf` channel on `irc.libera.chat` + ({Libera.Chat}{libera} IRC network). You can join the chat using + {your favourite IRC client}{libera-emacsconf}, or by visiting + {chat.emacsconf.org}{chat} in your web browser. + + {freesw}: https://www.gnu.org/philosophy/free-sw.html + {libera}: https://libera.chat + {libera-emacsconf}: ircs://irc.libera.chat:6697/emacsconf + {chat}: https://chat.emacsconf.org ### Previous years @@ -157,7 +216,7 @@ Put inside double square brackets: `!template id=pagedraft` - Put the speaker introduction right after the talk description for easier web page copying. -<a id="org897f0c8"></a> +<a id="phases-and-lessons-learned-announce"></a> ## Announce @@ -165,7 +224,25 @@ Put inside double square brackets: `!template id=pagedraft` - Submit to <https://foss.events/> -<a id="orgd12f3b1"></a> +### Promote the conference + +Submit to <https://foss.events/> + +Maybe it would be good to get in touch with podcasts like + +- [System Crafters](https://systemcrafters.net/) +- [This Week in Linux](https://www.youtube.com/playlist?list=PLbFVcOQ-YH_LRP687N0YeN78YZmBp5wqF) +- [Linux Unplugged](https://linuxunplugged.com/) +- [Ask Noah](http://asknoahshow.com/) +- [Linux After Dark](https://linuxafterdark.net/) +- [Lispy Gopher Show](https://anonradio.net/) + +etc to give a heads up on EmacsConf before it +happens and also mention to them when videos are +available to spark more interest. + + +<a id="phases-and-lessons-learned-process-proposals"></a> ## Process proposals @@ -194,7 +271,7 @@ When proposals come in: PUBLIC\_EMAIL -<a id="orgcbfca65"></a> +<a id="phases-and-lessons-learned-accept-proposals"></a> ## Accept proposals @@ -227,7 +304,7 @@ For each talk: - Add missing items to plan -<a id="orgdbb77f2"></a> +<a id="phases-and-lessons-learned-set-up-backstage-and-upload"></a> ## Set up backstage and upload @@ -238,7 +315,7 @@ Lessons learned: - Next year, let’s get upload.emacsconf.org in place as the domain name so that people don’t try to FTP files to it. -<a id="org9456d25"></a> +<a id="phases-and-lessons-learned-post-the-schedule"></a> ## Post the schedule @@ -249,7 +326,7 @@ Lessons learned: - Update talks.md to refer to watch.md as well -<a id="org75e87bb"></a> +<a id="phases-and-lessons-learned-process-uploaded-files"></a> ## Process uploaded files @@ -274,7 +351,7 @@ Process: 3. <elisp:emacsconf-publish-backstage-index> -<a id="org125bd75"></a> +<a id="phases-and-lessons-learned-generate-assets"></a> ## Generate assets @@ -292,7 +369,7 @@ Process: - Splice together into a file that will be processed with subed-record-compile-video. -<a id="org9759aa9"></a> +<a id="phases-and-lessons-learned-prepare-the-infrastructure"></a> ## Prepare the infrastructure @@ -314,7 +391,7 @@ Checklist: - [ ] Icecast -<a id="org9f978d1"></a> +<a id="phases-and-lessons-learned-getting-ready-for-captions"></a> ## Getting ready for captions @@ -344,6 +421,9 @@ Go through the :tminustwo: tags. Go through the :tminusone: tags. +- Set `emacsconf-publishing-phase` to `conference`. +- Set emacsconf-publish-include-pads to t and republish the info pages. + <a id="conf"></a> @@ -352,11 +432,198 @@ Go through the :tminusone: tags. <elisp:emacsconf-pad-open-shift-hyperlist> -<a id="org85c6f49"></a> +<a id="phases-and-lessons-learned-after-the-conference"></a> + +## After the conference + + +### Capture stats + +2024 stats + +Saturday: +gen: 177 peak + 14 peak lowres +dev: 226 peak + 79 peak lowres + +Sunday: +gen: 89 peak + 10 peak lowres + +meet peak 409% CPU (100% is 1 CPU), average 69.4% +front peak 70.66% CPU (100% is 1 CPU) +live peak 552% CPU (100% is 1 CPU) average 144% +res peak 81.54% total CPU (each OBS ~250%), mem 7GB used + +so far we have used 1.2TB of transfer this month + + +### Back up the data + + +#### Icecast + +rsync -avze ssh live:’/data/emacsconf-2024-\*’ media:~/2024 + +rsync -avze ssh live:’/data/emacsconf-2024-\*’ . + + +#### BigBlueButton + +rsync -avze ssh root@bbb:/var/bigbluebutton/ bigbluebutton/ + +ssh root@66.175.208.243 ’dd if=/dev/sda bs=5M ’ | dd of=bbb-img-2024-12-08.img status=progress + +The img can be loaded with +sudo losetup –find –show bbb-img-2024-12-08.img +sudo mount /dev/loop10 test +cd test + + +##### Reviewing all the Q&A durations and chat messages + + (let ((default-directory "/home/sacha/proj/emacsconf/2024/backups/bigbluebutton/published/video")) + (mapconcat + (lambda (dir) + (let ((chat (xml-parse-file + (expand-file-name "video.xml" dir))) + (metadata (xml-parse-file + (expand-file-name "metadata.xml" dir)))) + (concat + "- " + (dom-text (car (dom-by-tag metadata 'meetingName))) " (" + (format-seconds "%.2h:%z%.2m:%.2s" + (/ (string-to-number (dom-text (dom-by-tag metadata 'duration))) + 1000)) + ")" + "\n" + (if (dom-by-tag chat 'chattimeline) + (mapconcat (lambda (node) + (concat " - " (dom-attr node 'name) ": " + (dom-attr node 'message) "\n")) + (dom-by-tag chat 'chattimeline) + "") + "") + "") + ) + ) + (directory-files "." nil "-")) + ) + +- Copy IRC logs to cache and therefore to backstage: (ex: 2024-12-07-emacsconf-gen.txt) + + +### Combine the IRC logs and the pads, and add them to the wiki + +(did we e-mail the speakers before or after?) + + +### Process the Q&A recordings and live presentations + +- Save answers videos as –answers.webm. +- From the pad file: emacsconf-extract-copy-pad-to-wiki +- update cache +- Set `QA_PUBLIC` property to t as each Q&A gets processed. +- change status to `TO_INDEX_QA` +- emacsconf-publish-media-files-on-change +- emacsconf-publish-info-pages-for-talk + +Indexing + +- emacsconf-extract-insert-note-with-question-heading +- emacsconf-subed-make-chapter-file-based-on-comments +- change status to `TO_CAPTION_QA` + +Also copy the YouTube comments and IRC comments +emacsconf-extract-irc-anonymize-log + + +### Send thank-you emails to the speakers + + +### Notify emacs-discuss that the Q&A is up + +<https://lists.gnu.org/archive/html/emacsconf-discuss/2024-12/msg00000.html> + + Hello, everyone! + + https://emacsconf.org/2024/talks and https://media.emacsconf.org/2024 + should have the talks and Q&A sessions now, hooray, including chapter + indices for the Q&A. I've also copied over notes from Etherpad and IRC + on the talk pages, and I've e-mailed them to the speakers so they can + update the wiki directly or send in additional answers. + + BigBlueButton audio mixing is kinda iffy, so I'm holding off on + uploading the Q&A videos (and the live talk for secrets) to + YouTube/Toobnix until Leo and other volunteers have a listen to see + whether the audio needs to be tweaked, and maybe even to do some kind of + normalization. Unfortunately, recordings with separate audio tracks per + participant aren't available--it would be cool to figure that out next + year--so some talks might need some manual processing. (Please feel free + to volunteer if that's up your alley!) In the meantime, you can check + out the Q&A videos from the talk pages on the wiki. Please let us know + if there's anything that needs tweaking. + + Enjoy! + + Sacha + + +### Write a report + +Sample: <https://emacsconf.org/2023/report/> + + +### Send thank-you emails to the volunteers + +emacsconf-mail-template-ask-volunteer-for-mailing-address + + +### Process the lessons learned + + +<a id="general-infrastructure"></a> # General infrastructure +<a id="general-infrastructure-linode-instance-sizes"></a> + +## Linode instance sizes + + +### Production + +- front0 shared Linode 32GB +- live0 shared Linode 64GB +- meet Dedicated CPU 16GB + + +### Dormant + +Resize disk to 25GB, copying large files to media if needed + +- nanode front0 +- nanode live0 +- delete meet after downloading all the recordings, or resize down to nanode + + +<a id="upload"></a> + +## File uploads + +[psi-4ward/psitransfer: Simple open source self-hosted file sharing solution](https://github.com/psi-4ward/psitransfer) + +Before the conference: + +1. Set `upload_enabled` to `true` in `prod-vars.yml` and run `ansible-playbook -i inventory.yml prod-playbook.yml --tags upload`. +2. Confirm that <https://upload.emacsconf.org> has the upload interface and works with the password. +3. Use `emacsconf-mail-template-to-all-groups` and `emacsconf-mail-upload-and-backstage-info` to e-mail the upload information to all speakers. + +After the conference: + +1. Set `upload_enabled` to `false` in `prod-vars.yml` and run `ansible-playbook -i inventory.yml prod-playbook.yml --tags upload`. +2. Confirm that <https://upload.emacsconf.org> shows the in-between page. + + <a id="icecast"></a> ## Icecast @@ -516,7 +783,7 @@ so that the year is updated in the configuration. This is on live.emacsconf.org and can be restarted with `/etc/init.d/emacsconf restart`. -<a id="orgab7108a"></a> +<a id="general-infrastructure-shell-scripts"></a> ## Shell scripts @@ -630,7 +897,7 @@ Explanation of files: Other files might also have been uploaded by the speaker, such as slides or notes. -<a id="org5545d42"></a> +<a id="general-infrastructure-irc-web-client"></a> ## IRC web client @@ -652,7 +919,7 @@ connection exhaustion errors. Is that something we can plan now or would you like me to bring it up a few days before the conference? -<a id="orgd7fd9ee"></a> +<a id="general-infrastructure-etherpad"></a> ## Etherpad @@ -661,6 +928,10 @@ Success: - [X] pad.emacsconf.org redirects to this year’s entry - [X] Each talk has its own Etherpad +Lessons learned: + +- After 2024: Added pronouns and pronunciation to the pad template since that’s what the hosts will be looking at + <a id="media"></a> @@ -688,7 +959,7 @@ Switching it back to `TO_STREAM` and calling You can generate the index with `emacsconf-publish-update-media`. -<a id="org75cad9b"></a> +<a id="general-infrastructure-automated-irc-announcements"></a> ## Automated IRC announcements @@ -712,7 +983,35 @@ ssh root@bbb cd greenlight-v3 docker compose restart -Does not seem to work in Firefox private browsing; documented at <https://emacsconf.org/2024/watch/>. +Sizes: + +- dormant: 1 GB nanode +- testing: 4 core 8 GB shared CPU +- production: 8 core 16 GB dedicated CPU (roughly half CPU load for 107 simultaneous users, 2024) + + +### Installing BigBlueButton + +1. Create the instance. + - Linode 4core 8GB shared CPU + - Image: Ubuntu 22.04 +2. Update the DNS for bbb.emacsverse.org with its IP address. +3. Download the BBB installer and make it executable. +4. ufw allow 16384:32768/udp +5. Run the BBB installer: `./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g` +6. `sudo apt install bbb-playback-video` and then follow the instructions at [Server Customization | BigBlueButton](https://docs.bigbluebutton.org/3.0/administration/customize/#install-additional-recording-processing-formats) . + - /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml: + + steps: + archive: 'sanity' + sanity: 'captions' + captions: + - 'process:presentation' + - 'process:video' + 'process:presentation': 'publish:presentation' + 'process:video': 'publish:video' + - systemctl restart bbb-rap-resque-worker.service +7. docker exec -it greenlight-v3 bundle exec rake admin:create[’name’,’email’,’password’] ### System audio limitations @@ -728,7 +1027,109 @@ BBB says sharing system audio works only if you use Chrome on Mac OS X or Micros Related: <https://github.com/bigbluebutton/bigbluebutton/issues/8632> -<a id="org5a3d818"></a> +### Creating talk BBB rooms + +- `docker exec -it greenlight-v3 /bin/bash` +- `bundle exec rails console` +- `user_id = User.find_by_email("sacha@sachachua.com").id` + + (mapconcat (lambda (group) + (format + "Room.create(user_id: user_id, name: \"%s - %s\")\n" + (plist-get (cadr group) :speakers) + (string-join (mapcar (lambda (talk) (plist-get talk :slug)) + (cdr group))))) + (emacsconf-mail-groups (emacsconf-active-talks (emacsconf-get-talk-info))) + "") + +- <elisp:emacsconf-publish-bbb-static-redirects> + +Print out the room IDs with + + Room.all.each { |x| puts x.friendly_id + " " + x.name }; nil + +It’s possible to change the friendly\_id and then use `x.save!`. + + +### Setting up moderator access codes + + (dolist (talk (seq-filter (lambda (o) + (and (plist-get o :bbb-room) + (not (plist-get o :bbb-mod-code)))) + (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info)))) + (spookfox-js-injection-eval-in-active-tab + (format "window.location.href = \"%s\"" + (replace-regexp-in-string "/join" "" (plist-get talk :bbb-room))) + t) + (sleep-for 3) + (spookfox-js-injection-eval-in-active-tab + "document.querySelector('button[data-rr-ui-event-key=\"settings\"]').click()" t) + (spookfox-js-injection-eval-in-active-tab + "document.querySelector('input#glAnyoneCanStart').checked = true") + (spookfox-js-injection-eval-in-active-tab + "document.querySelector('input#muteOnStart').checked = true") + (spookfox-js-injection-eval-in-active-tab + "document.querySelectorAll('.border-end button')[2].click()" t) + (let ((code (spookfox-js-injection-eval-in-active-tab + "document.querySelector('.access-code-input input').value" t))) + (message "Setting %s to %s" (plist-get talk :slug) code) + (emacsconf-set-property-from-slug + talk "BBB_MOD_CODE" + code) + (sit-for 2))) + + (dolist (talk (seq-filter (lambda (o) + (plist-get o :bbb-room)) + (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info)))) + (spookfox-js-injection-eval-in-active-tab + (format "window.location.href = \"%s\"" + (replace-regexp-in-string "/join" "" (plist-get talk :bbb-room))) + t) + (sleep-for 3) + (spookfox-js-injection-eval-in-active-tab + "document.querySelector('button[data-rr-ui-event-key=\"settings\"]').click()" t) + (sleep-for 3)) + + +### Backing up BBB :backup: + +rsync -avze ssh root@bbb:/var/bigbluebutton/ bigbluebutton/ + +ssh root@bbb ’tar zcvf - /var/bigbluebutton /etc/bigbluebutton /root/greenlight-v3 /usr/local/bigbluebutton /usr/share/bbb-web’ > bbb-backup-$(date “+%Y-%m-%d”).tar.gz + +ssh root@bbb ’dd if=/dev/sda bs=5M ’ | dd of=bbb-img-$(date “+%Y-%m-%d”).img status=progress + + +### Spinning BBB up again + +<span class="timestamp-wrapper"><span class="timestamp">[2025-01-22 Wed] </span></span> … actually, this ran into some issues with the certificate, so I’m just going to do a reinstall. + +Previous notes + +1. Create a Nanode. +2. Update the DNS for bbb.emacsverse.org with its IP address. (dns.he.net) +3. Reboot into Rescue mode. In Lish: + + passwd # set interactively + sed -i -e 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' /etc/ssh/sshd_config + echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config + service ssh start +4. From the backup directory: + gunzip -c bbb-img-2024-12-08.img.gz | ssh root@bbb.emacsconf.org “dd of=/dev/sda bs=4M status=progress oflag=direct iflag=fullblock” +5. After I resized to 4core 8GB RAM, I couldn’t log in with SSH, so I used the Linode shell. `sshd -t` said no host keys available. Fix: + + ssh-keygen -A + service ssh --full-restart +6. ./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com + +Resources: + +- <https://overto.eu/posts/gunzip-into-dd/> +- <https://www.linode.com/community/questions/20386/how-do-i-ssh-to-linode-from-the-finnix-boot-in-order-to-copy-my-local-vm-over-to> +- <https://github.com/bigbluebutton/bigbluebutton/issues/9485> + + +<a id="general-infrastructure-manual-irc-announcements"></a> ## Manual IRC announcements @@ -737,7 +1138,7 @@ Success: - [X] You can /opall, /conftopic, and /broadcast -<a id="orge08d62d"></a> +<a id="general-infrastructure-low-res-stream"></a> ## Low-res stream @@ -748,7 +1149,7 @@ backup on live: - /usr/local/bin/emacsconf-lowres-dev-on-connect -<a id="org7f2e95e"></a> +<a id="general-infrastructure-upload-talks-to-youtube"></a> ## Upload talks to YouTube @@ -784,7 +1185,7 @@ backup on live: (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info))) -<a id="org0cc19c3"></a> +<a id="general-infrastructure-restream-to-youtube"></a> ## Restream to YouTube @@ -802,7 +1203,7 @@ backup on live: docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","PASSWORD","user"] -<a id="org4efd774"></a> +<a id="other-process-notes-when-a-talk-is-added-after-the-schedule-has-already-been-drafted"></a> ## When a talk is added after the schedule has already been drafted @@ -826,12 +1227,28 @@ backup on live: ## When a talk is cancelled -1. Update the status to CANCELLED. +1. Update the status to CANCELLED. Update that specific talk with <elisp:emacsconf-publish-info-pages-for-talk>. 2. Rejig the schedule if needed, and update with <elisp:emacsconf-schedule-update-from-info> 3. Update the published schedule with <elisp:emacsconf-update-schedule> and push the wiki. 4. Regenerate the intros (before, after). <elisp:emacsconf-stream-generate-in-between-pages>, then use <elisp:subed-record-compile-video> in the intros file. -5. Sync the new intros to the /data/emacsconf/shared/$YEAR/assets/intros directory. -6. Regenerate the pads: <elisp:emacsconf-pad-prepopulate-all-talks> +5. Resync the cache directory. +6. Consider updating the screenshots for sat-open and sun-open. + + +<a id="other-process-notes-when-a-talk-changes-title"></a> + +## When a talk changes title + +1. Update the title in conf.org. +2. Delete the FILE\_PREFIX property. +3. Call <elisp:emacsconf-set-file-prefix-if-needed>. +4. Rename existing files with <elisp:emacsconf-update-file-prefixes>. +5. Update the intro VTT file with the new title. +6. Update the wiki page for the talk. +7. Regenerate the in-between images with <elisp:emacsconf-stream-generate-in-between-pages> +8. Rerecord and recompile the intro, and recompile the intro for the talk after it. +9. <elisp:emacsconf-update-schedule> +10. <elisp:emacsconf-pad-prepopulate-hyperlists> <a id="change-talk-qa"></a> @@ -846,7 +1263,15 @@ backup on live: 6. Regenerate talks.json: <elisp:emacsconf-publish-talks-json-to-files> -<a id="org17cc58c"></a> +<a id="other-process-notes-to-play-the-other-stream"></a> + +## To play the other stream + +- mpv –profile=full <https://live0.emacsconf.org/gen.webm> +- Change the channel topic to note that discussion can be in the other channel + + +<a id="other-process-notes-when-a-system-is-down"></a> ## When a system is down @@ -859,7 +1284,7 @@ Update the status page: /broadcast <message> may also be helpful -<a id="org4636e4e"></a> +<a id="other-process-notes-when-we-need-to-bring-on-a-last-minute-volunteer"></a> ## When we need to bring on a last-minute volunteer @@ -868,7 +1293,7 @@ Update the status page: will give them the backstage credentials and links to the index -<a id="org811d67a"></a> +<a id="other-process-notes-checking-people-in"></a> ## Checking people in @@ -876,7 +1301,7 @@ will give them the backstage credentials and links to the index /room nick (should be automatic if live, but there just in case) -<a id="org5d78595"></a> +<a id="other-process-notes-ansible"></a> ## Ansible diff --git a/organizers-notebook/index.org b/organizers-notebook/index.org index 13d55ca7..0da79919 100644 --- a/organizers-notebook/index.org +++ b/organizers-notebook/index.org @@ -41,26 +41,28 @@ Check in with core organizers from the previous year to see who's in. This repository will store submissions, contact information, etc. 1. Create the repository on ~front0~. Ex: - #+begin_src sh :eval no + + #+begin_src sh + export YEAR=2025 sudo su - git cd repositories - mkdir emacsconf-2024-private.git - cd emacsconf-2024-private.git + mkdir emacsconf-$YEAR-private.git + cd emacsconf-$YEAR-private.git git init --bare #+end_src - 2. Edit ~gitolite-admin/config/gitolite-conf~. Add lines for the group and the repo. Commit and push. Ex: + 2. In the ~gitolite-admin~ repo, edit ~conf/gitolite-conf~. Add lines for the group and the repo. Commit and push. Ex: #+begin_example @emacsconf-2024-org = bandali sachac ... repo emacsconf-2024-private - RW+ = @admins @emacsconf-2024-org orga + RW+ = @admins @emacsconf-2024-org orga #+end_example - 3. Clone the private repository into the appropriate location. ~git clone git@git.emacsconf.org:emacsconf-2024-private private~ + 3. Clone the private repository into the appropriate location. ~git clone git@git.emacsconf.org:emacsconf-2025-private private~ ** Create the public organizers' notebook in the wiki :PROPERTIES: :CUSTOM_ID: starting-up-the-conference-planning-process-create-the-public-organizers-notebook-in-the-wiki :END: -Ex: 2024/organizers-notebook/index.org +Ex: file:../2024/organizers-notebook/index.org * Phases and lessons learned :PROPERTIES: :CUSTOM_ID: phases-and-lessons-learned @@ -71,16 +73,100 @@ Ex: 2024/organizers-notebook/index.org :END: Create linked pages -- [ ] year index -- [ ] volunteer page -- [ ] submit page +- [ ] year index: ex: [[file:../2024.md]] +- [ ] volunteer page: ex: [[file:../volunteer.md]] +- [ ] submit page: ex: [[file:../2024/submit.md]] *** How to mark pages as drafts +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-draft-cfp-how-to-mark-pages-as-drafts +:END: + +Have a Markdown export block with the following contents. Replace { and } with [ and ]. + +#+begin_export md +{{!template id=pagedraft}} +#+end_export md + +*** Wiki template for year index +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-draft-cfp-wiki-template-for-year-index +:END: + +Replace { and } with [ and ]. + +#+begin_example +{{!meta copyright="Copyright © 2021-2022 Amin Bandali; 2023-2025 Sacha Chua"}} + +<p class="center">EmacsConf 2025 | Online Conference<br /> +<b>December 6 and 7, 2024 (Sat-Sun)</b></p> + +<p class="center">{{!img /i/emacsconf-logo1-256.png +alt="EmacsConf logo"}}</p> + +<p class="center">{{<b>Call for Participation</b>|cfp}} | {{Ideas}} | +{{Submit a Proposal|submit}} | {{Volunteer}} | {{Guidelines for Conduct|conduct}}</p> + +<p class="center">EmacsConf is the conference about the joy of +<a href="https://www.gnu.org/software/emacs/">GNU Emacs</a> and +Emacs Lisp.</p> + +We are busy putting things together for EmacsConf 2025, and we would +love to have *your* help to make EmacsConf 2025 amazing, much like the +previous EmacsConfs. See our {{**Call for Participation**|cfp}}, get +involved, and help spread the word! + +We are holding EmacsConf 2025 as an online conference again this year. +We remain fully committed to freedom, and we will continue using our +infrastructure and streaming setup consisting entirely of {free +software}{freesw}, much like previous EmacsConf conferences. + +For general EmacsConf discussions, join the +{emacsconf-discuss}(https://lists.gnu.org/mailman/listinfo/emacsconf-discuss) +mailing list. For discussions related to organizing EmacsConf, join +the +{emacsconf-org}(https://lists.gnu.org/mailman/listinfo/emacsconf-org) +mailing list. You can email us publicly at +<mailto:emacsconf-org@gnu.org> or privately at +<mailto:emacsconf-org-private@gnu.org>. + +Come hang out with us in the `#emacsconf` channel on `irc.libera.chat` +({Libera.Chat}{libera} IRC network). You can join the chat using +{your favourite IRC client}{libera-emacsconf}, or by visiting +{chat.emacsconf.org}{chat} in your web browser. + +{freesw}: https://www.gnu.org/philosophy/free-sw.html +{libera}: https://libera.chat +{libera-emacsconf}: ircs://irc.libera.chat:6697/emacsconf +{chat}: https://chat.emacsconf.org +#+end_example -Put inside double square brackets: =!template id=pagedraft= *** Previous years +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-draft-cfp-previous-years +:END: [[file:~/proj/emacsconf/wiki/2023/cfp.org][2023]] +*** Update dates +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-draft-cfp-update-dates +:END: + +[[file:~/proj/emacsconf/lisp/emacsconf.el]] +[[file:~/proj/emacsconf/lisp/emacsconf-erc.el]] + +*** Update the IRC topic +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-draft-cfp-update-the-irc-topic +:END: + +#+begin_src emacs-lisp +(erc-cmd-OPALL) +(erc-cmd-CONFTOPIC (emacsconf-replace-plist-in-string + `(:year ,emacsconf-year :cfp-deadline ,emacsconf-cfp-deadline) + "Getting ready for EmacsConf ${year}! Call for proposals: https://emacsconf.org/${year}/cfp by ${cfp-deadline}, volunteer: https://emacsconf.org/volunteer/")) +(erc-cmd-DEOPALL) +#+end_src *** Lessons learned :PROPERTIES: @@ -121,11 +207,37 @@ Put inside double square brackets: =!template id=pagedraft= European organizers and volunteers, though. - Put the speaker introduction right after the talk description for easier web page copying. ** Announce +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-announce +:END: - Post CFP to emacsconf-discuss, reddit.com/r/emacs, and in Emacs News - Submit to https://foss.events/ +*** Promote the conference +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-announce-promote-the-conference +:END: + +Submit to https://foss.events/ + +Maybe it would be good to get in touch with podcasts like + +- [[https://systemcrafters.net/][System Crafters]] +- [[https://www.youtube.com/playlist?list=PLbFVcOQ-YH_LRP687N0YeN78YZmBp5wqF][This Week in Linux]] +- [[https://linuxunplugged.com/][Linux Unplugged]] +- [[http://asknoahshow.com/][Ask Noah]] +- [[https://linuxafterdark.net/][Linux After Dark]] +- [[https://anonradio.net/][Lispy Gopher Show]] + +etc to give a heads up on EmacsConf before it +happens and also mention to them when videos are +available to spark more interest. + ** Process proposals +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-process-proposals +:END: 1. In the private repository, create a conf.org. 2. Set ~emacsconf-org-file~ to its location. @@ -153,6 +265,9 @@ When proposals come in: TRACK, TIMEZONE, CATEGORY, DATE_SUBMITTED, PUBLIC_EMAIL ** Accept proposals +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-accept-proposals +:END: Setup: @@ -180,6 +295,9 @@ For each talk: - Create draft-schedule section in the public organizers notebook for the year - Add missing items to plan ** Set up backstage and upload +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-set-up-backstage-and-upload +:END: See [[emacsconf-ansible:README.org]]. @@ -188,15 +306,19 @@ Lessons learned: - Next year, let's get upload.emacsconf.org in place as the domain name so that people don't try to FTP files to it. ** Post the schedule +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-post-the-schedule +:END: - [[elisp:(setq emacsconf-publishing-phase 'schedule)]] - elisp:emacsconf-publish-info-pages - elisp:emacsconf-publish-schedule-org-files - elisp:emacsconf-ical-generate-all - Update talks.md to refer to watch.md as well - - ** Process uploaded files +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-process-uploaded-files +:END: Basic setup: @@ -218,14 +340,26 @@ Process: 2. elisp:emacsconf-publish-cache-video-data or elisp:emacsconf-cache-all-video-data 3. elisp:emacsconf-publish-backstage-index ** Generate assets +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-generate-assets +:END: *** In-between pages +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-generate-assets-in-between-pages +:END: - Make the $year/assets/in-between directory and copy the template.svg from the previous year. - elisp:emacsconf-stream-generate-in-between-pages *** Intros +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-generate-assets-intros +:END: - In an empty VTT file, elisp:emacsconf-subed-intro-subtitles - Record the audio and get captions - Splice together into a file that will be processed with subed-record-compile-video. ** Prepare the infrastructure +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-prepare-the-infrastructure +:END: Checklist: @@ -245,6 +379,9 @@ Checklist: - [ ] Icecast ** Getting ready for captions +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-getting-ready-for-captions +:END: Onboarding: @@ -261,23 +398,39 @@ elisp:emacsconf-pad-prepopulate-shift-hyperlists SCHEDULED: <2024-11-30 Sat> :PROPERTIES: :CREATED: [2024-11-27 Wed 17:34] +:CUSTOM_ID: phases-and-lessons-learned-getting-ready-for-the-conference-send-check-in-details-schedule-update-etc :END: *** Two days before the conference +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-getting-ready-for-the-conference-two-days-before-the-conference +:END: Go through the :tminustwo: tags. *** One day before the conference +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-getting-ready-for-the-conference-one-day-before-the-conference +:END: Go through the :tminusone: tags. +- Set ~emacsconf-publishing-phase~ to ~conference~. +- Set emacsconf-publish-include-pads to t and republish the info pages. + ** During the conference :PROPERTIES: :CUSTOM_ID: conf :END: elisp:emacsconf-pad-open-shift-hyperlist ** After the conference +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference +:END: *** Capture stats +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-capture-stats +:END: 2024 stats Saturday: @@ -294,13 +447,22 @@ res peak 81.54% total CPU (each OBS ~250%), mem 7GB used so far we have used 1.2TB of transfer this month *** Back up the data +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-back-up-the-data +:END: **** Icecast +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-back-up-the-data-icecast +:END: rsync -avze ssh live:'/data/emacsconf-2024-*' media:~/2024 rsync -avze ssh live:'/data/emacsconf-2024-*' . **** BigBlueButton +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-back-up-the-data-bigbluebutton +:END: rsync -avze ssh root@bbb:/var/bigbluebutton/ bigbluebutton/ @@ -311,6 +473,9 @@ sudo losetup --find --show bbb-img-2024-12-08.img sudo mount /dev/loop10 test cd test ***** Reviewing all the Q&A durations and chat messages +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-back-up-the-data-bigbluebutton-reviewing-all-the-q-a-durations-and-chat-messages +:END: #+begin_src emacs-lisp :eval no (let ((default-directory "/home/sacha/proj/emacsconf/2024/backups/bigbluebutton/published/video")) (mapconcat @@ -344,8 +509,14 @@ cd test - Copy IRC logs to cache and therefore to backstage: (ex: 2024-12-07-emacsconf-gen.txt) *** Combine the IRC logs and the pads, and add them to the wiki +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-combine-the-irc-logs-and-the-pads-and-add-them-to-the-wiki +:END: (did we e-mail the speakers before or after?) *** Process the Q&A recordings and live presentations +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-process-the-q-a-recordings-and-live-presentations +:END: - Save answers videos as --answers.webm. - From the pad file: emacsconf-extract-copy-pad-to-wiki @@ -365,24 +536,98 @@ Also copy the YouTube comments and IRC comments emacsconf-extract-irc-anonymize-log *** Send thank-you emails to the speakers +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-send-thank-you-emails-to-the-speakers +:END: +*** Notify emacs-discuss that the Q&A is up +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-notify-emacs-discuss-that-the-q-a-is-up +:END: + +https://lists.gnu.org/archive/html/emacsconf-discuss/2024-12/msg00000.html + +#+begin_example +Hello, everyone! + +https://emacsconf.org/2024/talks and https://media.emacsconf.org/2024 +should have the talks and Q&A sessions now, hooray, including chapter +indices for the Q&A. I've also copied over notes from Etherpad and IRC +on the talk pages, and I've e-mailed them to the speakers so they can +update the wiki directly or send in additional answers. + +BigBlueButton audio mixing is kinda iffy, so I'm holding off on +uploading the Q&A videos (and the live talk for secrets) to +YouTube/Toobnix until Leo and other volunteers have a listen to see +whether the audio needs to be tweaked, and maybe even to do some kind of +normalization. Unfortunately, recordings with separate audio tracks per +participant aren't available--it would be cool to figure that out next +year--so some talks might need some manual processing. (Please feel free +to volunteer if that's up your alley!) In the meantime, you can check +out the Q&A videos from the talk pages on the wiki. Please let us know +if there's anything that needs tweaking. + +Enjoy! + +Sacha +#+end_example + *** Write a report +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-write-a-report +:END: Sample: https://emacsconf.org/2023/report/ -*** Notify emacs-discuss that the Q&A is up *** Send thank-you emails to the volunteers +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-send-thank-you-emails-to-the-volunteers +:END: + +emacsconf-mail-template-ask-volunteer-for-mailing-address + *** Process the lessons learned +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-process-the-lessons-learned +:END: * General infrastructure +:PROPERTIES: +:CUSTOM_ID: general-infrastructure +:END: ** Linode instance sizes +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-linode-instance-sizes +:END: *** Production +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-linode-instance-sizes-production +:END: - front0 shared Linode 32GB - live0 shared Linode 64GB - meet Dedicated CPU 16GB *** Dormant +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-linode-instance-sizes-dormant +:END: Resize disk to 25GB, copying large files to media if needed - nanode front0 - nanode live0 - delete meet after downloading all the recordings, or resize down to nanode +** File uploads +:PROPERTIES: +:CUSTOM_ID: upload +:END: + +[[https://github.com/psi-4ward/psitransfer][psi-4ward/psitransfer: Simple open source self-hosted file sharing solution]] + +Before the conference: +1. Set ~upload_enabled~ to ~true~ in ~prod-vars.yml~ and run ~ansible-playbook -i inventory.yml prod-playbook.yml --tags upload~. +2. Confirm that https://upload.emacsconf.org has the upload interface and works with the password. +3. Use ~emacsconf-mail-template-to-all-groups~ and ~emacsconf-mail-upload-and-backstage-info~ to e-mail the upload information to all speakers. + +After the conference: + +1. Set ~upload_enabled~ to ~false~ in ~prod-vars.yml~ and run ~ansible-playbook -i inventory.yml prod-playbook.yml --tags upload~. +2. Confirm that https://upload.emacsconf.org shows the in-between page. ** Icecast :PROPERTIES: @@ -553,6 +798,9 @@ so that the year is updated in the configuration. This is on live.emacsconf.org and can be restarted with =/etc/init.d/emacsconf restart=. ** Shell scripts +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-shell-scripts +:END: Success: From the commandline, hosts can: - [X] play just the intro: intro $SLUG @@ -599,6 +847,9 @@ Explanation of files: Other files might also have been uploaded by the speaker, such as slides or notes. ** IRC web client +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-irc-web-client +:END: Success: - [X] You can join from https://chat.emacsconf.org @@ -616,11 +867,25 @@ allowed from chat.emacsconf.org during conference days in order to avoid connection exhaustion errors. Is that something we can plan now or would you like me to bring it up a few days before the conference? ** Etherpad +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-etherpad +:END: Success: - [X] pad.emacsconf.org redirects to this year's entry - [X] Each talk has its own Etherpad + +Lessons learned: + +- After 2024: Added pronouns and pronunciation to the pad template since that's what the hosts will be looking at + +The pad is at front0.emacsconf.org + +Non-JS way to get plain text or HTML of a pad: ex: +- https://pad.emacsconf.org/orgmeetup/export/txt +- https://pad.emacsconf.org/orgmeetup/export/html + ** Publishing media to the server and to the wiki :PROPERTIES: :CUSTOM_ID: media @@ -639,6 +904,9 @@ Switching it back to =TO_STREAM= and calling elisp:emacsconf-publish-media-files-on-change should remove it. *** TODO Switch public media to unprotected root before the conference :tminustwo: +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-publishing-media-to-the-server-and-to-the-wiki-switch-public-media-to-unprotected-root-before-the-conference +:END: 1. Clear public media directory. 2. Set =media_protect_root= to false in Ansible =group_vars/all.yml=. @@ -646,6 +914,9 @@ elisp:emacsconf-publish-media-files-on-change should remove it. You can generate the index with =emacsconf-publish-update-media=. ** Automated IRC announcements +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-automated-irc-announcements +:END: Success: @@ -666,6 +937,40 @@ ssh root@bbb cd greenlight-v3 docker compose restart +Sizes: + +- dormant: 1 GB nanode +- testing: 4 core 8 GB shared CPU +- production: 8 core 16 GB dedicated CPU (roughly half CPU load for 107 simultaneous users, 2024) + +*** Installing BigBlueButton +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-bigbluebutton-installing-bigbluebutton +:END: + +1. Create the instance. + - Linode 4core 8GB shared CPU + - Image: Ubuntu 22.04 +2. Update the DNS for bbb.emacsverse.org with its IP address. +3. Download the BBB installer and make it executable. +4. ufw allow 16384:32768/udp +5. Run the BBB installer: ~./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g~ +6. ~sudo apt install bbb-playback-video~ and then follow the instructions at [[https://docs.bigbluebutton.org/3.0/administration/customize/#install-additional-recording-processing-formats][Server Customization | BigBlueButton]] . + - /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml: + #+begin_example + steps: + archive: 'sanity' + sanity: 'captions' + captions: + - 'process:presentation' + - 'process:video' + 'process:presentation': 'publish:presentation' + 'process:video': 'publish:video' + #+end_example + - systemctl restart bbb-rap-resque-worker.service +7. docker exec -it greenlight-v3 bundle exec rake admin:create['name','email','password'] + + *** System audio limitations :PROPERTIES: @@ -684,6 +989,9 @@ Related: https://github.com/bigbluebutton/bigbluebutton/issues/8632 *** Creating talk BBB rooms +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-bigbluebutton-creating-talk-bbb-rooms +:END: - =docker exec -it greenlight-v3 /bin/bash= - =bundle exec rails console= @@ -708,8 +1016,58 @@ Print out the room IDs with Room.all.each { |x| puts x.friendly_id + " " + x.name }; nil #+end_src +It's possible to change the friendly_id and then use ~x.save!~. + *** Setting up moderator access codes +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-bigbluebutton-setting-up-moderator-access-codes +:END: + +#+begin_src emacs-lisp +(dolist (talk (seq-filter (lambda (o) + (and (plist-get o :bbb-room) + (not (plist-get o :bbb-mod-code)))) + (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info)))) + (spookfox-js-injection-eval-in-active-tab + (format "window.location.href = \"%s\"" + (replace-regexp-in-string "/join" "" (plist-get talk :bbb-room))) + t) + (sleep-for 3) + (spookfox-js-injection-eval-in-active-tab + "document.querySelector('button[data-rr-ui-event-key=\"settings\"]').click()" t) + (spookfox-js-injection-eval-in-active-tab + "document.querySelector('input#glAnyoneCanStart').checked = true") + (spookfox-js-injection-eval-in-active-tab + "document.querySelector('input#muteOnStart').checked = true") + (spookfox-js-injection-eval-in-active-tab + "document.querySelectorAll('.border-end button')[2].click()" t) + (let ((code (spookfox-js-injection-eval-in-active-tab + "document.querySelector('.access-code-input input').value" t))) + (message "Setting %s to %s" (plist-get talk :slug) code) + (emacsconf-set-property-from-slug + talk "BBB_MOD_CODE" + code) + (sit-for 2))) +#+end_src + +#+begin_src emacs-lisp +(dolist (talk (seq-filter (lambda (o) + (plist-get o :bbb-room)) + (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info)))) + (spookfox-js-injection-eval-in-active-tab + (format "window.location.href = \"%s\"" + (replace-regexp-in-string "/join" "" (plist-get talk :bbb-room))) + t) + (sleep-for 3) + (spookfox-js-injection-eval-in-active-tab + "document.querySelector('button[data-rr-ui-event-key=\"settings\"]').click()" t) + (sleep-for 3)) +#+end_src + *** Backing up BBB :backup: +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-bigbluebutton-backing-up-bbb +:END: rsync -avze ssh root@bbb:/var/bigbluebutton/ bigbluebutton/ @@ -717,13 +1075,52 @@ ssh root@bbb 'tar zcvf - /var/bigbluebutton /etc/bigbluebutton /root/greenlight- ssh root@bbb 'dd if=/dev/sda bs=5M ' | dd of=bbb-img-$(date "+%Y-%m-%d").img status=progress +*** Spinning BBB up again +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-bigbluebutton-spinning-bbb-up-again +:END: + +[2025-01-22 Wed] ... actually, this ran into some issues with the certificate, so I'm just going to do a reinstall. + +Previous notes + +1. Create a Nanode. +2. Update the DNS for bbb.emacsverse.org with its IP address. (dns.he.net) +3. Reboot into Rescue mode. In Lish: + #+begin_src sh :eval no + passwd # set interactively + sed -i -e 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' /etc/ssh/sshd_config + echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config + service ssh start + #+end_src +4. From the backup directory: + gunzip -c bbb-img-2024-12-08.img.gz | ssh root@bbb.emacsconf.org "dd of=/dev/sda bs=4M status=progress oflag=direct iflag=fullblock" +5. After I resized to 4core 8GB RAM, I couldn't log in with SSH, so I used the Linode shell. ~sshd -t~ said no host keys available. Fix: + #+begin_src sh :eval no + ssh-keygen -A + service ssh --full-restart + #+end_src +6. ./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com + +Resources: + +- https://overto.eu/posts/gunzip-into-dd/ +- https://www.linode.com/community/questions/20386/how-do-i-ssh-to-linode-from-the-finnix-boot-in-order-to-copy-my-local-vm-over-to +- https://github.com/bigbluebutton/bigbluebutton/issues/9485 + ** Manual IRC announcements +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-manual-irc-announcements +:END: Success: - [X] You can /opall, /conftopic, and /broadcast ** Low-res stream +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-low-res-stream +:END: Should be automatic, handled by Icecast backup on live: - /usr/local/bin/emacsconf-lowres-gen-on-connect @@ -732,6 +1129,7 @@ backup on live: SCHEDULED: <2024-11-30 Sat> :PROPERTIES: :CREATED: [2024-11-27 Wed 17:33] +:CUSTOM_ID: general-infrastructure-upload-talks-to-youtube :END: [[https://studio.youtube.com/channel/UCwuyodzTl_KdEKNuJmeo99A/videos/upload?filter=%5B%5D&sort=%7B%22columnType%22%3A%22date%22%2C%22sortOrder%22%3A%22DESCENDING%22%7D][Channel videos]] @@ -781,6 +1179,9 @@ SCHEDULED: <2024-11-30 Sat> :end: ** Restream to YouTube +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-restream-to-youtube +:END: * Other process notes @@ -797,6 +1198,9 @@ ssh bbb.emacsverse.org docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","PASSWORD","user"] #+end_src ** When a talk is added after the schedule has already been drafted +:PROPERTIES: +:CUSTOM_ID: other-process-notes-when-a-talk-is-added-after-the-schedule-has-already-been-drafted +:END: - [X] Add the talk to conf.org - [X] Add the talk ID to the draft schedule - [X] Run the draft schedule block @@ -825,6 +1229,9 @@ docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","P 6. Consider updating the screenshots for sat-open and sun-open. ** When a talk changes title +:PROPERTIES: +:CUSTOM_ID: other-process-notes-when-a-talk-changes-title +:END: 1. Update the title in conf.org. 2. Delete the FILE_PREFIX property. @@ -847,8 +1254,18 @@ docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","P 4. Sync the new intros to the /data/emacsconf/shared/$YEAR/assets/intros directory. 5. Regenerate the pads: elisp:emacsconf-pad-prepopulate-all-talks 6. Regenerate talks.json: elisp:emacsconf-publish-talks-json-to-files +** To play the other stream +:PROPERTIES: +:CUSTOM_ID: other-process-notes-to-play-the-other-stream +:END: + +- mpv --profile=full https://live0.emacsconf.org/gen.webm +- Change the channel topic to note that discussion can be in the other channel ** When a system is down +:PROPERTIES: +:CUSTOM_ID: other-process-notes-when-a-system-is-down +:END: Let people know in #emacsconf and #emacsconf-org @@ -859,17 +1276,26 @@ Update the status page: /broadcast <message> may also be helpful ** When we need to bring on a last-minute volunteer +:PROPERTIES: +:CUSTOM_ID: other-process-notes-when-we-need-to-bring-on-a-last-minute-volunteer +:END: /backstage nick will give them the backstage credentials and links to the index ** Checking people in +:PROPERTIES: +:CUSTOM_ID: other-process-notes-checking-people-in +:END: /checkin nick /room nick (should be automatic if live, but there just in case) ** Ansible +:PROPERTIES: +:CUSTOM_ID: other-process-notes-ansible +:END: #+begin_src sh :eval no git clone git@git.emacsconf.org:pub/emacsconf-ansible diff --git a/volunteer.md b/volunteer.md index 9fd30f2e..e4727461 100644 --- a/volunteer.md +++ b/volunteer.md @@ -1,9 +1,7 @@ [[!meta title="Volunteer"]] [[!meta copyright="Copyright © 2022-2024 Sacha Chua"]] -Want to help make EmacsConf awesomer and learn a lot along the way? -Volunteering is a great way to meet fellow Emacs geeks, tinker around -with interesting packages and scripts, and develop your skills. +Want to help make EmacsConf awesomer and learn a lot along the way? Volunteering is a great way to meet others in the wonderful Emacs community, tinker around with interesting packages and scripts, and develop your skills. In addition to the [emacsconf-discuss](https://lists.gnu.org/mailman/listinfo/emacsconf-discuss) |