Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
-- This file:
--   http://anggtwu.net/SUBTITLES/2020-some-template-based.lua.html
--   http://anggtwu.net/SUBTITLES/2020-some-template-based.lua
--          (find-angg "SUBTITLES/2020-some-template-based.lua")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- (defun l () (interactive) (find-angg "SUBTITLES/2020-some-template-based.lua"))
-- (defun b () (interactive) (find-TH             "2020-some-template-based"))
-- (defun p () (interactive) (find-TH             "2020-some-template-based"))
-- (defun R () (interactive) (ee-recompile-SUBTITLES-0))
-- (defun r () (interactive) (ee-recompile-SUBTITLES-3))
-- (defun r () (interactive) (ee-recompile-SUBTITLES-1))
--  (define-key eev-mode-map (kbd "M-r") 'r)
--
-- Skel: (find-subs-links "eevtempl")
-- Old:  (find-editeevsubtitles-links-1 "eevtempl")
--       (find-efunction 'find-editeevsubtitles-links-1)
-- Yttr: (find-yttranscript-links       "eevtempl" "91-9YfRPsuk")
-- Info: (find-1stclassvideo-links      "eevtempl")
-- Play: (find-eevtemplvideo "0:00")
--
--   Title: Some template-based functions of eev that are not five-minute hacks
--   MP4:   http://anggtwu.net/eev-videos/2020-some-template-based.mp4
--   YT:    http://www.youtube.com/watch?v=91-9YfRPsuk
--   Page:  http://anggtwu.net/2020-some-template-based.html
--   Comment: 
--   Date:    2020dec24
--   Length:  33:11
--
-- I use the code below to generate the subtitles in .vtt.
--

ee_dofile "~/LUA/Subtitles.lua" -- (find-angg "LUA/Subtitles.lua")

--[[
-- (find-angg "LUA/Subtitles.lua")

** Run the .lua and tell it to
** write the .vtt - by default in /tmp/
*
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "2020-some-template-based.lua"
sts = Subtitles.fromsexps(subs_bigstr):addtime("33:11")
-- sts.lang = "pt-BR"
= sts
outfname = "$S/http/anggtwu.net/eev-videos/2020-some-template-based.vtt"
outfname =                            "/tmp/2020-some-template-based.vtt"
out = sts:vtt().."\n\n"
ee_writefile(outfname, out)
-- (find-fline                        "/tmp/2020-some-template-based.vtt")

** Test the .vtt
** (find-eevtemplvideo "0:00")

** Select /tmp/ or ee-eevvideosdir
** (find-eevvideosfile "")
** (find-eevvideosfile ""   "2020-some-template-based.mp4")
** (find-eevvideossh0 "cp -v 2020-some-template-based.mp4 /tmp/")
** (code-video "eevtemplvideo"                           "/tmp/2020-some-template-based.mp4")
** (code-video "eevtemplvideo" "$S/http/anggtwu.net/eev-videos/2020-some-template-based.mp4")
** (find-eevtemplvideo "0:00")

** Upload the 2020-some-template-based.vtt
** to http://anggtwu.net/eev-videos/
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
Scp-np 2020-some-template-based.vtt $TWUP/eev-videos/
Scp-np 2020-some-template-based.vtt $TWUS/eev-videos/

** Upload the subtitles to youtube
** http://www.youtube.com/watch?v=91-9YfRPsuk

** Check that the "psne subtitles" thing works
** (find-1stclassvideo-links "eevtempl")

--]]


subs_bigstr = [==[
% (find-eevtemplvideo "00:00" "Hi! My name is Eduardo Ochs, and this is a")
% (find-eevtemplvideo "00:03" "quite technical talk about eev, so I'm")
% (find-eevtemplvideo "00:05" "going to suppose that everyone knows")
% (find-eevtemplvideo "00:07" "what is the Emacs and what is eev.")
% (find-eevtemplvideo "00:10" "The title of this talk is:")
% (find-eevtemplvideo "00:13" "\"Some template-based functions of eev")
% (find-eevtemplvideo "00:15" "that are not 5-minute hacks\"")
% (find-eevtemplvideo "00:17" "and the reason for this title is that")
% (find-eevtemplvideo "00:20" "when I gave a presentation at the")
% (find-eevtemplvideo "00:22" "EmacsConf 2020 I give this title to it:")
% (find-eevtemplvideo "00:25" "\"On why most of the best features in eev")
% (find-eevtemplvideo "00:30" "look like 5-minute hacks\",")
% (find-eevtemplvideo "00:34" "and the last section of that")
% (find-eevtemplvideo "00:36" "presentation was about one specific")
% (find-eevtemplvideo "00:38" "feature that I really implemented in")
% (find-eevtemplvideo "00:40" "just five minutes.")

% (find-eevtemplvideo "00:42" "We can play the video here by")
% (find-eevtemplvideo "00:45" "executing this link here...")
% (find-eevtemplvideo "00:51" "oops, sorry, here: Part 4...")
% (find-eevtemplvideo "00:56" "and I explained a certain notion of")
% (find-eevtemplvideo "00:59" "user-friendliness, and then i explained")
% (find-eevtemplvideo "01:00" "the function called")
% (find-eevtemplvideo "01:02" "`find-emacs-tangents-links'")
% (find-eevtemplvideo "01:03" "in this part here...")

% (find-eevtemplvideo "01:12" "but let's see it in a more technical way.")
% (find-eevtemplvideo "01:15" "if we execute (find-emacs-tangents-links)")
% (find-eevtemplvideo "01:19" "we get a buffer like this, in which this")
% (find-eevtemplvideo "01:22" "part here is generated by a template,")
% (find-eevtemplvideo "01:24" "and if I change these things here")
% (find-eevtemplvideo "01:28" "by something else, for example by YEAR")
% (find-eevtemplvideo "01:31" "in uppercase letters, and I run this line")
% (find-eevtemplvideo "01:33" "again, then the all the buffer is going")
% (find-eevtemplvideo "01:37" "to be generated again with these values")
% (find-eevtemplvideo "01:39" "for the the things in curly braces, so")
% (find-eevtemplvideo "01:43" "if I execute this I get this...")
% (find-eevtemplvideo "01:45" "taaa - this became YEAR.")

% (find-eevtemplvideo "01:50" "The implementation of this is very")
% (find-eevtemplvideo "01:52" "simple, it is just a function, here...")
% (find-eevtemplvideo "01:55" "with the template here...")
% (find-eevtemplvideo "01:57" "and the interesting thing is that...")
% (find-eevtemplvideo "02:00" "the thing that allowed me to write this")
% (find-eevtemplvideo "02:02" "thing in just five minutes is that")
% (find-eevtemplvideo "02:05" "I have a function that generates")
% (find-eevtemplvideo "02:07" "skeletons for functions like this.")

% (find-eevtemplvideo "02:08" "If I run this hyperlink here -")
% (find-eevtemplvideo "02:13" "and note that in the code of")
% (find-eevtemplvideo "02:16" "`find-emacs-tangents-links',")
% (find-eevtemplvideo "02:18" "in these comments here, I have a link")
% (find-eevtemplvideo "02:20" "to this skeleton...")
% (find-eevtemplvideo "02:24" "if I run this skeleton here")
% (find-eevtemplvideo "02:27" "I get a buffer that has")
% (find-eevtemplvideo "02:31" "this header, this `defun' here,")
% (find-eevtemplvideo "02:35" "the optional arguments, and then this")
% (find-eevtemplvideo "02:39" "field here, that is blank... in this field")
% (find-eevtemplvideo "02:42" "is a list of of temporary variables that")
% (find-eevtemplvideo "02:45" "I set in a `let*'.")

% (find-eevtemplvideo "02:47" "For example, let me change this to FOO")
% (find-eevtemplvideo "02:50" "and BAR in uppercase letters.")
% (find-eevtemplvideo "02:52" "If I execute this again I get")
% (find-eevtemplvideo "02:56" "this other skeleton here, in which now I")
% (find-eevtemplvideo "02:59" "this `let*' here, that sets FOO and")
% (find-eevtemplvideo "03:02" "BAR to default values,")
% (find-eevtemplvideo "03:04" "and then the indentation changes a bit.")
% (find-eevtemplvideo "03:07" "If I delete these things and I generate")
% (find-eevtemplvideo "03:11" "the buffer again...")
% (find-eevtemplvideo "03:12" "look at this part here, the `let*' is")
% (find-eevtemplvideo "03:15" "going to disappear, and this thing is")
% (find-eevtemplvideo "03:16" "going to to move a bit to the left,")
% (find-eevtemplvideo "03:18" "and one of these parentheses")
% (find-eevtemplvideo "03:20" "is going to disappear.")
% (find-eevtemplvideo "03:23" "That's it.")

% (find-eevtemplvideo "03:25" "So, to write this function")
% (find-eevtemplvideo "03:28" "`find-emacs-tangents-links'")
% (find-eevtemplvideo "03:30" "I essentially started with a skeleton")
% (find-eevtemplvideo "03:33" "like this,")
% (find-eevtemplvideo "03:34" "I had a draft of this thing that I put")
% (find-eevtemplvideo "03:38" "in the template,")
% (find-eevtemplvideo "03:39" "and I just moved this thing to the")
% (find-eevtemplvideo "03:41" "template and")
% (find-eevtemplvideo "03:43" "put backslashes in the right places, so")
% (find-eevtemplvideo "03:46" "that this thing is")
% (find-eevtemplvideo "03:47" "going to be just a big string, because...")
% (find-eevtemplvideo "03:51" "no, let's look at the source code.")

% (find-eevtemplvideo "03:56" "If I don't have a backslash here then")
% (find-eevtemplvideo "03:59" "this thing becomes a big mess and")
% (find-eevtemplvideo "04:01" "some things that should be strings")
% (find-eevtemplvideo "04:04" "are not going to be strings, and, well,")
% (find-eevtemplvideo "04:06" "whatever...")

% (find-eevtemplvideo "04:10" "So, this is how I wrote this function and")
% (find-eevtemplvideo "04:13" "most of my template-based")
% (find-eevtemplvideo "04:15" "hyperlink functions.")
% (find-eevtemplvideo "04:20" "This one is called")
% (find-eevtemplvideo "04:22" "`find-find-links-links-new' because it is")
% (find-eevtemplvideo "04:24" "a successor of a previous version that")
% (find-eevtemplvideo "04:27" "was called just `find-find-links-links',")
% (find-eevtemplvideo "04:31" "that was my function that produced the")
% (find-eevtemplvideo "04:34" "buffer that would create a skeleton for a")
% (find-eevtemplvideo "04:38" "function called `find-something-links'")
% (find-eevtemplvideo "04:46" "but this one was a bit messy, and")
% (find-eevtemplvideo "04:48" "the new one is quite clean.")
% (find-eevtemplvideo "04:50" "So I like it very much and I hate the")
% (find-eevtemplvideo "04:52" "old one, but I still have the code")
% (find-eevtemplvideo "04:54" "of it somewhere, and I think that I")
% (find-eevtemplvideo "04:55" "still have some")
% (find-eevtemplvideo "04:58" "functions that depend on it.")
% (find-eevtemplvideo "05:01" "Now let's see one function that uses a")
% (find-eevtemplvideo "05:06" "template...")

% (find-eevtemplvideo "05:07" "its code is quite short, but I")
% (find-eevtemplvideo "05:10" "that that's a very interesting idea.")
% (find-eevtemplvideo "05:15" "In one of the sections of one of the")
% (find-eevtemplvideo "05:18" "tutorials of eev...")
% (find-eevtemplvideo "05:20" "the one that has number eight here in")
% (find-eevtemplvideo "05:22" "the index of the tutorials;")
% (find-eevtemplvideo "05:24" "it is called find-psne-intro, and")
% (find-eevtemplvideo "05:28" "psne is a contraction of something")
% (find-eevtemplvideo "05:32" "that was already a contraction...")
% (find-eevtemplvideo "05:34" "this is explained there, but it's not")
% (find-eevtemplvideo "05:36" "important now...")

% (find-eevtemplvideo "05:39" "and the thing is that psne")
% (find-eevtemplvideo "05:44" "is a way to download local copies of")
% (find-eevtemplvideo "05:47" "files from the internet...")
% (find-eevtemplvideo "05:49" "and it has this example here, where")
% (find-eevtemplvideo "05:53" "if we execute these...")
% (find-eevtemplvideo "05:56" "let me change to a smaller font...")
% (find-eevtemplvideo "05:57" "if we execute this thing here we create")
% (find-eevtemplvideo "05:59" "a temporary buffer, here,")
% (find-eevtemplvideo "06:01" "that runs a shell, and we set the")
% (find-eevtemplvideo "06:04" "target of eepitch to")
% (find-eevtemplvideo "06:06" "this shell here... and now in the")
% (find-eevtemplvideo "06:10" "lines that do not start with a")
% (find-eevtemplvideo "06:12" "red star...")
% (find-eevtemplvideo "06:14" "if I type an f8 here then that line is")
% (find-eevtemplvideo "06:16" "going to be sent to the target buffer")
% (find-eevtemplvideo "06:18" "as if the user was typing that line...")

% (find-eevtemplvideo "06:22" "and in this case, these four lines...")
% (find-eevtemplvideo "06:26" "they create a directory corresponding to")
% (find-eevtemplvideo "06:30" "to the remote location of this")
% (find-eevtemplvideo "06:33" "URL here,")
% (find-eevtemplvideo "06:38" "it changes - it \"cd\"s to that directory -")
% (find-eevtemplvideo "06:41" "and it \"wget\"s that file...")

% (find-eevtemplvideo "06:45" "and it also saves the URL")
% (find-eevtemplvideo "06:48" "to a certain log file.")
% (find-eevtemplvideo "06:51" "So this is the general idea")
% (find-eevtemplvideo "06:54" "And then this tutorial explains how i")
% (Find-eevtemplvideo "06:56" "use something")
% (find-eevtemplvideo "06:58" "similar to this, but much more")
% (find-eevtemplvideo "07:00" "complicated to download local copies of")
% (find-eevtemplvideo "07:02" "files from the internet.")
% (find-eevtemplvideo "07:06" "Let me switch to a bigger font again...")
% (find-eevtemplvideo "07:10" "and the new way is by just using")
% (find-eevtemplvideo "07:15" "`M-x brep'... and the \"br\"")
% (find-eevtemplvideo "07:19" "in the beginning is the prefix that")
% (find-eevtemplvideo "07:21" "indicates that we're going to do a")
% (find-eevtemplvideo "07:23" "variant of `browse-url', and this \"ep\"")
% (find-eevtemplvideo "07:27" "means that we are going to run")
% (find-eevtemplvideo "07:31" "a version in Emacs of something that")
% (find-eevtemplvideo "07:34" "I used to call \"psne\" 20 years ago.")

% (find-eevtemplvideo "07:36" "If we run this hyperlink here")
% (find-eevtemplvideo "07:40" "we get a temporary")
% (find-eevtemplvideo "07:43" "buffer like this...")
% (find-eevtemplvideo "07:45" "so it has some variants of how to")
% (find-eevtemplvideo "07:48" "download this,")
% (find-eevtemplvideo "07:50" "in which this thing here is changed...")

% (find-eevtemplvideo "07:54" "and we have code to download a")
% (find-eevtemplvideo "07:56" "local copy of this URL here...")
% (find-eevtemplvideo "07:58" "and we have these links here")
% (find-eevtemplvideo "08:01" "that will let us check the local copy.")
% (find-eevtemplvideo "08:04" "so we get this -")
% (find-eevtemplvideo "08:09" "the contents don't matter to us now...")

% (find-eevtemplvideo "08:12" "and my favorite way of running this")
% (find-eevtemplvideo "08:16" "is by typing `M-x brep',")
% (find-eevtemplvideo "08:24" "which calls `find-psne-links'")
% (find-eevtemplvideo "08:27" "on this URL here.")
% (find-eevtemplvideo "08:31" "So it's a variant of `browse-url'")
% (find-eevtemplvideo "08:35" "in which instead of browsing the url we")
% (find-eevtemplvideo "08:38" "are generating a temporary buffer with it,")
% (find-eevtemplvideo "08:41" "and this temporary buffer")
% (find-eevtemplvideo "08:43" "allows us to,")
% (find-eevtemplvideo "08:44" "to change the URL if we need to...")
% (find-eevtemplvideo "08:48" "let me confirm here - and then we get this")
% (find-eevtemplvideo "08:52" "this buffer here, and usually I just go")
% (find-eevtemplvideo "08:56" "to this block, and I execute this")
% (find-eevtemplvideo "08:58" "without even thinking.")

% (find-eevtemplvideo "09:08" "So, the rest of this tutorial explains")
% (find-eevtemplvideo "09:10" "the details, but let me go back...")

% (find-eevtemplvideo "09:15" "The third template-based function")
% (find-eevtemplvideo "09:19" "that I want to show is the function that")
% (find-eevtemplvideo "09:21" "defines this `brep', because...")
% (find-eevtemplvideo "09:25" "well, let me show this in practice.")
% (find-eevtemplvideo "09:29" "The `brep' is defined")
% (find-eevtemplvideo "09:32" "by this sexp here,")
% (find-eevtemplvideo "09:36" "that uses a template... and this is a")
% (find-eevtemplvideo "09:39" "variant of `code-c-d' that defines")
% (find-eevtemplvideo "09:42" "this function... it generates a")
% (find-eevtemplvideo "09:46" "lot of elisp code as text, and then it")
% (find-eevtemplvideo "09:49" "`read's and `eval's it,")
% (find-eevtemplvideo "09:51" "and it generates in this case")
% (find-eevtemplvideo "09:54" "just one function that is")
% (find-eevtemplvideo "09:56" "based on this function here,")
% (find-eevtemplvideo "09:57" "`find-psne-links', that operates on urls,")
% (find-eevtemplvideo "10:02" "and it defines this function here, `brep'.")
% (find-eevtemplvideo "10:05" "And the nice thing is that we can")
% (find-eevtemplvideo "10:06" "just add this prefix here, \"find-\",")
% (find-eevtemplvideo "10:10" "to the line above, to check the code")
% (find-eevtemplvideo "10:13" "that this thing generates...")

% (find-eevtemplvideo "10:15" "So instead of executing this")
% (find-eevtemplvideo "10:17" "code we are going to just generate")
% (find-eevtemplvideo "10:18" "the code and show it as Emacs Lisp,")
% (find-eevtemplvideo "10:22" "which means: with nice colors...")

% (find-eevtemplvideo "10:26" "So this is the definition of `brep', and")
% (find-eevtemplvideo "10:29" "the docstring of it is just \"Apply")
% (find-eevtemplvideo "10:33" "`find-psne-links' on URL\",")
% (find-eevtemplvideo "10:36" "and it runs blah blah blah, the details")
% (find-eevtemplvideo "10:38" "don't matter...")

% (find-eevtemplvideo "10:40" "and the general idea behind this")
% (find-eevtemplvideo "10:43" "`code-something' functions and their")
% (find-eevtemplvideo "10:46" "variants that start with `find-'")
% (find-eevtemplvideo "10:48" "is explained in my presentation in")
% (find-eevtemplvideo "10:51" "the EmacsConf 2020, in this position")
% (find-eevtemplvideo "10:55" "here... let me just show it...")
% (find-eevtemplvideo "10:59" "...that we saw in the")
% (find-eevtemplvideo "11:02" "previous section...")
% (find-eevtemplvideo "11:04" "we can see the the code that it produces")
% (find-eevtemplvideo "11:07" "by making a copy of this line and")
% (find-eevtemplvideo "11:10" "prepending this string here to the name")
% (find-eevtemplvideo "11:13" "of the function, so instead of running")
% (find-eevtemplvideo "11:15" "`code-c-d' we run `find-code-c-d',")
% (find-eevtemplvideo "11:17" "and it creates a new temporary buffer")
% (find-eevtemplvideo "11:20" "with the code that `code-c-d' would")
% (find-eevtemplvideo "11:23" "execute...")
% (find-eevtemplvideo "11:25" "ok, let me go back.")
% (find-eevtemplvideo "11:28" "This is explained in the... even in the")
% (find-eevtemplvideo "11:31" "main tutorial, because `code-c-d'")
% (find-eevtemplvideo "11:33" "is very important and the variants of")
% (find-eevtemplvideo "11:35" "`code-c-d' are very are, so there's a")
% (find-eevtemplvideo "11:37" "section called \"Shorter hyperlinks\"")
% (find-eevtemplvideo "11:41" "here, a subsection that is just about")
% (find-eevtemplvideo "11:46" "`code-c-d'...")
% (find-eevtemplvideo "11:49" "and this explanation here -")
% (find-eevtemplvideo "11:53" "very brief but it sort of works -")
% (find-eevtemplvideo "11:57" "of how `code-c-d' works... it produces")
% (find-eevtemplvideo "11:59" "a big string using a template...")
% (find-eevtemplvideo "12:01" "and an explanation of this idea of")
% (find-eevtemplvideo "12:04" "prepending a \"find-\" to the `code-c-d'")
% (find-eevtemplvideo "12:08" "to understand the code that the thing")
% (find-eevtemplvideo "12:10" "generates...")

% (find-eevtemplvideo "12:12" "And several of my functions that")
% (find-eevtemplvideo "12:16" "are related to `code-c-d' accept extra")
% (find-eevtemplvideo "12:19" "arguments,")
% (find-eevtemplvideo "12:20" "and this tutorial has even a section")
% (find-eevtemplvideo "12:22" "about these extra arguments,")
% (find-eevtemplvideo "12:24" "using `code-c-d', that is the main")
% (find-eevtemplvideo "12:26" "function that users are going to")
% (find-eevtemplvideo "12:28" "to use... and it has some examples.")
% (find-eevtemplvideo "12:33" "If we run just this")
% (find-eevtemplvideo "12:36" "we generate this code here,")
% (find-eevtemplvideo "12:40" "that starts with comments, and then it")
% (find-eevtemplvideo "12:43" "has several definitions here: it defines")
% (find-eevtemplvideo "12:45" "a variable,")
% (find-eevtemplvideo "12:46" "and it defines several functions...")
% (find-eevtemplvideo "12:49" "one of the reasons for using text")
% (find-eevtemplvideo "12:51" "instead of using macros,")
% (find-eevtemplvideo "12:53" "by the way, is that by generating")
% (find-eevtemplvideo "12:55" "text I can add comments,")
% (find-eevtemplvideo "12:57" "and these comments here have even")
% (find-eevtemplvideo "12:59" "elisp hyperlinks to the documentation.")

% (find-eevtemplvideo "13:04" "Ok, so this is the code generated by")
% (find-eevtemplvideo "13:07" "just `find-code-c-d' without extra")
% (find-eevtemplvideo "13:10" "arguments...")
% (find-eevtemplvideo "13:12" "and we if we add an extra argument here")
% (find-eevtemplvideo "13:18" "the output becomes a little bigger...")
% (find-eevtemplvideo "13:22" "this section appears, and this section")
% (find-eevtemplvideo "13:24" "defines a function that opens a node")
% (find-eevtemplvideo "13:30" "in a certain info manual...")

% (find-eevtemplvideo "13:34" "and then this thing explains a bit of")
% (find-eevtemplvideo "13:36" "the innards, and a bit of the other")
% (find-eevtemplvideo "13:38" "extra arguments that we can use...")
% (find-eevtemplvideo "13:43" "So this was a very quick")
% (find-eevtemplvideo "13:46" "introduction to this `code-c-d'")
% (find-eevtemplvideo "13:48" "and its related functions...")
% (find-eevtemplvideo "13:53" "and again: when I defined `brep'")
% (find-eevtemplvideo "13:56" "I used one of these `code-something'")
% (find-eevtemplvideo "13:59" "functions, `code-brurl', and we can")
% (find-eevtemplvideo "14:01" "inspect its code by running")
% (find-eevtemplvideo "14:04" "this `find-code-brurl'.")
% (find-eevtemplvideo "14:06" "So: (code-brurl 'find-psne-links ...)")
% (find-eevtemplvideo "14:13" "executes this thing here.")

% (find-eevtemplvideo "14:21" "Ok, next section:")
% (find-eevtemplvideo "14:23" "4. `find-esetkey-links'.")
% (find-eevtemplvideo "14:26" "Sometimes... one of the things that")
% (find-eevtemplvideo "14:28" "beginners often want to do")
% (find-eevtemplvideo "14:30" "is to define new key bindings,")
% (find-eevtemplvideo "14:35" "and I realized that I could use")
% (find-eevtemplvideo "14:39" "the ideas of eev to provide a")
% (find-eevtemplvideo "14:43" "different way of doing that.")
% (find-eevtemplvideo "14:46" "If we just run (find-esetkey-links) -")
% (find-eevtemplvideo "14:50" "or with `M-x' or with this sexp here, -")
% (find-eevtemplvideo "14:57" "sorry, if we run with `M-x' we get")
% (find-eevtemplvideo "15:01" "a prompt here that tells us to to give a")
% (find-eevtemplvideo "15:05" "key and then a command... let me try")
% (find-eevtemplvideo "15:09" "M-f5")
% (find-eevtemplvideo "15:12" "and then the command is going to be")
% (find-eevtemplvideo "15:16" "`next-line'. We get a buffer here that")
% (find-eevtemplvideo "15:21" "has a big header with lots of help...")
% (find-eevtemplvideo "15:27" "for example, this line here")
% (find-eevtemplvideo "15:30" "shows the section of Emacs manual")
% (find-eevtemplvideo "15:34" "that explains how to change key bindings")
% (find-eevtemplvideo "15:37" "interactively...")
% (find-eevtemplvideo "15:39" "it's not trivial to to save these key")
% (find-eevtemplvideo "15:42" "bindings to your .emacs after defining")
% (find-eevtemplvideo "15:46" "them interactively...")
% (find-eevtemplvideo "15:50" "and these links go to the documentation")
% (find-eevtemplvideo "15:52" "of these functions here...")

% (find-eevtemplvideo "15:55" "and this has some calls to these")
% (find-eevtemplvideo "15:56" "functions that")
% (find-eevtemplvideo "15:59" "it seems that the Emacs suggests")
% (find-eevtemplvideo "16:02" "people to use interactively...")
% (find-eevtemplvideo "16:05" "but here we generate sexps")
% (find-eevtemplvideo "16:09" "for them, both for setting the key")
% (find-eevtemplvideo "16:13" "and for unsetting the key, and we can")
% (find-eevtemplvideo "16:15" "save these the settings in our notes,")
% (find-eevtemplvideo "16:20" "or even in our ~/.emacs file.")

% (find-eevtemplvideo "16:23" "For example, I have these keybindings")
% (find-eevtemplvideo "16:29" "here. I use the super key for several")
% (find-eevtemplvideo "16:33" "toggles... here in my keyboard the")
% (find-eevtemplvideo "16:36" "super key is the Windows key.")
% (find-eevtemplvideo "16:39" "So if i use super-t I toggle the")
% (find-eevtemplvideo "16:43" "`tool-bar-mode', which is this thing here...")
% (find-eevtemplvideo "16:46" "so let's do that several times...")
% (find-eevtemplvideo "16:50" "if I use super-m I toggle the")
% (find-eevtemplvideo "16:56" "`menu-bar-mode'... I can have both at the")
% (find-eevtemplvideo "16:59" "same time, I can toggle them")
% (find-eevtemplvideo "17:00" "very quickly, whatever... but I usually")
% (find-eevtemplvideo "17:04" "don't like them.")

% (find-eevtemplvideo "17:06" "and I realized that one thing that")
% (find-eevtemplvideo "17:08" "I do very often especially when I'm")
% (find-eevtemplvideo "17:11" "recording videos with a big font is")
% (find-eevtemplvideo "17:13" "that I toggle line wrap...")
% (find-eevtemplvideo "17:16" "and I have a function, that i've defined")
% (find-eevtemplvideo "17:18" "ages ago, that is called just `wrap'...")
% (find-eevtemplvideo "17:20" "I used to call it with just `M-x wrap'.")
% (find-eevtemplvideo "17:27" "Its definition is here. It's in my")
% (find-eevtemplvideo "17:30" "~/.emacs, that is a total mess...")
% (find-eevtemplvideo "17:35" "and I realized that I could use")
% (find-eevtemplvideo "17:39" "this `define-key' here to define")
% (find-eevtemplvideo "17:44" "super-w to wrap, and in this case here,")
% (find-eevtemplvideo "17:49" "for reasons that I'm not going to")
% (find-eevtemplvideo "17:51" "explain now, instead of setting this in")
% (find-eevtemplvideo "17:53" "the global keymap I'm setting this")
% (find-eevtemplvideo "17:55" "in the eev keymap... and if I go")
% (find-eevtemplvideo "17:59" "here there's even a link to describe")
% (find-eevtemplvideo "18:02" "what are the current")
% (find-eevtemplvideo "18:04" "bindings in the eev keymap...")
% (find-eevtemplvideo "18:07" "so we get them here,")
% (find-eevtemplvideo "18:11" "and we get the `wrap' here.")

% (find-eevtemplvideo "18:18" "So... in the emacs-devel mailing list")
% (find-eevtemplvideo "18:21" "people are always discussing how to")
% (find-eevtemplvideo "18:23" "make these things more user-friendly")
% (find-eevtemplvideo "18:25" "without ever using Lisp, because")
% (find-eevtemplvideo "18:29" "\"USERS SHOULD NOT BE FORCED")
% (find-eevtemplvideo "18:31" "TO SEE LISP\", and I'm taking")
% (find-eevtemplvideo "18:33" "exactly the opposite - I'm")
% (find-eevtemplvideo "18:35" "doing everything with the Lisp")
% (find-eevtemplvideo "18:38" "very evident, with no hidden text,")
% (find-eevtemplvideo "18:40" "and whatevers...")
% (find-eevtemplvideo "18:42" "and this is an experiment to see")
% (find-eevtemplvideo "18:46" "if users like this thing... this is")
% (find-eevtemplvideo "18:49" "very recent, I haven't")
% (find-eevtemplvideo "18:51" "tested this in")
% (find-eevtemplvideo "18:54" "guinea pig users yet, so I didn't get")
% (find-eevtemplvideo "18:58" "any feedback yet...")
% (find-eevtemplvideo "18:59" "but i think that this can be a good way")
% (find-eevtemplvideo "19:01" "to teach users how to")
% (find-eevtemplvideo "19:03" "to bind keys, especially because")
% (find-eevtemplvideo "19:06" "if they type something wrong they can")
% (find-eevtemplvideo "19:08" "see what they have")
% (find-eevtemplvideo "19:10" "typed wrong, and they can see the sexps")
% (find-eevtemplvideo "19:13" "that corresponds to doing that, they can")
% (find-eevtemplvideo "19:15" "change the sexps, and so on...")
% (find-eevtemplvideo "19:19" "Ok, this was was the fourth thing that")
% (find-eevtemplvideo "19:21" "I wanted to show.")

% (find-eevtemplvideo "19:23" "And the fifth thing that I want to show")
% (find-eevtemplvideo "19:25" "now is how I download")
% (find-eevtemplvideo "19:30" "videos from Youtube.")
% (find-eevtemplvideo "19:33" "And this is really far from")
% (find-eevtemplvideo "19:36" "a 5-minute hack, because this")
% (find-eevtemplvideo "19:38" "one does a lot of magic.")
% (find-eevtemplvideo "19:40" "And the idea, as always,")
% (find-eevtemplvideo "19:44" "is that if we twist the notion of")
% (find-eevtemplvideo "19:47" "\"user\" in exactly the right way")
% (find-eevtemplvideo "19:49" "then user-friendly and hacker-friendly")
% (find-eevtemplvideo "19:51" "become very similar to one another.")
% (find-eevtemplvideo "19:54" "So this is _my_ user-friendly way to")
% (find-eevtemplvideo "19:58" "download videos from Youtube that is")
% (find-eevtemplvideo "20:00" "user-friendly to _me_, and maybe")
% (find-eevtemplvideo "20:02" "to other people... but whatever.")
% (find-eevtemplvideo "20:05" "The documentation about this")
% (find-eevtemplvideo "20:08" "`find-youtubedl-links' is in this")
% (find-eevtemplvideo "20:11" "section here")
% (find-eevtemplvideo "20:13" "of the tutorial about how to use")
% (find-eevtemplvideo "20:15" "audio and video files in eev...")
% (find-eevtemplvideo "20:18" "in this section here...")
% (find-eevtemplvideo "20:20" "and the idea is that")
% (find-eevtemplvideo "20:22" "links to Youtube can have")

% (find-eevtemplvideo "20:27" "several formats. The long format is this")
% (find-eevtemplvideo "20:30" "one, but there's also a couple of")
% (find-eevtemplvideo "20:32" "shorthands to this... and")
% (find-eevtemplvideo "20:34" "they always contain an id")
% (find-eevtemplvideo "20:39" "that is always 11 characters long.")
% (find-eevtemplvideo "20:42" "It only uses certain characters,")
% (find-eevtemplvideo "20:45" "and I don't remember exactly why, but")
% (find-eevtemplvideo "20:49" "I decided to call it the \"hash\" instead")
% (find-eevtemplvideo "20:51" "of the \"id\", so in the code i refer to")
% (find-eevtemplvideo "20:54" "this thing as the \"hash\" of the")
% (find-eevtemplvideo "20:56" "video everywhere.")

% (find-eevtemplvideo "20:59" "And so... here the documentation says")
% (find-eevtemplvideo "21:02" "how to download the video if you have")
% (find-eevtemplvideo "21:07" "youtube-dl installed, and due to this")
% (find-eevtemplvideo "21:09" "option here the video is going to be")
% (find-eevtemplvideo "21:13" "downloaded with both its title and its")
% (find-eevtemplvideo "21:19" "identifier in the local file name.")
% (find-eevtemplvideo "21:25" "And my favorite way of downloading a")
% (find-eevtemplvideo "21:30" "local copy is... with this function,")
% (find-eevtemplvideo "21:33" "`find-youtubedl-links'...")
% (find-eevtemplvideo "21:37" "it's code is here, it's not")
% (find-eevtemplvideo "21:39" "very ugly, but the thing is that")
% (find-eevtemplvideo "21:42" "it uses lots of internal functions")
% (find-eevtemplvideo "21:46" "and variables to discover what")
% (find-eevtemplvideo "21:48" "is the local file")
% (find-eevtemplvideo "21:51" "corresponding to the video.")

% (find-eevtemplvideo "21:55" "Let me show a demo - here. I'm going to")
% (find-eevtemplvideo "21:57" "use a temporary directory for the")
% (find-eevtemplvideo "22:00" "video just to not have so much clutter")
% (find-eevtemplvideo "22:03" "in the screen...")
% (find-eevtemplvideo "22:07" "let me switch to a smaller font again...")
% (find-eevtemplvideo "22:10" "ok, let me recreate this directory.")
% (find-eevtemplvideo "22:15" "By the way, i never type")
% (find-eevtemplvideo "22:17" "these things by hand")
% (find-eevtemplvideo "22:19" "what I do is that I just put")
% (find-eevtemplvideo "22:22" "the name of the directory in a line")
% (find-eevtemplvideo "22:24" "by itself,")
% (find-eevtemplvideo "22:26" "and I type meta-uppercase-r.")
% (find-eevtemplvideo "22:29" "And I get this.")
% (find-eevtemplvideo "22:35" "But let's go back to the demo. I'm going")
% (find-eevtemplvideo "22:37" "to set my favorite directories for videos")
% (find-eevtemplvideo "22:39" "to this directory here, that is")
% (find-eevtemplvideo "22:42" "a temporary directory that is not")
% (find-eevtemplvideo "22:45" "the one that i tend to use... and")
% (find-eevtemplvideo "22:48" "let me show how to download a certain")
% (find-eevtemplvideo "22:50" "video.")
% (find-eevtemplvideo "22:53" "So: the hash of the video is here...")
% (find-eevtemplvideo "22:56" "I just have to place the coursor on the")
% (find-eevtemplvideo "22:59" "hash and type `M-x find-youtubedl-links'...")
% (find-eevtemplvideo "23:03" "and this function discovers")
% (find-eevtemplvideo "23:07" "what is the hash around point,")
% (find-eevtemplvideo "23:11" "let me type an Enter here...")
% (find-eevtemplvideo "23:15" "and it produces this temporary")
% (find-eevtemplvideo "23:18" "buffer here...")
% (find-eevtemplvideo "23:21" "oops, sorry...")
% (find-eevtemplvideo "23:26" "here we have two different functions")
% (find-eevtemplvideo "23:30" "that regenerate this buffer in")
% (find-eevtemplvideo "23:33" "slightly different ways...")
% (find-eevtemplvideo "23:36" "and I'm going to run this script here.")

% (find-eevtemplvideo "23:41" "Note that it has several variants that")
% (find-eevtemplvideo "23:44" "run youtube-dl with slightly different")
% (find-eevtemplvideo "23:49" "arguments... I'm going to to use the")
% (find-eevtemplvideo "23:51" "default one.")
% (find-eevtemplvideo "23:53" "It takes a while...")
% (find-eevtemplvideo "23:58" "it downloads the video - it's quite short,")
% (find-eevtemplvideo "24:00" "it's just 10 megabytes -")
% (find-eevtemplvideo "24:02" "and now I have a video with that name -")
% (find-eevtemplvideo "24:05" "I mean, with this hash in its name.")
% (find-eevtemplvideo "24:07" "If I visit the directory where I'm")
% (find-eevtemplvideo "24:10" "downloading the videos I'm going to see")
% (find-eevtemplvideo "24:13" "that there's a video with this")
% (find-eevtemplvideo "24:14" "string in its name, so if execute this")
% (find-eevtemplvideo "24:18" "this sexp opens that directory and")
% (find-eevtemplvideo "24:22" "uh searches for the first occurrence of")
% (find-eevtemplvideo "24:25" "this string, which is exactly in the line")
% (find-eevtemplvideo "24:28" "where my video is. It is here -")
% (find-eevtemplvideo "24:33" "so my magic functions have to discover")
% (find-eevtemplvideo "24:37" "the rest of this file name just")
% (find-eevtemplvideo "24:40" "by this string here...")
% (find-eevtemplvideo "24:50" "and if I run this sexp here,")
% (find-eevtemplvideo "24:54" "that has nil in the place of the title,")
% (find-eevtemplvideo "24:59" "then `find-youtubedl-links' is going to")
% (find-eevtemplvideo "25:02" "try to guess the title of the video")
% (find-eevtemplvideo "25:04" "from just this thing and the directory.")

% (find-eevtemplvideo "25:07" "Let me try... TA-DA! It found")
% (find-eevtemplvideo "25:09" "the right title, here we have a sexp")
% (find-eevtemplvideo "25:16" "that concatenates the directory, the")
% (find-eevtemplvideo "25:20" "title, and the hash, and the extension...")
% (find-eevtemplvideo "25:23" "the magic functions also discover the")
% (find-eevtemplvideo "25:25" "extension...")
% (find-eevtemplvideo "25:27" "and if I change this {stem} here")
% (find-eevtemplvideo "25:35" "I get short links to this video.")

% (find-eevtemplvideo "25:38" "So if I execute this I get a short")
% (find-eevtemplvideo "25:44" "link to this video... let's use the usual")
% (find-eevtemplvideo "25:47" "trick...")
% (find-eevtemplvideo "25:48" "if I run this `find-code-video'")
% (find-eevtemplvideo "25:52" "here I will get the code that")
% (find-eevtemplvideo "25:58" "`code-video' is going to run...")
% (find-eevtemplvideo "26:01" "let me copy this to my notes...")
% (find-eevtemplvideo "26:08" "these hashes look ugly. So, if I execute")
% (find-eevtemplvideo "26:12" "this... note that now I have very long")
% (find-eevtemplvideo "26:16" "lines, so I can type super-w, and ta-da,")
% (find-eevtemplvideo "26:18" "it toggles line wrapping...")
% (find-eevtemplvideo "26:25" "ok, so if I run this thing here...")

% (find-eevtemplvideo "26:29" "I get a buffer that shows the")
% (find-eevtemplvideo "26:31" "code that defines this function here -")
% (find-eevtemplvideo "26:34" "`find-preadingvideo' - \"The problem")
% (find-eevtemplvideo "26:38" "with reading (something)\".")
% (find-eevtemplvideo "26:42" "If I just execute this line here it")
% (find-eevtemplvideo "26:45" "defines `find-preadingvideo',")
% (find-eevtemplvideo "26:49" "and if I execute this I open this...")
% (find-eevtemplvideo "26:52" "\"In the rest of the significant portion")
% (find-eevtemplvideo "26:54" "of the play...\"")
% (find-eevtemplvideo "26:55" "in the beginning")
% (find-eevtemplvideo "26:57" "but suppose that i've downloaded this")
% (find-eevtemplvideo "27:00" "video because I discovered that it has a")
% (find-eevtemplvideo "27:02" "sentence... a part that is very")
% (find-eevtemplvideo "27:05" "important... so i took down notes of")
% (find-eevtemplvideo "27:07" "where it starts and what is the sentence,")
% (find-eevtemplvideo "27:11" "so I can just make a copy of this")
% (find-eevtemplvideo "27:18" "that points to the right position...")
% (find-eevtemplvideo "27:20" "\"...of the play where Jocasta")
% (find-eevtemplvideo "27:22" "the queen has no lines, and because we're")
% (find-eevtemplvideo "27:25" "reading the play - most of us now read")
% (find-eevtemplvideo "27:27" "the play very few of us will have the")
% (find-eevtemplvideo "27:29" "opportunity - although i urge you to take")
% (find-eevtemplvideo "27:31" "it if it comes - to see the play")
% (find-eevtemplvideo "27:32" "enacted... there are some movie versions,")
% (find-eevtemplvideo "27:35" "and occasionally...\"")
% (find-eevtemplvideo "27:37" "well, whatever.")

% (find-eevtemplvideo "27:42" "These are things that I have just put")
% (find-eevtemplvideo "27:45" "here because initially I thought")
% (find-eevtemplvideo "27:48" "about presenting this in a")
% (find-eevtemplvideo "27:50" "in a different order... so: this is how")
% (find-eevtemplvideo "27:54" "I download videos from youtube,")
% (find-eevtemplvideo "27:56" "in a way that is only user-friendly")
% (find-eevtemplvideo "27:59" "if I define \"users\"")
% (find-eevtemplvideo "28:01" "in exactly the right way, in which")
% (find-eevtemplvideo "28:04" "the main user in the universe is me.")

% (find-eevtemplvideo "28:11" "And the last template-based function")
% (find-eevtemplvideo "28:14" "that I wanted to present is")
% (find-eevtemplvideo "28:18" "`find-here-links'. This is one that")
% (find-eevtemplvideo "28:21" "deserves another presentation, I'm")
% (find-eevtemplvideo "28:23" "to record a video about it, but let me")
% (find-eevtemplvideo "28:27" "present it very quickly. This is one")
% (find-eevtemplvideo "28:30" "of the main functions of eev -")
% (find-eevtemplvideo "28:32" "I use it hundreds of times a day")
% (find-eevtemplvideo "28:34" "because the central idea of eev is that")
% (find-eevtemplvideo "28:36" "we can keep executable logs of what")
% (find-eevtemplvideo "28:42" "we do, and these executable logs")
% (find-eevtemplvideo "28:44" "usually are made")
% (find-eevtemplvideo "28:47" "half of hyperlinks to interesting things")
% (find-eevtemplvideo "28:50" "and half of executable code, like")
% (find-eevtemplvideo "28:54" "shell command, or things like that...")
% (find-eevtemplvideo "29:00" "so this tutorial explained these ideas,")
% (find-eevtemplvideo "29:03" "and then the technical details...")
% (find-eevtemplvideo "29:08" "for example, if i run `find-here-links'")
% (find-eevtemplvideo "29:15" "here... note that it is bound to")
% (find-eevtemplvideo "29:20" "`M-h M-h', and...")
% (find-eevtemplvideo "29:23" "when I type `M-h M-h'")

% (find-eevtemplvideo "29:27" "it generates a a temporary buffer")
% (find-eevtemplvideo "29:31" "with links to \"here\"...")
% (find-eevtemplvideo "29:33" "here is a header with help, and here")
% (find-eevtemplvideo "29:36" "is the link that I want: a link to")
% (find-eevtemplvideo "29:40" "the tutorial in which i was...")

% (find-eevtemplvideo "29:45" "And I want to show something that is")
% (find-eevtemplvideo "29:48" "not very well documented yet,")
% (find-eevtemplvideo "29:51" "that is a different way to create")
% (find-eevtemplvideo "29:56" "links to video files, audio files, PDF")
% (find-eevtemplvideo "29:59" "files, and so on...")
% (find-eevtemplvideo "30:05" "it is explained in this section of")
% (find-eevtemplvideo "30:08" "the tutorial but")
% (find-eevtemplvideo "30:09" "i don't think that i've revised it")
% (find-eevtemplvideo "30:13" "enough times yet, so it may not be")
% (find-eevtemplvideo "30:16" "very readable...")

% (find-eevtemplvideo "30:19" "and the idea is that if you type")
% (find-eevtemplvideo "30:24" "`M-h M-e' then this runs")
% (find-eevtemplvideo "30:31" "`find-extra-file-links', and")
% (find-eevtemplvideo "30:34" "this is an experimental feature whose")
% (find-eevtemplvideo "30:36" "behavior may change soon...")
% (find-eevtemplvideo "30:38" "but here is how it works now.")
% (find-eevtemplvideo "30:42" "Here is an example in Lisp. If we")
% (find-eevtemplvideo "30:44" "execute this we get a temporary buffer")
% (find-eevtemplvideo "30:46" "with several kinds of hyperlinks,")
% (find-eevtemplvideo "30:50" "including `code-c-d', `code-video',")
% (find-eevtemplvideo "30:53" "etc, pointing to this file here...")

% (find-eevtemplvideo "30:54" "so: this block here supposes that")
% (find-eevtemplvideo "31:01" "this file is a PDF file, this one")
% (find-eevtemplvideo "31:03" "supposes that it is a video file,")
% (find-eevtemplvideo "31:06" "and I can use this {stem} here")
% (find-eevtemplvideo "31:12" "to generate functions that have this")
% (find-eevtemplvideo "31:15" "string, \"MYFOO\", in their names...")

% (find-eevtemplvideo "31:21" "and let me show a more realistic")
% (find-eevtemplvideo "31:23" "example of how to use this,")
% (find-eevtemplvideo "31:26" "which is... let's go to the directory")
% (find-eevtemplvideo "31:30" "where I've downloaded this video file:")
% (find-eevtemplvideo "31:32" "here. If I type `M-h M-e' here I get")
% (find-eevtemplvideo "31:38" "a buffer that lets me define several")
% (find-eevtemplvideo "31:45" "kinds of links to this file...")
% (find-eevtemplvideo "31:50" "this file is a video file,")
% (find-eevtemplvideo "31:53" "and let me use this string to identify")
% (find-eevtemplvideo "31:56" "it...")

% (find-eevtemplvideo "31:58" "uh =(")
% (find-eevtemplvideo "32:23" "sorry, I played this as an audio,")
% (find-eevtemplvideo "32:27" "and there's no very easy way to to stop")
% (find-eevtemplvideo "32:34" "it...")
% (find-eevtemplvideo "32:38" "so, if I run this... now I've defined")
% (find-eevtemplvideo "32:42" "these short links here...")
% (find-eevtemplvideo "32:47" "`find-preadvideo'... and if i")
% (find-eevtemplvideo "32:50" "execute this...")
% (find-eevtemplvideo "33:02" "ok, sorry for the mess! And")
% (find-eevtemplvideo "33:05" "these were the things that I wanted to")
% (find-eevtemplvideo "33:07" "show in this presentation, and that's it.")
% (find-eevtemplvideo "33:10" "Bye! =P")

]==]

unrevised_bigstr = [==[

(find-eevtemplvideo "00:00" " ")
]==]

-- Local Variables:
-- coding:  utf-8-unix
-- End: