(Re)generate: (find-videos-intro)
Source code:  (find-efunction 'find-videos-intro)
More intros:  (find-eev-quick-intro)
This buffer is _temporary_ and _editable_.
It is meant as both a tutorial and a sandbox.

This intro is being rewritten.
  (find-audiovideo-intro "4. Short hyperlinks to audio and video files")
  (find-audiovideo-intro "7. `code-psnevideo'")
  (find-audiovideo-intro "7.1. `code-eevvideo'")

1. Some videos

At this moment I have these eight videos about eev (I am deliberately ignoring the ones that I consider obsolete!): 1. "How to record executable notes with eev - and how to play them back": http://angg.twu.net/emacsconf2019.html http://angg.twu.net/emacsconf2019.html#code-video http://angg.twu.net/eev-videos/emacsconf2019.mp4 http://www.youtube.com/watch?v=86yiRG8YJD0 (find-eev2019video) 2. "On why most of the best features in eev look like 5-minute hacks": http://angg.twu.net/emacsconf2020.html http://angg.twu.net/emacsconf2020.html#code-video http://angg.twu.net/eev-videos/emacsconf2020.mp4 http://www.youtube.com/watch?v=hOAqBc42Gg8 (find-eev2020video) 3. "How to install eev with M-x list-packages and how to navigate its tutorials": http://angg.twu.net/2020-list-packages-eev-nav.html http://angg.twu.net/2020-list-packages-eev-nav.html#code-video http://angg.twu.net/eev-videos/2020-list-packages-eev-nav.mp4 http://www.youtube.com/watch?v=kxBjiUo88_U (find-eevnavvideo) 4. "Some template-based functions of eev that are not five-minute hacks": http://angg.twu.net/2020-some-template-based.html http://angg.twu.net/2020-some-template-based.html#code-video http://angg.twu.net/eev-videos/2020-some-template-based.mp4 http://www.youtube.com/watch?v=91-9YfRPsuk (find-eevtemplvideo) 5. "How to create hyperlinks to "here" with `find-here-links'": http://angg.twu.net/2020-find-here-links.html http://angg.twu.net/2020-find-here-links.html#code-video http://angg.twu.net/eev-videos/2020-find-here-links.mp4 http://www.youtube.com/watch?v=8jtiBlaDor4 (find-eevfherelvideo) 6. "Using test blocks in eev": http://angg.twu.net/2021-test-blocks.html http://angg.twu.net/eev-videos/2021-test-blocks.mp4 http://www.youtube.com/watch?v=fpsF_M55W4o (find-eevtestblsvideo) 7. "Short videos about workflows - and how to upload them": http://angg.twu.net/2021-ssr.html http://angg.twu.net/eev-videos/2021-ssr.mp4 http://www.youtube.com/watch?v=_0_NLXTVhBk 8. "How to use the `[Video links:]' blocks in the `intro's of eev" http://angg.twu.net/2021-video-links.html http://angg.twu.net/eev-videos/2021-video-links.mp4 http://www.youtube.com/watch?v=xQqWufQgzVY (find-eevvlinksvideo "0:00") The ones that I prepared for the two EmacsConfs are very well-rehearsed, the other ones are not. The links with #code-video, like http://angg.twu.net/emacsconf2019.html#code-video point to indexes of the videos made with sexp hyperlinks. The best way to watch them is to download local copies of their .mp4s and then use the short hyperlinks described in (find-audiovideo-intro "4. Short hyperlinks to audio and video files") to jump to positions in them.

2. Short links to eev video tutorials

The "short links to eev video tutorials" are made to be trivial to use from the _htmlized_ versions of the intros; they are not so trivial from Emacs. If you open the htmlized version of this section in a browser - its URL is: http://angg.twu.net/eev-intros/find-videos-intro.html#2 you will notice that links like (find-eev2020video "6:25" "`find-video'") \---------------/ \--/ function name: time: points to here points to (this section) YouTube have two hyperlinks: the function name, "find-eev2020video", points to this section of this intro, and the timestamp, "6:25", points to YouTube; in this example, the "6:25" points to my presentation about eev in the EmacsConf2020, and it plays that video starting from 6:25. At this moment only these `find-eev*video' function are htmlized in this way: 1. "How to record executable notes with eev - and how to play them back" http://angg.twu.net/emacsconf2019.html (find-eev2019video "0:00") 2. "On why most of the best features in eev look like 5-minute hacks" http://angg.twu.net/emacsconf2020.html (find-eev2020video "0:00") 3. "How to install eev with M-x list-packages and how to navigate its tutorials" http://angg.twu.net/2020-list-packages-eev-nav.html (find-eevnavvideo "0:00") 4. "Some template-based functions of eev that are not five-minute hacks" http://angg.twu.net/2020-some-template-based.html (find-eevtemplvideo "0:00") 5. "How to create hyperlinks to "here" with `find-here-links'" http://angg.twu.net/2020-find-here-links.html (find-eevfherelvideo "0:00") 6. "Using test blocks in eev": http://angg.twu.net/2021-test-blocks.html (find-eevtestblocksvideo "0:00") 7. "How to use the `[Video links:]' blocks in the `intro's of eev" http://angg.twu.net/2021-video-links.html (find-eevvlinksvideo "0:00") If you follow these `find-eev*video' sexp hyperlinks in Emacs you will _usually_ get a temporary buffer with links to that video... see the next section. ...or for an explanation in video, see: http://angg.twu.net/2021-video-links.html (find-eevvlinksvideo "0:00") http://www.youtube.com/watch?v=xQqWufQgzVY

3. Some `find-eevvideo-links'

When you run a sexp like this (find-eev2020video "0:00") in Emacs it by default runs this, (find-eevvideo-links "eev2020" "emacsconf2020" "hOAqBc42Gg8" "0:00") that creates a temporary buffer containing commands for doing several things - like downloading a local copy of that video, playing the local copy, and overriding the definition of `find-eev2020video' with another one, that plays the local copy straight away without creating a temporary buffer. That temporary buffer is a bit hard to understand, and I need to make a video explaining how to use each part of it (TODO! Urgent)... The "short links to eev video tutorials" listed above call these `find-eevvideo-links' sexps: 1. (find-eevvideo-links "eev2019" "emacsconf2019" "86yiRG8YJD0") 2. (find-eevvideo-links "eev2020" "emacsconf2020" "hOAqBc42Gg8") 3. (find-eevvideo-links "eevnav" "2020-list-packages-eev-nav" "kxBjiUo88_U") 4. (find-eevvideo-links "eevtempl" "2020-some-template-based" "91-9YfRPsuk") 5. (find-eevvideo-links "eevfherel" "2020-find-here-links" "8jtiBlaDor4") 6. (find-eevvideo-links "eevtestblocks" "2021-test-blocks" "fpsF_M55W4o") 7. (find-eevvideo-links "2021ssr" "2021-ssr" "_0_NLXTVhBk") They are htmlized in a nice way - see: http://angg.twu.net/eev-intros/find-videos-intro.html#3 The function `find-eevvideo-links' is explained here: (find-audiovideo-intro "7.2. `find-eevvideo-links'") Everything below this point is VERY old!!!

4. What we have now

I am producing a series of videos about eev - but at this moment only two very broad introductions are ready 8-(. I have plans for several short videos about specific usage patterns, but don't hold your breath yet... also, these are my first videos EVER - so please excuse any stutterings, hesitations and false starts... The videos are uploaded to Youtube to make them very easy to find, but Youtube reduces the resolution of the original videos and makes them blurry and almost unreadable - so the best way to watch them is to fetch local copies of the high-res .mp4 files.

4. Hyperlinks to positions

The first argument to `find-eepitchvideo' and to other similar functions is a time offset; it is optional, and it defaults to "0:00". Any further arguments are ignored, and this allows us to use them as comments. So these two sexps are equivalent: (find-eepitchvideo "0:16") (find-eepitchvideo "0:16" "the eepitch-to-shell-and-python example") We could use a series of `find-eepitchvideo' sexps to create a "table of contents" for a video, similarly to what we do for written documents...

5. Time offsets as hyperlinks to positions

In some cases using sexps creates too much visual clutter, and we would like to be able to create an index or table of contents writing lines just like this, 0:16 the eepitch-to-shell-and-python example instead of using explicit elisp hyperlinks. There is a way to do this, but it is tricky. It involves activating a mode, called `eev-avadj-mode', in which `M-p' is bound to a command that locates the first thing looking like a time offset in the current line, and calls the video player to make it play the *current default video* starting from that time offset; a sexp like (find-eepitchvideo t) just sets the current default video, but does not invoke the player. All this is explained here: (find-audiovideo-intro "The time-from-bol")

6. Eepitch video: table of contents

(find-eev-video-links "eepitchvideo" "video4-eepitch" "Lj_zKC5BR64") (eev-avadj-mode 1) (find-eepitchvideo t) 0:16 the eepitch-to-shell-and-python example, very quickly 1:18 executing eepitch scripts with `f8's; f8 on red star lines and normal lines 2:33 the eepitch-to-shell-and-python example - what each line does 3:15 the first three lines use advanced features 3:52 eepitch scripts are made to be executed interactively 5:25 the eepitch-to-shell-and-python example again, more slowly 5:58 what happens when the eepitch target is being shown 7:13 the default is to use two windows 7:33 what happens when the target does not exist 8:25 how to send commands to a new shell 8:54 how an eepitch block (like eepitch-shell/kill/shell) works 9:38 an example with shell comments (which eev uses as hyperlinks) 12:35 refining hyperlinks 12:35 converting shell commands into hyperlinks (by wrapping - by hand) 13:04 wrapping commands - bound to meta-uppercase-letters 13:53 M-M wraps the current line into a hyperlink to a manpage 14:12 demonstrating M-M, M-S and M-T with eek sexps 14:40 M-T wraps the current linto an eepitch-xxx/kill/xxx triple 15:47 introduction to the sandboxed tutorials and to M-j (eejump) 16:17 the default numeric arguments for eejump 16:35 M-5 M-j jumps to the index for the documentation for eev 17:15 temp. eev buffers usually start with a sexp that regenerates the buffer 18:23 where the eepitch-to-shell-and-python example is in the documentation 18:58 Other examples 19:07 pdf-like documents 20:43 a tutorial for Lua based on eepitch 22:26 that's it - last comments, where to find more info, how to get in touch

7. Eev video: table of contents

(find-eev-video-links "eevvideo" "video2" "doeyn5MOaB8") (eev-avadj-mode 1) (find-eevvideo t) 0:00 introduction 2:45 unpack the tarball and invoke Emacs 5:07 and make the cursor stop blinking 5:11 Emacs as a Lisp environment 11:48 Open the file "VERSION" (TAB completes) 12:15 (eek "C-x C-f VERSION") is not very readable 12:35 (find-file ".../VERSION") is more readable 12:43 to follow it we type M-e, and M-k to go back 14:00 parts for humans and more or less for humans; passive sexps 14:34 variations of M-e that split the screen 15:09 left side is "before", right side is "after" 16:00 help on a key sequence 16:28 C-h k gives us help on a key sequence 17:46 (eek "C-h k C-x C-f") is an unreadble way to get help on a key 17:55 (describe-function 'find-file) is even messier 18:28 (find-efunctiondescr 'find-file) is cleaner - and why 20:14 introduction the eev documentation in "intro"s 22:30 (eek "M-h M-k C-x C-f") generates a list of hyperlinks 24:15 the first line regenerates the buffer 24:40 the intros are temporary buffers 25:07 we can play without destroying the documentation of eev 25:40 we can copy the hyperlinks to intros to other places 25:53 introduction to eejump 26:44 a plain M-j goes to the index of eejumps 28:00 M-5 M-j goes to the top level of the documentation in intros 28:22 M-2 M-j goes to (find-emacs-intro) 28:36 ...which has lots of links to the emacs manuals 28:54 (find-eev-update-links) 29:47 I could have done that with just instructions in English 30:01 ...but it was more interesting to do that in an executable way. 30:21 remember that the first line regenerates the buffer... 31:07 we use that to select a directory for installation. 31:40 an eepitch block 31:53 emacs is made to handle anything that looks like text... 32:38 running terminals inside Emacs 32:52 the best of both worlds 33:50 f8 35:48 [oops - I forgot to unpack]

8. In Portuguese

(find-eev-video-links "eevvideopt" "video2pt" "yztYD9Y7Iz4") (code-video "eevvideopt" "$S/http/angg.twu.net/eev-videos/video2pt.mp4") (eev-avadj-mode 1) (find-eevvideopt t) ;; (find-eepitchvideo) ;; (find-eevvideo) ;; (find-eevvideopt)

9. Comparison with youtube

Note that Youtube has a trick that lets we use URLs that point to specific positions in videos. For example, this, http://www.youtube.com/watch?v=Lj_zKC5BR64&t=0m16s makes the video about eepitch start at 0:16 instead of from the beginning. Also, each video at Youtube can have uploader comments and a discussion, and in the text of these comments things like "12:34" become links that make the current video skip to that position. (find-audiovideo-intro)

10. Video2pt: Uma introducao ao eev2 (2012nov15)

This is a version in Portuguese of the video above. It is slightly longer than the version in English because it's intended mostly for non-Emacsers, so some things are explained (much) more slowly... At youtube: http://www.youtube.com/watch?v=yztYD9Y7Iz4 http://www.youtube.com/watch?v=yztYD9Y7Iz4&t=1h07m40s Hi-res mp4: http://angg.twu.net/eev-videos/video2pt.mp4 (128228339 bytes, 122MB. Duration: 1:09:42) # (find-eevvideopt) # (find-eevvideopt "1:07:40" "eepitch pro shell e pro Python")

Long story short

You may want to copy the block of elisp below to your .emacs. You can use this sexp to help you: (ee-copy-rest 0 '(find-fline "~/.emacs")) ;; Hyperlinks to videos about eev. ;; See: (find-videos-intro) ;; (find-eev-video-links "eepitchvideo" "video4-eepitch" "Lj_zKC5BR64") ;; (find-eev-video-links "eevvideo" "video2" "doeyn5MOaB8") ;; (find-eev-video-links "eevvideopt" "video2pt" "yztYD9Y7Iz4") (code-video "eepitchvideo" "$S/http/angg.twu.net/eev-videos/video4-eepitch.mp4") (code-video "eevvideo" "$S/http/angg.twu.net/eev-videos/video2.mp4") (code-video "eevvideopt" "$S/http/angg.twu.net/eev-videos/video2pt.mp4") ;; (find-eepitchvideo) ;; (find-eevvideo) ;; (find-eevvideopt) ;; (find-ebuffer "*Messages*")