summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2021-11-28 10:50:39 -0500
committerSacha Chua <sacha@sachachua.com>2021-11-28 10:50:39 -0500
commit32caa9a7440d7f81f074a7ef9f2825dc9244cede (patch)
treec6913ab44ec3bb3282567a0fe09bcbc1ab86a184
parent7dc0b763d1c966cdbc77183c790d58e0d6f9443d (diff)
downloademacsconf-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.vtt676
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]