diff options
author | Sacha Chua <sacha@sachachua.com> | 2021-11-28 10:50:39 -0500 |
---|---|---|
committer | Sacha Chua <sacha@sachachua.com> | 2021-11-28 10:50:39 -0500 |
commit | 32caa9a7440d7f81f074a7ef9f2825dc9244cede (patch) | |
tree | c6913ab44ec3bb3282567a0fe09bcbc1ab86a184 /2021 | |
parent | 7dc0b763d1c966cdbc77183c790d58e0d6f9443d (diff) | |
download | emacsconf-wiki-32caa9a7440d7f81f074a7ef9f2825dc9244cede.tar.xz emacsconf-wiki-32caa9a7440d7f81f074a7ef9f2825dc9244cede.zip |
Update
Diffstat (limited to '')
-rw-r--r-- | 2021/captions/emacsconf-2021-model--extending-the-model-of-emacs-to-other-applications--laszlo-krajnikovszkij--main.vtt | 676 |
1 files changed, 676 insertions, 0 deletions
diff --git a/2021/captions/emacsconf-2021-model--extending-the-model-of-emacs-to-other-applications--laszlo-krajnikovszkij--main.vtt b/2021/captions/emacsconf-2021-model--extending-the-model-of-emacs-to-other-applications--laszlo-krajnikovszkij--main.vtt new file mode 100644 index 00000000..3985f09a --- /dev/null +++ b/2021/captions/emacsconf-2021-model--extending-the-model-of-emacs-to-other-applications--laszlo-krajnikovszkij--main.vtt @@ -0,0 +1,676 @@ +WEBVTT + +00:06.399 --> 00:07.670 +Hello, everyone. My name is + +00:07.670 --> 00:08.800 +Laszlo Krajnikovszkij, + +00:08.800 --> 00:10.559 +and today I would like to share + +00:10.559 --> 00:12.000 +some ideas about extending + +00:12.000 --> 00:15.200 +the model of Emacs to other applications. + +00:15.200 --> 00:16.720 +Brief introduction of myself: + +00:16.720 --> 00:18.400 +I am from Budapest, Hungary; + +00:18.400 --> 00:20.320 +and I have a background + +00:20.320 --> 00:21.760 +in Financial Economics, + +00:21.760 --> 00:24.480 +but by occupation I run + +00:24.480 --> 00:26.320 +a software development company + +00:26.320 --> 00:29.119 +where I mostly do product management. + +00:29.119 --> 00:34.399 +I try to do most of my work from Emacs. + +00:34.399 --> 00:36.160 +I've been using it for the past + +00:36.160 --> 00:37.200 +two or three years + +00:37.200 --> 00:39.120 +as a computer science hobby + +00:39.120 --> 00:41.280 +and this fascinating piece of software + +00:41.280 --> 00:44.239 +taught me a lot of different concepts + +00:44.239 --> 00:46.000 +about software architecture + +00:46.000 --> 00:48.800 +and programming languages, + +00:48.800 --> 00:51.440 +and also raised a lot of + +00:51.440 --> 00:52.719 +philosophical questions + +00:52.719 --> 00:55.760 +about human-computer interaction. + +00:55.760 --> 00:57.039 +I've been mostly using it + +00:57.039 --> 00:59.680 +for organizing my personal information, + +00:59.680 --> 01:03.600 +writing notes and tracking my agenda, + +01:03.600 --> 01:05.519 +but occasionally, I've also used it + +01:05.519 --> 01:07.119 +for reading and writing code + +01:07.119 --> 01:09.360 +and for also reading news, email, + +01:09.360 --> 01:12.479 +and browsing the web. + +01:12.479 --> 01:16.400 +What do I mean by the 'model' of Emacs? + +01:16.400 --> 01:18.479 +For me, the 'model' of Emacs is about + +01:18.479 --> 01:21.920 +the interaction model. + +01:21.920 --> 01:24.880 +And it's not... Emacs is just a tool + +01:24.880 --> 01:26.560 +for interacting with the computer. + +01:26.560 --> 01:28.640 +It's sort of a universal interface + +01:28.640 --> 01:31.119 +that allows for consistency + +01:31.119 --> 01:33.280 +across different apps, + +01:33.280 --> 01:36.240 +because everything is brought down to + +01:36.240 --> 01:39.200 +an Emacs buffer, which is a + +01:39.200 --> 01:42.399 +text-oriented interface, + +01:42.399 --> 01:44.005 +but that can have consistent + +01:44.005 --> 01:44.880 +keybinding scheme, + +01:44.880 --> 01:46.960 +they have consistent color scheme, + +01:46.960 --> 01:50.640 +and consistent workflow in general. + +01:50.640 --> 01:53.200 +Also, Emacs has a lot of functionality + +01:53.200 --> 01:55.920 +and utilizes mnemonic key bindings + +01:55.920 --> 01:57.680 +for calling functions, + +01:57.680 --> 01:59.920 +which is much more powerful than + +01:59.920 --> 02:02.000 +navigating contextual menus + +02:02.000 --> 02:03.840 +with a pointer, + +02:03.840 --> 02:07.119 +because the functions that are + +02:07.119 --> 02:08.239 +repeated the most + +02:08.239 --> 02:10.640 +are then ingrained in the muscle memory, + +02:10.640 --> 02:12.879 +therefore reducing the lag + +02:12.879 --> 02:15.680 +between the thought that is occurring + +02:15.680 --> 02:17.520 +in your mind, and its reflection + +02:17.520 --> 02:21.280 +on your computer screen. + +02:21.280 --> 02:23.040 +And also, Emacs provides + +02:23.040 --> 02:25.360 +a huge number of packages + +02:25.360 --> 02:28.560 +that can all be inspected and modified, + +02:28.560 --> 02:30.640 +and extended, and recombined, + +02:30.640 --> 02:35.599 +and just provides the best-possible + +02:35.599 --> 02:37.840 +malleable system experience + +02:37.840 --> 02:42.080 +that can potentially lead to + +02:42.080 --> 02:44.080 +almost any desired setup + +02:44.080 --> 02:47.599 +for the end-user. + +02:47.599 --> 02:49.440 +So, Emacs is great, + +02:49.440 --> 02:52.239 +but I need to use a lot of + +02:52.239 --> 02:53.280 +different other tools + +02:53.280 --> 02:55.200 +to collaborate with my coworkers, + +02:55.200 --> 02:57.519 +with my clients and vendors. + +02:57.519 --> 03:00.080 +On a normal day, I would need to be + +03:00.080 --> 03:02.640 +switching between five to six + +03:02.640 --> 03:04.319 +different web applications + +03:04.319 --> 03:07.840 +and chat applications. + +03:07.840 --> 03:11.840 +They all have the same flaws. + +03:11.840 --> 03:14.879 +They all lack customizability, + +03:14.879 --> 03:16.560 +because it was never intended + +03:16.560 --> 03:19.280 +by the original developers of the app + +03:19.280 --> 03:21.120 +that the end user can tinker + +03:21.120 --> 03:24.239 +with the product they're creating. + +03:24.239 --> 03:29.120 +But also, those apps are cloud-based, + +03:29.120 --> 03:33.599 +and usually not very good for privacy, + +03:33.599 --> 03:36.480 +and this also creates limitations + +03:36.480 --> 03:40.080 +for offline-based workflows, + +03:40.080 --> 03:43.599 +or for in general not relying on + +03:43.599 --> 03:44.560 +the internet connection + +03:44.560 --> 03:46.959 +to use something. + +03:46.959 --> 03:49.440 +All these applications, + +03:49.440 --> 03:50.720 +they create a situation + +03:50.720 --> 03:53.040 +when there's a lot of context-switching + +03:53.040 --> 03:55.360 +between different apps, + +03:55.360 --> 03:56.959 +and this context-switching + +03:56.959 --> 03:59.920 +comes from different color schemes, + +03:59.920 --> 04:03.280 +different workflows in general + +04:03.280 --> 04:04.879 +for different apps. + +04:04.879 --> 04:06.400 +So, there is always + +04:06.400 --> 04:10.400 +this little frame of time + +04:10.400 --> 04:13.599 +where you need to orient yourself + +04:13.599 --> 04:15.280 +in this other application. + +04:15.280 --> 04:17.280 +Of course, over time, + +04:17.280 --> 04:18.799 +it gets more automated, + +04:18.799 --> 04:20.560 +but still, this context switching + +04:20.560 --> 04:26.720 +is very bad for productivity. + +04:26.720 --> 04:30.080 +These apps don't support very well + +04:30.080 --> 04:31.759 +the keyboard-driven workflows, + +04:31.759 --> 04:33.520 +because the default set of keybindings + +04:33.520 --> 04:34.479 +is always limited, + +04:34.479 --> 04:39.280 +and you always need to resort to + +04:39.280 --> 04:44.160 +mouse-driven workflows. + +04:44.160 --> 04:46.400 +But Emacs has some issues + +04:46.400 --> 04:48.320 +as a tool for work as well. + +04:48.320 --> 04:50.800 +First of all, it lacks integration + +04:50.800 --> 04:51.759 +with all these tools, + +04:51.759 --> 04:54.560 +so I constantly need to be switching + +04:54.560 --> 04:57.759 +between Emacs and these applications, + +04:57.759 --> 04:59.919 +or basically, my web browser. + +04:59.919 --> 05:03.039 +Emacs is very good for text input + +05:03.039 --> 05:04.720 +and for editing text, + +05:04.720 --> 05:07.039 +but it's not always perfect + +05:07.039 --> 05:09.440 +for reading information + +05:09.440 --> 05:11.199 +from an Emacs buffer, + +05:11.199 --> 05:12.080 +because it doesn't + +05:12.080 --> 05:16.560 +render images and HTML properly. + +05:16.560 --> 05:18.800 +Also, Emacs lacks performance + +05:18.800 --> 05:19.919 +under heavy load, + +05:19.919 --> 05:21.840 +so when you try to run + +05:21.840 --> 05:23.280 +too many things in parallel, + +05:23.280 --> 05:26.560 +the single-threaded nature of Emacs + +05:26.560 --> 05:28.880 +just makes it hang. + +05:28.880 --> 05:30.960 +For this reason, + +05:30.960 --> 05:32.560 +I wouldn't rely on Emacs + +05:32.560 --> 05:38.320 +to take care of all my system processes. + +05:38.320 --> 05:40.400 +And of course, it has some + +05:40.400 --> 05:42.240 +legacy UI limitations + +05:42.240 --> 05:46.400 +being a software that was written + +05:46.400 --> 05:49.039 +40 years ago. + +05:49.039 --> 05:53.759 +This results in a very limited usability + +05:53.759 --> 05:59.680 +on mobile and other touch devices. + +05:59.680 --> 06:01.759 +I've been thinking + +06:01.759 --> 06:03.840 +about a hybrid approach + +06:03.840 --> 06:05.840 +that you could still use Emacs + +06:05.840 --> 06:10.080 +as a core of your life, + +06:10.080 --> 06:11.840 +and then extend it + +06:11.840 --> 06:15.120 +with adjacent web applications + +06:15.120 --> 06:16.960 +where Emacs can be used + +06:16.960 --> 06:21.600 +as a text processing backend + +06:21.600 --> 06:24.080 +and use Org mode files + +06:24.080 --> 06:25.600 +as a universal format + +06:25.600 --> 06:29.600 +for converting textual data, + +06:29.600 --> 06:33.199 +and then If emacs can be + +06:33.199 --> 06:36.639 +connected with those applications + +06:36.639 --> 06:37.520 +that I mentioned + +06:37.520 --> 06:39.520 +a couple of slides before + +06:39.520 --> 06:41.280 +through their API, and you can have + +06:41.280 --> 06:43.199 +a two-way communication between them, + +06:43.199 --> 06:46.000 +and just export in JSON, let's say, + +06:46.000 --> 06:47.440 +and then convert to Org mode, + +06:47.440 --> 06:49.039 +and then use the Org mode + +06:49.039 --> 06:52.960 +for these local web apps. + +06:52.960 --> 06:57.599 +Then you can use Emacs for editing, + +06:57.599 --> 07:00.800 +and Org mode, but then you can use + +07:00.800 --> 07:03.360 +this adjacent web application + +07:03.360 --> 07:05.039 +for viewing information, + +07:05.039 --> 07:08.720 +making small edits, and in general, + +07:08.720 --> 07:11.692 +possibly have an enhanced + +07:11.692 --> 07:14.639 +user-defined UI that is + +07:14.639 --> 07:17.039 +directly connected to Emacs. + +07:17.039 --> 07:19.759 +Emacs Application Framework + +07:19.759 --> 07:21.520 +is a project that tries to achieve + +07:21.520 --> 07:23.840 +a common goal, but it tries to + +07:23.840 --> 07:24.639 +achieve that through + +07:24.639 --> 07:25.520 +displaying everything + +07:25.520 --> 07:27.840 +in the Emacs buffer, + +07:27.840 --> 07:28.840 +whereas I'm thinking + +07:28.840 --> 07:30.800 +if it can be displayed + +07:30.800 --> 07:33.759 +in any web browser, but utilize + +07:33.759 --> 07:36.560 +Emacs Application Framework API + +07:36.560 --> 07:38.639 +as a bridge between Elisp + +07:38.639 --> 07:40.960 +and Python and Javascript, + +07:40.960 --> 07:41.759 +so you can use + +07:41.759 --> 07:44.879 +the modern front-end frameworks + +07:44.879 --> 07:48.560 +to create those web interfaces easier + +07:48.560 --> 07:49.280 +and connect them + +07:49.280 --> 07:53.919 +with Emacs functionality. + +07:53.919 --> 07:57.280 +These user-controlled web apps + +07:57.280 --> 08:04.126 +would basically result in + +08:04.126 --> 08:05.680 +the user connecting + +08:05.680 --> 08:10.319 +to this external cloud-based tool, + +08:10.319 --> 08:13.759 +let's say Asana, but then + +08:13.759 --> 08:16.400 +process everything through Org mode + +08:16.400 --> 08:19.840 +and then display in an Org mode file + +08:19.840 --> 08:24.720 +or display in this enhanced way + +08:24.720 --> 08:28.960 +through the adjacent local web app, + +08:28.960 --> 08:31.280 +a front-end for which + +08:31.280 --> 08:34.080 +could be written in any .js framework + +08:34.080 --> 08:37.440 +for front-end development. + +08:37.440 --> 08:42.159 +I encourage everyone in the community + +08:42.159 --> 08:45.279 +who is interested in similar questions + +08:45.279 --> 08:48.160 +to share their opinion + +08:48.160 --> 08:50.959 +about the potential risks and drawbacks, + +08:50.959 --> 08:53.120 +about any other ways + +08:53.120 --> 08:54.640 +to achieve a similar goal, + +08:54.640 --> 08:57.519 +if anyone else is doing this already + +08:57.519 --> 08:59.920 +that i might not know about, + +08:59.920 --> 09:02.399 +and in general, just share ideas + +09:02.399 --> 09:03.760 +about what else can be done + +09:03.760 --> 09:07.519 +to integrate Emacs with more stuff + +09:07.519 --> 09:10.640 +and how Emacs can become + +09:10.640 --> 09:14.080 +more approachable by non-technical users + +09:14.080 --> 09:16.160 +because I would love to see + +09:16.160 --> 09:20.080 +more people using Emacs, to be honest. + +09:20.080 --> 09:21.680 +Yeah. Thank you very much + +09:21.680 --> 09:23.440 +for listening to this talk. + +09:23.440 --> 09:26.080 +I will be taking questions + +09:26.080 --> 09:27.600 +and feedback in the pad + +09:27.600 --> 09:31.920 +after the conference. + +09:31.920 --> 09:33.920 +You can reach me through this email + +09:33.920 --> 09:36.720 +laszlo@laszlo.is . + +09:36.720 --> 09:39.600 +I'll be posting + +09:39.600 --> 09:41.760 +some more detailed articles + +09:41.760 --> 09:44.959 +and description of this idea + +09:44.959 --> 09:47.166 +that I was trying to present today. + +09:47.166 --> 09:49.040 +[captions by Laszlo] |