summaryrefslogblamecommitdiffstats
path: root/2024/info/emacs30-after.md
blob: 2deef37365b4e3055ea156f6217666b12560ddd7 (plain) (tree)
1
2
3
4
5
6
7


                                                                
                                                                                                           

 
                                                                                                                                                                                                                                                                                                  

































                                                                                                                                                 
                                                                                                                                                                                                                                                                                      













































































































                                                                                                                                                 
                                                                                                                                                                                                                                                                                          



























                                                                                                                                                
                                                                                                                                                                                                                                                                                                                  






































































                                                                                                                                                 
                                                                                                                                                                                                                                                                         











































                                                                                                                                                  
                                                                                                                                                                                                                                                                                      


























                                                                                                                                                  
                                                                                                                                                                                                                                                                    












                                                                                                                                                
                                                                                                                                                                                                                                                                                                            





















                                                                                                                                                  
                                                                                                                                                                                                                                                                                              
































                                                                                                                                                 
                                                                                                                                                                                                                                                                    

































                                                                                                                                                 
                                                                                                                                                                                                                                                                   





























                                                                                                                                                 
      


                







































































































































































































































































































































































                                                                                                                                                                                                


                                            
<!-- Automatically generated by emacsconf-publish-after-page -->


<div class="transcript transcript-mainVideo"><a name="emacs30-mainVideo-transcript"></a><h1>Transcript</h1>


<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="""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="""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"]]

<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"]]
[[!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="""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="""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="""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="""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"]]

<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="""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"]]
[[!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="""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"]]

<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"]]
[[!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"]]

<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="""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="""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"]]
[[!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"]]

<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 &quot;emacs -Q&quot;-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"]]
[[!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"]]

<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="""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"]]
[[!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"]]

</div>

Captioner: anush

<div class="transcript transcript-qanda"><a name="emacs30-qanda-transcript"></a><h1>Q&A transcript (unedited)</h1>

[[!template text="""And I believe we are live. Hi Philippe, how are you doing?""" start="00:00:04.751" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Oh, did we lose Philippe? Is it bad luck or am I the only one not""" start="00:00:11.297" video="qanda-emacs30" id="subtitle"]]
[[!template text="""able to hear him?""" start="00:00:14.219" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Give us just a second, folks.""" start="00:00:19.624" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Okay, so I'm not sure what is happening now, folks. We had""" start="00:00:35.683" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Philip talking literally two seconds before we went live.""" start="00:00:37.804" video="qanda-emacs30" id="subtitle"]]
[[!template text="""I'm not sure if it's the curse again, but I'm going to start""" start="00:00:40.766" video="qanda-emacs30" id="subtitle"]]
[[!template text="""getting... It's here too, if it's anything. It's our BBB.""" start="00:00:40.766" video="qanda-emacs30" id="subtitle"]]
[[!template text="""All right, so we're going to be doing a little bit of jazz""" start="00:00:52.372" video="qanda-emacs30" id="subtitle"]]
[[!template text="""handing as usual. Hopefully, Philip will be able to join us""" start="00:00:52.372" video="qanda-emacs30" id="subtitle"]]
[[!template text="""again fairly quickly.""" start="00:00:55.813" video="qanda-emacs30" id="subtitle"]]
[[!template text="""I'll make sure for the jazz handing, Leo, it's the highlight""" start="00:01:05.546" video="qanda-emacs30" id="subtitle"]]
[[!template text="""of my weekend. I'm glad the visible anguish and the stress""" start="00:01:05.546" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that I feel during those moments is at least palatable to""" start="00:01:12.153" video="qanda-emacs30" id="subtitle"]]
[[!template text="""some people watching. That's right. Although I understand""" start="00:01:12.153" video="qanda-emacs30" id="subtitle"]]
[[!template text="""among, you know, it is commonly seen as a poison among my""" start="00:01:21.842" video="qanda-emacs30" id="subtitle"]]
[[!template text="""people, it is considered a delicacy.""" start="00:01:21.842" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Okay, so I see plenty of questions for Philip as well. So""" start="00:01:31.690" video="qanda-emacs30" id="subtitle"]]
[[!template text="""hopefully he is just a restart away from joining us. And""" start="00:01:33.672" video="qanda-emacs30" id="subtitle"]]
[[!template text="""yeah, I feel bad if we don't get this sorted out because I for""" start="00:01:37.595" video="qanda-emacs30" id="subtitle"]]
[[!template text="""one had a lovely chat, kind of in the green room, just doing""" start="00:01:37.595" video="qanda-emacs30" id="subtitle"]]
[[!template text="""our tech shakedown, which went absolutely swimmingly. No""" start="00:01:37.595" video="qanda-emacs30" id="subtitle"]]
[[!template text="""problems until we cut the stream over. Sorry, everyone.""" start="00:01:51.929" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Yeah, and in the meantime, if you feel like getting your""" start="00:01:56.789" video="qanda-emacs30" id="subtitle"]]
[[!template text="""questions ready so that as soon as Philippe joins us, you'll""" start="00:01:56.789" video="qanda-emacs30" id="subtitle"]]
[[!template text="""be able to quickfire through most of your questions. And I""" start="00:01:56.789" video="qanda-emacs30" id="subtitle"]]
[[!template text="""already see plenty of them. Thank you again to all the people""" start="00:02:05.805" video="qanda-emacs30" id="subtitle"]]
[[!template text="""writing down the questions.""" start="00:02:07.047" video="qanda-emacs30" id="subtitle"]]
[[!template text="""And afterwards, well this was the last talk of the day, so""" start="00:02:21.472" video="qanda-emacs30" id="subtitle"]]
[[!template text="""we'll be moving to the close for today. We won't be too long,""" start="00:02:21.472" video="qanda-emacs30" id="subtitle"]]
[[!template text="""just in case you're a European like me and you need to go to""" start="00:02:27.618" video="qanda-emacs30" id="subtitle"]]
[[!template text="""sleep. Don't worry, we'll keep you at most five minutes.""" start="00:02:27.618" video="qanda-emacs30" id="subtitle"]]
[[!template text="""We've just got a couple of quick bases we wanna hit, make sure""" start="00:02:35.017" video="qanda-emacs30" id="subtitle"]]
[[!template text="""everyone's organized to plan their day for tomorrow. Thank""" start="00:02:35.017" video="qanda-emacs30" id="subtitle"]]
[[!template text="""you so much, those of you who are joining us live, as well as""" start="00:02:42.483" video="qanda-emacs30" id="subtitle"]]
[[!template text="""everyone who put so much time and effort before this""" start="00:02:42.483" video="qanda-emacs30" id="subtitle"]]
[[!template text="""weekend, from Leo and my perspective, if you're watching""" start="00:02:42.483" video="qanda-emacs30" id="subtitle"]]
[[!template text="""this recorded. Yeah, thanks everybody for all your work""" start="00:02:42.483" video="qanda-emacs30" id="subtitle"]]
[[!template text="""coming together to create this community project of Emacs""" start="00:02:56.393" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Conf. It's a ton of fun. All right, and Philippe, I believe""" start="00:02:56.393" video="qanda-emacs30" id="subtitle"]]
[[!template text="""you are back. Did you have a very momentous crash on your end?""" start="00:03:05.529" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Yes, I believe it was just in the right moments to...""" start="00:03:09.771" video="qanda-emacs30" id="subtitle"]]
[[!template text="""So what I'll do, I'll give you presenter again so that you...""" start="00:03:09.771" video="qanda-emacs30" id="subtitle"]]
[[!template text="""I mean, do you have your screen set up or do you need to...""" start="00:03:09.771" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Maybe I shouldn't do presenter. I have the feeling that""" start="00:03:09.771" video="qanda-emacs30" id="subtitle"]]
[[!template text="""could have been related to the crash and I'll just...""" start="00:03:24.960" video="qanda-emacs30" id="subtitle"]]
[[!template text="""visually describe anything. Well, the camera looks great.""" start="00:03:31.004" video="qanda-emacs30" id="subtitle"]]
[[!template text="""You sound great. And on the stream, my eyeball says it looks""" start="00:03:33.466" video="qanda-emacs30" id="subtitle"]]
[[!template text="""great with Leo doing the streaming. So I say let's dive right""" start="00:03:34.827" video="qanda-emacs30" id="subtitle"]]
[[!template text="""in. You got a long, huge line. And in order to be a little more""" start="00:03:40.392" video="qanda-emacs30" id="subtitle"]]
[[!template text="""dialectical, I'll be reading the questions. So first""" start="00:03:44.936" video="qanda-emacs30" id="subtitle"]]
[[!template text="""question, which key was a third party package for a long""" start="00:03:48.699" video="qanda-emacs30" id="subtitle"]]
[[!template text="""time? Is there work to bring any other popular packages into""" start="00:03:48.699" video="qanda-emacs30" id="subtitle"]]
[[!template text="""the core of Emacs for Emacs 31 plus, like Magit or Council?""" start="00:03:52.783" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Uh, right. I already answered that one on the, as you can see,""" start="00:04:00.894" video="qanda-emacs30" id="subtitle"]]
[[!template text="""uh, right. Yeah. Do you want to quickly read the answer so""" start="00:04:01.294" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that everyone, I just can read it out again. Um, as far as I""" start="00:04:05.337" video="qanda-emacs30" id="subtitle"]]
[[!template text="""remember, the one package that was being discussed just""" start="00:04:10.141" video="qanda-emacs30" id="subtitle"]]
[[!template text="""around the time that the Emacs 30 branch was cut was macro""" start="00:04:10.141" video="qanda-emacs30" id="subtitle"]]
[[!template text="""step. That's the package that was like, does an overlay, uh,""" start="00:04:10.141" video="qanda-emacs30" id="subtitle"]]
[[!template text="""replaces a macro with the macro expansion using overlays.""" start="00:04:18.327" video="qanda-emacs30" id="subtitle"]]
[[!template text="""So you don't have to pop up another buffer, modified,""" start="00:04:24.952" video="qanda-emacs30" id="subtitle"]]
[[!template text="""modified current buffer. But we didn't manage to address""" start="00:04:24.952" video="qanda-emacs30" id="subtitle"]]
[[!template text="""all the concerns in time for the Emacs 30 cuts and I believe""" start="00:04:29.113" video="qanda-emacs30" id="subtitle"]]
[[!template text="""it's sort of stagnated around that but it might be picked up""" start="00:04:29.113" video="qanda-emacs30" id="subtitle"]]
[[!template text="""anytime someone mentions it on Emacs Devil again. Another""" start="00:04:29.113" video="qanda-emacs30" id="subtitle"]]
[[!template text="""package question mentioned was Magit. That's a constant""" start="00:04:40.679" video="qanda-emacs30" id="subtitle"]]
[[!template text="""discussion regarding Magit. And actually, from the top of""" start="00:04:43.561" video="qanda-emacs30" id="subtitle"]]
[[!template text="""my head, I can't recall if Magit is on non-GNU ELPA or GNU ELPA""" start="00:04:47.004" video="qanda-emacs30" id="subtitle"]]
[[!template text="""right now. It's still on non-GNU ELPA.""" start="00:04:47.004" video="qanda-emacs30" id="subtitle"]]
[[!template text="""For those who don't know, only packages which are in ELPA are""" start="00:04:58.553" video="qanda-emacs30" id="subtitle"]]
[[!template text="""considered for addition, considered to be added to the""" start="00:04:58.553" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs core, to be bundled along with Emacs. And then there's""" start="00:04:58.553" video="qanda-emacs30" id="subtitle"]]
[[!template text="""another totally parallel discussion about having a sort of""" start="00:05:08.971" video="qanda-emacs30" id="subtitle"]]
[[!template text="""fat Emacs distribution, I call it fat Emacs distribution,""" start="00:05:08.971" video="qanda-emacs30" id="subtitle"]]
[[!template text="""where Emacs comes with a lot of ELPA packages or the""" start="00:05:08.971" video="qanda-emacs30" id="subtitle"]]
[[!template text="""pre-installed by default. Part of Emacs itself. Yeah.""" start="00:05:08.971" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Darna, maybe I could jump in with an active listening style,""" start="00:05:28.530" video="qanda-emacs30" id="subtitle"]]
[[!template text="""you know, kind of follow up question almost. You know, I""" start="00:05:28.530" video="qanda-emacs30" id="subtitle"]]
[[!template text="""understand the kind of different repositories. We have""" start="00:05:36.072" video="qanda-emacs30" id="subtitle"]]
[[!template text="""things that aren't maintained by GNU at all, you know, most""" start="00:05:39.933" video="qanda-emacs30" id="subtitle"]]
[[!template text="""notably Melba. And then we have kind of non-GNU ELPA, which""" start="00:05:39.933" video="qanda-emacs30" id="subtitle"]]
[[!template text="""is sort of an entryway project where it's not necessarily""" start="00:05:49.435" video="qanda-emacs30" id="subtitle"]]
[[!template text="""curated, but there'll be some advice given, which you can""" start="00:05:49.435" video="qanda-emacs30" id="subtitle"]]
[[!template text="""take or leave. And that's the repository where anything""" start="00:05:49.435" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that was the newer repository that represents, you know,""" start="00:05:59.078" video="qanda-emacs30" id="subtitle"]]
[[!template text="""help, you know, help, help supplied from GNU. And then""" start="00:05:59.078" video="qanda-emacs30" id="subtitle"]]
[[!template text="""there's the, actually the GNU, the GNU ELPA, what most of us""" start="00:06:09.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""are used to calling just ELPA. And that's what you're""" start="00:06:09.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""talking about there when you say,""" start="00:06:16.282" video="qanda-emacs30" id="subtitle"]]
[[!template text="""I mean all packages on Elpa are officially considered to be""" start="00:06:21.908" video="qanda-emacs30" id="subtitle"]]
[[!template text="""part of Emacs, they're licensed under the same conditions""" start="00:06:21.908" video="qanda-emacs30" id="subtitle"]]
[[!template text="""as Emacs itself, same license, same everything. And""" start="00:06:21.908" video="qanda-emacs30" id="subtitle"]]
[[!template text="""they're more likely to be, to drop, to kind of be dropping""" start="00:06:33.874" video="qanda-emacs30" id="subtitle"]]
[[!template text="""patched. Oh yeah, it's time for this to move to core. Is that""" start="00:06:33.874" video="qanda-emacs30" id="subtitle"]]
[[!template text="""right? They have the legal conditions for that to be done.""" start="00:06:40.378" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Everything's necessary from a paperwork standpoint. I""" start="00:06:46.081" video="qanda-emacs30" id="subtitle"]]
[[!template text="""mean, but other than that, there's not really a big""" start="00:06:50.764" video="qanda-emacs30" id="subtitle"]]
[[!template text="""difference between GNU-ELPA and non-GNU-ELPA. It's""" start="00:06:50.764" video="qanda-emacs30" id="subtitle"]]
[[!template text="""really just the main thing is this copyrights notice. So if""" start="00:06:54.426" video="qanda-emacs30" id="subtitle"]]
[[!template text="""you want to add a package to ELPA, to GNU ELPA, then all""" start="00:06:56.888" video="qanda-emacs30" id="subtitle"]]
[[!template text="""significance contributors have to have signed the FSF""" start="00:06:58.929" video="qanda-emacs30" id="subtitle"]]
[[!template text="""copyright assignment and the package script, actually the""" start="00:06:58.929" video="qanda-emacs30" id="subtitle"]]
[[!template text="""ELPA build script, checks if the copyright lines are all""" start="00:06:58.929" video="qanda-emacs30" id="subtitle"]]
[[!template text="""attributed to the Free Software Foundation.""" start="00:06:58.929" video="qanda-emacs30" id="subtitle"]]
[[!template text="""But that's not going to attach, right? So because that's not""" start="00:07:20.356" video="qanda-emacs30" id="subtitle"]]
[[!template text="""in place, it'd be a lot more work to merge it to core. I didn't""" start="00:07:24.300" video="qanda-emacs30" id="subtitle"]]
[[!template text="""hear the beginning. Nevermind. I think I understood. You""" start="00:07:30.306" video="qanda-emacs30" id="subtitle"]]
[[!template text="""made your point well. Okay. All right, moving on to the""" start="00:07:34.110" video="qanda-emacs30" id="subtitle"]]
[[!template text="""second question. When thinking about using Emacs on""" start="00:07:37.697" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Android, I started realizing all the other software I also""" start="00:07:40.499" video="qanda-emacs30" id="subtitle"]]
[[!template text="""want on it. For example, PDF Tools wants a small additional""" start="00:07:40.499" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs-specific program to be installed on, and NotMuch""" start="00:07:46.582" video="qanda-emacs30" id="subtitle"]]
[[!template text="""obviously wants NotMuch. Any way to get the goodness of""" start="00:07:46.582" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs for Android with this other stuff, using either NixOX""" start="00:07:53.727" video="qanda-emacs30" id="subtitle"]]
[[!template text="""or Gix or NixOnDroid to make an APK with extra stuff? Are you""" start="00:07:53.727" video="qanda-emacs30" id="subtitle"]]
[[!template text="""familiar with this topic? Absolutely not. The extent to""" start="00:08:02.572" video="qanda-emacs30" id="subtitle"]]
[[!template text="""which I have used Emacs on Android was entirely""" start="00:08:06.593" video="qanda-emacs30" id="subtitle"]]
[[!template text="""demonstrated in this video, I think. In my previous video. I""" start="00:08:06.593" video="qanda-emacs30" id="subtitle"]]
[[!template text="""mean, I know it does a few scrolling stuff, but I have no idea""" start="00:08:19.434" video="qanda-emacs30" id="subtitle"]]
[[!template text="""how external stuff, because I mean, Android is, it's a Unix""" start="00:08:19.434" video="qanda-emacs30" id="subtitle"]]
[[!template text="""or it's a Linux based system, but it's really heavily""" start="00:08:19.434" video="qanda-emacs30" id="subtitle"]]
[[!template text="""modified to the preferences of Google, which includes not""" start="00:08:19.434" video="qanda-emacs30" id="subtitle"]]
[[!template text="""being able to have your own software on it. Yeah,""" start="00:08:19.434" video="qanda-emacs30" id="subtitle"]]
[[!template text="""definitely. All right, moving on to the next question. Does""" start="00:08:37.981" video="qanda-emacs30" id="subtitle"]]
[[!template text="""PackageVC... Oh, no, that's fine. I mean, you can't answer""" start="00:08:41.853" video="qanda-emacs30" id="subtitle"]]
[[!template text="""all the questions. I mean, it wouldn't be fun for me""" start="00:08:44.973" video="qanda-emacs30" id="subtitle"]]
[[!template text="""otherwise. Does PackageVC download a tarball from the""" start="00:08:46.554" video="qanda-emacs30" id="subtitle"]]
[[!template text="""specified Git repository or clone the repository itself?""" start="00:08:49.515" video="qanda-emacs30" id="subtitle"]]
[[!template text="""It clones the repository. That's the VC part in the name.""" start="00:08:55.256" video="qanda-emacs30" id="subtitle"]]
[[!template text="""PackageVC uses VC, the ctrl-xv stuff. In Emacs 29, there's a""" start="00:08:59.257" video="qanda-emacs30" id="subtitle"]]
[[!template text="""new command called vcclone, which in Emacs 31, it was""" start="00:09:06.378" video="qanda-emacs30" id="subtitle"]]
[[!template text="""actually exposed as an interactive command. And when you""" start="00:09:06.378" video="qanda-emacs30" id="subtitle"]]
[[!template text="""clone the repository, or when you, you can give it any URL of a""" start="00:09:14.444" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Git repository or a CVS repository or subversion""" start="00:09:14.444" video="qanda-emacs30" id="subtitle"]]
[[!template text="""repository. Interestingly enough, most people only use""" start="00:09:14.444" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Git, but anything that's, that implements this clone""" start="00:09:25.233" video="qanda-emacs30" id="subtitle"]]
[[!template text="""command for vc, and it could download it. So there's no""" start="00:09:25.233" video="qanda-emacs30" id="subtitle"]]
[[!template text="""tarballs involved. Which is also, one should emphasize,""" start="00:09:34.420" video="qanda-emacs30" id="subtitle"]]
[[!template text="""part of the difficulty of EC packages because when you have""" start="00:09:36.468" video="qanda-emacs30" id="subtitle"]]
[[!template text="""version control and you want to upgrade it, it might be that""" start="00:09:36.468" video="qanda-emacs30" id="subtitle"]]
[[!template text="""the upstream did a force push. For that, you make local""" start="00:09:36.468" video="qanda-emacs30" id="subtitle"]]
[[!template text="""changes and then you have to merge them upstream with the""" start="00:09:46.642" video="qanda-emacs30" id="subtitle"]]
[[!template text="""upstream changes when fetching stuff. It's one of the big""" start="00:09:46.642" video="qanda-emacs30" id="subtitle"]]
[[!template text="""downsides of version-controlled stuff, and I'm saying""" start="00:09:54.130" video="qanda-emacs30" id="subtitle"]]
[[!template text="""this as the guy who actually wrote package-vc. There's""" start="00:09:54.130" video="qanda-emacs30" id="subtitle"]]
[[!template text="""times to use it, there's advantages to it, but that's""" start="00:09:59.835" video="qanda-emacs30" id="subtitle"]]
[[!template text="""something you should keep in mind, why tarballs are""" start="00:09:59.835" video="qanda-emacs30" id="subtitle"]]
[[!template text="""interesting to have, in my opinion. Okay. How is the new""" start="00:09:59.835" video="qanda-emacs30" id="subtitle"]]
[[!template text="""behavior of metaqueue in prog mode, progfail, reindent,""" start="00:10:12.252" video="qanda-emacs30" id="subtitle"]]
[[!template text="""defun, or something like that, different from the behavior""" start="00:10:12.252" video="qanda-emacs30" id="subtitle"]]
[[!template text="""of control metaqueue, i.e. indent ppsex in older Emacs""" start="00:10:12.252" video="qanda-emacs30" id="subtitle"]]
[[!template text="""version? My apologies if indent ppsex, it's really tough to""" start="00:10:20.394" video="qanda-emacs30" id="subtitle"]]
[[!template text="""read emmetax commands out loud. It's not bound to control""" start="00:10:23.094" video="qanda-emacs30" id="subtitle"]]
[[!template text="""metaqueue by default, I can't tell. Let me try that command""" start="00:10:27.895" video="qanda-emacs30" id="subtitle"]]
[[!template text="""out because I've never tried it, never used it before.""" start="00:10:32.556" video="qanda-emacs30" id="subtitle"]]
[[!template text="""You know, that isn't bound by default. I bind that up myself""" start="00:10:39.061" video="qanda-emacs30" id="subtitle"]]
[[!template text="""and I have that binding. I think that's, that's not right. It""" start="00:10:41.022" video="qanda-emacs30" id="subtitle"]]
[[!template text="""says so. I mean, I'm currently executing it here in Emacs and""" start="00:10:45.285" video="qanda-emacs30" id="subtitle"]]
[[!template text="""it says you can also run the commands indent pp sx, sx with""" start="00:10:45.906" video="qanda-emacs30" id="subtitle"]]
[[!template text="""metacue, control metacue. Apparently it is. I mean, I""" start="00:10:45.906" video="qanda-emacs30" id="subtitle"]]
[[!template text="""didn't set it myself. I don't know what's up with that. to try""" start="00:10:58.716" video="qanda-emacs30" id="subtitle"]]
[[!template text="""and move it. And then each line started with points or pretty""" start="00:11:05.646" video="qanda-emacs30" id="subtitle"]]
[[!template text="""printed. I mean, the difference, the main difference""" start="00:11:06.406" video="qanda-emacs30" id="subtitle"]]
[[!template text="""between that and the command highlighted, what's the name""" start="00:11:09.308" video="qanda-emacs30" id="subtitle"]]
[[!template text="""again? I forget it all the time. The progmode command.""" start="00:11:09.308" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Progmode fill re-indent is that""" start="00:11:20.134" video="qanda-emacs30" id="subtitle"]]
[[!template text="""it checks if it's in a string or not. If it's in a string or if""" start="00:11:20.134" video="qanda-emacs30" id="subtitle"]]
[[!template text="""it's in a comma, then it will refill. Otherwise, it's going""" start="00:11:28.599" video="qanda-emacs30" id="subtitle"]]
[[!template text="""to re-indent.""" start="00:11:31.381" video="qanda-emacs30" id="subtitle"]]
[[!template text="""That's, I think, as far as I see, that's going to be the main""" start="00:11:35.916" video="qanda-emacs30" id="subtitle"]]
[[!template text="""difference. If we have some long comments somewhere. Let's""" start="00:11:35.916" video="qanda-emacs30" id="subtitle"]]
[[!template text="""try that out. Yeah, that's the difference. I just, you can't""" start="00:11:43.743" video="qanda-emacs30" id="subtitle"]]
[[!template text="""see it, but I did try it. Okay, good. Thank you. You did a""" start="00:11:47.267" video="qanda-emacs30" id="subtitle"]]
[[!template text="""wonderful job describing visually what you're doing. All""" start="00:11:52.372" video="qanda-emacs30" id="subtitle"]]
[[!template text="""right, moving on to the next question, and we have about, we""" start="00:11:57.458" video="qanda-emacs30" id="subtitle"]]
[[!template text="""have just enough time to cover the last three questions,""" start="00:11:57.458" video="qanda-emacs30" id="subtitle"]]
[[!template text="""especially because the next one, I can pretty much surmise""" start="00:11:57.458" video="qanda-emacs30" id="subtitle"]]
[[!template text="""the answer. Any plans for Emacs running on iOS? Probably not""" start="00:11:57.458" video="qanda-emacs30" id="subtitle"]]
[[!template text="""because it's not, I mean, as I emphasized in the video, the""" start="00:12:09.727" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs port in Android is completely free. And to my""" start="00:12:09.727" video="qanda-emacs30" id="subtitle"]]
[[!template text="""knowledge, that's not something that's currently""" start="00:12:16.332" video="qanda-emacs30" id="subtitle"]]
[[!template text="""possible with iOS. You need Xcode or something like that to""" start="00:12:16.332" video="qanda-emacs30" id="subtitle"]]
[[!template text="""build iOS stuff. So that's a big no-no. I mean, maybe Apple's""" start="00:12:20.375" video="qanda-emacs30" id="subtitle"]]
[[!template text="""going to change their mind on that one. Well, I won't be the""" start="00:12:28.870" video="qanda-emacs30" id="subtitle"]]
[[!template text="""one liaising with Apple to make sure that they do, but PR""" start="00:12:32.632" video="qanda-emacs30" id="subtitle"]]
[[!template text="""welcomes, I guess, or motivated folks welcome. Second to""" start="00:12:32.632" video="qanda-emacs30" id="subtitle"]]
[[!template text="""last question. I am worried about the situation on non-free""" start="00:12:41.996" video="qanda-emacs30" id="subtitle"]]
[[!template text="""systems. There was talk about the Windows and the macOS""" start="00:12:43.277" video="qanda-emacs30" id="subtitle"]]
[[!template text="""versions being as good as unmaintained. Where do we go from""" start="00:12:46.058" video="qanda-emacs30" id="subtitle"]]
[[!template text="""here? I gather that most users of Emacs are still on non-free""" start="00:12:49.879" video="qanda-emacs30" id="subtitle"]]
[[!template text="""platforms and will remain to be there. I don't know about the""" start="00:12:51.140" video="qanda-emacs30" id="subtitle"]]
[[!template text="""last point, if that's true, because there's no statistics""" start="00:12:57.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""on that matter. But the main, I mean, someone has to, I know""" start="00:12:57.560" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that Corbyn is involved with the Mac, with the Windows""" start="00:13:03.162" video="qanda-emacs30" id="subtitle"]]
[[!template text="""stuff. Modestly. Sure, I'd love to jump in, but I'm far more""" start="00:13:03.162" video="qanda-emacs30" id="subtitle"]]
[[!template text="""interested in your thoughts than mine. Please, please""" start="00:13:14.067" video="qanda-emacs30" id="subtitle"]]
[[!template text="""continue. Someone has to do the work. Eli uses, as far as I""" start="00:13:18.368" video="qanda-emacs30" id="subtitle"]]
[[!template text="""know, Eli's on the Windows XP system. So as long as he's doing""" start="00:13:25.327" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that, there's going to be Windows support for one form or""" start="00:13:31.552" video="qanda-emacs30" id="subtitle"]]
[[!template text="""another, or at least DOS. All right. And now you put a quarter""" start="00:13:31.552" video="qanda-emacs30" id="subtitle"]]
[[!template text="""in me, so I'll jump right back in. That's perfect for where I""" start="00:13:40.601" video="qanda-emacs30" id="subtitle"]]
[[!template text="""guess I would take the question. To me, it's an""" start="00:13:44.065" video="qanda-emacs30" id="subtitle"]]
[[!template text="""accessibility issue. Think about it this way. Maybe that""" start="00:13:47.428" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Windows XP system is what someone can afford. Likewise,""" start="00:13:50.150" video="qanda-emacs30" id="subtitle"]]
[[!template text="""from a freedom versus I have to do my job and I have to use""" start="00:13:55.896" video="qanda-emacs30" id="subtitle"]]
[[!template text="""certain technology to do my job. Maybe Emacs is what""" start="00:13:55.896" video="qanda-emacs30" id="subtitle"]]
[[!template text="""somebody can afford right? It might be the only free tool""" start="00:14:05.425" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that they use and they don't have a lot of choice about the""" start="00:14:07.306" video="qanda-emacs30" id="subtitle"]]
[[!template text="""operating system that they're in most of the day. In fact,""" start="00:14:07.306" video="qanda-emacs30" id="subtitle"]]
[[!template text="""somebody could be in the situation where their computing""" start="00:14:13.270" video="qanda-emacs30" id="subtitle"]]
[[!template text="""device at work is really their internet access, right? All""" start="00:14:13.270" video="qanda-emacs30" id="subtitle"]]
[[!template text="""of those situations are possible. Therefore, I tend to""" start="00:14:19.134" video="qanda-emacs30" id="subtitle"]]
[[!template text="""assume they all exist and when I ask, you know, how much It""" start="00:14:20.675" video="qanda-emacs30" id="subtitle"]]
[[!template text="""definitely is concerning when we hear about kind of black""" start="00:14:27.379" video="qanda-emacs30" id="subtitle"]]
[[!template text="""holes in the brain trust of something like support for the""" start="00:14:27.379" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Windows port. I feel like I've heard a lot of people""" start="00:14:27.379" video="qanda-emacs30" id="subtitle"]]
[[!template text="""answering that call, but the importance of that is that it""" start="00:14:38.361" video="qanda-emacs30" id="subtitle"]]
[[!template text="""doesn't stop echoing, right? Free software goes as long as""" start="00:14:38.361" video="qanda-emacs30" id="subtitle"]]
[[!template text="""there are people that are irritated enough about something""" start="00:14:45.782" video="qanda-emacs30" id="subtitle"]]
[[!template text="""to sort of come hack on it. Yeah. And the same applies to Mac""" start="00:14:45.782" video="qanda-emacs30" id="subtitle"]]
[[!template text="""OS. But I don't know any concrete details about who's""" start="00:14:53.284" video="qanda-emacs30" id="subtitle"]]
[[!template text="""currently working on it. I can't recollect any details on""" start="00:14:56.462" video="qanda-emacs30" id="subtitle"]]
[[!template text="""who's currently working on what.""" start="00:14:59.864" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Okay. And that leaves us with the last question of the day.""" start="00:15:05.887" video="qanda-emacs30" id="subtitle"]]
[[!template text="""I'm a bit confused about what version of Org that I should""" start="00:15:09.529" video="qanda-emacs30" id="subtitle"]]
[[!template text="""write towards because there's Org in Emacs, the one that""" start="00:15:09.529" video="qanda-emacs30" id="subtitle"]]
[[!template text="""ships built-in. There's the one in ELPA. There's the one in""" start="00:15:09.529" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Org, probably the Org ELPA, I assume. Is there a best""" start="00:15:17.213" video="qanda-emacs30" id="subtitle"]]
[[!template text="""practice on what Org to use when following Emacs latest?""" start="00:15:21.336" video="qanda-emacs30" id="subtitle"]]
[[!template text="""when following us latest. It depends on, I think, my rough""" start="00:15:27.472" video="qanda-emacs30" id="subtitle"]]
[[!template text="""heuristic is if you do use Org a lot and if you follow the""" start="00:15:30.114" video="qanda-emacs30" id="subtitle"]]
[[!template text="""newest features, then use the version on Elpa, because the""" start="00:15:30.114" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Elpa version should be the most up-to-date one. The Org Elpa""" start="00:15:30.114" video="qanda-emacs30" id="subtitle"]]
[[!template text="""was deprecated, to my knowledge. If that seems true, please""" start="00:15:42.423" video="qanda-emacs30" id="subtitle"]]
[[!template text="""someone interrupt me before I make a fool of myself.""" start="00:15:46.906" video="qanda-emacs30" id="subtitle"]]
[[!template text="""No one's done that yet.""" start="00:15:54.511" video="qanda-emacs30" id="subtitle"]]
[[!template text="""I think a couple of years ago there were chats and then we""" start="00:15:58.207" video="qanda-emacs30" id="subtitle"]]
[[!template text="""deprecated the all contrib ELPA, but I think all the ELPA is""" start="00:15:58.207" video="qanda-emacs30" id="subtitle"]]
[[!template text="""still alive. I didn't know that about that. Okay, in that""" start="00:15:58.207" video="qanda-emacs30" id="subtitle"]]
[[!template text="""case, that relativizes how absolute my answer is.""" start="00:16:11.844" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Personally, I just use the version in Emacs, which is""" start="00:16:19.585" video="qanda-emacs30" id="subtitle"]]
[[!template text="""bundled with Emacs, which is regularly updated on master""" start="00:16:19.585" video="qanda-emacs30" id="subtitle"]]
[[!template text="""whenever there's a release. But that might take maybe, it""" start="00:16:19.585" video="qanda-emacs30" id="subtitle"]]
[[!template text="""might be a short time behind the Elpa version, or the other""" start="00:16:29.550" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Elpa, the Org Elpa, which we mentioned. But I'm a very light""" start="00:16:29.550" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Org mode user, so please don't take my word for that one. No,""" start="00:16:42.096" video="qanda-emacs30" id="subtitle"]]
[[!template text="""and I'm happy to come to you. Yeah. I""" start="00:16:49.420" video="qanda-emacs30" id="subtitle"]]
[[!template text="""feel like we lost Leo again. OK. Well, that's all right. I""" start="00:16:52.963" video="qanda-emacs30" id="subtitle"]]
[[!template text="""wanted a bite at that, Apple. I'm a little bit. Yeah, I also""" start="00:17:00.750" video="qanda-emacs30" id="subtitle"]]
[[!template text="""describe myself as a light org user, but somehow your""" start="00:17:03.973" video="qanda-emacs30" id="subtitle"]]
[[!template text="""comment made me think, well, maybe I do use it just a little""" start="00:17:03.973" video="qanda-emacs30" id="subtitle"]]
[[!template text="""bit more than you, Philip.""" start="00:17:03.973" video="qanda-emacs30" id="subtitle"]]
[[!template text="""From my standpoint, I'm using it as a technical basis for""" start="00:17:15.359" video="qanda-emacs30" id="subtitle"]]
[[!template text="""dungeon mode in order to keep the game notes for the games""" start="00:17:15.359" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that are made using this game engine I'm making that I talked""" start="00:17:15.359" video="qanda-emacs30" id="subtitle"]]
[[!template text="""about a few years ago. As soon as you said technical grounds,""" start="00:17:15.359" video="qanda-emacs30" id="subtitle"]]
[[!template text="""you definitely use it more. Right, right. So I've studied""" start="00:17:27.084" video="qanda-emacs30" id="subtitle"]]
[[!template text="""its internals a bit, and I have my own thoughts about this or""" start="00:17:31.946" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that. But of course, I'm rolling with the punches because""" start="00:17:31.946" video="qanda-emacs30" id="subtitle"]]
[[!template text="""I'm just grateful that the bear dances. What an amazing""" start="00:17:36.548" video="qanda-emacs30" id="subtitle"]]
[[!template text="""thing is Orc Mode. But Leo knows far more than me,""" start="00:17:42.851" video="qanda-emacs30" id="subtitle"]]
[[!template text="""conveniently having his stage right here, so he can't""" start="00:17:46.073" video="qanda-emacs30" id="subtitle"]]
[[!template text="""defend himself from this. But I've had thoughts around this""" start="00:17:46.073" video="qanda-emacs30" id="subtitle"]]
[[!template text="""space. Are you back, Leo? Yeah, sorry, I'm back. You save us""" start="00:17:52.219" video="qanda-emacs30" id="subtitle"]]
[[!template text="""all. Maybe closing remarks. I was trying to clear my throat""" start="00:18:01.585" video="qanda-emacs30" id="subtitle"]]
[[!template text="""to be very inconspicuous about me coming back, but""" start="00:18:05.446" video="qanda-emacs30" id="subtitle"]]
[[!template text="""apparently I was ousted. Yeah, I was trying to answer the""" start="00:18:05.446" video="qanda-emacs30" id="subtitle"]]
[[!template text="""question and I was trying to desperately save you from""" start="00:18:11.827" video="qanda-emacs30" id="subtitle"]]
[[!template text="""answering, Philip, because yes, the thing about Org Mode is""" start="00:18:11.827" video="qanda-emacs30" id="subtitle"]]
[[!template text="""that if you are the kind of people who tend to check out master""" start="00:18:11.827" video="qanda-emacs30" id="subtitle"]]
[[!template text="""on Org Mode, generally it's roughly pretty stable. Like""" start="00:18:11.827" video="qanda-emacs30" id="subtitle"]]
[[!template text="""when we were working with Org Element and stuff like this,""" start="00:18:25.090" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Perhaps there were some elements of stability which""" start="00:18:27.970" video="qanda-emacs30" id="subtitle"]]
[[!template text="""weren't there quite yet, but usually now it's pretty""" start="00:18:27.970" video="qanda-emacs30" id="subtitle"]]
[[!template text="""stable. So I think that if you are really excited about""" start="00:18:27.970" video="qanda-emacs30" id="subtitle"]]
[[!template text="""contributing to Org Mode and stuff like this, I think there""" start="00:18:33.054" video="qanda-emacs30" id="subtitle"]]
[[!template text="""isn't all that many risks to just checking out Org Mode""" start="00:18:33.054" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Master, so cloning the repository and just keeping up to""" start="00:18:33.054" video="qanda-emacs30" id="subtitle"]]
[[!template text="""date. Otherwise, ELPA is a fairly safe bet if you want to have""" start="00:18:33.054" video="qanda-emacs30" id="subtitle"]]
[[!template text="""the latest stable version. And we've got a question about""" start="00:18:45.245" video="qanda-emacs30" id="subtitle"]]
[[!template text="""DLM. as with Emacs itself. You can follow whatever is""" start="00:18:51.130" video="qanda-emacs30" id="subtitle"]]
[[!template text="""published in your package archives or in your system""" start="00:18:55.433" video="qanda-emacs30" id="subtitle"]]
[[!template text="""distribution package manager. You can build it yourself if""" start="00:18:55.433" video="qanda-emacs30" id="subtitle"]]
[[!template text="""you want to contribute and fix bugs, add features, and so on.""" start="00:19:04.836" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Yeah, and I don't think perhaps a little more with Emacs,""" start="00:19:11.041" video="qanda-emacs30" id="subtitle"]]
[[!template text="""because the features that tends to get introduced in Emacs""" start="00:19:11.041" video="qanda-emacs30" id="subtitle"]]
[[!template text="""are slightly more wild. Not wild in the sense that they are""" start="00:19:11.041" video="qanda-emacs30" id="subtitle"]]
[[!template text="""less stable, but wild in the sense that they tend to change a""" start="00:19:19.406" video="qanda-emacs30" id="subtitle"]]
[[!template text="""lot more stuff. The core of Org, at least during Bastion's""" start="00:19:19.406" video="qanda-emacs30" id="subtitle"]]
[[!template text="""maintenance ship, was very stable when you think about it.""" start="00:19:24.910" video="qanda-emacs30" id="subtitle"]]
[[!template text="""So things might change with Yor right now in terms of how he""" start="00:19:30.414" video="qanda-emacs30" id="subtitle"]]
[[!template text="""wants to change some of the core behaviors, but it's usually""" start="00:19:30.414" video="qanda-emacs30" id="subtitle"]]
[[!template text="""pretty stable. And whether you use the latest major""" start="00:19:30.414" video="qanda-emacs30" id="subtitle"]]
[[!template text="""version, the latest minor version, things are probably""" start="00:19:37.480" video="qanda-emacs30" id="subtitle"]]
[[!template text="""going to be pretty stable. It's like you heard me while you""" start="00:19:37.480" video="qanda-emacs30" id="subtitle"]]
[[!template text="""were offline. And I do agree with that, in case you might have""" start="00:19:43.985" video="qanda-emacs30" id="subtitle"]]
[[!template text="""heard both our remarks and think we're talking different""" start="00:19:46.427" video="qanda-emacs30" id="subtitle"]]
[[!template text="""angles. Actually, I think we would tend to agree on this, Leo""" start="00:19:46.427" video="qanda-emacs30" id="subtitle"]]
[[!template text="""and I. For the record, when I'm saying, oh, I have to go keep up""" start="00:19:52.553" video="qanda-emacs30" id="subtitle"]]
[[!template text="""with org, that's because org grows behaviors that I've got""" start="00:19:57.237" video="qanda-emacs30" id="subtitle"]]
[[!template text="""my own. I had to figure out at some point my own way to do it, and""" start="00:19:57.237" video="qanda-emacs30" id="subtitle"]]
[[!template text="""now I'm learning how it's done, right? So I'm like, in my""" start="00:20:05.284" video="qanda-emacs30" id="subtitle"]]
[[!template text="""abstraction, blah, right? And those conversations""" start="00:20:09.628" video="qanda-emacs30" id="subtitle"]]
[[!template text="""usually end at, and somebody else took the time to figure out""" start="00:20:13.551" video="qanda-emacs30" id="subtitle"]]
[[!template text="""how to actually make Emacs do that. Go be quiet. And I do, and I""" start="00:20:13.551" video="qanda-emacs30" id="subtitle"]]
[[!template text="""do consider that under Bastian's tenure, it has been quite""" start="00:20:20.197" video="qanda-emacs30" id="subtitle"]]
[[!template text="""stable. We might notice the occasional like, oh, this""" start="00:20:20.197" video="qanda-emacs30" id="subtitle"]]
[[!template text="""highlights now and that didn't, right? But very often, very""" start="00:20:28.068" video="qanda-emacs30" id="subtitle"]]
[[!template text="""infrequently is it breaking my workflow as a user, any of it.""" start="00:20:32.634" video="qanda-emacs30" id="subtitle"]]
[[!template text="""It's interesting to me that this mirrors my experience with""" start="00:20:38.081" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs itself, where I think, in my perception, Emacs master""" start="00:20:38.081" video="qanda-emacs30" id="subtitle"]]
[[!template text="""is very stable and I might notice the slight changes between""" start="00:20:38.081" video="qanda-emacs30" id="subtitle"]]
[[!template text="""git pulls. But otherwise, in my experience, org mode""" start="00:20:38.081" video="qanda-emacs30" id="subtitle"]]
[[!template text="""suddenly changes something. I don't know what changed or""" start="00:20:51.830" video="qanda-emacs30" id="subtitle"]]
[[!template text="""what's going on or uh what caused it and it seemed and i i""" start="00:20:56.433" video="qanda-emacs30" id="subtitle"]]
[[!template text="""perceive it as being a sudden uncontrolled change or""" start="00:21:00.050" video="qanda-emacs30" id="subtitle"]]
[[!template text="""something and i think that's that's apt right that gets""" start="00:21:00.050" video="qanda-emacs30" id="subtitle"]]
[[!template text="""right at it if if we're following if we're pulling for more""" start="00:21:00.050" video="qanda-emacs30" id="subtitle"]]
[[!template text="""pretty regularly crime job every night or pulling a few""" start="00:21:00.050" video="qanda-emacs30" id="subtitle"]]
[[!template text="""times a day or something like that we're going to the""" start="00:21:00.050" video="qanda-emacs30" id="subtitle"]]
[[!template text="""internals yeah, we'll have a different experience than,""" start="00:21:00.050" video="qanda-emacs30" id="subtitle"]]
[[!template text="""you know, if we only remember to update org once every four""" start="00:21:19.930" video="qanda-emacs30" id="subtitle"]]
[[!template text="""months, it really pays to stick with everything. And""" start="00:21:19.930" video="qanda-emacs30" id="subtitle"]]
[[!template text="""suddenly lots of things might change. Whatever broken my""" start="00:21:28.372" video="qanda-emacs30" id="subtitle"]]
[[!template text="""own config, right? And so a lot of, like a lot of things within""" start="00:21:30.933" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs, but also within the free software tool chain, it's""" start="00:21:33.894" video="qanda-emacs30" id="subtitle"]]
[[!template text="""how much you're going to invent in the config, invest in the""" start="00:21:33.894" video="qanda-emacs30" id="subtitle"]]
[[!template text="""config, might limit you know, and maintaining your config""" start="00:21:33.894" video="qanda-emacs30" id="subtitle"]]
[[!template text="""may limit the depth of how far it makes sense for you to go with""" start="00:21:45.817" video="qanda-emacs30" id="subtitle"]]
[[!template text="""the tool at any given point in time. Actually just looked up""" start="00:21:45.817" video="qanda-emacs30" id="subtitle"]]
[[!template text="""my org config and it's four, I said four options, user""" start="00:21:54.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""options. So that's, if that's the measurements of org""" start="00:21:54.440" video="qanda-emacs30" id="subtitle"]]
[[!template text="""expertise, that's my level, it's four.""" start="00:22:00.202" video="qanda-emacs30" id="subtitle"]]
[[!template text="""That's all good then. Four of four, I'm assuming that is,""" start="00:22:08.725" video="qanda-emacs30" id="subtitle"]]
[[!template text="""right? Four of what? What was the metric there, four of like a""" start="00:22:10.065" video="qanda-emacs30" id="subtitle"]]
[[!template text="""thousand? Four out of the number of user options that Word""" start="00:22:15.036" video="qanda-emacs30" id="subtitle"]]
[[!template text="""provides. Oh, okay, I see. Four, yeah, more like 10,000. I'm""" start="00:22:18.357" video="qanda-emacs30" id="subtitle"]]
[[!template text="""there. Yeah. All right. On that note, I suggest we move to""" start="00:22:27.801" video="qanda-emacs30" id="subtitle"]]
[[!template text="""what's close because it's fairly late for me and I need to""" start="00:22:30.722" video="qanda-emacs30" id="subtitle"]]
[[!template text="""sleep. And Philip, I think it's pretty late for you as well,""" start="00:22:30.722" video="qanda-emacs30" id="subtitle"]]
[[!template text="""isn't it? I'm in Germany, so it's about... So it is pretty""" start="00:22:34.824" video="qanda-emacs30" id="subtitle"]]
[[!template text="""late. It's the same time zone as me. It's 11 p.m. for you.""" start="00:22:38.005" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Truly, yeah. Yeah, so I suggest we both take the chance to go""" start="00:22:44.452" video="qanda-emacs30" id="subtitle"]]
[[!template text="""to bed as soon as we can. But Philippe, thank you so much for""" start="00:22:46.175" video="qanda-emacs30" id="subtitle"]]
[[!template text="""both the presentation and also the answers that you""" start="00:22:51.837" video="qanda-emacs30" id="subtitle"]]
[[!template text="""provided to us and the nice little chat we had at the end. We""" start="00:22:51.837" video="qanda-emacs30" id="subtitle"]]
[[!template text="""look forward to seeing you again next year, perhaps for""" start="00:23:00.221" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Emacs 31. I'm not sure. I was chatting with Wassim Massa""" start="00:23:00.221" video="qanda-emacs30" id="subtitle"]]
[[!template text="""trying to make prognostics about when Emacs 30 is going to be""" start="00:23:05.203" video="qanda-emacs30" id="subtitle"]]
[[!template text="""released. There's a pre-release coming soon. I should have""" start="00:23:05.203" video="qanda-emacs30" id="subtitle"]]
[[!template text="""mentioned that earlier. Well, there you go. Gone.""" start="00:23:13.986" video="qanda-emacs30" id="subtitle"]]
[[!template text="""All right. Well, thank you so much, Philip. We'll be moving""" start="00:23:22.938" video="qanda-emacs30" id="subtitle"]]
[[!template text="""towards close. Give us about two minutes to get set up in the""" start="00:23:24.779" video="qanda-emacs30" id="subtitle"]]
[[!template text="""other room. And Philip, we'll see you next time. Goodbye.""" start="00:23:25.920" video="qanda-emacs30" id="subtitle"]]
[[!template text="""Bye-bye. Thank you.""" start="00:23:32.603" video="qanda-emacs30" 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%20emacs30%3A%20Emacs%2030%20Highlights)


<!-- End of emacsconf-publish-after-page -->