summaryrefslogtreecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt
diff options
context:
space:
mode:
Diffstat (limited to '2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt')
-rw-r--r--2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt3301
1 files changed, 3301 insertions, 0 deletions
diff --git a/2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt b/2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt
new file mode 100644
index 00000000..e9bcd225
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--21-on-why-most-of-the-best-features-in-eev-look-like-5-minute-hacks--eduardo-ochs-autogen.vtt
@@ -0,0 +1,3301 @@
+WEBVTT
+
+00:00:00.080 --> 00:00:02.639
+hi my name is eduardo x I'm this person
+
+00:00:02.639 --> 00:00:03.439
+here
+
+00:00:03.439 --> 00:00:06.240
+and the title of this talk is on why
+
+00:00:06.240 --> 00:00:07.120
+most of
+
+00:00:07.120 --> 00:00:09.519
+most of the best features in ev look
+
+00:00:09.519 --> 00:00:11.599
+like five minute hacks
+
+00:00:11.599 --> 00:00:13.759
+and this is a presentation at the max
+
+00:00:13.759 --> 00:00:15.280
+conf 2020
+
+00:00:15.280 --> 00:00:23.199
+happening in november 22 28 and 29 2020
+
+00:00:23.199 --> 00:00:25.519
+so this is part one of the presentation
+
+00:00:25.519 --> 00:00:27.680
+and here I'm going to explain some
+
+00:00:27.680 --> 00:00:29.840
+some ideas that are prerequisites for
+
+00:00:29.840 --> 00:00:31.039
+understanding the rest of the
+
+00:00:31.039 --> 00:00:32.320
+presentation
+
+00:00:32.320 --> 00:00:35.440
+the three main keys of ev are matay meta
+
+00:00:35.440 --> 00:00:35.760
+k
+
+00:00:35.760 --> 00:00:37.920
+and mata j and I'm going to start by
+
+00:00:37.920 --> 00:00:42.079
+explaining metae and meta k
+
+00:00:42.079 --> 00:00:44.960
+metae is used to follow hyperlink and
+
+00:00:44.960 --> 00:00:46.800
+technically it is
+
+00:00:46.800 --> 00:00:49.680
+essentially just a ctrl e to move to the
+
+00:00:49.680 --> 00:00:50.879
+end of the line and then
+
+00:00:50.879 --> 00:00:54.320
+a ctrl x control e to execute this the
+
+00:00:54.320 --> 00:00:58.960
+sext before point at the end of the line
+
+00:00:58.960 --> 00:01:00.879
+and the thing is that a max comes with
+
+00:01:00.879 --> 00:01:03.120
+many functions that can be used as sex
+
+00:01:03.120 --> 00:01:05.040
+hyperlinks
+
+00:01:05.040 --> 00:01:07.040
+we can consider that they point to
+
+00:01:07.040 --> 00:01:09.040
+somewhere I'm going to refer to that as
+
+00:01:09.040 --> 00:01:09.520
+the
+
+00:01:09.520 --> 00:01:11.920
+target of the hyperlink and if we
+
+00:01:11.920 --> 00:01:12.960
+execute this
+
+00:01:12.960 --> 00:01:15.759
+sex paper links would go to that target
+
+00:01:15.759 --> 00:01:17.119
+for example this one
+
+00:01:17.119 --> 00:01:20.000
+is a hyperlink that points to a buffer
+
+00:01:20.000 --> 00:01:22.720
+with demand paid for cat
+
+00:01:22.720 --> 00:01:25.040
+and usually but not always after
+
+00:01:25.040 --> 00:01:27.040
+following the hyperlink we can go back
+
+00:01:27.040 --> 00:01:29.840
+by just skilling the the current buffer
+
+00:01:29.840 --> 00:01:30.720
+that the hyperlink
+
+00:01:30.720 --> 00:01:34.400
+created the target of the hyperlink
+
+00:01:34.400 --> 00:01:38.000
+but this example here is badly behaved
+
+00:01:38.000 --> 00:01:41.360
+if we execute it it creates a new frame
+
+00:01:41.360 --> 00:01:43.360
+and to go back to the previous situation
+
+00:01:43.360 --> 00:01:44.640
+we have to either
+
+00:01:44.640 --> 00:01:52.840
+click here or type ctrl x50
+
+00:01:52.840 --> 00:01:54.880
+uh
+
+00:01:54.880 --> 00:01:57.520
+so here are some examples of sex
+
+00:01:57.520 --> 00:02:00.640
+hyperlinks using standard max functions
+
+00:02:00.640 --> 00:02:03.600
+this third one is uh badly behaved in a
+
+00:02:03.600 --> 00:02:04.880
+different way
+
+00:02:04.880 --> 00:02:08.879
+if executed we the target is created in
+
+00:02:08.879 --> 00:02:09.840
+the same window
+
+00:02:09.840 --> 00:02:13.840
+as we are now but it also shows a lot of
+
+00:02:13.840 --> 00:02:16.000
+garbage here in the aqua area so
+
+00:02:16.000 --> 00:02:20.840
+the the current frame becomes a bit
+
+00:02:20.840 --> 00:02:23.280
+messy
+
+00:02:23.280 --> 00:02:26.160
+and well one of the first things that I
+
+00:02:26.160 --> 00:02:28.319
+did when I was creating av
+
+00:02:28.319 --> 00:02:30.720
+many many years ago was that I created
+
+00:02:30.720 --> 00:02:31.680
+variants
+
+00:02:31.680 --> 00:02:34.840
+of all these functions that were better
+
+00:02:34.840 --> 00:02:36.640
+behaved
+
+00:02:36.640 --> 00:02:38.640
+and they were better behaved in two
+
+00:02:38.640 --> 00:02:40.480
+senses the obvious one
+
+00:02:40.480 --> 00:02:43.040
+was that they they all created the
+
+00:02:43.040 --> 00:02:43.680
+target
+
+00:02:43.680 --> 00:02:45.840
+in the same window as before so I could
+
+00:02:45.840 --> 00:02:48.720
+go back by just typing meta k
+
+00:02:48.720 --> 00:02:51.040
+which is essentially just killed this
+
+00:02:51.040 --> 00:02:52.879
+buffer
+
+00:02:52.879 --> 00:02:55.200
+and well but I also implemented
+
+00:02:55.200 --> 00:02:56.480
+something extra that
+
+00:02:56.480 --> 00:02:59.040
+are the post back lists for example for
+
+00:02:59.040 --> 00:02:59.840
+example these
+
+00:02:59.840 --> 00:03:03.599
+extra arguments here are a postback list
+
+00:03:03.599 --> 00:03:06.080
+and this extra arguments specify
+
+00:03:06.080 --> 00:03:09.599
+position and the target buffer
+
+00:03:09.599 --> 00:03:13.040
+and in this example this this spot
+
+00:03:13.040 --> 00:03:16.720
+spec list means starting from the from
+
+00:03:16.720 --> 00:03:18.239
+the beginning of the buffer
+
+00:03:18.239 --> 00:03:20.560
+search for the first occurrence of this
+
+00:03:20.560 --> 00:03:22.239
+string
+
+00:03:22.239 --> 00:03:24.159
+after that after the beginning of the
+
+00:03:24.159 --> 00:03:25.519
+buffer and then
+
+00:03:25.519 --> 00:03:28.159
+search for the first occurrence of this
+
+00:03:28.159 --> 00:03:29.120
+string
+
+00:03:29.120 --> 00:03:33.760
+after that
+
+00:03:33.760 --> 00:03:36.560
+eev also defines some hyperlinks that do
+
+00:03:36.560 --> 00:03:38.799
+not create new buffers
+
+00:03:38.799 --> 00:03:41.280
+uh here is the first example if I
+
+00:03:41.280 --> 00:03:41.840
+execute
+
+00:03:41.840 --> 00:03:45.920
+this one this one is a hyperlink to the
+
+00:03:45.920 --> 00:03:46.959
+to the result
+
+00:03:46.959 --> 00:03:50.720
+of running this show comment date uh
+
+00:03:50.720 --> 00:03:52.959
+but instead of showing the result in the
+
+00:03:52.959 --> 00:03:55.040
+new buffer the result is shown
+
+00:03:55.040 --> 00:03:58.959
+here so if execute to this type link
+
+00:03:58.959 --> 00:04:01.840
+the result of date the output of data is
+
+00:04:01.840 --> 00:04:04.239
+shown in the echo area and if executed
+
+00:04:04.239 --> 00:04:07.120
+again
+
+00:04:07.120 --> 00:04:09.519
+it shows the result again and the result
+
+00:04:09.519 --> 00:04:11.519
+changes every second
+
+00:04:11.519 --> 00:04:15.200
+and if so this is a variant
+
+00:04:15.200 --> 00:04:18.720
+of fine sh
+
+00:04:18.720 --> 00:04:21.840
+uh find sh0 is the variant that
+
+00:04:21.840 --> 00:04:24.960
+just shows the output in the echo area
+
+00:04:24.960 --> 00:04:28.080
+and find sh shows the output in
+
+00:04:28.080 --> 00:04:31.759
+a new buffer
+
+00:04:31.759 --> 00:04:35.919
+and here is an example of a hyperlink
+
+00:04:35.919 --> 00:04:37.520
+that
+
+00:04:37.520 --> 00:04:40.000
+calls an external program if execute
+
+00:04:40.000 --> 00:04:41.280
+this
+
+00:04:41.280 --> 00:04:43.759
+it it calls google chrome to open a
+
+00:04:43.759 --> 00:04:46.639
+certain url
+
+00:04:46.639 --> 00:04:51.520
+here it is let's go back to mx
+
+00:04:51.520 --> 00:04:55.280
+if execute this happening here
+
+00:04:55.280 --> 00:04:58.479
+it invokes my favorite pdf viewer which
+
+00:04:58.479 --> 00:04:58.880
+is
+
+00:04:58.880 --> 00:05:02.560
+xpdf it makes xpdf
+
+00:05:02.560 --> 00:05:07.759
+open this pdf page it is pdf
+
+00:05:07.759 --> 00:05:10.880
+in this page and this other arguments
+
+00:05:10.880 --> 00:05:15.199
+are ignored let me show how it works
+
+00:05:15.199 --> 00:05:19.120
+here it is this is a an accept from a
+
+00:05:19.120 --> 00:05:20.160
+book
+
+00:05:20.160 --> 00:05:22.639
+so page 3 and the pdf corresponds to
+
+00:05:22.639 --> 00:05:23.199
+page
+
+00:05:23.199 --> 00:05:26.400
+113 in the book and
+
+00:05:26.400 --> 00:05:29.360
+this variant here of the hyperlink above
+
+00:05:29.360 --> 00:05:31.759
+it opens the pdf in a different way
+
+00:05:31.759 --> 00:05:34.560
+it runs a program called pdf to text on
+
+00:05:34.560 --> 00:05:36.479
+this pdf here
+
+00:05:36.479 --> 00:05:39.600
+and max takes the output of
+
+00:05:39.600 --> 00:05:42.880
+run epd after text on this pdf here
+
+00:05:42.880 --> 00:05:46.080
+and displays it in a buffer and now this
+
+00:05:46.080 --> 00:05:47.280
+postback list
+
+00:05:47.280 --> 00:05:50.000
+is interpreted in a different way this
+
+00:05:50.000 --> 00:05:51.280
+thing is interpreted
+
+00:05:51.280 --> 00:05:54.400
+as a as a number of a page and a max
+
+00:05:54.400 --> 00:05:54.800
+goes
+
+00:05:54.800 --> 00:05:57.520
+to page three by counting form feeds in
+
+00:05:57.520 --> 00:05:58.240
+the
+
+00:05:58.240 --> 00:06:01.440
+converted version of the pdf and then it
+
+00:06:01.440 --> 00:06:03.039
+searches for this string
+
+00:06:03.039 --> 00:06:06.319
+and in this three so let's execute this
+
+00:06:06.319 --> 00:06:08.479
+to see what happens
+
+00:06:08.479 --> 00:06:10.800
+here it is I opened the same page as
+
+00:06:10.800 --> 00:06:14.800
+before
+
+00:06:14.800 --> 00:06:18.400
+it starts with lecture one so
+
+00:06:18.400 --> 00:06:20.720
+the other hyperlink searched for this
+
+00:06:20.720 --> 00:06:25.520
+string and for this string here
+
+00:06:25.520 --> 00:06:28.160
+uh and this thing here is a hyperlink to
+
+00:06:28.160 --> 00:06:30.400
+video
+
+00:06:30.400 --> 00:06:32.720
+and when I executed it's going to open
+
+00:06:32.720 --> 00:06:34.560
+this video here
+
+00:06:34.560 --> 00:06:37.759
+at this time this time stamp let's see
+
+00:06:37.759 --> 00:06:41.199
+one two three one
+
+00:06:41.199 --> 00:06:46.840
+two three that's the way to do
+
+00:06:46.840 --> 00:06:49.440
+it
+
+00:06:49.440 --> 00:06:52.560
+and also some hyperlinks that that I
+
+00:06:52.560 --> 00:06:53.680
+defined
+
+00:06:53.680 --> 00:06:56.479
+uh they don't work like like usual
+
+00:06:56.479 --> 00:06:58.160
+hyperlinks they work more
+
+00:06:58.160 --> 00:07:01.440
+like browser buttons
+
+00:07:01.440 --> 00:07:06.240
+these buttons that appear in web pages
+
+00:07:06.240 --> 00:07:09.120
+in the sense that these buttons usually
+
+00:07:09.120 --> 00:07:11.360
+don't open a new page they usually
+
+00:07:11.360 --> 00:07:13.280
+just do something to change the current
+
+00:07:13.280 --> 00:07:14.960
+page
+
+00:07:14.960 --> 00:07:18.160
+if I execute this the action of this
+
+00:07:18.160 --> 00:07:18.880
+function
+
+00:07:18.880 --> 00:07:22.240
+eek is to uh
+
+00:07:22.240 --> 00:07:24.800
+it interprets this string as a series of
+
+00:07:24.800 --> 00:07:25.919
+keys and it
+
+00:07:25.919 --> 00:07:28.840
+acts as if the user had typed all these
+
+00:07:28.840 --> 00:07:30.319
+keys so
+
+00:07:30.319 --> 00:07:33.680
+if executed I get a hello in the next
+
+00:07:33.680 --> 00:07:34.400
+line
+
+00:07:34.400 --> 00:07:36.639
+if executed again I get another hello
+
+00:07:36.639 --> 00:07:39.440
+another hello hello hello etc etc
+
+00:07:39.440 --> 00:07:44.319
+let me undo this mess oops
+
+00:07:44.319 --> 00:07:47.840
+and here is another kind of button
+
+00:07:47.840 --> 00:07:51.440
+that defines a new function if I execute
+
+00:07:51.440 --> 00:07:54.879
+this sex here at this moment though is
+
+00:07:54.879 --> 00:07:55.759
+not defined
+
+00:07:55.759 --> 00:07:57.919
+and if I execute this mx is going to
+
+00:07:57.919 --> 00:08:00.000
+show me a message saying
+
+00:08:00.000 --> 00:08:03.599
+uh symbols function cell is not defined
+
+00:08:03.599 --> 00:08:05.840
+something like this
+
+00:08:05.840 --> 00:08:09.520
+but if I execute the defund
+
+00:08:09.520 --> 00:08:12.960
+this the action of this function o here
+
+00:08:12.960 --> 00:08:16.479
+is to run this which opens a certain
+
+00:08:16.479 --> 00:08:18.960
+directory
+
+00:08:18.960 --> 00:08:21.840
+let me go back and here is another
+
+00:08:21.840 --> 00:08:23.039
+button that defines
+
+00:08:23.039 --> 00:08:25.840
+several functions at the same time if I
+
+00:08:25.840 --> 00:08:26.479
+execute
+
+00:08:26.479 --> 00:08:32.320
+this
+
+00:08:32.320 --> 00:08:35.599
+note that the the result of executing
+
+00:08:35.599 --> 00:08:36.719
+this expression
+
+00:08:36.719 --> 00:08:38.640
+is the name of one of the functions that
+
+00:08:38.640 --> 00:08:40.080
+it defined
+
+00:08:40.080 --> 00:08:42.800
+that is this one here and let me explain
+
+00:08:42.800 --> 00:08:43.360
+the
+
+00:08:43.360 --> 00:08:46.959
+these examples uh one of the functions
+
+00:08:46.959 --> 00:08:48.800
+that this thing here defined
+
+00:08:48.800 --> 00:08:51.839
+is called find or git file where
+
+00:08:51.839 --> 00:08:54.640
+this or gate in the middle of its name
+
+00:08:54.640 --> 00:08:55.040
+is
+
+00:08:55.040 --> 00:08:59.600
+exactly this first argument to code cd
+
+00:08:59.600 --> 00:09:02.640
+and the action of running find or get
+
+00:09:02.640 --> 00:09:03.120
+file
+
+00:09:03.120 --> 00:09:06.399
+on a string like this is that
+
+00:09:06.399 --> 00:09:09.680
+find or get file takes the string
+
+00:09:09.680 --> 00:09:13.360
+and prepends this string to it
+
+00:09:13.360 --> 00:09:15.600
+this one here which is the second
+
+00:09:15.600 --> 00:09:17.920
+argument to called cd
+
+00:09:17.920 --> 00:09:21.760
+and then it executes find flying
+
+00:09:21.760 --> 00:09:25.680
+on the result which is this one
+
+00:09:25.680 --> 00:09:28.320
+and fine flying is my variant of find
+
+00:09:28.320 --> 00:09:28.800
+file
+
+00:09:28.800 --> 00:09:32.080
+that supports both spec lists
+
+00:09:32.080 --> 00:09:36.880
+and this function here that I'm
+
+00:09:36.880 --> 00:09:39.600
+referring to as a button it also defines
+
+00:09:39.600 --> 00:09:41.200
+a function called
+
+00:09:41.200 --> 00:09:44.880
+find audit node here where the or gate
+
+00:09:44.880 --> 00:09:46.080
+is the same string
+
+00:09:46.080 --> 00:09:50.320
+as here and this function opens a node
+
+00:09:50.320 --> 00:09:54.160
+of of an info manual this one
+
+00:09:54.160 --> 00:09:57.920
+this text here opens this node in the
+
+00:09:57.920 --> 00:10:00.080
+org manual
+
+00:10:00.080 --> 00:10:03.519
+it is equivalent to this text here
+
+00:10:03.519 --> 00:10:06.800
+so in the passage from this line to this
+
+00:10:06.800 --> 00:10:08.720
+line we prepended
+
+00:10:08.720 --> 00:10:11.920
+to the node name the name of the manual
+
+00:10:11.920 --> 00:10:15.040
+here and find node is my variant
+
+00:10:15.040 --> 00:10:18.160
+of this standard mx function here
+
+00:10:18.160 --> 00:10:20.399
+but find node also supports post
+
+00:10:20.399 --> 00:10:23.519
+backlists
+
+00:10:23.519 --> 00:10:26.640
+eevee also defines some functions that
+
+00:10:26.640 --> 00:10:28.640
+define shorter hyperlinks to pdfs and
+
+00:10:28.640 --> 00:10:30.800
+videos
+
+00:10:30.800 --> 00:10:32.880
+remember that this thing here is a
+
+00:10:32.880 --> 00:10:34.720
+shorter hyperlink to a
+
+00:10:34.720 --> 00:10:37.120
+to a file and this thing here is a
+
+00:10:37.120 --> 00:10:39.040
+shorter hyperlink to a node and
+
+00:10:39.040 --> 00:10:43.200
+in an mx menu in an info manual
+
+00:10:43.200 --> 00:10:46.079
+uh if we run this thing here this code
+
+00:10:46.079 --> 00:10:47.279
+pdf page
+
+00:10:47.279 --> 00:10:50.240
+this acts like a button that defines a
+
+00:10:50.240 --> 00:10:52.880
+certain function
+
+00:10:52.880 --> 00:10:56.399
+and this string this other sex
+
+00:10:56.399 --> 00:10:59.040
+here defines another function the first
+
+00:10:59.040 --> 00:11:00.240
+one defines
+
+00:11:00.240 --> 00:11:03.040
+the function find funcspivac page and
+
+00:11:03.040 --> 00:11:05.360
+the second one defines the function find
+
+00:11:05.360 --> 00:11:09.279
+from text when we run the
+
+00:11:09.279 --> 00:11:12.240
+file when we run findfoxpivotpage it
+
+00:11:12.240 --> 00:11:13.440
+opens
+
+00:11:13.440 --> 00:11:17.600
+this pdf here the name is
+
+00:11:17.600 --> 00:11:20.640
+quite long uh
+
+00:11:20.640 --> 00:11:23.839
+this example opens this pdf at page 8
+
+00:11:23.839 --> 00:11:26.079
+and searches for the string contents
+
+00:11:26.079 --> 00:11:28.000
+oops sorry in this case
+
+00:11:28.000 --> 00:11:31.279
+in this case it just ignores this string
+
+00:11:31.279 --> 00:11:33.519
+here it only considers
+
+00:11:33.519 --> 00:11:37.360
+the number of the page let's try
+
+00:11:37.360 --> 00:11:42.640
+ah we got
+
+00:11:42.640 --> 00:11:45.200
+here it is uh the contents of a book
+
+00:11:45.200 --> 00:11:46.880
+that is freely
+
+00:11:46.880 --> 00:11:50.800
+available uh here is another page of the
+
+00:11:50.800 --> 00:11:51.760
+book
+
+00:11:51.760 --> 00:11:55.040
+and if we execute the this happening
+
+00:11:55.040 --> 00:11:55.519
+here
+
+00:11:55.519 --> 00:11:58.399
+find funk's pivot text it converts the
+
+00:11:58.399 --> 00:11:59.920
+pdf to text
+
+00:11:59.920 --> 00:12:03.040
+and it searches for the page eight
+
+00:12:03.040 --> 00:12:05.040
+in it and then for the string this
+
+00:12:05.040 --> 00:12:08.079
+string here in page eight
+
+00:12:08.079 --> 00:12:12.240
+it takes a few seconds
+
+00:12:12.240 --> 00:12:16.160
+here it is so this is the
+
+00:12:16.160 --> 00:12:20.320
+ascii version of this contents page
+
+00:12:20.320 --> 00:12:25.040
+here uh note that this block here
+
+00:12:25.040 --> 00:12:28.800
+is a kind of an index to that book
+
+00:12:28.800 --> 00:12:31.680
+uh I have the full index somewhere but
+
+00:12:31.680 --> 00:12:33.600
+it's very long so I just copied a few
+
+00:12:33.600 --> 00:12:34.959
+lines here
+
+00:12:34.959 --> 00:12:38.959
+uh so this is a link to the to set
+
+00:12:38.959 --> 00:12:42.160
+section one chapter one this is the
+
+00:12:42.160 --> 00:12:45.360
+section 1.1
+
+00:12:45.360 --> 00:12:48.959
+section 1.1.1 and so on
+
+00:12:48.959 --> 00:12:54.000
+and here is a link to the index
+
+00:12:54.000 --> 00:12:58.079
+and here is a part of my index
+
+00:12:58.079 --> 00:13:02.800
+of positions in the video that we just
+
+00:13:02.800 --> 00:13:03.279
+saw
+
+00:13:03.279 --> 00:13:05.760
+that I think that are especially
+
+00:13:05.760 --> 00:13:07.360
+relevant
+
+00:13:07.360 --> 00:13:10.639
+uh so this I believe
+
+00:13:10.639 --> 00:13:12.399
+hyperlink is a kind of a button that
+
+00:13:12.399 --> 00:13:14.160
+defines this function here
+
+00:13:14.160 --> 00:13:18.839
+find punch and punch into the video
+
+00:13:18.839 --> 00:13:27.600
+uh
+
+00:13:27.600 --> 00:13:31.440
+and we can also use this for video
+
+00:13:31.440 --> 00:13:33.360
+tutorials for example
+
+00:13:33.360 --> 00:13:37.200
+this is a very good tutorial on on magic
+
+00:13:37.200 --> 00:13:40.880
+if we execute this
+
+00:13:40.880 --> 00:13:42.560
+then these functions are going to be
+
+00:13:42.560 --> 00:13:44.800
+defined and these functions open
+
+00:13:44.800 --> 00:13:48.399
+this tutorial on magic
+
+00:13:48.399 --> 00:13:50.079
+these are some of the positions in the
+
+00:13:50.079 --> 00:13:51.839
+tutorial that I found especially
+
+00:13:51.839 --> 00:13:53.920
+especially relevant this is a very dense
+
+00:13:53.920 --> 00:13:55.600
+tutorial I had to take notes of
+
+00:13:55.600 --> 00:13:56.480
+everything
+
+00:13:56.480 --> 00:13:59.040
+and I had to watch everything things
+
+00:13:59.040 --> 00:14:00.800
+several times
+
+00:14:00.800 --> 00:14:03.440
+and for example this is a link to the
+
+00:14:03.440 --> 00:14:06.480
+position in the tutorial that explains
+
+00:14:06.480 --> 00:14:09.600
+uh how in space
+
+00:14:09.600 --> 00:14:12.880
+space max magic magic
+
+00:14:12.880 --> 00:14:17.600
+interprets space gs magic status
+
+00:14:17.600 --> 00:14:20.480
+let's see beginners space gs to initiate
+
+00:14:20.480 --> 00:14:22.320
+magic's git status
+
+00:14:22.320 --> 00:14:25.600
+uh you can also do that's it
+
+00:14:25.600 --> 00:14:28.800
+and here are some examples that I
+
+00:14:28.800 --> 00:14:32.160
+took from somewhere else the video
+
+00:14:32.160 --> 00:14:34.240
+tutorials from
+
+00:14:34.240 --> 00:14:43.519
+ralph koenig about org mode
+
+00:14:43.519 --> 00:14:45.519
+now let me show how the functions that
+
+00:14:45.519 --> 00:14:47.440
+define this router hyperlinks are
+
+00:14:47.440 --> 00:14:48.720
+implemented
+
+00:14:48.720 --> 00:14:51.199
+the standard ways in max to define
+
+00:14:51.199 --> 00:14:52.480
+functions that define
+
+00:14:52.480 --> 00:14:55.760
+other functions would be with macros uh
+
+00:14:55.760 --> 00:14:58.320
+let's see an example this is a standard
+
+00:14:58.320 --> 00:14:59.040
+function that
+
+00:14:59.040 --> 00:15:01.540
+defines new functions
+
+00:15:01.540 --> 00:15:02.959
+[Music]
+
+00:15:02.959 --> 00:15:06.959
+and if we execute it one of the res
+
+00:15:06.959 --> 00:15:09.040
+its result is the last function that it
+
+00:15:09.040 --> 00:15:10.160
+defined which is
+
+00:15:10.160 --> 00:15:13.920
+e-grief which is here
+
+00:15:13.920 --> 00:15:16.959
+it's implemented as a macro we can
+
+00:15:16.959 --> 00:15:19.360
+look at the result of macro expand which
+
+00:15:19.360 --> 00:15:20.880
+is going to show
+
+00:15:20.880 --> 00:15:23.519
+show us the result of of this of the
+
+00:15:23.519 --> 00:15:25.519
+expansion of this
+
+00:15:25.519 --> 00:15:28.000
+instead of expanding and executing it
+
+00:15:28.000 --> 00:15:28.959
+just
+
+00:15:28.959 --> 00:15:33.199
+expands and shows us the result
+
+00:15:33.199 --> 00:15:36.000
+here the result is a bit messy is too
+
+00:15:36.000 --> 00:15:37.600
+big for
+
+00:15:37.600 --> 00:15:40.959
+humans to understand but we can run
+
+00:15:40.959 --> 00:15:44.240
+this or this text here that takes that
+
+00:15:44.240 --> 00:15:47.519
+that result and pretty prints it
+
+00:15:47.519 --> 00:15:50.959
+so this is the pretty printed version of
+
+00:15:50.959 --> 00:15:54.000
+uh this macro here
+
+00:15:54.000 --> 00:15:57.600
+we can see that it defines
+
+00:15:57.600 --> 00:16:01.120
+several functions here
+
+00:16:01.120 --> 00:16:06.399
+for example this one
+
+00:16:06.399 --> 00:16:09.360
+and this just as a curiosity is a link
+
+00:16:09.360 --> 00:16:09.920
+to
+
+00:16:09.920 --> 00:16:13.839
+the definition of cld struct
+
+00:16:13.839 --> 00:16:16.880
+and note that the code is huge uh
+
+00:16:16.880 --> 00:16:19.199
+well it's very well commented but it's
+
+00:16:19.199 --> 00:16:20.079
+it has
+
+00:16:20.079 --> 00:16:23.759
+lots of special cases it has uh
+
+00:16:23.759 --> 00:16:26.959
+it supports lots of constructions and so
+
+00:16:26.959 --> 00:16:27.920
+it's huge and
+
+00:16:27.920 --> 00:16:30.639
+it's very difficult to understand I mean
+
+00:16:30.639 --> 00:16:33.360
+I found it very difficult to understand
+
+00:16:33.360 --> 00:16:35.040
+and here's a link to document the
+
+00:16:35.040 --> 00:16:37.759
+documentation of cld struct
+
+00:16:37.759 --> 00:16:42.000
+here in the manual for
+
+00:16:42.000 --> 00:16:46.000
+cl which is a kind of support for some
+
+00:16:46.000 --> 00:16:50.480
+features of common lisp in the max
+
+00:16:50.480 --> 00:16:53.600
+so let's compare this standard way of
+
+00:16:53.600 --> 00:16:54.639
+defining
+
+00:16:54.639 --> 00:16:56.560
+functions that define new functions
+
+00:16:56.560 --> 00:16:58.320
+which is with macros
+
+00:16:58.320 --> 00:17:01.680
+with this I'm going to use a slogan
+
+00:17:01.680 --> 00:17:04.160
+repeatedly the slogan is I am a very bad
+
+00:17:04.160 --> 00:17:06.319
+programmer
+
+00:17:06.319 --> 00:17:08.880
+I'm a very bad programmer so when I was
+
+00:17:08.880 --> 00:17:10.640
+trying to create functions that would
+
+00:17:10.640 --> 00:17:12.240
+define new functions
+
+00:17:12.240 --> 00:17:14.480
+I found it easier to generally generate
+
+00:17:14.480 --> 00:17:16.400
+this code as text
+
+00:17:16.400 --> 00:17:20.559
+and then run read and eval in it
+
+00:17:20.559 --> 00:17:23.199
+the code cd that we saw in the previous
+
+00:17:23.199 --> 00:17:24.640
+section
+
+00:17:24.640 --> 00:17:28.079
+we can see the the code that it produces
+
+00:17:28.079 --> 00:17:29.039
+by
+
+00:17:29.039 --> 00:17:31.039
+making a copy of this line and
+
+00:17:31.039 --> 00:17:33.280
+prepending this string here to the name
+
+00:17:33.280 --> 00:17:34.480
+of the function
+
+00:17:34.480 --> 00:17:36.720
+so instead of running code cd we run
+
+00:17:36.720 --> 00:17:38.400
+find code cd
+
+00:17:38.400 --> 00:17:41.280
+and it creates a new temporary buffer
+
+00:17:41.280 --> 00:17:44.400
+with the code that
+
+00:17:44.400 --> 00:17:47.760
+code cd would execute
+
+00:17:47.760 --> 00:17:50.320
+so it's a series of the fonts and a few
+
+00:17:50.320 --> 00:17:54.080
+set cues and so on
+
+00:17:54.080 --> 00:17:57.600
+and this thing is implemented mostly as
+
+00:17:57.600 --> 00:17:59.120
+a template
+
+00:17:59.120 --> 00:18:02.160
+uh the lola the
+
+00:18:02.160 --> 00:18:04.160
+there's an inner function called ee
+
+00:18:04.160 --> 00:18:06.240
+called cd base that receives just
+
+00:18:06.240 --> 00:18:08.799
+these two arguments and it says
+
+00:18:08.799 --> 00:18:10.640
+essentially just runs the function
+
+00:18:10.640 --> 00:18:14.320
+e template zero on the string here and
+
+00:18:14.320 --> 00:18:16.480
+the things between curly braces are
+
+00:18:16.480 --> 00:18:18.559
+substituted by the values
+
+00:18:18.559 --> 00:18:23.600
+of these arguments here
+
+00:18:23.600 --> 00:18:25.919
+there's one part of the tutorial here
+
+00:18:25.919 --> 00:18:28.480
+that explains all these things
+
+00:18:28.480 --> 00:18:31.039
+uh except for the rationale for some
+
+00:18:31.039 --> 00:18:32.559
+design decisions
+
+00:18:32.559 --> 00:18:35.360
+and those design decisions are one of
+
+00:18:35.360 --> 00:18:37.280
+the many motivations for this talk but
+
+00:18:37.280 --> 00:18:37.760
+um
+
+00:18:37.760 --> 00:18:39.679
+we are I'm only going to explain these
+
+00:18:39.679 --> 00:18:42.640
+things in detail at the end
+
+00:18:42.640 --> 00:18:48.480
+which is kind of so on
+
+00:18:48.480 --> 00:18:50.320
+in the beginning I said that the three
+
+00:18:50.320 --> 00:18:51.600
+main keys of av
+
+00:18:51.600 --> 00:18:56.000
+are meta e meta k and meta j
+
+00:18:56.000 --> 00:19:00.080
+let's see now what met what meta j does
+
+00:19:00.080 --> 00:19:01.520
+uh but I need to start with some
+
+00:19:01.520 --> 00:19:04.640
+motivation uh the motivation is that we
+
+00:19:04.640 --> 00:19:06.559
+can define commands with very short
+
+00:19:06.559 --> 00:19:08.240
+names and actually I became kind of
+
+00:19:08.240 --> 00:19:10.160
+addicted to that
+
+00:19:10.160 --> 00:19:13.200
+this is an example of the fund that
+
+00:19:13.200 --> 00:19:15.600
+defines a comment with a very short name
+
+00:19:15.600 --> 00:19:18.000
+its name is just one letter e
+
+00:19:18.000 --> 00:19:21.200
+and I can invoke you invoke it with meta
+
+00:19:21.200 --> 00:19:21.520
+x
+
+00:19:21.520 --> 00:19:24.720
+e if I type meta xp
+
+00:19:24.720 --> 00:19:27.360
+now it opens a latex file that I'm
+
+00:19:27.360 --> 00:19:31.130
+working on
+
+00:19:31.130 --> 00:19:32.559
+[Music]
+
+00:19:32.559 --> 00:19:35.200
+and I create most of my latex files
+
+00:19:35.200 --> 00:19:37.120
+using
+
+00:19:37.120 --> 00:19:39.200
+template template-based functions like
+
+00:19:39.200 --> 00:19:40.559
+the the
+
+00:19:40.559 --> 00:19:43.760
+implementation of code cd above and
+
+00:19:43.760 --> 00:19:46.559
+this template-based functions create
+
+00:19:46.559 --> 00:19:49.280
+files with extension.tag
+
+00:19:49.280 --> 00:19:51.280
+that start with a series of the fonts
+
+00:19:51.280 --> 00:19:53.919
+and comments for example
+
+00:19:53.919 --> 00:19:56.240
+let's look at this example here if I
+
+00:19:56.240 --> 00:19:58.320
+execute find the attack links with this
+
+00:19:58.320 --> 00:19:59.440
+argument
+
+00:19:59.440 --> 00:20:02.159
+uh it's going it's going to do several
+
+00:20:02.159 --> 00:20:03.440
+things for creating a
+
+00:20:03.440 --> 00:20:06.880
+file called slash tmp slash forward
+
+00:20:06.880 --> 00:20:08.320
+attack
+
+00:20:08.320 --> 00:20:11.200
+and the header of that file is going to
+
+00:20:11.200 --> 00:20:12.400
+be this
+
+00:20:12.400 --> 00:20:16.080
+which starts with two and with three
+
+00:20:16.080 --> 00:20:19.280
+the fonts with functions with very short
+
+00:20:19.280 --> 00:20:21.919
+names and comments
+
+00:20:21.919 --> 00:20:27.520
+let's compare with the situation here
+
+00:20:27.520 --> 00:20:32.799
+in my file 2020 favorite conventions.tag
+
+00:20:32.799 --> 00:20:34.640
+I have this header here in which I
+
+00:20:34.640 --> 00:20:37.039
+define six functions with very short
+
+00:20:37.039 --> 00:20:39.360
+names
+
+00:20:39.360 --> 00:20:41.919
+and in this case here that is even
+
+00:20:41.919 --> 00:20:44.799
+explained in the tutorial
+
+00:20:44.799 --> 00:20:48.000
+this we have mnemonics for
+
+00:20:48.000 --> 00:20:51.520
+these short names here and c is compile
+
+00:20:51.520 --> 00:20:54.799
+d is display I mean display the pdf
+
+00:20:54.799 --> 00:20:57.760
+and e is added in the sense of make a
+
+00:20:57.760 --> 00:20:58.159
+max
+
+00:20:58.159 --> 00:21:02.320
+visit that file
+
+00:21:02.320 --> 00:21:05.039
+okay now I can explain what is meta j
+
+00:21:05.039 --> 00:21:06.480
+itself
+
+00:21:06.480 --> 00:21:08.880
+uh we just saw comments with very short
+
+00:21:08.880 --> 00:21:09.600
+names
+
+00:21:09.600 --> 00:21:12.320
+and the idea is behind meta j is that we
+
+00:21:12.320 --> 00:21:14.840
+can define comments with very short
+
+00:21:14.840 --> 00:21:16.480
+numbers
+
+00:21:16.480 --> 00:21:19.679
+let me explain this uh
+
+00:21:19.679 --> 00:21:22.559
+the short explanation for what meta j
+
+00:21:22.559 --> 00:21:23.039
+does
+
+00:21:23.039 --> 00:21:25.360
+is that it jumps to set certain
+
+00:21:25.360 --> 00:21:27.039
+predefined places
+
+00:21:27.039 --> 00:21:29.760
+in particular a meta j without a numeric
+
+00:21:29.760 --> 00:21:30.799
+argument
+
+00:21:30.799 --> 00:21:33.280
+takes us to a buffer with with the basic
+
+00:21:33.280 --> 00:21:34.080
+help
+
+00:21:34.080 --> 00:21:37.679
+and a list of the current age of targets
+
+00:21:37.679 --> 00:21:39.760
+and this is something that is a bit
+
+00:21:39.760 --> 00:21:41.520
+simpler to understand
+
+00:21:41.520 --> 00:21:44.559
+if we type meta five meta j
+
+00:21:44.559 --> 00:21:47.919
+then meta j runs this sex
+
+00:21:47.919 --> 00:21:51.120
+here that is associated to
+
+00:21:51.120 --> 00:21:55.440
+the argument five I say that the target
+
+00:21:55.440 --> 00:21:59.039
+for the argument five is this one
+
+00:21:59.039 --> 00:22:01.520
+and if the argument is true then the
+
+00:22:01.520 --> 00:22:03.760
+target associated to the to the true
+
+00:22:03.760 --> 00:22:07.039
+is this sex here that opens
+
+00:22:07.039 --> 00:22:09.600
+well this one opens the main tutorial vv
+
+00:22:09.600 --> 00:22:10.240
+and this one
+
+00:22:10.240 --> 00:22:13.679
+opens another tutorial
+
+00:22:13.679 --> 00:22:15.679
+this is a link to one of the tutorials
+
+00:22:15.679 --> 00:22:20.480
+of ev to the part that explains meta j
+
+00:22:20.480 --> 00:22:22.559
+I've copied the the main part of the
+
+00:22:22.559 --> 00:22:24.559
+text here
+
+00:22:24.559 --> 00:22:28.159
+the header the header that meta j shows
+
+00:22:28.159 --> 00:22:31.360
+let me show it very quickly here
+
+00:22:31.360 --> 00:22:33.919
+here is their header and here is their
+
+00:22:33.919 --> 00:22:36.320
+rest
+
+00:22:36.320 --> 00:22:39.039
+the header is very beginner friendly and
+
+00:22:39.039 --> 00:22:40.000
+if you're a beginner
+
+00:22:40.000 --> 00:22:42.159
+who only knows how to use meta e to
+
+00:22:42.159 --> 00:22:44.559
+execute and met
+
+00:22:44.559 --> 00:22:46.799
+this should be okay and meta k to go
+
+00:22:46.799 --> 00:22:48.240
+back
+
+00:22:48.240 --> 00:22:52.320
+then you can and should use that header
+
+00:22:52.320 --> 00:22:56.720
+I mean this header here
+
+00:22:56.720 --> 00:22:59.360
+as your main starting point and every
+
+00:22:59.360 --> 00:23:00.799
+time that you feel lost
+
+00:23:00.799 --> 00:23:03.679
+you can type meta j and to go back to
+
+00:23:03.679 --> 00:23:04.799
+that header
+
+00:23:04.799 --> 00:23:07.039
+and you can use its links to navigate to
+
+00:23:07.039 --> 00:23:08.000
+the documentation
+
+00:23:08.000 --> 00:23:11.360
+for max nav let me explain that
+
+00:23:11.360 --> 00:23:14.799
+uh this header here has several ellis
+
+00:23:14.799 --> 00:23:15.679
+hyperlinks
+
+00:23:15.679 --> 00:23:19.039
+one here one here
+
+00:23:19.039 --> 00:23:22.400
+one here one here and so on
+
+00:23:22.400 --> 00:23:25.760
+uh these ones are links to the
+
+00:23:25.760 --> 00:23:29.280
+to the intros which are the tutorials
+
+00:23:29.280 --> 00:23:30.880
+find if you quick enter in the main
+
+00:23:30.880 --> 00:23:32.480
+tutorial and find ev
+
+00:23:32.480 --> 00:23:35.760
+keys intro is a kind of tutorial that is
+
+00:23:35.760 --> 00:23:36.720
+an index of
+
+00:23:36.720 --> 00:23:40.000
+the main keys
+
+00:23:40.000 --> 00:23:42.559
+and after that we have an explanation of
+
+00:23:42.559 --> 00:23:43.279
+what some
+
+00:23:43.279 --> 00:23:46.799
+numeric prefixes do so if we type
+
+00:23:46.799 --> 00:23:50.240
+met one method j the effect of that is
+
+00:23:50.240 --> 00:23:53.200
+exactly the same as executing this and
+
+00:23:53.200 --> 00:23:54.640
+we can execute this
+
+00:23:54.640 --> 00:24:00.159
+with meta e also
+
+00:24:00.159 --> 00:24:03.679
+meta tube meta j runs this sex and
+
+00:24:03.679 --> 00:24:06.960
+I can also execute it with meta e
+
+00:24:06.960 --> 00:24:10.559
+here it is it's this uh
+
+00:24:10.559 --> 00:24:14.240
+intro this uh
+
+00:24:14.240 --> 00:24:18.400
+sandbox tutorial and
+
+00:24:18.400 --> 00:24:24.640
+here is another sandbox tutorial
+
+00:24:24.640 --> 00:24:27.039
+let me go back and then the
+
+00:24:27.039 --> 00:24:28.720
+documentation says that
+
+00:24:28.720 --> 00:24:30.880
+that header the header that is beginner
+
+00:24:30.880 --> 00:24:31.760
+friendly
+
+00:24:31.760 --> 00:24:33.679
+is followed by a section that is very
+
+00:24:33.679 --> 00:24:35.520
+beginner unfriendly
+
+00:24:35.520 --> 00:24:37.600
+that contains a series of the fonts like
+
+00:24:37.600 --> 00:24:40.400
+these ones
+
+00:24:40.400 --> 00:24:43.440
+here the last line of the header is this
+
+00:24:43.440 --> 00:24:44.640
+comment here
+
+00:24:44.640 --> 00:24:46.720
+and then we have several defense like
+
+00:24:46.720 --> 00:24:48.559
+this
+
+00:24:48.559 --> 00:24:51.440
+let me explain how these things work
+
+00:24:51.440 --> 00:24:53.840
+technically what happens when we type
+
+00:24:53.840 --> 00:24:57.360
+meta j without any arguments is that it
+
+00:24:57.360 --> 00:24:57.840
+runs
+
+00:24:57.840 --> 00:25:00.960
+eu jump with argument neil and then
+
+00:25:00.960 --> 00:25:04.640
+this runs 5 e jumps
+
+00:25:04.640 --> 00:25:06.480
+when I run meta j with a numeric
+
+00:25:06.480 --> 00:25:08.000
+argument for example
+
+00:25:08.000 --> 00:25:11.120
+with argument 5 it runs a jump
+
+00:25:11.120 --> 00:25:14.400
+5 and e jump five
+
+00:25:14.400 --> 00:25:17.679
+uh concatenates this five one
+
+00:25:17.679 --> 00:25:20.400
+to make a name of a function this
+
+00:25:20.400 --> 00:25:21.679
+function here
+
+00:25:21.679 --> 00:25:24.320
+and it executes this function e jump
+
+00:25:24.320 --> 00:25:24.720
+five
+
+00:25:24.720 --> 00:25:28.880
+you jump uh dash five
+
+00:25:28.880 --> 00:25:31.919
+and eu jump dash five is
+
+00:25:31.919 --> 00:25:35.520
+executes find ev equity intro
+
+00:25:35.520 --> 00:25:39.360
+if I execute just meta j
+
+00:25:39.360 --> 00:25:41.440
+the section that shows the current age
+
+00:25:41.440 --> 00:25:43.919
+on targets
+
+00:25:43.919 --> 00:25:47.120
+has a line for e job five this is that
+
+00:25:47.120 --> 00:25:48.159
+is exactly the
+
+00:25:48.159 --> 00:25:52.400
+thing that I was explaining before
+
+00:25:52.400 --> 00:25:54.840
+so we can use meta j to navigate the
+
+00:25:54.840 --> 00:25:59.520
+tutorials and we can copy the links
+
+00:25:59.520 --> 00:26:03.440
+sorry we can copy links to the to
+
+00:26:03.440 --> 00:26:07.919
+tutorials to our notes
+
+00:26:07.919 --> 00:26:11.840
+oh sorry this has some typos
+
+00:26:11.840 --> 00:26:14.880
+for example if I execute this
+
+00:26:14.880 --> 00:26:18.080
+I go to a section of this tutorial here
+
+00:26:18.080 --> 00:26:20.640
+that explains the main keys of ev
+
+00:26:20.640 --> 00:26:24.320
+and these things are hyperlinks I can
+
+00:26:24.320 --> 00:26:26.240
+mark a hyperlink like this it is just
+
+00:26:26.240 --> 00:26:27.440
+plain text and I
+
+00:26:27.440 --> 00:26:30.559
+can copy it to my notes and the idea is
+
+00:26:30.559 --> 00:26:31.760
+that every time
+
+00:26:31.760 --> 00:26:33.520
+every time that I find something that is
+
+00:26:33.520 --> 00:26:35.520
+interesting I can create a hyperlink to
+
+00:26:35.520 --> 00:26:36.240
+it
+
+00:26:36.240 --> 00:26:38.720
+and I can put these links in my notes so
+
+00:26:38.720 --> 00:26:40.799
+I can navigate back
+
+00:26:40.799 --> 00:26:42.960
+to all the interesting positions very
+
+00:26:42.960 --> 00:26:48.799
+quickly
+
+00:26:48.799 --> 00:26:51.760
+okay next feature if we type meta
+
+00:26:51.760 --> 00:26:54.080
+uppercase j
+
+00:26:54.080 --> 00:26:57.600
+uh then
+
+00:26:57.600 --> 00:27:00.080
+this this is a function that transforms
+
+00:27:00.080 --> 00:27:03.679
+the current line in a certain way
+
+00:27:03.679 --> 00:27:06.080
+let me give an example let me isolate
+
+00:27:06.080 --> 00:27:07.360
+this and let me create
+
+00:27:07.360 --> 00:27:09.919
+duplicate this line to to make clear
+
+00:27:09.919 --> 00:27:11.039
+what happens
+
+00:27:11.039 --> 00:27:14.240
+if I type meta uppercase j here
+
+00:27:14.240 --> 00:27:16.880
+this line here becomes the fund for a
+
+00:27:16.880 --> 00:27:17.440
+jump
+
+00:27:17.440 --> 00:27:21.200
+6 and the target of this e-jump
+
+00:27:21.200 --> 00:27:24.799
+is exactly this sex here
+
+00:27:24.799 --> 00:27:28.559
+let me undo this mess
+
+00:27:28.559 --> 00:27:31.360
+and if the first word in the line is not
+
+00:27:31.360 --> 00:27:32.840
+a number for example
+
+00:27:32.840 --> 00:27:36.240
+here let me do the same thing
+
+00:27:36.240 --> 00:27:39.039
+duplicate the line and type meta
+
+00:27:39.039 --> 00:27:41.200
+uppercase j
+
+00:27:41.200 --> 00:27:44.240
+then mat uppercase j converts that to a
+
+00:27:44.240 --> 00:27:45.600
+defund that defines
+
+00:27:45.600 --> 00:27:49.440
+a function with a very short name
+
+00:27:49.440 --> 00:27:52.720
+and this function with a very short name
+
+00:27:52.720 --> 00:27:56.720
+opens this file here in the directory
+
+00:27:56.720 --> 00:27:59.360
+with the copy of the the git repository
+
+00:27:59.360 --> 00:28:01.360
+for org mode
+
+00:28:01.360 --> 00:28:05.360
+let me undo the mass again
+
+00:28:05.360 --> 00:28:09.120
+oops
+
+00:28:09.120 --> 00:28:14.640
+that's it
+
+00:28:14.640 --> 00:28:17.760
+meta uppercase j is a
+
+00:28:17.760 --> 00:28:21.279
+particular case of of something that
+
+00:28:21.279 --> 00:28:24.559
+I use a lot in eevee I have if he has
+
+00:28:24.559 --> 00:28:25.279
+lots of
+
+00:28:25.279 --> 00:28:28.799
+comments that sorry key sequences
+
+00:28:28.799 --> 00:28:31.780
+that are like meta uppercase letter and
+
+00:28:31.780 --> 00:28:33.200
+[Music]
+
+00:28:33.200 --> 00:28:35.279
+almost all of them operate on the
+
+00:28:35.279 --> 00:28:37.279
+current line and transform the current
+
+00:28:37.279 --> 00:28:38.880
+line in certain way
+
+00:28:38.880 --> 00:28:42.000
+for example this is a file name
+
+00:28:42.000 --> 00:28:45.360
+and if I type meta uppercase f here
+
+00:28:45.360 --> 00:28:48.640
+it becomes a link to that file this is
+
+00:28:48.640 --> 00:28:50.000
+the name of a month page
+
+00:28:50.000 --> 00:28:53.600
+and if I type meta uppercase m here
+
+00:28:53.600 --> 00:28:55.760
+it converts that to the link to a month
+
+00:28:55.760 --> 00:28:58.080
+page and this is a shell command
+
+00:28:58.080 --> 00:29:01.679
+and if I type meta uppercase s here
+
+00:29:01.679 --> 00:29:04.960
+it converts that to a link to a
+
+00:29:04.960 --> 00:29:08.720
+to find fan shell
+
+00:29:08.720 --> 00:29:11.919
+and until a few years ago these
+
+00:29:11.919 --> 00:29:12.960
+functions
+
+00:29:12.960 --> 00:29:16.159
+with matter uppercase letter were half
+
+00:29:16.159 --> 00:29:18.080
+of my main ways of creating sex
+
+00:29:18.080 --> 00:29:18.880
+hyperlinks
+
+00:29:18.880 --> 00:29:21.039
+with few key strokes in the beginning of
+
+00:29:21.039 --> 00:29:22.399
+course I had to create my
+
+00:29:22.399 --> 00:29:25.600
+sex pipelines by typing each character
+
+00:29:25.600 --> 00:29:28.640
+but uh after some time and decided that
+
+00:29:28.640 --> 00:29:31.520
+I needed something more efficient
+
+00:29:31.520 --> 00:29:34.559
+so this is end of part one of the two of
+
+00:29:34.559 --> 00:29:34.960
+the
+
+00:29:34.960 --> 00:29:38.480
+presentation
+
+00:29:38.480 --> 00:29:40.640
+so this is part two of the presentation
+
+00:29:40.640 --> 00:29:41.760
+and the main theme
+
+00:29:41.760 --> 00:29:44.320
+here is the standard describe key
+
+00:29:44.320 --> 00:29:46.320
+function that comes with the max
+
+00:29:46.320 --> 00:29:49.200
+and my variant of it the thing is that
+
+00:29:49.200 --> 00:29:50.960
+the standard described key in max
+
+00:29:50.960 --> 00:29:53.120
+is user friendly but it is hacker
+
+00:29:53.120 --> 00:29:55.600
+unfriendly well I felt so
+
+00:29:55.600 --> 00:29:58.559
+and when I tried to complement it by by
+
+00:29:58.559 --> 00:30:00.799
+writing a hacker friendly version of it
+
+00:30:00.799 --> 00:30:03.120
+that produced the sex hyperlinks that I
+
+00:30:03.120 --> 00:30:03.919
+needed
+
+00:30:03.919 --> 00:30:05.440
+I got something that I found really
+
+00:30:05.440 --> 00:30:07.039
+lovely and
+
+00:30:07.039 --> 00:30:09.679
+several of the main designs design
+
+00:30:09.679 --> 00:30:12.480
+decisions of eev can be seen there
+
+00:30:12.480 --> 00:30:14.320
+but when I showed my variants to other
+
+00:30:14.320 --> 00:30:15.520
+people they hated it
+
+00:30:15.520 --> 00:30:17.760
+they felt that it was totally against
+
+00:30:17.760 --> 00:30:19.360
+their notions of
+
+00:30:19.360 --> 00:30:23.440
+user friendliness
+
+00:30:23.440 --> 00:30:25.760
+okay so let's see the standard describe
+
+00:30:25.760 --> 00:30:26.799
+key if I run
+
+00:30:26.799 --> 00:30:30.159
+this hyperlink here I get
+
+00:30:30.159 --> 00:30:32.399
+this the result of running the scribe
+
+00:30:32.399 --> 00:30:34.399
+key on the key down
+
+00:30:34.399 --> 00:30:36.399
+and this is a big buffer with some
+
+00:30:36.399 --> 00:30:38.080
+things in italics
+
+00:30:38.080 --> 00:30:41.360
+and some hyperlinks here these
+
+00:30:41.360 --> 00:30:43.120
+hyperlinks are standard in the sense
+
+00:30:43.120 --> 00:30:43.679
+that
+
+00:30:43.679 --> 00:30:46.240
+the targets are not visible and they are
+
+00:30:46.240 --> 00:30:47.760
+implemented using
+
+00:30:47.760 --> 00:30:50.799
+buttons in a max lisp this section of
+
+00:30:50.799 --> 00:30:51.200
+the
+
+00:30:51.200 --> 00:30:53.919
+mx list manual describes how buttons
+
+00:30:53.919 --> 00:30:56.799
+work
+
+00:30:56.799 --> 00:31:00.640
+and the the source code is
+
+00:31:00.640 --> 00:31:03.440
+quite difficult I mean when I was
+
+00:31:03.440 --> 00:31:04.240
+starting to
+
+00:31:04.240 --> 00:31:06.559
+to try to decipher this when I was a
+
+00:31:06.559 --> 00:31:07.600
+beginner
+
+00:31:07.600 --> 00:31:11.200
+using max 19.34 I felt that this
+
+00:31:11.200 --> 00:31:12.320
+described key was
+
+00:31:12.320 --> 00:31:15.519
+very difficult to understand uh
+
+00:31:15.519 --> 00:31:20.080
+and I felt that the the designers the
+
+00:31:20.080 --> 00:31:22.640
+the people who wrote it were sacrificing
+
+00:31:22.640 --> 00:31:23.679
+too much of the
+
+00:31:23.679 --> 00:31:26.159
+hacker friendliness that I was expecting
+
+00:31:26.159 --> 00:31:31.279
+from it to make it beginner friendly
+
+00:31:31.279 --> 00:31:33.600
+let me explain what are the the problems
+
+00:31:33.600 --> 00:31:34.799
+with the standard
+
+00:31:34.799 --> 00:31:36.559
+the describe key if we think that
+
+00:31:36.559 --> 00:31:38.640
+hyperlinks are things like this
+
+00:31:38.640 --> 00:31:41.600
+with the target and the text then in the
+
+00:31:41.600 --> 00:31:43.600
+button hyperlinks of describe key
+
+00:31:43.600 --> 00:31:47.120
+this three bad things happen first
+
+00:31:47.120 --> 00:31:49.120
+it is hard to extract the target from
+
+00:31:49.120 --> 00:31:51.200
+the hyperlink second it is hard to
+
+00:31:51.200 --> 00:31:52.000
+recreate
+
+00:31:52.000 --> 00:31:54.480
+a list of code that would go to that
+
+00:31:54.480 --> 00:31:55.440
+target
+
+00:31:55.440 --> 00:31:57.519
+and third it is hard to copy the full
+
+00:31:57.519 --> 00:31:59.840
+hyperlink including the targets to other
+
+00:31:59.840 --> 00:32:00.640
+buffers
+
+00:32:00.640 --> 00:32:04.960
+I only knew how to copy the text
+
+00:32:04.960 --> 00:32:07.279
+when I was trying to decipher what
+
+00:32:07.279 --> 00:32:09.039
+described key was doing
+
+00:32:09.039 --> 00:32:11.679
+I created lots of hyperlinks like this
+
+00:32:11.679 --> 00:32:12.159
+to
+
+00:32:12.159 --> 00:32:14.960
+inspect the text properties and things
+
+00:32:14.960 --> 00:32:16.159
+like that
+
+00:32:16.159 --> 00:32:18.480
+for example in the description of the
+
+00:32:18.480 --> 00:32:20.000
+key down
+
+00:32:20.000 --> 00:32:23.600
+here we have a button that points to
+
+00:32:23.600 --> 00:32:26.799
+simple dotel
+
+00:32:26.799 --> 00:32:29.679
+the text of that button is simple.l this
+
+00:32:29.679 --> 00:32:31.600
+hyperlinks goes to the
+
+00:32:31.600 --> 00:32:34.320
+to the middle of this button hyperlink
+
+00:32:34.320 --> 00:32:35.519
+here
+
+00:32:35.519 --> 00:32:39.120
+uh this hyperlink here
+
+00:32:39.120 --> 00:32:41.919
+goes to the middle of the button of this
+
+00:32:41.919 --> 00:32:43.279
+button hyperlink
+
+00:32:43.279 --> 00:32:46.240
+and then inspects its text properties
+
+00:32:46.240 --> 00:32:47.679
+and then goes to
+
+00:32:47.679 --> 00:32:51.679
+this section here of the description
+
+00:32:51.679 --> 00:32:53.679
+so this is a high level description of
+
+00:32:53.679 --> 00:32:56.159
+the text properties
+
+00:32:56.159 --> 00:32:58.000
+I mean the text properties that make it
+
+00:32:58.000 --> 00:33:00.000
+a button and this is a
+
+00:33:00.000 --> 00:33:02.480
+lower level description of the these
+
+00:33:02.480 --> 00:33:04.320
+text properties
+
+00:33:04.320 --> 00:33:08.000
+and the button that points to
+
+00:33:08.000 --> 00:33:11.440
+forward line sorry the the button that
+
+00:33:11.440 --> 00:33:11.919
+whose
+
+00:33:11.919 --> 00:33:14.399
+text is forward line this one is
+
+00:33:14.399 --> 00:33:16.480
+slightly different
+
+00:33:16.480 --> 00:33:19.039
+this hyperlink here goes to the middle
+
+00:33:19.039 --> 00:33:21.200
+of that button
+
+00:33:21.200 --> 00:33:24.559
+and this hyperlink goes to the mid to
+
+00:33:24.559 --> 00:33:25.760
+the middle of that button
+
+00:33:25.760 --> 00:33:28.559
+inspects its text properties and go to
+
+00:33:28.559 --> 00:33:29.360
+the section
+
+00:33:29.360 --> 00:33:32.559
+of this button of this help
+
+00:33:32.559 --> 00:33:35.760
+uh buffer here that describe the the
+
+00:33:35.760 --> 00:33:36.399
+button
+
+00:33:36.399 --> 00:33:39.120
+and the lower level view of the text
+
+00:33:39.120 --> 00:33:41.679
+properties
+
+00:33:41.679 --> 00:33:45.519
+so I started to with things like this
+
+00:33:45.519 --> 00:33:47.519
+to understand what these buttons were
+
+00:33:47.519 --> 00:33:50.159
+doing and I was able to figure out how
+
+00:33:50.159 --> 00:33:50.960
+these things are
+
+00:33:50.960 --> 00:33:53.120
+implemented and describe key and then
+
+00:33:53.120 --> 00:33:55.519
+similar help functions in max
+
+00:33:55.519 --> 00:33:57.760
+and I discovered that one of the main
+
+00:33:57.760 --> 00:34:00.000
+lower level functions that a max used
+
+00:34:00.000 --> 00:34:01.360
+for this
+
+00:34:01.360 --> 00:34:04.080
+is a function called find function no
+
+00:34:04.080 --> 00:34:05.279
+select
+
+00:34:05.279 --> 00:34:08.240
+if I run find function no select on next
+
+00:34:08.240 --> 00:34:09.929
+line
+
+00:34:09.929 --> 00:34:11.200
+[Music]
+
+00:34:11.200 --> 00:34:14.240
+it returns a pair
+
+00:34:14.240 --> 00:34:18.079
+a cons made of a buffer and a position
+
+00:34:18.079 --> 00:34:20.560
+so I created functions that would that
+
+00:34:20.560 --> 00:34:21.679
+would
+
+00:34:21.679 --> 00:34:24.320
+uh follow this that would open that
+
+00:34:24.320 --> 00:34:25.119
+buffer
+
+00:34:25.119 --> 00:34:28.320
+in that position and then this is a
+
+00:34:28.320 --> 00:34:29.679
+postback list
+
+00:34:29.679 --> 00:34:31.679
+so we could go to these positions and
+
+00:34:31.679 --> 00:34:33.919
+then search for this string and another
+
+00:34:33.919 --> 00:34:36.000
+string and another string and so on
+
+00:34:36.000 --> 00:34:40.320
+so this goes to the definition of find a
+
+00:34:40.320 --> 00:34:41.040
+function
+
+00:34:41.040 --> 00:34:44.159
+and then to a to a string
+
+00:34:44.159 --> 00:34:47.919
+after it and I use these things to
+
+00:34:47.919 --> 00:34:49.040
+implement my own
+
+00:34:49.040 --> 00:34:51.839
+functions that pointed to the same the
+
+00:34:51.839 --> 00:34:52.960
+same targets
+
+00:34:52.960 --> 00:34:55.440
+as the button hyperlinks and describe
+
+00:34:55.440 --> 00:35:00.240
+key
+
+00:35:00.240 --> 00:35:03.200
+again let me show the comparison this is
+
+00:35:03.200 --> 00:35:05.599
+the standard describe key
+
+00:35:05.599 --> 00:35:10.480
+here and this is my variant
+
+00:35:10.480 --> 00:35:13.839
+uh it creates a buffer with links
+
+00:35:13.839 --> 00:35:17.680
+with the list hyperlinks about this key
+
+00:35:17.680 --> 00:35:20.960
+we get this so each one of these
+
+00:35:20.960 --> 00:35:22.960
+functions is either a blank line
+
+00:35:22.960 --> 00:35:28.720
+or a or an ellipse hyperlink
+
+00:35:28.720 --> 00:35:31.760
+here is a slight variant of the of the
+
+00:35:31.760 --> 00:35:32.880
+function
+
+00:35:32.880 --> 00:35:35.920
+find e key links above in this variant
+
+00:35:35.920 --> 00:35:38.079
+the argument is a string that has to be
+
+00:35:38.079 --> 00:35:39.280
+processed by
+
+00:35:39.280 --> 00:35:42.400
+read cbd macro to convert it to the
+
+00:35:42.400 --> 00:35:45.280
+lower level format
+
+00:35:45.280 --> 00:35:48.160
+and note that these functions here that
+
+00:35:48.160 --> 00:35:49.040
+I wrote
+
+00:35:49.040 --> 00:35:51.440
+they display temporary buffers with no
+
+00:35:51.440 --> 00:35:53.599
+help at all
+
+00:35:53.599 --> 00:35:57.359
+uh to be honest there's a link to a
+
+00:35:57.359 --> 00:35:58.560
+tutorial here but
+
+00:35:58.560 --> 00:36:01.680
+this is a recent edition so let's ignore
+
+00:36:01.680 --> 00:36:03.200
+this
+
+00:36:03.200 --> 00:36:06.640
+uh they they display temporary buffers
+
+00:36:06.640 --> 00:36:08.320
+with no help at all just lots of
+
+00:36:08.320 --> 00:36:09.520
+hyperlinks
+
+00:36:09.520 --> 00:36:11.599
+and these hyperlinks can be they are
+
+00:36:11.599 --> 00:36:13.359
+very hacker friendly in the sense that
+
+00:36:13.359 --> 00:36:15.040
+they can be followed with
+
+00:36:15.040 --> 00:36:17.520
+metae they can be copied to other
+
+00:36:17.520 --> 00:36:19.920
+buffers because they are plain text
+
+00:36:19.920 --> 00:36:23.680
+because they are just sex
+
+00:36:23.680 --> 00:36:26.240
+and they can be inspected in the sense
+
+00:36:26.240 --> 00:36:28.000
+that
+
+00:36:28.000 --> 00:36:32.400
+for example here
+
+00:36:32.400 --> 00:36:34.079
+we have a hyperlink to a function that
+
+00:36:34.079 --> 00:36:35.520
+we
+
+00:36:35.520 --> 00:36:37.599
+it may be difficult to figure out what
+
+00:36:37.599 --> 00:36:39.200
+this function does
+
+00:36:39.200 --> 00:36:42.320
+but we can go to that position and then
+
+00:36:42.320 --> 00:36:45.839
+type ctrl h f to see the descript
+
+00:36:45.839 --> 00:36:48.240
+description of this function
+
+00:36:48.240 --> 00:36:52.400
+and here is a hyperlink to
+
+00:36:52.400 --> 00:36:53.890
+the does that
+
+00:36:53.890 --> 00:36:56.000
+[Music]
+
+00:36:56.000 --> 00:37:00.160
+in my syntax say
+
+00:37:00.160 --> 00:37:02.800
+and this list of hyperlinks were
+
+00:37:02.800 --> 00:37:04.480
+generated by
+
+00:37:04.480 --> 00:37:08.000
+this code here that just just uh
+
+00:37:08.000 --> 00:37:11.119
+used a back quote to to generate
+
+00:37:11.119 --> 00:37:14.640
+lists of sex
+
+00:37:14.640 --> 00:37:18.240
+and I I felt that this function here
+
+00:37:18.240 --> 00:37:21.040
+uh that just generated this list was
+
+00:37:21.040 --> 00:37:22.160
+very easy to understand
+
+00:37:22.160 --> 00:37:24.960
+and to modify so this was hacker
+
+00:37:24.960 --> 00:37:28.480
+friendly in the way that I wanted
+
+00:37:28.480 --> 00:37:31.599
+and so I started using this
+
+00:37:31.599 --> 00:37:34.079
+and this idea of using buffers with sex
+
+00:37:34.079 --> 00:37:36.800
+fiber links and no help violated
+
+00:37:36.800 --> 00:37:38.720
+all the notions of user friendliness
+
+00:37:38.720 --> 00:37:40.079
+that I knew so I was
+
+00:37:40.079 --> 00:37:42.000
+exploring some something new at that
+
+00:37:42.000 --> 00:37:46.160
+time and this is the end of part two
+
+00:37:46.160 --> 00:37:49.359
+part three of this presentation is uh
+
+00:37:49.359 --> 00:37:52.240
+about the killer features of ev or why
+
+00:37:52.240 --> 00:37:54.800
+everybody should use av or at least have
+
+00:37:54.800 --> 00:37:57.920
+eev installed even if they think the tv
+
+00:37:57.920 --> 00:37:59.280
+is too weird
+
+00:37:59.280 --> 00:38:01.440
+so this is a very quick listing eevee
+
+00:38:01.440 --> 00:38:03.440
+has lease hyperlinks which are super
+
+00:38:03.440 --> 00:38:04.240
+nice
+
+00:38:04.240 --> 00:38:06.560
+it comes with lots of tutorials the main
+
+00:38:06.560 --> 00:38:07.599
+one here
+
+00:38:07.599 --> 00:38:10.800
+explains all the main features
+
+00:38:10.800 --> 00:38:14.079
+uh there's also a tutorial with that's
+
+00:38:14.079 --> 00:38:15.040
+an index of
+
+00:38:15.040 --> 00:38:18.079
+all the other tutorials here
+
+00:38:18.079 --> 00:38:21.680
+many many many tutorials uh if we forget
+
+00:38:21.680 --> 00:38:24.079
+everything we can just type meta j
+
+00:38:24.079 --> 00:38:27.280
+and remember that this this part here is
+
+00:38:27.280 --> 00:38:28.880
+beginner friendly and the rest is
+
+00:38:28.880 --> 00:38:30.839
+beginner
+
+00:38:30.839 --> 00:38:32.960
+unfriendly
+
+00:38:32.960 --> 00:38:38.320
+there's a tutorial on max list here
+
+00:38:38.320 --> 00:38:41.920
+it mainly explains how to understand
+
+00:38:41.920 --> 00:38:44.640
+a lisp code which is much easier than
+
+00:38:44.640 --> 00:38:46.320
+it's much easier to understand the lisp
+
+00:38:46.320 --> 00:38:47.040
+code and
+
+00:38:47.040 --> 00:38:48.800
+then to understand how to program in a
+
+00:38:48.800 --> 00:38:50.160
+lisp and
+
+00:38:50.160 --> 00:38:53.440
+most people are only going to need this
+
+00:38:53.440 --> 00:38:55.920
+uh ev is very easy to install it's in
+
+00:38:55.920 --> 00:38:58.240
+helper so we just need to do
+
+00:38:58.240 --> 00:39:00.560
+this thing here and it's very
+
+00:39:00.560 --> 00:39:03.520
+non-invasive
+
+00:39:03.520 --> 00:39:06.079
+uh years ago several years ago it was a
+
+00:39:06.079 --> 00:39:08.000
+very invasive package but then I changed
+
+00:39:08.000 --> 00:39:08.960
+everything
+
+00:39:08.960 --> 00:39:13.520
+now uh if we toggle ev mode on and off
+
+00:39:13.520 --> 00:39:16.640
+what's going to happen is just that the
+
+00:39:16.640 --> 00:39:20.000
+evk map key map becomes activated or
+
+00:39:20.000 --> 00:39:21.599
+deactivated
+
+00:39:21.599 --> 00:39:24.720
+and when we install the evita
+
+00:39:24.720 --> 00:39:28.320
+I mean when we require the only things
+
+00:39:28.320 --> 00:39:28.640
+that
+
+00:39:28.640 --> 00:39:32.640
+happens globally distance here
+
+00:39:32.640 --> 00:39:34.480
+several functions and variables become
+
+00:39:34.480 --> 00:39:36.240
+defined all of them have
+
+00:39:36.240 --> 00:39:40.079
+standard prefixes except for one
+
+00:39:40.079 --> 00:39:43.040
+three characters are changed in the
+
+00:39:43.040 --> 00:39:44.480
+standard display table
+
+00:39:44.480 --> 00:39:48.640
+to make them appear as colored glyphs
+
+00:39:48.640 --> 00:39:52.079
+the red star and two and the open
+
+00:39:52.079 --> 00:39:54.160
+double angle brackets and the closed
+
+00:39:54.160 --> 00:39:58.160
+double angle brackets
+
+00:39:58.160 --> 00:40:01.359
+and two environment variables are set
+
+00:40:01.359 --> 00:40:04.560
+and this is a trivial technicality
+
+00:40:04.560 --> 00:40:07.599
+we just run a def advice
+
+00:40:07.599 --> 00:40:10.160
+around one function that that is used by
+
+00:40:10.160 --> 00:40:10.800
+man
+
+00:40:10.800 --> 00:40:14.240
+justice also
+
+00:40:14.240 --> 00:40:16.720
+eevee has a very high discoverability
+
+00:40:16.720 --> 00:40:18.400
+factor
+
+00:40:18.400 --> 00:40:21.839
+and there's a way to create a very easy
+
+00:40:21.839 --> 00:40:25.200
+way to create a hyperlink to here
+
+00:40:25.200 --> 00:40:27.760
+uh I do not have time to show this now
+
+00:40:27.760 --> 00:40:29.760
+but for example if I'm
+
+00:40:29.760 --> 00:40:32.960
+here in a tutorial and I think that that
+
+00:40:32.960 --> 00:40:34.480
+this
+
+00:40:34.480 --> 00:40:36.240
+section is something interesting and I
+
+00:40:36.240 --> 00:40:39.520
+want to create a hyperlink to it
+
+00:40:39.520 --> 00:40:41.200
+I just have to type a certain key
+
+00:40:41.200 --> 00:40:43.040
+sequence here
+
+00:40:43.040 --> 00:40:46.800
+and here I got a hyperlink that I can
+
+00:40:46.800 --> 00:40:50.400
+copy to my notes and this hyperlink goes
+
+00:40:50.400 --> 00:40:52.260
+to that section
+
+00:40:52.260 --> 00:40:58.240
+[Music]
+
+00:40:58.240 --> 00:41:00.720
+we have hyperlinks that point to
+
+00:41:00.720 --> 00:41:02.319
+specific positions in
+
+00:41:02.319 --> 00:41:05.839
+pdf documents and nvidia files here
+
+00:41:05.839 --> 00:41:09.119
+this one opens a pdf and displays it
+
+00:41:09.119 --> 00:41:09.680
+this one
+
+00:41:09.680 --> 00:41:13.920
+opens a pdf and converts it to text
+
+00:41:13.920 --> 00:41:16.720
+and this one opens the video in a
+
+00:41:16.720 --> 00:41:18.400
+certain position
+
+00:41:18.400 --> 00:41:20.480
+and we also have a way to control
+
+00:41:20.480 --> 00:41:22.079
+shell-like programs
+
+00:41:22.079 --> 00:41:25.280
+uh in my presentation of the last year I
+
+00:41:25.280 --> 00:41:27.440
+spent one third of the presentation
+
+00:41:27.440 --> 00:41:29.520
+explaining this and I think that I gave
+
+00:41:29.520 --> 00:41:31.839
+a very good demonstration there
+
+00:41:31.839 --> 00:41:35.680
+the demonstration is here
+
+00:41:35.680 --> 00:41:38.800
+we can go to the web page and go to
+
+00:41:38.800 --> 00:41:41.839
+this section of the web page
+
+00:41:41.839 --> 00:41:47.680
+and start by this point
+
+00:41:47.680 --> 00:41:51.440
+and here we have an explanation and so
+
+00:41:51.440 --> 00:41:55.920
+on whatever
+
+00:41:55.920 --> 00:41:58.720
+and I've already mentioned this before
+
+00:41:58.720 --> 00:41:59.200
+uh
+
+00:41:59.200 --> 00:42:01.119
+eevee comes with a very nice elise
+
+00:42:01.119 --> 00:42:02.240
+tutorial
+
+00:42:02.240 --> 00:42:04.240
+so that's it this is the end of part
+
+00:42:04.240 --> 00:42:05.599
+three
+
+00:42:05.599 --> 00:42:07.359
+so this is the last part of my
+
+00:42:07.359 --> 00:42:09.839
+presentation and it's about the title of
+
+00:42:09.839 --> 00:42:10.160
+the
+
+00:42:10.160 --> 00:42:11.839
+the presentation I called the
+
+00:42:11.839 --> 00:42:13.599
+presentation why
+
+00:42:13.599 --> 00:42:16.560
+most of the best features in eevee look
+
+00:42:16.560 --> 00:42:16.960
+like
+
+00:42:16.960 --> 00:42:20.480
+like five minute hacks uh I've already
+
+00:42:20.480 --> 00:42:20.960
+run off
+
+00:42:20.960 --> 00:42:23.920
+out of time so I have to to skip this
+
+00:42:23.920 --> 00:42:24.800
+first
+
+00:42:24.800 --> 00:42:28.720
+part here in which I describe how I
+
+00:42:28.720 --> 00:42:31.280
+was exposed to several different notions
+
+00:42:31.280 --> 00:42:33.440
+of user friendliness
+
+00:42:33.440 --> 00:42:35.920
+and how the one that really blew my mind
+
+00:42:35.920 --> 00:42:37.119
+was the one in
+
+00:42:37.119 --> 00:42:41.680
+in a certain uh fought environment
+
+00:42:41.680 --> 00:42:44.160
+uh and let me make the long long story
+
+00:42:44.160 --> 00:42:46.560
+very very short
+
+00:42:46.560 --> 00:42:49.280
+uh in all this process I switched from
+
+00:42:49.280 --> 00:42:49.680
+from
+
+00:42:49.680 --> 00:42:52.079
+the belief that the user was always
+
+00:42:52.079 --> 00:42:52.960
+someone else
+
+00:42:52.960 --> 00:42:55.359
+someone external and that that I always
+
+00:42:55.359 --> 00:42:57.040
+had to write my programs for
+
+00:42:57.040 --> 00:43:00.079
+this external user I switched
+
+00:43:00.079 --> 00:43:02.240
+from from that to the belief that I am
+
+00:43:02.240 --> 00:43:03.200
+the user
+
+00:43:03.200 --> 00:43:05.839
+and I can play with the interface that I
+
+00:43:05.839 --> 00:43:07.040
+want I can
+
+00:43:07.040 --> 00:43:10.079
+write programs which that
+
+00:43:10.079 --> 00:43:12.079
+that only I am going to understand I can
+
+00:43:12.079 --> 00:43:14.240
+experiment with hundreds of interfaces
+
+00:43:14.240 --> 00:43:16.079
+and then select the best ones
+
+00:43:16.079 --> 00:43:18.720
+and document them and then share them
+
+00:43:18.720 --> 00:43:20.960
+with other people
+
+00:43:20.960 --> 00:43:23.520
+who are also experimenting with
+
+00:43:23.520 --> 00:43:24.720
+interfaces in their
+
+00:43:24.720 --> 00:43:28.880
+own ways and so eevee has
+
+00:43:28.880 --> 00:43:31.119
+lots of things that are user-friendly in
+
+00:43:31.119 --> 00:43:33.440
+these unusual ways that I've explained
+
+00:43:33.440 --> 00:43:34.880
+before
+
+00:43:34.880 --> 00:43:37.760
+and uh and if we disconsider that this
+
+00:43:37.760 --> 00:43:40.319
+notion of user friendliness is valid
+
+00:43:40.319 --> 00:43:44.079
+then this implement these things that av
+
+00:43:44.079 --> 00:43:45.119
+implement they are
+
+00:43:45.119 --> 00:43:47.280
+user friendly and hacker friendly at the
+
+00:43:47.280 --> 00:43:48.800
+same time
+
+00:43:48.800 --> 00:43:51.119
+and let me show one example this is one
+
+00:43:51.119 --> 00:43:51.920
+this is
+
+00:43:51.920 --> 00:43:54.640
+one that really took me one only five
+
+00:43:54.640 --> 00:43:56.640
+minutes to implement
+
+00:43:56.640 --> 00:43:59.599
+uh at one point a few months ago I
+
+00:43:59.599 --> 00:44:00.640
+discovered
+
+00:44:00.640 --> 00:44:04.240
+that sasha chewer's weekly posts about
+
+00:44:04.240 --> 00:44:05.599
+the max news
+
+00:44:05.599 --> 00:44:08.800
+had uh were also being posted to a
+
+00:44:08.800 --> 00:44:11.440
+mailing list that is stored at
+
+00:44:11.440 --> 00:44:14.800
+lists.we know.org and it's called max
+
+00:44:14.800 --> 00:44:16.319
+dungeons
+
+00:44:16.319 --> 00:44:19.280
+uh and I just and I found a way to
+
+00:44:19.280 --> 00:44:19.760
+create
+
+00:44:19.760 --> 00:44:25.440
+the links to to the posts in both places
+
+00:44:25.440 --> 00:44:28.400
+but I had to use a template for that so
+
+00:44:28.400 --> 00:44:30.640
+what we are seeing here now
+
+00:44:30.640 --> 00:44:32.560
+is a template with the the default
+
+00:44:32.560 --> 00:44:36.640
+values so this means that we have not uh
+
+00:44:36.640 --> 00:44:39.359
+set the year correctly we have not set
+
+00:44:39.359 --> 00:44:40.720
+the month correctly
+
+00:44:40.720 --> 00:44:44.240
+or the day correctly but if we run this
+
+00:44:44.240 --> 00:44:44.720
+text
+
+00:44:44.720 --> 00:44:48.960
+here uh let me do something else before
+
+00:44:48.960 --> 00:44:53.359
+if we run this text here
+
+00:44:53.359 --> 00:44:57.280
+which we change some of these
+
+00:44:57.280 --> 00:45:00.880
+entries in the
+
+00:45:00.880 --> 00:45:04.400
+in the template and we get these links
+
+00:45:04.400 --> 00:45:05.200
+here
+
+00:45:05.200 --> 00:45:09.119
+they all work for example this one opens
+
+00:45:09.119 --> 00:45:12.160
+uh the blog post in in session sasha
+
+00:45:12.160 --> 00:45:12.800
+chewers
+
+00:45:12.800 --> 00:45:16.000
+site and this one
+
+00:45:16.000 --> 00:45:21.280
+opens it in the mailing list
+
+00:45:21.280 --> 00:45:23.440
+and sometimes I want the org source of
+
+00:45:23.440 --> 00:45:25.760
+that and the easiest way to get the word
+
+00:45:25.760 --> 00:45:27.280
+source is to
+
+00:45:27.280 --> 00:45:30.480
+look at this link here that has an
+
+00:45:30.480 --> 00:45:31.680
+attachment
+
+00:45:31.680 --> 00:45:35.040
+and if I take this
+
+00:45:35.040 --> 00:45:38.560
+link here and I take this
+
+00:45:38.560 --> 00:45:42.319
+stem that points to to the attachment
+
+00:45:42.319 --> 00:45:44.480
+and I put it here and I generate this
+
+00:45:44.480 --> 00:45:45.440
+page again
+
+00:45:45.440 --> 00:45:49.119
+with all this data then I get a script
+
+00:45:49.119 --> 00:45:50.000
+here
+
+00:45:50.000 --> 00:45:53.359
+that downloads let me switch to a
+
+00:45:53.359 --> 00:45:54.640
+smaller font
+
+00:45:54.640 --> 00:45:58.160
+it downloads this attachment
+
+00:45:58.160 --> 00:46:00.960
+and it renames that attachment to
+
+00:46:00.960 --> 00:46:01.599
+something
+
+00:46:01.599 --> 00:46:06.000
+dot slash nx news sorry some things
+
+00:46:06.000 --> 00:46:10.720
+uh iphone mx news hyphen
+
+00:46:10.720 --> 00:46:15.119
+something mxnews.org here
+
+00:46:15.119 --> 00:46:17.599
+the file is already here already with
+
+00:46:17.599 --> 00:46:18.400
+the right name
+
+00:46:18.400 --> 00:46:21.359
+so I can open it with just this
+
+00:46:21.359 --> 00:46:22.079
+hyperlink
+
+00:46:22.079 --> 00:46:23.780
+let me go to the big font again
+
+00:46:23.780 --> 00:46:25.200
+[Music]
+
+00:46:25.200 --> 00:46:28.079
+and now I have the work source for that
+
+00:46:28.079 --> 00:46:29.280
+hyperlink
+
+00:46:29.280 --> 00:46:33.839
+sorry for that blog post
+
+00:46:33.839 --> 00:46:37.040
+and so this one line thing
+
+00:46:37.040 --> 00:46:40.960
+here is in a sense
+
+00:46:40.960 --> 00:46:43.920
+a a to to this blog post in all its
+
+00:46:43.920 --> 00:46:45.119
+formats
+
+00:46:45.119 --> 00:46:48.640
+uh if I execute this I get links to
+
+00:46:48.640 --> 00:46:52.000
+to all the places where it is posted
+
+00:46:52.000 --> 00:46:54.400
+and I get a hype and I get a script to
+
+00:46:54.400 --> 00:46:56.000
+download the local copy
+
+00:46:56.000 --> 00:47:00.480
+of the org source of it and that's it
+
+00:47:00.480 --> 00:47:03.200
+well I'm already out of time so let me
+
+00:47:03.200 --> 00:47:04.480
+finish here
+
+00:47:04.480 --> 00:47:10.079
+thanks bye