summaryrefslogtreecommitdiffstats
path: root/2024/captions/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.vtt
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2024/captions/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.vtt966
1 files changed, 966 insertions, 0 deletions
diff --git a/2024/captions/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.vtt b/2024/captions/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.vtt
new file mode 100644
index 00000000..7c6db8c8
--- /dev/null
+++ b/2024/captions/emacsconf-2024-casual--reimagining-the-emacs-user-experience-with-casual-suite--charles-choi--answers.vtt
@@ -0,0 +1,966 @@
+WEBVTT
+
+NOTE Opening
+
+00:00:00.000 --> 00:00:05.239
+Leo? I'm doing well as well and I'm so happy to have seen your
+
+00:00:05.240 --> 00:00:10.719
+talk because the interaction with Emacs is always
+
+00:00:10.720 --> 00:00:13.719
+something that I find very interesting, and stuff like
+
+00:00:13.720 --> 00:00:18.839
+Transient, stuff like Hydra before, I think they really
+
+00:00:18.840 --> 00:00:22.119
+improve the user experience of users, and I'm really glad
+
+00:00:22.120 --> 00:00:24.479
+that I've seen you talk. Perhaps just starting with the
+
+00:00:24.480 --> 00:00:27.639
+first question, do you have anything else that you'd like to
+
+00:00:27.640 --> 00:00:30.719
+add on your talk? Because we are pretty stringent with the
+
+00:00:30.720 --> 00:00:33.199
+amount of time that we give for talks, but is there anything
+
+00:00:33.200 --> 00:00:35.639
+that you would have liked to mention to people that you
+
+00:00:35.640 --> 00:00:42.719
+weren't able to fit into the talk? I think probably one of the
+
+00:00:42.720 --> 00:00:46.599
+design considerations I've done is that many of the
+
+00:00:46.600 --> 00:00:49.359
+commands that I've exposed through my casual interfaces
+
+00:00:49.360 --> 00:00:56.399
+have been in Emacs. They've been in there forever, but very
+
+00:00:56.400 --> 00:01:00.439
+few people uh, myself included really know that they're
+
+00:01:00.440 --> 00:01:05.999
+there, uh, because they're just not discoverable through,
+
+00:01:06.000 --> 00:01:09.559
+uh, basically the existing mechanisms, you know, prior to
+
+00:01:09.560 --> 00:01:13.479
+transient and which key to, to even know that those, those
+
+00:01:13.480 --> 00:01:19.399
+functions are there. Yeah. So I think I'm going to start
+
+00:01:19.400 --> 00:01:21.519
+asking you questions whilst people start writing them in a
+
+00:01:21.520 --> 00:01:25.759
+pad. But yeah, I also think that discoverability is a very
+
+00:01:25.760 --> 00:01:29.559
+huge point that having stuff like the stuff that you've
+
+00:01:29.560 --> 00:01:32.679
+showed today actually allows. One example that I'd like to
+
+00:01:32.680 --> 00:01:35.759
+give that many people tend to forget, and you've already
+
+00:01:35.760 --> 00:01:39.559
+mentioned it in your presentation, is that I've learned so
+
+00:01:39.560 --> 00:01:43.479
+much about using git in general thanks to Magit, for the
+
+00:01:43.480 --> 00:01:46.719
+reason that it shows you so many options that you might not be
+
+00:01:46.720 --> 00:01:50.799
+aware of. For instance, I like to really think about when
+
+00:01:50.800 --> 00:01:54.519
+you think about logging in git, Magit allows you to
+
+00:01:54.520 --> 00:01:58.119
+discover so many of the finer options, like I only want to
+
+00:01:58.120 --> 00:02:01.519
+see the first commit since the merge, or I only want to
+
+00:02:01.520 --> 00:02:05.999
+consider this subsection of commits going from master or
+
+00:02:06.000 --> 00:02:08.999
+main to the point of your branch. So many things like this
+
+00:02:09.000 --> 00:02:11.759
+that you get to discover thanks to Transient. So do you have
+
+00:02:11.760 --> 00:02:16.879
+any similar experience on your end? Oh yeah, far too
+
+00:02:16.880 --> 00:02:22.359
+many, particularly with EditKit,
+
+00:02:22.360 --> 00:02:28.279
+having access to these commands,
+
+00:02:28.280 --> 00:02:31.771
+particularly with different granularity on
+
+00:02:31.772 --> 00:02:34.773
+S-expressions, sentences, words...
+
+00:02:34.774 --> 00:02:37.395
+Probably the most surprising thing I found
+
+00:02:37.396 --> 00:02:43.021
+was just how how compelling the
+
+00:02:43.022 --> 00:02:49.054
+S-expression would be as a unit of text for working with.
+
+00:02:49.055 --> 00:02:53.988
+I found that in most contexts, or in many places,
+
+00:02:53.989 --> 00:03:02.719
+it did what I wanted. I found that to be very surprising.
+
+00:03:02.720 --> 00:03:06.159
+So unless you've got anything else to add, I think we can just
+
+00:03:06.160 --> 00:03:10.639
+jump into questions. Okay, certainly. I'll be reading them
+
+00:03:10.640 --> 00:03:13.599
+for you so that it's easier for you. So the first question is,
+
+NOTE Q: I wonder whether casual can only be used with the packages you
+
+00:03:13.600 --> 00:03:17.599
+I wonder whether casual can only be used with the packages
+
+00:03:17.600 --> 00:03:19.599
+you mentioned or whether it can be used with whatever
+
+00:03:19.600 --> 00:03:25.399
+packages you like. I think it's really the latter. I'm not
+
+00:03:25.400 --> 00:03:29.879
+quite sure what the... What the question was really
+
+00:03:29.880 --> 00:03:35.039
+pointing at, you know, is the question asking for why I chose
+
+00:03:35.040 --> 00:03:41.679
+the packages or the different modes that I did? Or is it, are
+
+00:03:41.680 --> 00:03:45.519
+they looking at it from a developer perspective of, can we
+
+00:03:45.520 --> 00:03:50.399
+integrate casual with other packages? I mean, since we've
+
+00:03:50.400 --> 00:03:52.839
+got a little bit of time ahead of us, feel free to answer both
+
+00:03:52.840 --> 00:03:59.279
+questions. Um, I think the answer is, uh. Well, for the 1st,
+
+00:03:59.280 --> 00:04:05.599
+1, I've, I've generally tried to stick with using. The modes
+
+00:04:05.600 --> 00:04:11.039
+that are already packaged in, um, and so there was a. A big
+
+00:04:11.040 --> 00:04:16.759
+refactoring of it where. Initially, I made separate repos
+
+00:04:16.760 --> 00:04:20.879
+for the different modes that I supported. And then through a
+
+00:04:20.880 --> 00:04:24.959
+discussion, which I won't go into here, that got changed
+
+00:04:24.960 --> 00:04:30.239
+where I consolidated all of the different transient menus
+
+00:04:30.240 --> 00:04:35.039
+for modes that are built in for behavior that's built into
+
+00:04:35.040 --> 00:04:39.199
+the Emacs. I put that into a single package called casual.
+
+00:04:39.200 --> 00:04:44.799
+And then integrations with other third party packages that
+
+00:04:44.800 --> 00:04:49.879
+are not built in were given the same standalone repo here. In
+
+00:04:49.880 --> 00:04:55.719
+terms of folks wanting to integrate that, it's the beauty of
+
+00:04:55.720 --> 00:05:01.159
+open source. They can get the repo and uh, and basically
+
+00:05:01.160 --> 00:05:05.199
+study that the code base, uh, actually, if they even install
+
+00:05:05.200 --> 00:05:08.599
+it through, uh, you know, the package manager in this case,
+
+00:05:08.600 --> 00:05:12.679
+uh, coming from the Melbourne distribution, um, they can
+
+00:05:12.680 --> 00:05:17.919
+inspect that code and, and, um, make modifications or even.
+
+00:05:17.920 --> 00:05:21.519
+uh, you know, integrate that with their other packages and,
+
+00:05:21.520 --> 00:05:25.279
+uh, do that to their heart's content. Um, I think one of the
+
+00:05:25.280 --> 00:05:29.639
+things that I need to, or at least, uh, you know, that I, I, I
+
+00:05:29.640 --> 00:05:32.519
+planned on sort of elaborating further on in the
+
+00:05:32.520 --> 00:05:36.399
+documentation is, is that transient already has built in
+
+00:05:36.400 --> 00:05:41.279
+mechanisms for modifying an existing transient. So you can
+
+00:05:41.280 --> 00:05:47.279
+add commands or, uh, re redefine the bindings. And so. That
+
+00:05:47.280 --> 00:05:51.959
+mechanism is available for users if they're not happy with
+
+00:05:51.960 --> 00:05:57.159
+those bindings or they want to add their own commands to a
+
+00:05:57.160 --> 00:06:01.959
+menu. Yeah, and people are... I'm personally familiar with
+
+00:06:01.960 --> 00:06:05.119
+this, again, with Magit, because sometimes, even though
+
+00:06:05.120 --> 00:06:07.479
+you have a lot of discoverability for functions that you may
+
+00:06:07.480 --> 00:06:10.359
+not know, sometimes you also happen to realize that
+
+00:06:10.360 --> 00:06:13.999
+something is missing in the list of available options. I'm
+
+00:06:14.000 --> 00:06:16.919
+not sure if Casual actually supports something similar to
+
+00:06:16.920 --> 00:06:21.559
+Magit, which is levels of options being displayed.
+
+00:06:21.560 --> 00:06:24.039
+Actually, I'm not sure if it's transient native or if it's
+
+00:06:24.040 --> 00:06:27.439
+just something that Magit adds over this. No, transient
+
+00:06:27.440 --> 00:06:30.599
+supports levels. I've decided
+
+00:06:30.600 --> 00:06:36.799
+in large part, I've tried to avoid that just to avoid the
+
+00:06:36.800 --> 00:06:43.119
+added complexity of trying to define those levels. Yeah, I
+
+00:06:43.120 --> 00:06:47.479
+was going to say that perhaps it doesn't gel very well with
+
+00:06:47.480 --> 00:06:49.839
+the notion of casualness that you seem to be introducing the
+
+00:06:49.840 --> 00:06:52.439
+package. On one end, you've got something that is supposed
+
+00:06:52.440 --> 00:06:56.639
+to be very casual, very easy to use, and on the other end, you
+
+00:06:56.640 --> 00:06:59.599
+add levels for stuff that is fairly advanced. So advanced
+
+00:06:59.600 --> 00:07:05.759
+versus casual, kind of makes sense that you check this over.
+
+00:07:05.760 --> 00:07:09.359
+Alright, moving to the second question which is related to
+
+00:07:09.360 --> 00:07:10.853
+the previous one.
+
+NOTE Q: Are there any patterns emerging, such that it would seem possible to 1) systematize 2) automate(?) the mapping of mode commands to keyboard-driven menus? Possibly even have an auto casual wrapper for an uncovered mode?
+
+00:07:10.854 --> 00:07:13.159
+Are there any patterns emerging such that
+
+00:07:13.160 --> 00:07:15.639
+it would be impossible, sorry, such that it would be
+
+00:07:15.640 --> 00:07:19.719
+possible to once systematize and to automate the mapping of
+
+00:07:19.720 --> 00:07:23.519
+mode commands to keyboard-driven menus, possibly even
+
+00:07:23.520 --> 00:07:26.559
+have an auto-casual wrapper for an uncovered mode? Does it
+
+00:07:26.560 --> 00:07:35.519
+make sense to you? Yes, and I've gotten these comments from a
+
+00:07:35.520 --> 00:07:42.799
+number of different folks who really want to see some sort
+
+00:07:42.800 --> 00:07:49.639
+of design rule to, or basically, what is it? Some sort of
+
+00:07:49.640 --> 00:07:54.679
+design system to be able to generate the UI.
+
+00:07:54.680 --> 00:08:01.399
+Conceptually, I think it's doable, but on the flip side, it
+
+00:08:01.400 --> 00:08:05.319
+just requires so much coordination that it makes it really
+
+00:08:05.320 --> 00:08:11.199
+untenable. In this case, I have very strong opinions. I
+
+00:08:11.200 --> 00:08:15.719
+think we're better off trying to handcraft the user
+
+00:08:15.720 --> 00:08:20.759
+interface to get basically the best user experience. To try
+
+00:08:20.760 --> 00:08:26.399
+to emulate that with a design system, good luck, but I'm not
+
+00:08:26.400 --> 00:08:31.519
+I'm not interested in working on that. Right, yeah. I think
+
+00:08:31.520 --> 00:08:34.119
+if I try to think a little more about this, it feels like
+
+00:08:34.120 --> 00:08:36.559
+there's a notion of intention that is very important when
+
+00:08:36.560 --> 00:08:41.479
+you are designing UI and UX. And to have this intention, it
+
+00:08:41.480 --> 00:08:45.319
+feels like you cannot just base yourself of a design idea to
+
+00:08:45.320 --> 00:08:48.799
+organize the options. You cannot just work off a pattern. I
+
+00:08:48.800 --> 00:08:53.599
+think you need to have the trace of human understanding in
+
+00:08:53.600 --> 00:08:56.679
+order to have a UX that really works. And judging by the
+
+00:08:56.680 --> 00:08:58.999
+option that you've picked in the demos that you've showed
+
+00:08:59.000 --> 00:09:04.039
+today, I don't think it'd be particularly easy to organize
+
+00:09:04.040 --> 00:09:07.959
+them in a UX just casually for any mode. I think you need some
+
+00:09:07.960 --> 00:09:14.159
+human introspection to understand this, if that makes
+
+00:09:14.160 --> 00:09:14.679
+sense.
+
+00:09:14.680 --> 00:09:17.279
+Moving to the next question, which is related to something
+
+00:09:17.280 --> 00:09:19.605
+we discussed about with Magit.
+
+NOTE Q: Does Casual have a log where you can see what commands were invoked?
+
+00:09:19.606 --> 00:09:21.079
+Does Casual have a log where
+
+00:09:21.080 --> 00:09:23.759
+you can see what commands were invoked? This is always
+
+00:09:23.760 --> 00:09:27.479
+available via M-x view-lossage or via the command-log-mode,
+
+00:09:27.480 --> 00:09:30.993
+but I'm wondering if it can do for Emacs command what
+
+00:09:30.994 --> 00:09:34.479
+magit-process-buffer does for learning Git commands. And for
+
+00:09:34.480 --> 00:09:37.439
+everyone who's currently in Emacs, whenever you're
+
+00:09:37.440 --> 00:09:40.639
+running a command in Magit, it's always printing the exact
+
+00:09:40.640 --> 00:09:44.799
+command that was run in a shell, inside this $
+
+00:09:44.800 --> 00:09:47.399
+menu. So does Casual actually provide something similar,
+
+00:09:47.400 --> 00:09:52.599
+Charles? I don't know. In general, because I'm building off
+
+00:09:52.600 --> 00:09:55.199
+of transient, it would have to be a mechanism that's
+
+00:09:55.200 --> 00:10:01.519
+available through transient. And You know, I would let
+
+00:10:01.520 --> 00:10:06.799
+Jonas speak more on that capability, because to be honest, I
+
+00:10:06.800 --> 00:10:14.879
+mean, even to my knowledge of transient is not that deep,
+
+00:10:14.880 --> 00:10:16.839
+actually.
+
+00:10:16.840 --> 00:10:21.399
+Well, it's funny that you say this because even though you
+
+00:10:21.400 --> 00:10:23.759
+say your knowledge might not be that big, you still managed
+
+00:10:23.760 --> 00:10:27.239
+to develop a whole suite of tools on top of it. So as far as
+
+00:10:27.240 --> 00:10:29.599
+people who do not know transient a whole lot, you're doing a
+
+00:10:29.600 --> 00:10:33.159
+pretty damn good job. Let me tell you that much. Thank you.
+
+00:10:33.160 --> 00:10:37.719
+Yeah, I think sort of what I bring to the table is, you know,
+
+00:10:37.720 --> 00:10:41.919
+quite a considerable career in software development on
+
+00:10:41.920 --> 00:10:47.879
+other software ecosystems. And as of late, I've spent
+
+00:10:47.880 --> 00:10:52.439
+basically the past decade working on iOS apps. Right. I
+
+00:10:52.440 --> 00:10:55.199
+think it's refreshing to be able to go back to something that
+
+00:10:55.200 --> 00:10:56.839
+looks like Emacs after iOS.
+
+00:10:56.840 --> 00:11:03.879
+Well, that's perhaps another longer conversation there.
+
+00:11:03.880 --> 00:11:08.599
+Speaking of longer conversation, we have only about 10
+
+00:11:08.600 --> 00:11:11.599
+minutes left until we need to move on to the next talk. But
+
+00:11:11.600 --> 00:11:13.759
+thank you everyone for all the questions you're asking. I'm
+
+00:11:13.760 --> 00:11:17.239
+not saying this because we finished, but it's good to see so
+
+00:11:17.240 --> 00:11:19.919
+many people writing in the chat and asking questions. It
+
+00:11:19.920 --> 00:11:23.079
+always shows that you're interested and that's always
+
+00:11:23.080 --> 00:11:26.079
+lovely to us. And you've mentioned Jonas. Obviously, we're
+
+00:11:26.080 --> 00:11:29.359
+talking about Jonas Bernoulli, i.e. Tarsius, the
+
+00:11:29.360 --> 00:11:33.439
+maintainer of transient. And what Charles just mentioned
+
+00:11:33.440 --> 00:11:37.559
+about having a transient tooling to print the lossage,
+
+00:11:37.560 --> 00:11:43.039
+basically, of which sex were run by which command, feels
+
+00:11:43.040 --> 00:11:44.839
+like this is something that would be interesting. So,
+
+00:11:44.840 --> 00:11:50.239
+perhaps, I'm not sure if Tarsius is still on the chat
+
+00:11:50.240 --> 00:11:52.639
+currently, but he was definitely around earlier today, so
+
+00:11:52.640 --> 00:11:55.839
+we'll make sure that the ID lands on his lap later on. All
+
+00:11:55.840 --> 00:12:00.203
+right, moving to the next question.
+
+NOTE Q: Is there a setting to close menu after executing command?
+
+00:12:00.204 --> 00:12:00.919
+Is there a setting to
+
+00:12:00.920 --> 00:12:07.479
+close menu after executing a command? By default, it will.
+
+00:12:07.480 --> 00:12:10.879
+There's a slot that you can define in a transient
+
+00:12:10.880 --> 00:12:17.199
+prefix called :transient. And if you set that to true,
+
+00:12:17.200 --> 00:12:20.639
+then it will persist the menu after executing the command.
+
+00:12:20.640 --> 00:12:26.159
+But by default, it will actually dismiss the menu. This
+
+00:12:26.160 --> 00:12:29.359
+feels... Did you actually get to play with Hydra before
+
+00:12:29.360 --> 00:12:36.279
+playing with transients? To be honest, no. Yeah, I kind of
+
+00:12:36.280 --> 00:12:41.719
+slept on Hydra or at least, you know, I really wasn't all that
+
+00:12:41.720 --> 00:12:44.639
+ambitious with working with different packages until
+
+00:12:44.640 --> 00:12:48.639
+about like, a little less than 2 years ago or so.
+
+00:12:48.640 --> 00:12:57.639
+And then the other part was also, um. You know, not not really
+
+00:12:57.640 --> 00:13:01.999
+a technical. Start a comparison because I really don't want
+
+00:13:02.000 --> 00:13:05.759
+to upset folks here, but, uh. But more along the lines of just
+
+00:13:05.760 --> 00:13:09.559
+going with the notion that transient was being built in or
+
+00:13:09.560 --> 00:13:15.279
+packaged as a built in package for Emacs. I went with using
+
+00:13:15.280 --> 00:13:20.679
+that for my implementation. Cool. And I don't think there's
+
+00:13:20.680 --> 00:13:23.199
+anything controversial with what you're saying right now
+
+00:13:23.200 --> 00:13:28.839
+because, you know, we had earlier today, Euro Rechenko, the
+
+00:13:28.840 --> 00:13:32.439
+new maintainer of Augment, mentioning that he'd like to
+
+00:13:32.440 --> 00:13:34.319
+have a better integration with Transient because
+
+00:13:34.320 --> 00:13:39.159
+Transient is, it looks like it's here to stay for a long time
+
+00:13:39.160 --> 00:13:42.879
+and might even land in core at some point. So, it definitely
+
+00:13:42.880 --> 00:13:49.519
+feels comparing Hydra because for me, most of my UI needs in
+
+00:13:49.520 --> 00:13:54.439
+Emacs prior to Transient were done via Hydra because it was a
+
+00:13:54.440 --> 00:13:57.799
+very convenient tooling. For people who do not know, Hydra
+
+00:13:57.800 --> 00:14:02.919
+is written by AboAbo. who's also authored packages like
+
+00:14:02.920 --> 00:14:08.639
+Lispy, an interactive Lisp mode, also for Ivy, which you
+
+00:14:08.640 --> 00:14:14.239
+might know as the counterpart of Helm, maybe five years ago.
+
+00:14:14.240 --> 00:14:17.959
+So all those packages, they were very innovative for the
+
+00:14:17.960 --> 00:14:21.199
+time and it's cool to see that some of the ideas which were
+
+00:14:21.200 --> 00:14:28.039
+introduced by IV and Helm and all this are then taken by tools
+
+00:14:28.040 --> 00:14:30.279
+like Transient and done perhaps with a little more
+
+00:14:30.280 --> 00:14:33.639
+hindsight now that people have experienced a little more of
+
+00:14:33.640 --> 00:14:38.359
+it. Okay, we have still a little bit of time. Moving on to the
+
+00:14:38.360 --> 00:14:40.281
+next question.
+
+NOTE Q: What modes are you working on at the moment for casual / are excited to explore?
+
+00:14:40.282 --> 00:14:41.919
+What modes are you working on at the moment
+
+00:14:41.920 --> 00:14:44.159
+for Casual or are you excited to explore?
+
+00:14:44.160 --> 00:14:53.999
+Well, so I just recently published one for calendar. And so I
+
+00:14:54.000 --> 00:14:56.839
+think the calendar interface has a lot of really
+
+00:14:56.840 --> 00:15:00.479
+interesting behavior, particularly its support for
+
+00:15:00.480 --> 00:15:07.479
+non-Gregorian events, which is, you know, for folks who'd
+
+00:15:07.480 --> 00:15:13.079
+like, in my case, looking at the lunar calendar, it's great
+
+00:15:13.080 --> 00:15:17.799
+to have tooling to be able to not have to leave Emacs to figure
+
+00:15:17.800 --> 00:15:19.759
+out when a lunar date is.
+
+00:15:19.760 --> 00:15:29.599
+Then, I think, you know, for the most part, My work on casual
+
+00:15:29.600 --> 00:15:34.959
+was really kind of my summer of code for Emacs here. And so in
+
+00:15:34.960 --> 00:15:41.519
+many ways, the velocity of casual development is going to
+
+00:15:41.520 --> 00:15:48.919
+slow down where I've got a big bulk of the modes that I really
+
+00:15:48.920 --> 00:15:57.519
+wanted to take care of. Um, I think one experimental thing
+
+00:15:57.520 --> 00:16:00.999
+that I think is very unbaked, but I would, you know, if folks
+
+00:16:01.000 --> 00:16:06.879
+are interested, uh, maybe looking at it is, uh, taking a look
+
+00:16:06.880 --> 00:16:13.079
+at edebug and trying to make that an easier thing to do. Um,
+
+00:16:13.080 --> 00:16:18.359
+that is ambitious. Uh, yeah, so maybe too ambitious.
+
+00:16:18.360 --> 00:16:23.713
+Uh, other things are like really scary projects.
+
+00:16:23.714 --> 00:16:25.195
+And so, not to say that
+
+00:16:25.196 --> 00:16:28.319
+I really have a desire to do it, but another
+
+00:16:28.320 --> 00:16:33.239
+one would be ediff. Right. Okay. Relitigating it's
+
+00:16:33.240 --> 00:16:43.639
+interface, um, to have a transient menu. I say
+
+00:16:43.640 --> 00:16:47.919
+these things, but I'm also scared of those things. Yeah, I
+
+00:16:47.920 --> 00:16:50.719
+mean, I think it's a lovely way to tackle the project,
+
+00:16:50.720 --> 00:16:55.479
+really, because you are fully aware that edebug and ediffs
+
+00:16:55.480 --> 00:16:59.399
+are mastodons when it comes to Emacs. They work very well. If
+
+00:16:59.400 --> 00:17:02.639
+you've ever tried to do a conflict resolution in Magit and
+
+00:17:02.640 --> 00:17:07.199
+you've pressed e, that usually opens ediff for you. If you
+
+00:17:07.200 --> 00:17:09.959
+happen to know how it works, it's amazing, but if you do not know
+
+00:17:09.960 --> 00:17:13.719
+it works, the interface is a little... It's a lot to take in
+
+00:17:13.720 --> 00:17:20.879
+at the moment. You have to know a, b, w... I can, and I
+
+00:17:20.880 --> 00:17:24.439
+can never remember which one is the lower and which one is the
+
+00:17:24.440 --> 00:17:27.359
+upper. Like, it constantly goes in different directions. I
+
+00:17:27.360 --> 00:17:29.719
+can never remember which is the commit I'm trying to merge,
+
+00:17:29.720 --> 00:17:32.759
+which is the commit I'm currently being on. It has nothing to
+
+00:17:32.760 --> 00:17:36.839
+do with Magit. It's merely Git and the way they conceive
+
+00:17:36.840 --> 00:17:39.719
+this. And probably, there might be a very nice way to
+
+00:17:39.720 --> 00:17:42.079
+remember it, but I still haven't found it after 10 years as a
+
+00:17:42.080 --> 00:17:44.919
+software developer. So, I guess I need to dig a little
+
+00:17:44.920 --> 00:17:48.519
+deeper. But what I find lovely about the approach is that for
+
+00:17:48.520 --> 00:17:52.599
+you, working on the interface to those tools is actually
+
+00:17:52.600 --> 00:17:55.159
+something that allows you to discover how they work, but
+
+00:17:55.160 --> 00:17:59.119
+also how to make it more easy for people to understand how
+
+00:17:59.120 --> 00:18:02.039
+those tools work. So you're doing the work of
+
+00:18:02.040 --> 00:18:05.399
+understanding, of digesting a lot of the commands, so that
+
+00:18:05.400 --> 00:18:08.599
+people do not have to go through the same pain as you have. So I
+
+00:18:08.600 --> 00:18:14.279
+find this a very noble endeavor in a way.
+
+NOTE Getting older
+
+00:18:14.280 --> 00:18:18.559
+In so many ways, as perhaps I've mentioned
+
+00:18:18.560 --> 00:18:23.639
+in my talk, I'm getting older. I can't remember all
+
+00:18:23.640 --> 00:18:28.759
+these damn commands and my hand dexterity is failing. I
+
+00:18:28.760 --> 00:18:33.199
+mean, there's so many. Like multiple keystroke
+
+00:18:33.200 --> 00:18:37.479
+bindings, which I absolutely loathe. At most,
+
+00:18:37.480 --> 00:18:40.799
+like I can, I can only physically handle like, two
+
+00:18:40.800 --> 00:18:47.799
+characters, three maybe, at a time. So maybe
+
+00:18:47.800 --> 00:18:51.239
+that's just me, and others may
+
+00:18:51.240 --> 00:18:55.999
+feel differently, but at the same time,
+
+00:18:56.000 --> 00:19:01.519
+the work that I've invested here is has been very personal
+
+00:19:01.520 --> 00:19:06.239
+for me because I just don't want to work that hard, and I want to
+
+00:19:06.240 --> 00:19:11.159
+keep using Emacs. Yeah, and that's again a very good
+
+00:19:11.160 --> 00:19:13.719
+endeavor, I think, to have. And there's one last thing that
+
+00:19:13.720 --> 00:19:16.039
+I'd like to mention, because you've mentioned this project
+
+00:19:16.040 --> 00:19:19.879
+of yours, Casual, being some kind of summer of code, with the
+
+00:19:19.880 --> 00:19:22.399
+implication that you've worked a whole lot of it during the
+
+00:19:22.400 --> 00:19:26.919
+summer or during this period. and perhaps investment will
+
+00:19:26.920 --> 00:19:31.119
+die down a little bit now. But I think it's completely fine to
+
+00:19:31.120 --> 00:19:33.879
+have moments when you feel particularly excited and you do a
+
+00:19:33.880 --> 00:19:36.959
+lot of work, and sometimes it dies down a little bit.
+
+00:19:36.960 --> 00:19:41.439
+Personally, I've been... Four years ago, I was working a lot
+
+00:19:41.440 --> 00:19:44.679
+on Org Roam and I had my Summer of Code on Org Roam. And that was
+
+00:19:44.680 --> 00:19:47.159
+great. I was able to do a lot of things, to get a lot of things
+
+00:19:47.160 --> 00:19:50.559
+out of my head. But eventually, you know, you have to go make
+
+00:19:50.560 --> 00:19:53.279
+some money to survive or you have to take care of family and
+
+00:19:53.280 --> 00:19:56.399
+stuff like this. So, life tends to get in the way of your
+
+00:19:56.400 --> 00:20:00.519
+hobbies, especially when, you know, it's so... It's
+
+00:20:00.520 --> 00:20:03.239
+hobbies that involve so much of your time to get things
+
+00:20:03.240 --> 00:20:07.879
+right, like programming does. But, you know, we appreciate
+
+00:20:07.880 --> 00:20:09.799
+all the work you've done, Charles, and the fact that you've
+
+00:20:09.800 --> 00:20:12.679
+put it out there for people to enjoy. It's already a victory.
+
+00:20:12.680 --> 00:20:14.999
+You don't need to feel compelled to keep working on it
+
+00:20:15.000 --> 00:20:18.159
+because ultimately, as you said, the beauty of open source
+
+00:20:18.160 --> 00:20:21.759
+is that people can just send PRs and get the project going
+
+00:20:21.760 --> 00:20:28.519
+again. Yeah. I mean, and if anything, you know, folks have
+
+00:20:28.520 --> 00:20:33.319
+expressed to me that, you know, in many ways, a lot of this
+
+00:20:33.320 --> 00:20:37.959
+stuff should be, you know, sort of folded in the core. And,
+
+00:20:37.960 --> 00:20:45.159
+you know, I would love to see at least the ideals of, or at
+
+00:20:45.160 --> 00:20:49.319
+least an openness into thinking, rethinking the interface
+
+00:20:49.320 --> 00:20:54.119
+for Emacs. So, you know, it doesn't have to be, basically
+
+00:20:54.120 --> 00:20:59.119
+work the way it worked for basically the last half of the 20th
+
+00:20:59.120 --> 00:21:03.519
+century here. Yeah, Emacs is flexible enough to have
+
+00:21:03.520 --> 00:21:10.279
+different approaches and, you know, transient is one
+
+00:21:10.280 --> 00:21:17.759
+approach, but at the same time, you know, the ability to
+
+00:21:17.760 --> 00:21:22.559
+reimagine the user interface for, you know, the computing
+
+00:21:22.560 --> 00:21:28.159
+needs, you know, for basically users needs today, whether
+
+00:21:28.160 --> 00:21:33.119
+you write or code or anything of that nature, I think is an
+
+00:21:33.120 --> 00:21:39.039
+exciting and great thing. Yeah, well, thank you so much for
+
+00:21:39.040 --> 00:21:41.639
+this conclusion. So I'm a little sorry, because sadly, we
+
+00:21:41.640 --> 00:21:45.919
+needed to move the stream to the next talk. So we've lost
+
+00:21:45.920 --> 00:21:49.639
+about 20 seconds of what you said. But don't worry, whatever
+
+00:21:49.640 --> 00:21:51.999
+you've said will be available on the website. I didn't want
+
+00:21:52.000 --> 00:21:55.759
+to interrupt, sadly, because I didn't want to be rude. But I
+
+00:21:55.760 --> 00:21:58.679
+think we did a great job answering the questions. So thank
+
+00:21:58.680 --> 00:22:01.199
+you so much for taking the time. I'll need to get going,
+
+00:22:01.200 --> 00:22:02.759
+because we might have a problem with the next talk. So thank
+
+00:22:02.760 --> 00:22:05.919
+you so much, Charles. Certainly. Take care. Thank you.
+
+00:22:05.920 --> 00:22:12.120
+Appreciate it. Bye.