From e8e25c3c457b30b34bbae4c93ebd08ae48d1d710 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Mon, 29 Nov 2021 09:45:57 -0500 Subject: Update --- ...framework-a-2021-update--matthew-zeng--main.vtt | 622 +++++++++++++++++++++ 1 file changed, 622 insertions(+) create mode 100644 2021/captions/emacsconf-2021-eaf--emacs-application-framework-a-2021-update--matthew-zeng--main.vtt (limited to '2021/captions/emacsconf-2021-eaf--emacs-application-framework-a-2021-update--matthew-zeng--main.vtt') diff --git a/2021/captions/emacsconf-2021-eaf--emacs-application-framework-a-2021-update--matthew-zeng--main.vtt b/2021/captions/emacsconf-2021-eaf--emacs-application-framework-a-2021-update--matthew-zeng--main.vtt new file mode 100644 index 00000000..77133079 --- /dev/null +++ b/2021/captions/emacsconf-2021-eaf--emacs-application-framework-a-2021-update--matthew-zeng--main.vtt @@ -0,0 +1,622 @@ +WEBVTT + +00:03.040 -->00:00:05.206 +Hi, my name is Matthew Zeng, + +00:00:05.206 --> 00:00:07.526 +aka MT or Mingde. + +00:00:07.526 --> 00:00:10.766 +Welcome to EmacsConf2021. + +00:00:10.766 --> 00:00:12.846 +I hope everyone is enjoying + +00:00:12.846 --> 00:00:14.286 +the conference so far. + +00:00:14.286 --> 00:00:16.766 +I am one of the maintainers + +00:00:16.766 --> 00:00:18.566 +of the Emacs Application Framework. + +00:00:18.566 --> 00:00:22.606 +I was also here last year during EmacsConf2020 + +00:00:22.606 --> 00:00:24.366 +and did a 20 minute presentation + +00:00:24.366 --> 00:00:26.606 +on the overall architecture of EAF + +00:00:26.606 --> 00:00:28.486 +as well as a small demo. + +00:00:28.486 --> 00:00:31.966 +A lot of things had changed since 2020, + +00:00:31.966 --> 00:00:34.406 +and that's why today I'm here to present: + +00:00:34.406 --> 00:00:38.045 +Emacs Application Framework, A 2021 Update. + +00:00:38.046 --> 00:00:41.086 +So we all know Emacs, + +00:00:41.086 --> 00:00:42.326 +and we definitely know that + +00:00:42.326 --> 00:00:44.486 +Emacs is not just a text editor, + +00:00:44.486 --> 00:00:46.926 +but a text-centric work environment, + +00:00:46.926 --> 00:00:48.606 +and it lacks *efficient* + +00:00:48.606 --> 00:00:50.686 +multimedia rendering capabilities + +00:00:50.686 --> 00:00:53.126 +such as website, PDF, and video rendering. + +00:00:53.126 --> 00:00:55.361 +We all want that, right? + +00:00:55.361 --> 00:00:58.366 +Therefore the EAF project wants to + +00:00:58.366 --> 00:01:00.286 +solve this problem while also + +00:01:00.286 --> 00:01:02.806 +retaining the rich Emacs ecosystem + +00:01:02.806 --> 00:01:06.046 +and its customizability and extensibility. + +00:01:06.046 --> 00:01:10.726 +The solution is to outsource the hard part + +00:01:10.726 --> 00:01:12.486 +to Python and NodeJS + +00:01:12.486 --> 00:01:14.366 +by bridging Elisp with them + +00:01:14.366 --> 00:01:16.126 +so that Python and JavaScript + +00:01:16.126 --> 00:01:17.926 +can do the hard work + +00:01:17.926 --> 00:01:20.126 +and minimize the Elisp workload, + +00:01:20.126 --> 00:01:21.926 +which ultimately speeds up + +00:01:21.926 --> 00:01:24.446 +our end-user experience using Emacs. + +00:01:24.446 --> 00:01:27.646 +Do note that Python and JavaScript + +00:01:27.646 --> 00:01:30.406 +already have a very mature ecosystem + +00:01:30.406 --> 00:01:32.206 +that provides a foundation + +00:01:32.206 --> 00:01:34.366 +to modern multimedia applications, + +00:01:34.366 --> 00:01:38.006 +so basically, EAF enables Emacs to extend + +00:01:38.006 --> 00:01:40.406 +to Python and JavaScript ecosystems, + +00:01:40.406 --> 00:01:42.286 +therefore extending to + +00:01:42.286 --> 00:01:44.366 +modern multimedia apps too. + +00:01:44.366 --> 00:01:47.606 +As we're on a tight schedule today, + +00:01:47.606 --> 00:01:49.726 +I can't go into every detail + +00:01:49.726 --> 00:01:51.486 +about how EAF achieves this. + +00:01:51.486 --> 00:01:53.606 +I did go through a lot of things + +00:01:53.606 --> 00:01:54.886 +during last year's presentation, + +00:01:54.886 --> 00:01:57.326 +so I highly recommend anyone interested + +00:01:57.326 --> 00:01:59.206 +to check out that presentation, + +00:01:59.206 --> 00:02:01.686 +and the project repository itself. + +00:02:01.686 --> 00:02:05.725 +Today we're focusing on *what changed*. + +00:02:05.726 --> 00:02:09.606 +Now the first change + +00:02:09.606 --> 00:02:10.926 +that you'll definitely notice + +00:02:10.926 --> 00:02:12.686 +is that we have a new logo! + +00:02:12.686 --> 00:02:15.926 +This logo uses gearwheels + +00:02:15.926 --> 00:02:18.486 +to symbolize how EAF extends Emacs + +00:02:18.486 --> 00:02:20.886 +to web and multimedia applications + +00:02:20.886 --> 00:02:23.286 +that bring new possibilities to Emacs. + +00:02:23.286 --> 00:02:28.726 +Since last year, EAF has replaced + +00:02:28.726 --> 00:02:30.886 +the DBus communication technology + +00:02:30.886 --> 00:02:33.446 +with the cross-platform EPC, + +00:02:33.446 --> 00:02:35.286 +the Emacs RPC stack, + +00:02:35.286 --> 00:02:37.526 +which has an Elisp implementation + +00:02:37.526 --> 00:02:39.246 +and a Python implementation, + +00:02:39.246 --> 00:02:41.006 +exactly what we need. + +02:42.160 --> 00:02:43.760 +This and some other changes + +00:02:43.760 --> 00:02:46.080 +enable EAF to support Windows, + +00:02:46.080 --> 00:02:49.519 +Windows 10 and Windows Subsystem for Linux, + +00:02:49.519 --> 00:02:51.840 +as well as all distros that support + +00:02:51.840 --> 00:02:54.319 +pacman, apt, dnf, pkg, + +00:02:54.319 --> 00:02:56.959 +zypper package installer commands, + +02:56.959 --> 00:02:59.840 +which includes Arch-based, Debian, + +00:02:59.840 --> 00:03:04.720 +or Ubuntu-based, Fedora, etc. + +03:04.720 --> 00:03:08.239 +However, do note that the maOS support + +03:08.239 --> 00:03:10.319 +works with some known issues. + +00:03:10.319 --> 00:03:15.359 +Have a look if you want to try out. + +03:15.360 --> 00:03:18.400 +Previously, EAF was able to make Elisp + +03:18.400 --> 00:03:20.720 +communicate with Python, as well as + +00:03:20.720 --> 00:03:23.280 +Python to communicate with JavaScript, + +03:23.280 --> 00:03:24.959 +meaning that Elisp can call + +00:03:24.959 --> 00:03:27.280 +Python functions and vice versa, + +00:03:27.280 --> 00:03:29.680 +and Python can call JavaScript functions + +00:03:29.680 --> 00:03:32.560 +and vice versa, but if you want Elisp + +00:03:32.560 --> 00:03:34.720 +to communicate with JavaScript, + +00:03:34.720 --> 00:03:36.239 +you have to go through Python, + +00:03:36.239 --> 00:03:38.879 +which is rather troublesome. + +03:38.879 --> 00:03:41.120 +Now, thanks to the EPC, + +00:03:41.120 --> 00:03:42.400 +Elisp can communicate + +00:03:42.400 --> 00:03:43.840 +with JavaScript directly + +03:43.840 --> 00:03:45.519 +using =eval_js= function + +00:03:45.519 --> 00:03:47.040 +and =eval_emacs_function= + +00:03:47.040 --> 00:03:49.840 +in Elisp and Python respectively. + +03:49.840 --> 00:03:51.840 +This greatly simplifies the code + +00:03:51.840 --> 00:03:52.640 +that will be needed + +00:03:52.640 --> 00:03:56.958 +to write a web app in EAF. + +03:56.959 --> 00:03:59.120 +Speaking of web applications, + +00:03:59.120 --> 00:04:01.200 +VueJS is a web framework + +00:04:01.200 --> 00:04:03.840 +that's been gaining a lot of popularity + +00:04:03.840 --> 00:04:04.720 +in recent years + +00:04:04.720 --> 00:04:08.959 +for its simplicity and functionality. + +04:08.959 --> 00:04:11.840 +In the past, you were only able to write + +04:11.840 --> 00:04:14.319 +simple JavaScript and HTML web apps + +00:04:14.319 --> 00:04:17.280 +for EAF. It was quite some work + +04:17.280 --> 00:04:20.880 +to create a full-featured web application. + +04:20.880 --> 00:04:23.360 +Now you can write new apps using EAF + +04:23.360 --> 00:04:27.919 +that work seamlessly with Emacs and Elisp. + +00:04:27.919 --> 00:04:30.880 +There are a few existing EAF apps + +04:30.880 --> 00:04:32.800 +written with Vue already + +04:32.800 --> 00:04:34.639 +to demonstrate the possibilities + +00:04:34.639 --> 00:04:38.720 +of Vue-based extensions in Emacs. + +04:38.720 --> 00:04:41.520 +The first one is the EAF File Manager, + +04:41.520 --> 00:04:44.160 +written by ManateeLazycat himself, + +00:04:44.160 --> 00:04:46.400 +as an alternative option to dired, + +00:04:46.400 --> 00:04:47.919 +as he found dired's performance + +00:04:47.919 --> 00:04:49.280 +to lag considerably + +04:49.280 --> 00:04:52.240 +when there are way too many files. + +04:52.240 --> 00:04:56.080 +It supports wdired and fd functionality, + +00:04:56.080 --> 00:05:01.600 +and let me demonstrate that to you. + +05:01.600 --> 00:05:06.160 +See? And this is the app. + +05:06.160 --> 00:05:08.639 +Go back here. + +05:08.639 --> 00:05:12.240 +Another one is the EAF RSS Reader, + +05:12.240 --> 00:05:15.039 +written by our Summer of Code 2021 student + +00:05:15.039 --> 00:05:18.240 +ShaoChenHeng. It is a fast RSS reader + +00:05:18.240 --> 00:05:21.600 +that uses the EAF browser for previews, + +05:21.600 --> 00:05:32.479 +and let me demo that to you as well. + +05:32.479 --> 00:05:35.039 +Pragmatic Emacs. + +05:35.039 --> 00:05:37.199 +And you can view every site + +00:05:37.199 --> 00:05:45.359 +in the EAF Browser. + +05:45.360 --> 00:05:46.880 +To ease the process + +00:05:46.880 --> 00:05:49.840 +of creating a new EAF application, + +00:05:49.840 --> 00:05:52.880 +we've separated the EAF core and its apps, + +00:05:52.880 --> 00:05:54.479 +so that EAF apps now have + +00:05:54.479 --> 00:05:56.800 +their individual repositories. + +00:05:56.800 --> 00:05:58.000 +You can find them under + +00:05:58.000 --> 00:06:02.000 +the emacs-eaf GitHub organization. + +06:02.000 --> 00:06:04.560 +Because of the number of EAF apps + +00:06:04.560 --> 00:06:05.840 +and their dependencies + +00:06:05.840 --> 00:06:08.319 +that vary from system to system, + +06:08.319 --> 00:06:10.080 +we've also introduced a new + +00:06:10.080 --> 00:06:12.639 +=M-x eaf-install-and-update= command + +00:06:12.639 --> 00:06:14.560 +which is a wrapper around the new + +00:06:14.560 --> 00:06:17.039 +install-eaf python script + +00:06:17.039 --> 00:06:19.280 +dedicated to installing, updating, + +00:06:19.280 --> 00:06:20.720 +and maintaining EAF apps + +00:06:20.720 --> 00:06:21.680 +and their dependencies + +00:06:21.680 --> 00:06:24.160 +for the end user. + +06:24.160 --> 00:06:25.600 +Now it is very easy + +00:06:25.600 --> 00:06:27.440 +to create a new EAF app. + +00:06:27.440 --> 00:06:29.039 +You just need to do it. + +00:06:29.039 --> 00:06:31.120 +You can just do it in your own repository, + +00:06:31.120 --> 00:06:34.720 +such as in GitHub, GitLab, or wherever. + +06:34.720 --> 00:06:36.160 +The first thing to do is + +00:06:36.160 --> 00:06:39.520 +to fork the eaf-demo or the eaf-vue-demo + +00:06:39.520 --> 00:06:41.280 +as a starting template, + +00:06:41.280 --> 00:06:43.520 +then update the dependencies.json file + +00:06:43.520 --> 00:06:46.400 +to list the new dependencies you introduced + +06:46.400 --> 00:06:48.560 +on various systems. + +06:48.560 --> 00:06:51.199 +Afterwards, once your app is finished, + +00:06:51.199 --> 00:06:53.039 +you simply need to submit a PR + +00:06:53.039 --> 00:06:54.000 +to the EAF core + +06:54.000 --> 00:06:56.720 +that modifies the applications.json list + +06:56.720 --> 00:07:03.039 +to include your new app. And that's it. + +07:03.039 --> 00:07:04.720 +Come try it out and write your own + +00:07:04.720 --> 00:07:09.598 +EAF extensions today! + +07:09.599 --> 00:07:11.840 +There are many other new updates. + +00:07:11.840 --> 00:07:13.919 +To list a few: we reached + +00:07:13.919 --> 00:07:17.199 +more than 60 contributors, hooray! + +07:17.199 --> 00:07:19.759 +And also, you can now use the familiar + +07:19.759 --> 00:07:22.160 +Control s and Control r isearch + +00:07:22.160 --> 00:07:23.280 +for real-time search, + +00:07:23.280 --> 00:07:24.560 +functioning very similar + +00:07:24.560 --> 00:07:27.039 +to the Emacs isearch, + +07:27.039 --> 00:07:29.759 +in the EAF Browser, PDF Viewer, + +00:07:29.759 --> 00:07:32.080 +and many other applications. + +07:32.080 --> 00:07:34.000 +Additionally, you can also create + +00:07:34.000 --> 00:07:35.680 +EAF PDF annotations + +00:07:35.680 --> 00:07:44.318 +either inline or as a pop-up, etc. etc. etc. + +07:44.319 --> 00:07:47.680 +Finally, let's talk about Popweb. + +07:47.680 --> 00:07:50.080 +Popweb is a very, very new project + +00:07:50.080 --> 00:07:52.639 +that started like exactly two weeks ago, + +00:07:52.639 --> 00:07:55.199 +that focuses particularly on the + +00:07:55.199 --> 00:07:55.919 +multimedia pop-up functionality in Emacs. + +00:07:55.919 --> 00:08:02.080 +Pop is considered to be a sister project + +00:08:02.080 --> 00:08:04.879 +and lightweight version of EAF. + +08:04.879 --> 00:08:07.039 +They both share a very similar design + +08:07.039 --> 00:08:09.039 +and some code, and they are maintained + +00:08:09.039 --> 00:08:10.080 +by the same people, + +00:08:10.080 --> 00:08:13.680 +which is me and ManateeLazycat. + +08:13.680 --> 00:08:15.599 +Here's a quick demo to see the + +08:15.599 --> 00:08:23.840 +responsiveness of its preview. + +08:23.840 --> 00:08:27.919 +Here we go. On the right, see... + +00:08:27.919 --> 00:08:30.720 +Oh, here we go. Yes. + +08:30.720 --> 00:08:32.560 +And these are the LaTeX preview. + +00:08:32.560 --> 00:08:44.800 +I can quickly show the next one. + +08:44.800 --> 00:08:48.160 +So this is the end of my presentation. + +08:48.160 --> 00:08:50.000 +Feel free to post questions + +00:08:50.000 --> 00:08:52.160 +on the collaborative pad, IRC, + +00:08:52.160 --> 00:08:53.519 +or directly send me an email. + +00:08:53.519 --> 00:08:55.680 +I'll be around all this, + +00:08:55.680 --> 00:08:57.839 +at all these places, + +08:57.839 --> 00:08:59.519 +and if you found any issue, + +00:08:59.519 --> 00:09:01.200 +please submit an issue + +00:09:01.200 --> 00:09:04.160 +to the EAF official issues, + +00:09:04.160 --> 00:09:08.880 +and don't forget to check out the wiki. + +09:08.880 --> 00:09:10.160 +Thank you and enjoy + +00:09:10.160 --> 00:09:13.680 +the rest of EmacsConf 2021. + +00:09:13.680 --> 00:09:14.680 +[captions by sachac] -- cgit v1.2.3