summaryrefslogtreecommitdiffstats
path: root/2021
diff options
context:
space:
mode:
Diffstat (limited to '2021')
-rw-r--r--2021/captions/emacsconf-2021-build--how-to-build-an-emacs--fermin-mf--main.vtt1421
-rw-r--r--2021/captions/emacsconf-2021-clede--clede-the-common-lisp-emacs-development-environment--fermin-mf--main.vtt457
-rw-r--r--2021/talks/clede.md8
3 files changed, 3 insertions, 1883 deletions
diff --git a/2021/captions/emacsconf-2021-build--how-to-build-an-emacs--fermin-mf--main.vtt b/2021/captions/emacsconf-2021-build--how-to-build-an-emacs--fermin-mf--main.vtt
deleted file mode 100644
index 12a7a6ad..00000000
--- a/2021/captions/emacsconf-2021-build--how-to-build-an-emacs--fermin-mf--main.vtt
+++ /dev/null
@@ -1,1421 +0,0 @@
-WEBVTT
-
-
-00:00.960 --> 00:00:03.760
-welcome everyone uh my name is ferming i
-
-00:03.760 --> 00:00:05.120
-work as a commonwealth engineer at
-
-00:05.120 --> 00:00:08.000
-ribbon pack and today i'm going to talk
-
-00:08.000 --> 00:00:09.519
-about
-
-00:09.519 --> 00:00:11.360
-how to build an e-max
-
-00:11.360 --> 00:00:12.240
-right
-
-00:12.240 --> 00:00:16.640
-so uh let's start by defining what is an
-
-00:16.640 --> 00:00:18.000
-imax
-
-00:18.000 --> 00:00:20.080
-so that this can be a really this can be
-
-00:20.080 --> 00:00:21.920
-really hard depending on
-
-00:21.920 --> 00:00:23.920
-what you want to say what you want to
-
-00:23.920 --> 00:00:26.320
-qualify what emas is and not i'm going
-
-00:26.320 --> 00:00:27.920
-to
-
-00:27.920 --> 00:00:29.519
-get just this definition it's not the
-
-00:29.519 --> 00:00:31.840
-best but it's mine right
-
-00:31.840 --> 00:00:34.480
-so i would argue that an emacs should
-
-00:34.480 --> 00:00:37.440
-have text editing capabilities
-
-00:37.440 --> 00:00:38.879
-i wouldn't say it should be a text
-
-00:38.879 --> 00:00:41.120
-editor but it should be able to work
-
-00:41.120 --> 00:00:43.200
-really well with text
-
-00:43.200 --> 00:00:45.680
-as you have introspection and a global
-
-00:45.680 --> 00:00:46.879
-state
-
-00:46.879 --> 00:00:49.760
-so you can ask them every time
-
-00:49.760 --> 00:00:51.680
-um software itself i think it should be
-
-00:51.680 --> 00:00:54.879
-able to modify itself while running
-
-00:54.879 --> 00:00:56.640
-um so you shouldn't be static and you
-
-00:56.640 --> 00:00:59.280
-shouldn't never restart for
-
-00:59.280 --> 00:01:01.359
-any reason like in engineering max you
-
-01:01.359 --> 00:01:03.280
-can't predefine every function or every
-
-01:03.280 --> 00:01:05.680
-functionality the way you want
-
-01:05.680 --> 00:01:09.360
-and extensibility should not be limited
-
-01:09.360 --> 00:01:11.040
-with this i mean that if you add a new
-
-01:11.040 --> 00:01:12.560
-package shouldn't be a difference you
-
-01:12.560 --> 00:01:14.960
-shouldn't have an api
-
-01:14.960 --> 00:01:18.560
-to extend the software and the entire uh
-
-01:18.560 --> 00:01:20.640
-software itself should be the external
-
-01:20.640 --> 00:01:22.640
-api code
-
-01:22.640 --> 00:01:25.360
-i'll argue that's also
-
-01:25.360 --> 00:01:26.640
-um
-
-01:26.640 --> 00:01:28.320
-should be list base
-
-01:28.320 --> 00:01:29.759
-but
-
-01:29.759 --> 00:01:32.880
-um it's controversial so
-
-01:32.880 --> 00:01:34.720
-yes they're going to get this definition
-
-01:34.720 --> 00:01:37.280
-and then extend upon it so
-
-01:37.280 --> 00:01:38.880
-bear with me
-
-01:38.880 --> 00:01:41.920
-so right now uh genuine max is the best
-
-01:41.920 --> 00:01:44.079
-emacs that we have that's not the only
-
-01:44.079 --> 00:01:46.320
-one uh
-
-01:46.320 --> 00:01:48.479
-not even the first one imax but it's the
-
-01:48.479 --> 00:01:49.680
-best one that we have the one that we're
-
-01:49.680 --> 00:01:51.759
-using the one that we that i'm using
-
-01:51.759 --> 00:01:54.079
-right now and the one that we're here
-
-01:54.079 --> 00:01:55.280
-for
-
-01:55.280 --> 00:01:57.759
-but as we all know it's not perfect i'm
-
-01:57.759 --> 00:01:59.759
-going to highlight some
-
-01:59.759 --> 00:02:02.479
-um imperfection that all that we should
-
-02:02.479 --> 00:02:05.119
-know i guess that you must have
-
-02:05.119 --> 00:02:07.360
-so the first one is that uh i would
-
-02:07.360 --> 00:02:09.440
-argue that inmate lisp is a good lisp
-
-02:09.440 --> 00:02:11.280
-but it's not a general purpose
-
-02:11.280 --> 00:02:13.280
-programming language
-
-02:13.280 --> 00:02:15.040
-you can do pretty crazy things with
-
-02:15.040 --> 00:02:16.959
-emacs but i will argue that you can do
-
-02:16.959 --> 00:02:18.400
-also do that with
-
-02:18.400 --> 00:02:20.640
-brain [ __ ] i'm not comparing them i know
-
-02:20.640 --> 00:02:22.239
-with my list so much better than brain
-
-02:22.239 --> 00:02:24.720
-[ __ ] but that's not an argument in
-
-02:24.720 --> 00:02:26.480
-mclisp it's
-
-02:26.480 --> 00:02:29.599
-a language for an editor
-
-02:29.599 --> 00:02:32.080
-not for writing
-
-02:32.080 --> 00:02:34.720
-game engine for example
-
-02:34.720 --> 00:02:37.040
-um it's not the fastest lisp we all know
-
-02:37.040 --> 00:02:40.239
-this is um
-
-02:40.239 --> 00:02:42.319
-not in the middle i will say was really
-
-02:42.319 --> 00:02:44.720
-slow now it's getting better maybe with
-
-02:44.720 --> 00:02:46.480
-the c integration
-
-02:46.480 --> 00:02:49.200
-um thanks to andrea it can be even
-
-02:49.200 --> 00:02:51.680
-better but we'll see and has limited
-
-02:51.680 --> 00:02:55.360
-concurrency this will still be the case
-
-02:55.360 --> 00:02:58.159
-it has shared threats first i know
-
-02:58.159 --> 00:03:00.000
-it's not perfect and it's also not that
-
-03:00.000 --> 00:03:01.040
-fast
-
-03:01.040 --> 00:03:03.360
-and even though this for some people is
-
-03:03.360 --> 00:03:04.480
-not an issue
-
-03:04.480 --> 00:03:06.080
-i'll argue that for me it's an issue
-
-03:06.080 --> 00:03:07.920
-which is the canoe emac score is written
-
-03:07.920 --> 00:03:09.840
-in the c
-
-03:09.840 --> 00:03:13.519
-um i'm not a big fan of c i mean i have
-
-03:13.519 --> 00:03:15.519
-wrote things about c in the past and
-
-03:15.519 --> 00:03:16.840
-it's
-
-03:16.840 --> 00:03:20.560
-okay as a language but um i prefer i'll
-
-03:20.560 --> 00:03:22.800
-be in lisp so i can hack on it easily
-
-03:22.800 --> 00:03:24.720
-and really find it while it's running
-
-03:24.720 --> 00:03:27.440
-all in just one language so you don't
-
-03:27.440 --> 00:03:29.920
-have to learn two languages to get into
-
-03:29.920 --> 00:03:30.959
-it
-
-03:30.959 --> 00:03:33.120
-um even though it's just ten percent of
-
-03:33.120 --> 00:03:35.599
-emacs right but still there needs to be
-
-03:35.599 --> 00:03:38.799
-maintained and yeah
-
-03:38.799 --> 00:03:41.120
-i don't like that uh kind of uh a max
-
-03:41.120 --> 00:03:43.040
-aspect but just
-
-03:43.040 --> 00:03:45.360
-this was just my opinion okay so while
-
-03:45.360 --> 00:03:46.720
-you're like you know mac's pretty good
-
-03:46.720 --> 00:03:48.400
-you should use it
-
-03:48.400 --> 00:03:50.319
-you probably use it if you're here and
-
-03:50.319 --> 00:03:53.280
-use it every day it's great
-
-03:53.280 --> 00:03:54.239
-so
-
-03:54.239 --> 00:03:56.560
-some people in the past
-
-03:56.560 --> 00:03:58.080
-wanted to write
-
-03:58.080 --> 00:04:00.480
-an e-max of course and not the emacs
-
-04:00.480 --> 00:04:02.400
-and they think about different things
-
-04:02.400 --> 00:04:04.799
-and they attempt to write similar emacs
-
-04:04.799 --> 00:04:07.680
-like things i'm going to um
-
-04:07.680 --> 00:04:09.519
-i know there's a lot of more way more
-
-04:09.519 --> 00:04:12.879
-emacs than the one i'm going to say now
-
-04:12.879 --> 00:04:16.000
-but i just going to
-
-04:16.000 --> 00:04:18.639
-focus on the emacs that uh meets the
-
-04:18.639 --> 00:04:20.639
-criteria are not like
-
-04:20.639 --> 00:04:23.280
-uh the linux turbo's emacs right which
-
-04:23.280 --> 00:04:24.479
-is just a c
-
-04:24.479 --> 00:04:28.400
-simple e max to write c for me that may
-
-04:28.400 --> 00:04:30.160
-be uh
-
-04:30.160 --> 00:04:32.400
-an e max for the people but not for me i
-
-04:32.400 --> 00:04:34.639
-wouldn't argue that that's not
-
-04:34.639 --> 00:04:36.720
-really an emacs just an editor with
-
-04:36.720 --> 00:04:38.560
-commands similar to imax
-
-04:38.560 --> 00:04:40.160
-but
-
-04:40.160 --> 00:04:43.120
-i digress okay so the language i will
-
-04:43.120 --> 00:04:45.120
-argue that common lisp may be the best
-
-04:45.120 --> 00:04:46.320
-language
-
-04:46.320 --> 00:04:47.759
-period
-
-04:47.759 --> 00:04:49.600
-sorry about that the best language for
-
-04:49.600 --> 00:04:51.520
-writing emacs also
-
-04:51.520 --> 00:04:53.759
-um it's a timeless standard reaching in
-
-04:53.759 --> 00:04:57.520
-the 1990s is fast and reliable
-
-04:57.520 --> 00:05:00.160
-it's a great lisp i will argue that the
-
-05:00.160 --> 00:05:01.840
-best lisp but i don't want to get any
-
-05:01.840 --> 00:05:03.280
-trouble so i would just say it's great
-
-05:03.280 --> 00:05:04.400
-lisp
-
-05:04.400 --> 00:05:06.880
-um has good library support doesn't have
-
-05:06.880 --> 00:05:08.720
-like a huge library like i would say
-
-05:08.720 --> 00:05:12.160
-python or c but pretty
-
-05:12.160 --> 00:05:14.800
-robust and good library
-
-05:14.800 --> 00:05:18.000
-similar to mclisp which may seem as a
-
-05:18.000 --> 00:05:21.120
-historical accident which maybe it is
-
-05:21.120 --> 00:05:23.919
-but also in this case has some
-
-05:23.919 --> 00:05:26.160
-interesting properties that will
-
-05:26.160 --> 00:05:29.280
-be discussed
-
-05:29.280 --> 00:05:30.960
-later
-
-05:30.960 --> 00:05:32.400
-okay so
-
-05:32.400 --> 00:05:33.600
-um
-
-05:33.600 --> 00:05:35.280
-taking common lisps a language to write
-
-05:35.280 --> 00:05:36.479
-an imax i'm going to get some
-
-05:36.479 --> 00:05:37.759
-technologies in documentation that we
-
-05:37.759 --> 00:05:40.720
-can use to write an e-max in common lisp
-
-05:40.720 --> 00:05:43.440
-so the first one is mcclaim which is an
-
-05:43.440 --> 00:05:45.039
-implementation of a
-
-05:45.039 --> 00:05:47.120
-common lisp interface standard
-
-05:47.120 --> 00:05:50.320
-this is great i mean i loved how
-
-05:50.320 --> 00:05:52.720
-this is written how it is defined i like
-
-05:52.720 --> 00:05:54.479
-standard things
-
-05:54.479 --> 00:05:57.440
-um mclean it's a marvelous tool i will
-
-05:57.440 --> 00:05:59.759
-argue that it's the best
-
-05:59.759 --> 00:06:01.280
-um toolkit
-
-06:01.280 --> 00:06:03.039
-i wouldn't say there's a toolkit because
-
-06:03.039 --> 00:06:05.360
-it's way more extense than it but it's
-
-06:05.360 --> 00:06:07.919
-great i would highly recommend if you
-
-06:07.919 --> 00:06:10.639
-want to write a gui application in
-
-06:10.639 --> 00:06:14.400
-common lisp well mcclain is great
-
-06:14.400 --> 00:06:18.400
-also some people thought about
-
-06:18.400 --> 00:06:20.160
-libraries for writing emac style
-
-06:20.160 --> 00:06:22.720
-application so to create an emacs some
-
-06:22.720 --> 00:06:24.720
-people already thought about this and
-
-06:24.720 --> 00:06:26.479
-wrote a paper
-
-06:26.479 --> 00:06:27.440
-um
-
-06:27.440 --> 00:06:29.840
-one of them was robert strand
-
-06:29.840 --> 00:06:32.319
-which is the guy more interested in in
-
-06:32.319 --> 00:06:34.880
-imax like things
-
-06:34.880 --> 00:06:36.479
-and this paper is great you can get a
-
-06:36.479 --> 00:06:37.759
-lot of information how you can write
-
-06:37.759 --> 00:06:39.360
-your application get
-
-06:39.360 --> 00:06:41.039
-similar functionality and all the things
-
-06:41.039 --> 00:06:43.600
-that i said before
-
-06:43.600 --> 00:06:45.840
-and also the same
-
-06:45.840 --> 00:06:47.039
-of the
-
-06:47.039 --> 00:06:49.199
-robert strand or the guys that wrote
-
-06:49.199 --> 00:06:52.240
-that paper also wrote clefo which is
-
-06:52.240 --> 00:06:54.479
-a library for text editor buffer but
-
-06:54.479 --> 00:06:57.599
-more important it's also a definition
-
-06:57.599 --> 00:06:59.599
-so this video
-
-06:59.599 --> 00:07:02.639
-out there will where he explains
-
-07:02.639 --> 00:07:03.599
-um
-
-07:03.599 --> 00:07:05.919
-what clapper is so he wrote an
-
-07:05.919 --> 00:07:08.479
-implementation of clover but it's more
-
-07:08.479 --> 00:07:12.000
-of like a
-
-07:12.000 --> 00:07:12.880
-um
-
-07:12.880 --> 00:07:14.400
-yeah
-
-07:14.400 --> 00:07:17.599
-like a standard like a way to write
-
-07:17.599 --> 00:07:20.639
-uh how buffers or work in emacs
-
-07:20.639 --> 00:07:23.280
-and i think it's better
-
-07:23.280 --> 00:07:25.599
-in some ways that what imac genuine mac
-
-07:25.599 --> 00:07:26.960
-does right now
-
-07:26.960 --> 00:07:29.039
-um in other ways it's really interesting
-
-07:29.039 --> 00:07:31.759
-and i just have had a lot of fun
-
-07:31.759 --> 00:07:33.360
-implementing it so
-
-07:33.360 --> 00:07:35.919
-i'm using it more or less
-
-07:35.919 --> 00:07:38.080
-uh so yeah that's some great
-
-07:38.080 --> 00:07:40.479
-documentation great foundation so you
-
-07:40.479 --> 00:07:42.080
-don't have to
-
-07:42.080 --> 00:07:43.599
-i mean it's
-
-07:43.599 --> 00:07:44.879
-really
-
-07:44.879 --> 00:07:46.319
-interesting to write everything by
-
-07:46.319 --> 00:07:48.080
-yourself because you are
-
-07:48.080 --> 00:07:49.120
-a great
-
-07:49.120 --> 00:07:51.440
-programmer and you you want to have
-
-07:51.440 --> 00:07:52.879
-control of everything i understand
-
-07:52.879 --> 00:07:54.800
-everything from the ground up but we
-
-07:54.800 --> 00:07:56.720
-have to understand that
-
-07:56.720 --> 00:07:58.879
-an imax it's a really complex
-
-07:58.879 --> 00:08:00.639
-application
-
-08:00.639 --> 00:08:01.759
-and
-
-08:01.759 --> 00:08:03.120
-i will say that if you have some
-
-08:03.120 --> 00:08:05.520
-foundation it will be easier and you
-
-08:05.520 --> 00:08:08.479
-don't have to rewrite the wheel 20 times
-
-08:08.479 --> 00:08:10.080
-right
-
-08:10.080 --> 00:08:12.720
-okay so attempts uh the same guy robert
-
-08:12.720 --> 00:08:13.680
-strand
-
-08:13.680 --> 00:08:16.879
-have two climax which is emacs and emacs
-
-08:16.879 --> 00:08:19.360
-like thing written in common lisp
-
-08:19.360 --> 00:08:21.599
-um the first ones the third one is
-
-08:21.599 --> 00:08:23.360
-abandon and the second one is a work in
-
-08:23.360 --> 00:08:24.840
-progress
-
-08:24.840 --> 00:08:27.039
-um it's really interesting the second
-
-08:27.039 --> 00:08:29.440
-one uses in fact the clefor buffer
-
-08:29.440 --> 00:08:32.159
-implementation one question
-
-08:32.159 --> 00:08:36.880
-and the first one is just a mcclaim um
-
-08:36.880 --> 00:08:39.200
-front end remax so it's really tight the
-
-08:39.200 --> 00:08:40.800
-so the the
-
-08:40.800 --> 00:08:42.959
-interface retired with the api so it's
-
-08:42.959 --> 00:08:44.880
-basically i'm sickly
-
-08:44.880 --> 00:08:48.320
-um software that's similar to an emacs
-
-08:48.320 --> 00:08:49.360
-right
-
-08:49.360 --> 00:08:51.760
-and the third one it's a lem project
-
-08:51.760 --> 00:08:54.240
-which is a common lisp editor that aims
-
-08:54.240 --> 00:08:56.320
-to be really close to remax and it
-
-08:56.320 --> 00:08:59.519
-probably fits the criteria but
-
-08:59.519 --> 00:09:01.600
-and uses the encourages for the
-
-09:01.600 --> 00:09:03.279
-interface for as i know and it's really
-
-09:03.279 --> 00:09:05.200
-commonly focused so it even has some
-
-09:05.200 --> 00:09:08.560
-major modes for other languages but
-
-09:08.560 --> 00:09:09.839
-i mean it's
-
-09:09.839 --> 00:09:11.279
-um
-
-09:11.279 --> 00:09:13.440
-it's mainly for common lisp written by
-
-09:13.440 --> 00:09:15.680
-common lisp and for common list
-
-09:15.680 --> 00:09:18.080
-developers
-
-09:18.080 --> 00:09:21.839
-um so i decided to write my own emacs
-
-09:21.839 --> 00:09:23.839
-but i don't want to write everything
-
-09:23.839 --> 00:09:25.680
-from scratch
-
-09:25.680 --> 00:09:28.720
-because i'm not a creator programmer
-
-09:28.720 --> 00:09:29.839
-and also because probably there's
-
-09:29.839 --> 00:09:33.040
-something that some people already tried
-
-09:33.040 --> 00:09:34.640
-and the first thing i noticed with all
-
-09:34.640 --> 00:09:36.480
-these attempts
-
-09:36.480 --> 00:09:38.959
-that they fail in compete with emacs so
-
-09:38.959 --> 00:09:41.920
-to say they don't have an imax conf
-
-09:41.920 --> 00:09:43.839
-and they don't support genuine max
-
-09:43.839 --> 00:09:45.440
-packages
-
-09:45.440 --> 00:09:46.880
-and that's a big deal because they're
-
-09:46.880 --> 00:09:49.519
-more of the thousands packages out there
-
-09:49.519 --> 00:09:51.040
-under great
-
-09:51.040 --> 00:09:53.120
-and imagine they want to convince
-
-09:53.120 --> 00:09:54.800
-someone to say hey try this editor
-
-09:54.800 --> 00:09:57.440
-instead of x thing
-
-09:57.440 --> 00:09:59.839
-i would say okay can i use git things so
-
-09:59.839 --> 00:10:02.079
-i have to write a git
-
-10:02.079 --> 00:10:02.959
-um
-
-10:02.959 --> 00:10:04.640
-liar
-
-10:04.640 --> 00:10:07.360
-maggot or mode and i want to play tetris
-
-10:07.360 --> 00:10:09.440
-the other road so that's
-
-10:09.440 --> 00:10:10.640
-really
-
-10:10.640 --> 00:10:12.640
-hard for one person to do
-
-10:12.640 --> 00:10:14.079
-so someone
-
-10:14.079 --> 00:10:16.240
-thought similar so they say okay i'm
-
-10:16.240 --> 00:10:18.079
-going to rewrite the maxi aph common
-
-10:18.079 --> 00:10:19.200
-lisp
-
-10:19.200 --> 00:10:21.440
-it was this is what back in 2005 by sol
-
-10:21.440 --> 00:10:22.399
-bets
-
-10:22.399 --> 00:10:24.000
-sabits
-
-10:24.000 --> 00:10:26.000
-but it was banjo in 2007. the project
-
-10:26.000 --> 00:10:27.600
-was called lice
-
-10:27.600 --> 00:10:28.640
-and
-
-10:28.640 --> 00:10:31.600
-it was a really interesting approach
-
-10:31.600 --> 00:10:34.880
-um it wasn't finished and it was lost in
-
-10:34.880 --> 00:10:35.920
-time
-
-10:35.920 --> 00:10:37.440
-so my idea was to continue with the
-
-10:37.440 --> 00:10:38.880
-project so the foundation was really
-
-10:38.880 --> 00:10:40.320
-interesting even though i didn't like
-
-10:40.320 --> 00:10:42.160
-some other
-
-10:42.160 --> 00:10:43.760
-designing choices
-
-10:43.760 --> 00:10:45.360
-um but i want to continue with projects
-
-10:45.360 --> 00:10:47.519
-finished you cannot see emacs api add a
-
-10:47.519 --> 00:10:49.839
-compatibility layer to use canoe max
-
-10:49.839 --> 00:10:52.000
-packages that's the selling point right
-
-10:52.000 --> 00:10:53.760
-so you don't have to
-
-10:53.760 --> 00:10:56.000
-use new things
-
-10:56.000 --> 00:10:57.839
-i like my emacs i just want to have my
-
-10:57.839 --> 00:11:00.560
-emacs with commodities that's it and
-
-11:00.560 --> 00:11:02.959
-also better probably a better buffer
-
-11:02.959 --> 00:11:05.519
-implementation so the idea now that uh
-
-11:05.519 --> 00:11:07.839
-having an imaginativity layer
-
-11:07.839 --> 00:11:10.320
-is there improving e-max upon it right
-
-11:10.320 --> 00:11:13.040
-you can use the e-max api or the new one
-
-11:13.040 --> 00:11:14.880
-depending on your needs
-
-11:14.880 --> 00:11:15.760
-you can also have that that
-
-11:15.760 --> 00:11:19.120
-compatibility of both
-
-11:19.120 --> 00:11:21.920
-so um i come up with cedar
-
-11:21.920 --> 00:11:25.839
-um cedar is my attempt is a nice
-
-11:25.839 --> 00:11:27.120
-fork
-
-11:27.120 --> 00:11:30.079
-i will say the hug for hard fork because
-
-11:30.079 --> 00:11:32.399
-i change um
-
-11:32.399 --> 00:11:35.200
-a lot of things and add a lot of things
-
-11:35.200 --> 00:11:37.519
-but it's similar still similar
-
-11:37.519 --> 00:11:38.320
-um
-
-11:38.320 --> 00:11:39.680
-and for this demo i'm going to use the
-
-11:39.680 --> 00:11:41.839
-cidar and courses branch we want to test
-
-11:41.839 --> 00:11:44.880
-it out because the other ones are a work
-
-11:44.880 --> 00:11:46.560
-in progress so one
-
-11:46.560 --> 00:11:48.079
-it's the mclean
-
-11:48.079 --> 00:11:49.519
-club for implementation which is not
-
-11:49.519 --> 00:11:51.360
-finished and doesn't run
-
-11:51.360 --> 00:11:54.560
-and the other one is with the visual
-
-11:54.560 --> 00:11:54.959
-that's to explain here but basically
-
-11:54.959 --> 00:11:57.200
-and debugger
-
-11:57.200 --> 00:11:59.600
-it's an interesting debugger similar to
-
-11:59.600 --> 00:12:01.839
-slime
-
-12:01.839 --> 00:12:04.560
-which is the superior lisp
-
-12:04.560 --> 00:12:07.279
-for re max let's begin with max so it's
-
-12:07.279 --> 00:12:12.079
-increases base also like um
-
-12:12.079 --> 00:12:13.760
-like limb
-
-12:13.760 --> 00:12:16.959
-but um way more easy simple
-
-12:16.959 --> 00:12:19.279
-um i
-
-12:19.279 --> 00:12:22.880
-write well i translate more or less this
-
-12:22.880 --> 00:12:24.560
-list mode functionality
-
-12:24.560 --> 00:12:26.079
-and it has similar
-
-12:26.079 --> 00:12:28.079
-genuine max api
-
-12:28.079 --> 00:12:29.600
-we'll see that in the demo
-
-12:29.600 --> 00:12:31.600
-um it's usable but i work in progress
-
-12:31.600 --> 00:12:33.279
-instead of functionality right now i'm
-
-12:33.279 --> 00:12:35.279
-not focusing on stability yet i'm
-
-12:35.279 --> 00:12:38.240
-focusing finish the mclean front end
-
-12:38.240 --> 00:12:41.120
-which i'm not even halfway there
-
-12:41.120 --> 00:12:42.720
-but i hope to finish it
-
-12:42.720 --> 00:12:45.519
-maybe next year who knows
-
-12:45.519 --> 00:12:46.959
-finish the compatibility layer from the
-
-12:46.959 --> 00:12:48.399
-new max packages i seen this i think
-
-12:48.399 --> 00:12:50.959
-this is doable i know how to do it i
-
-12:50.959 --> 00:12:52.639
-just need time
-
-12:52.639 --> 00:12:53.600
-maybe
-
-12:53.600 --> 00:12:55.760
-a little bit of caffeine
-
-12:55.760 --> 00:12:57.040
-coffee
-
-12:57.040 --> 00:12:59.279
-so uh let's go with the demo right
-
-12:59.279 --> 00:13:02.079
-so uh let's open terminal what's this
-
-13:02.079 --> 00:13:04.800
-anchor base let's go to quick lisp
-
-13:04.800 --> 00:13:06.800
-log there
-
-13:06.800 --> 00:13:11.279
-um and let's run it
-
-13:11.279 --> 00:13:13.760
-okay so now that we're here um it give
-
-13:13.760 --> 00:13:16.000
-us the welcome thing this is the main
-
-13:16.000 --> 00:13:17.519
-buffer it's like we'll say the emacs
-
-13:17.519 --> 00:13:19.200
-buffer when you enter
-
-13:19.200 --> 00:13:21.040
-um so we know that it's firming this is
-
-13:21.040 --> 00:13:22.800
-not hardcoded
-
-13:22.800 --> 00:13:25.040
-okay and now we see it's a major mode in
-
-13:25.040 --> 00:13:27.200
-the bottom right lisp
-
-13:27.200 --> 00:13:29.360
-it's lisp interaction and
-
-13:29.360 --> 00:13:32.880
-this is the name of the buffer right
-
-13:32.880 --> 00:13:35.600
-um okay so we have a couple of buffers
-
-13:35.600 --> 00:13:38.240
-we have scratch which is the fundamental
-
-13:38.240 --> 00:13:40.720
-mode and messages all right
-
-13:40.720 --> 00:13:42.399
-okay so
-
-13:42.399 --> 00:13:44.639
-let's get some interesting things first
-
-13:44.639 --> 00:13:46.399
-uh let's open a file
-
-13:46.399 --> 00:13:48.959
-so i think it's in
-
-13:48.959 --> 00:13:51.199
-programming
-
-13:51.199 --> 00:13:53.440
-a max
-
-13:53.440 --> 00:13:56.480
-conf 2021 and let's go to c there
-
-13:56.480 --> 00:13:58.079
-let's go to demo
-
-13:58.079 --> 00:14:00.000
-so let's open a file so
-
-14:00.000 --> 00:14:01.440
-um
-
-14:01.440 --> 00:14:03.040
-phone lock is not yet
-
-14:03.040 --> 00:14:04.399
-um
-
-14:04.399 --> 00:14:06.240
-well it's implemented so it's there but
-
-14:06.240 --> 00:14:07.920
-it's not active by default
-
-14:07.920 --> 00:14:09.680
-so let's open
-
-14:09.680 --> 00:14:11.360
-uh mx
-
-14:11.360 --> 00:14:13.600
-and let's go lisp
-
-14:13.600 --> 00:14:16.079
-interaction mode
-
-14:16.079 --> 00:14:17.279
-right
-
-14:17.279 --> 00:14:19.199
-so this when you show me here is the
-
-14:19.199 --> 00:14:21.680
-implementation of the kill sex sex
-
-14:21.680 --> 00:14:24.240
-express s expression command
-
-14:24.240 --> 00:14:28.880
-which is exactly the same point by point
-
-14:28.880 --> 00:14:31.279
-from the emacs one you can go right now
-
-14:31.279 --> 00:14:32.959
-umax and ask
-
-14:32.959 --> 00:14:35.279
-how is skills s expression defined this
-
-14:35.279 --> 00:14:36.480
-is the same
-
-14:36.480 --> 00:14:38.560
-and this is how you define a key so we
-
-14:38.560 --> 00:14:41.920
-have we can say uh describe
-
-14:41.920 --> 00:14:43.839
-symbol
-
-14:43.839 --> 00:14:46.399
-the package will be
-
-14:46.399 --> 00:14:48.399
-cedar and the symbol is
-
-14:48.399 --> 00:14:50.480
-global map
-
-14:50.480 --> 00:14:51.610
-global map
-
-14:51.610 --> 00:14:53.279
-[Applause]
-
-14:53.279 --> 00:14:54.240
-so
-
-14:54.240 --> 00:14:56.160
-it's a top level global keymap
-
-14:56.160 --> 00:14:58.480
-thank you for the information
-
-14:58.480 --> 00:15:02.160
-um but you can also say okay uh can i
-
-15:02.160 --> 00:15:05.120
-say okay
-
-15:05.120 --> 00:15:08.000
-global map
-
-15:08.000 --> 00:15:10.079
-okay i'll be giving this a key map so
-
-15:10.079 --> 00:15:11.600
-even though i want to aim to have the
-
-15:11.600 --> 00:15:12.480
-same
-
-15:12.480 --> 00:15:15.920
-um api the
-
-15:15.920 --> 00:15:17.760
-um sorry
-
-15:17.760 --> 00:15:20.079
-uh the back thing so the back end is
-
-15:20.079 --> 00:15:22.480
-going to be class oriented and not same
-
-15:22.480 --> 00:15:24.720
-any max but the return expression should
-
-15:24.720 --> 00:15:27.680
-be really similar so if we say current
-
-15:27.680 --> 00:15:29.759
-buffer
-
-15:29.759 --> 00:15:31.759
-it will give us the buffer it's not the
-
-15:31.759 --> 00:15:33.759
-same in emacs but it's a buffer object
-
-15:33.759 --> 00:15:35.519
-and we can also ask
-
-15:35.519 --> 00:15:37.519
-about let me try to remember
-
-15:37.519 --> 00:15:39.440
-oh there we are
-
-15:39.440 --> 00:15:40.639
-um
-
-15:40.639 --> 00:15:41.839
-but for
-
-15:41.839 --> 00:15:45.680
-name we can close this and open one here
-
-15:45.680 --> 00:15:48.079
-and we can say okay so we have this
-
-15:48.079 --> 00:15:48.959
-thing
-
-15:48.959 --> 00:15:50.959
-that will give us the name so uh this is
-
-15:50.959 --> 00:15:52.800
-similar to the emacs api
-
-15:52.800 --> 00:15:54.399
-as we saw we
-
-15:54.399 --> 00:15:55.120
-so
-
-15:55.120 --> 00:15:57.519
-briefly we have a lot a couple of
-
-15:57.519 --> 00:15:58.639
-commands
-
-15:58.639 --> 00:16:00.240
-um
-
-16:00.240 --> 00:16:02.160
-kills expression also have a little bit
-
-16:02.160 --> 00:16:03.759
-of
-
-16:03.759 --> 00:16:06.639
-help kill word kill line
-
-16:06.639 --> 00:16:07.680
-region
-
-16:07.680 --> 00:16:08.959
-kill buffer
-
-16:08.959 --> 00:16:11.440
-all things that we expect from emacs
-
-16:11.440 --> 00:16:12.800
-um
-
-16:12.800 --> 00:16:14.320
-and yeah this is there's a couple of
-
-16:14.320 --> 00:16:16.160
-things i may show but i think this is
-
-16:16.160 --> 00:16:18.320
-good enough i don't have enough time if
-
-16:18.320 --> 00:16:20.720
-you want more information
-
-16:20.720 --> 00:16:22.800
-so let's go back to it let's close the
-
-16:22.800 --> 00:16:25.680
-buffer does it work no it doesn't work
-
-16:25.680 --> 00:16:28.079
-okay now the head buffer no ah let's go
-
-16:28.079 --> 00:16:29.920
-to cedar
-
-16:29.920 --> 00:16:32.320
-okay so if you want more information
-
-16:32.320 --> 00:16:32.870
-um
-
-16:32.870 --> 00:16:34.399
-[Applause]
-
-16:34.399 --> 00:16:36.880
-first of all thank you very much um
-
-16:36.880 --> 00:16:39.040
-sorry i don't have enough time to show
-
-16:39.040 --> 00:16:40.320
-too much too many things i will see
-
-16:40.320 --> 00:16:42.560
-there but um
-
-16:42.560 --> 00:16:44.639
-yeah uh
-
-16:44.639 --> 00:16:45.839
-if you want more information you can
-
-16:45.839 --> 00:16:48.079
-always send me an email this is my
-
-16:48.079 --> 00:16:50.240
-webpage
-
-16:50.240 --> 16:53.720
-thank you very much
diff --git a/2021/captions/emacsconf-2021-clede--clede-the-common-lisp-emacs-development-environment--fermin-mf--main.vtt b/2021/captions/emacsconf-2021-clede--clede-the-common-lisp-emacs-development-environment--fermin-mf--main.vtt
deleted file mode 100644
index b10e834a..00000000
--- a/2021/captions/emacsconf-2021-clede--clede-the-common-lisp-emacs-development-environment--fermin-mf--main.vtt
+++ /dev/null
@@ -1,457 +0,0 @@
-WEBVTT
-
-00:00.240 --> 00:00:02.639
-hi my name is eduardox i'm the author of
-
-00:02.639 --> 00:00:05.040
-an mx package called ev and this talk is
-
-00:05.040 --> 00:00:07.200
-about a new feature of ev called test
-
-00:07.200 --> 00:00:08.400
-blocks
-
-00:08.400 --> 00:00:10.320
-let's start by demo
-
-00:10.320 --> 00:00:12.559
-this is a file in lua that defines these
-
-00:12.559 --> 00:00:14.160
-two functions here
-
-00:14.160 --> 00:00:16.720
-and with it if we type f8 several times
-
-00:16.720 --> 00:00:18.000
-here
-
-00:18.000 --> 00:00:20.880
-the f8s create a lower apple here and
-
-00:20.880 --> 00:00:24.400
-then they send these lines to the rebel
-
-00:24.400 --> 00:00:27.039
-where this line here loads this file
-
-00:27.039 --> 00:00:29.679
-into the repo and these other lines here
-
-00:29.679 --> 00:00:33.200
-are tests for these lines
-
-00:33.200 --> 00:00:35.120
-there's a lot of information here so let
-
-00:35.120 --> 00:00:40.480
-me organize them in a more visual way
-
-00:40.480 --> 00:00:42.960
-this is our file in lua
-
-00:42.960 --> 00:00:45.760
-lua sees this thing as a as a multi-line
-
-00:45.760 --> 00:00:47.760
-comment but we are going to see it as a
-
-00:47.760 --> 00:00:51.920
-test block and eev mode is active and so
-
-00:51.920 --> 00:00:54.480
-f8 does the right thing
-
-00:54.480 --> 00:00:57.360
-uh these three lines here set up the
-
-00:57.360 --> 00:01:00.079
-target buffer running a lower apple you
-
-01:00.079 --> 00:01:03.520
-can see the the prompt of the rebel here
-
-01:03.520 --> 00:01:05.360
-and these lines here are sent to the
-
-01:05.360 --> 00:01:07.200
-rebel
-
-01:07.200 --> 00:01:09.680
-and when we type f8 on the line that
-
-01:09.680 --> 00:01:10.720
-starts
-
-01:10.720 --> 00:01:13.600
-with the red star like these lines here
-
-01:13.600 --> 00:01:15.759
-what if it does is that it sends the
-
-01:15.759 --> 00:01:18.240
-rest of the line sorry it
-
-01:18.240 --> 00:01:21.119
-executes the rest of the line as lisp
-
-01:21.119 --> 00:01:23.920
-so it executes the three effects here
-
-01:23.920 --> 00:01:26.240
-executes these lines as lisp and they
-
-01:26.240 --> 00:01:29.520
-set up the target buffer here
-
-01:29.520 --> 00:01:31.759
-and when we type f8 on the line that
-
-01:31.759 --> 00:01:34.159
-does not start with the red star
-
-01:34.159 --> 00:01:36.640
-the f8 sends the line to the target
-
-01:36.640 --> 00:01:38.799
-buffer and moves down
-
-01:38.799 --> 00:01:41.040
-and this line loads this file under
-
-01:41.040 --> 00:01:45.200
-apple and these lines are tests
-
-01:45.200 --> 00:01:47.520
-so we just saw how to use an existing
-
-01:47.520 --> 00:01:50.000
-test block let's now see how to create a
-
-01:50.000 --> 00:01:52.640
-new test block we just have to run this
-
-01:52.640 --> 00:01:55.680
-meta x e insert test block
-
-01:55.680 --> 00:01:58.079
-or meta x euat
-
-01:58.079 --> 00:02:01.439
-and the result depends on the major mode
-
-02:01.439 --> 00:02:03.920
-uh let's see let's understand that that
-
-02:03.920 --> 00:02:06.079
-by looking at the source code
-
-02:06.079 --> 00:02:08.720
-eeit is an alias to this function here
-
-02:08.720 --> 00:02:10.640
-and this function is just five lines of
-
-02:10.640 --> 00:02:12.800
-code plus a dot string
-
-02:12.800 --> 00:02:14.560
-and the dot string explains that if the
-
-02:14.560 --> 00:02:16.480
-major mode is full mode then this
-
-02:16.480 --> 00:02:18.800
-function tries to call
-
-02:18.800 --> 00:02:21.360
-a function called e insert test plot
-
-02:21.360 --> 00:02:24.800
-test full mode if that function exists
-
-02:24.800 --> 00:02:27.280
-and that if that function does not exist
-
-02:27.280 --> 00:02:29.680
-then it yields an error
-
-02:29.680 --> 00:02:32.080
-and here's an example of one such
-
-02:32.080 --> 00:02:34.239
-function that's a function that
-
-02:34.239 --> 00:02:37.280
-inserts a test block in haskell mode
-
-02:37.280 --> 00:02:40.319
-and here we can see two functions like
-
-02:40.319 --> 00:02:42.480
-this one for haskell mode and one for
-
-02:42.480 --> 00:02:46.080
-javascript mode
-
-02:46.080 --> 00:02:48.560
-uh these functions look quite similar
-
-02:48.560 --> 00:02:49.440
-but
-
-02:49.440 --> 00:02:52.720
-their effects look quite different
-
-02:52.720 --> 00:02:55.760
-to make this comparison here i started
-
-02:55.760 --> 00:02:57.280
-by writing
-
-02:57.280 --> 00:02:59.680
-by creating seven files each one in a
-
-02:59.680 --> 00:03:01.120
-different language
-
-03:01.120 --> 00:03:03.040
-and initially each one of these files
-
-03:03.040 --> 00:03:04.959
-only had a comment with the name of the
-
-03:04.959 --> 00:03:08.239
-language so c haskell javascript org
-
-03:08.239 --> 00:03:10.560
-mode etc
-
-03:10.560 --> 00:03:13.040
-and in each one of these files i typed
-
-03:13.040 --> 00:03:16.959
-meta x eeit to insert the test block
-
-03:16.959 --> 00:03:18.800
-so here we can see that these test
-
-03:18.800 --> 00:03:20.319
-blocks are different
-
-03:20.319 --> 00:03:22.080
-for example the syntax for multi-line
-
-03:22.080 --> 00:03:24.000
-comments is different depending on the
-
-03:24.000 --> 00:03:25.200
-language
-
-03:25.200 --> 00:03:27.760
-uh this block here that selects which
-
-03:27.760 --> 00:03:30.319
-rebel to run is also different
-
-03:30.319 --> 00:03:33.200
-this line here that shows how that
-
-03:33.200 --> 00:03:34.879
-tells the repo to
-
-03:34.879 --> 00:03:37.680
-load the current file is also different
-
-03:37.680 --> 00:03:39.680
-depending on the language
-
-03:39.680 --> 00:03:41.840
-in some cases i had to improvise a bit
-
-03:41.840 --> 00:03:43.360
-for example
-
-03:43.360 --> 00:03:46.400
-uh to implement test blocks in shell
-
-03:46.400 --> 00:03:48.560
-mode i had to use this
-
-03:48.560 --> 00:03:52.560
-this with syntax using a rear document
-
-03:52.560 --> 00:03:55.280
-in tcl i also had to improvise a bit and
-
-03:55.280 --> 00:03:57.840
-in some cases i had to improvise a lot
-
-03:57.840 --> 00:04:01.120
-for example in org mode there isn't an
-
-04:01.120 --> 00:04:03.360
-obvious rebel to run and there isn't an
-
-04:03.360 --> 00:04:05.280
-obvious way to load the
-
-04:05.280 --> 00:04:08.080
-the current org file into the repo so
-
-04:08.080 --> 00:04:11.680
-the default action of meta x eeit
-
-04:11.680 --> 00:04:14.400
-in log mode is just to insert this thing
-
-04:14.400 --> 00:04:15.439
-here
-
-04:15.439 --> 00:04:17.519
-that we can use to run a
-
-04:17.519 --> 00:04:22.320
-shell in a rebel
-
-04:22.320 --> 00:04:23.199
-so
-
-04:23.199 --> 00:04:25.680
-these functions are quite similar and in
-
-04:25.680 --> 00:04:27.440
-the beginning i was writing all of them
-
-04:27.440 --> 00:04:29.680
-by hand but then i got bored and i wrote
-
-04:29.680 --> 00:04:32.320
-a function to help you write functions
-
-04:32.320 --> 00:04:33.840
-like that
-
-04:33.840 --> 00:04:35.759
-this function is called
-
-04:35.759 --> 00:04:38.080
-find e-uit-links and it creates a
-
-04:38.080 --> 00:04:39.919
-temporary buffer
-
-04:39.919 --> 00:04:41.680
-and the contents of this temporary
-
-04:41.680 --> 00:04:43.440
-buffer depends on the major mode for
-
-04:43.440 --> 00:04:45.680
-example if the current mode is python
-
-04:45.680 --> 00:04:48.880
-mode then running this function here
-
-04:48.880 --> 00:04:51.840
-creates a temporary buffer that lets me
-
-04:51.840 --> 00:04:53.840
-write the support for
-
-04:53.840 --> 00:04:56.880
-test blocks into python mode or rewrite
-
-04:56.880 --> 00:04:59.040
-the function that supports test blocks
-
-04:59.040 --> 00:05:00.880
-and python mode
-
-05:00.880 --> 00:05:03.600
-so if i'm in python mode and i run this
-
-05:03.600 --> 00:05:06.639
-i get a temporary buffer like this
-
-05:06.639 --> 00:05:08.800
-in which this thing is my template for
-
-05:08.800 --> 00:05:11.120
-the function usually this thing is
-
-05:11.120 --> 00:05:13.039
-totally wrong i have to rewrite to this
-
-05:13.039 --> 00:05:13.919
-string
-
-05:13.919 --> 00:05:16.400
-but the rest is right you can see python
-
-05:16.400 --> 00:05:18.720
-mode here in the name of the function so
-
-05:18.720 --> 00:05:21.360
-we have to edit this and save that to
-
-05:21.360 --> 00:05:22.840
-our home
-
-05:22.840 --> 00:05:25.520
-slash.mx and by the way these things
-
-05:25.520 --> 00:05:28.880
-here hyperlinks to many different things
-
-05:28.880 --> 00:05:31.600
-this elias piper link here
-
-05:31.600 --> 00:05:34.160
-points to the source code to the section
-
-05:34.160 --> 00:05:35.280
-in which
-
-05:35.280 --> 00:05:36.400
-these
-
-05:36.400 --> 00:05:38.400
-functions are defined
-
-05:38.400 --> 00:05:40.320
-so you can see this here the function
-
-05:40.320 --> 00:05:41.759
-that supports c
-
-05:41.759 --> 00:05:43.440
-the function for haskell the function
-
-05:43.440 --> 00:05:46.400
-for javascript etc
-
-05:46.400 --> 00:05:49.440
-and that's it this is a five-minute talk
-
-05:49.440 --> 00:05:50.960
-so i can't say much
-
-05:50.960 --> 00:05:52.639
-if you want more information or if you
-
-05:52.639 --> 00:05:55.120
-want to see real world examples how i
-
-05:55.120 --> 00:05:58.000
-use test blocks etc etc see this page
-
-05:58.000 --> 00:06:00.479
-here and i do not have time to explain
-
-06:00.479 --> 00:06:02.560
-this by the way here
-
-06:02.560 --> 06:06.080
-so that's it thanks
diff --git a/2021/talks/clede.md b/2021/talks/clede.md
index 5244bd8e..2a7ba415 100644
--- a/2021/talks/clede.md
+++ b/2021/talks/clede.md
@@ -5,16 +5,14 @@
<!-- You can manually edit this file to update the abstract, add links, etc. --->
-# CLEDE the Common Lisp Emacs Development Environment.
+# CLEDE the Common Lisp Emacs Development Environment
Fermin MF
[[!inline pages="internal(2021/info/clede-schedule)" raw="yes"]]
-[[!template id="help" tags="main_captions" message="""
-This talk does not have captions yet. Would you like to help [caption this talk](/2021/contribute/#edit-captions)? You may be able to start with these
+[[!template id="help" tags="main_captions" message="""This talk does not have captions yet. Would you like to help [caption this talk](/2021/contribute/#edit-captions)? You may be able to start with these
[autogenerated captions](https://media.emacsconf.org/2021/emacsconf-2021-clede--clede-the-common-lisp-emacs-development-environment--fermin-mf--main.vtt)
-and [timing information](https://media.emacsconf.org/2021/emacsconf-2021-clede--clede-the-common-lisp-emacs-development-environment--fermin-mf.en.srv2).
-"""]]
+and [timing information](https://media.emacsconf.org/2021/emacsconf-2021-clede--clede-the-common-lisp-emacs-development-environment--fermin-mf.en.srv2)."""]]
I've been developing a package that helps with the development of
Common Lisp's software,