summaryrefslogtreecommitdiffstats
path: root/2021/captions/emacsconf-2021-eaf--emacs-application-framework-a-2021-update--matthew-zeng--main.vtt
diff options
context:
space:
mode:
Diffstat (limited to '2021/captions/emacsconf-2021-eaf--emacs-application-framework-a-2021-update--matthew-zeng--main.vtt')
-rw-r--r--2021/captions/emacsconf-2021-eaf--emacs-application-framework-a-2021-update--matthew-zeng--main.vtt622
1 files changed, 622 insertions, 0 deletions
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]