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



1. 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.

2. Downloading local copies

Here are direct links to both the low-res versions at Youtube and to the corresponding high-res ".mp4"s: Eepitch: a way to control shell-like programs from Emacs http://www.youtube.com/watch?v=Lj_zKC5BR64 http://angg.twu.net/eev-videos/video4-eepitch.mp4 An introduction to eev2 (2012nov11) http://www.youtube.com/watch?v=doeyn5MOaB8 http://angg.twu.net/eev-videos/video2.mp4 (The video about eepitch is shorter and far better than the other one - please start by it.) The ideas behind "local copies" are here: (find-psne-intro) These sexps generate the download scripts in temporary buffers: (find-eev-video-links "eepitchvideo" "video4-eepitch" "Lj_zKC5BR64") (find-eev-video-links "eevvideo" "video2" "doeyn5MOaB8")

3. Hyperlinks to the local copies of the videos

Notice that the download scripts above contain these sexps: (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") After you execute them hyperlinks like these should work: (find-eepitchvideo) (find-eevvideo) Note that they use mplayer to display the videos, and if you don't have mplayer - or if you haven't downloaded the ".mp4"s - then you will get error messages in the "*Messages*" buffer. You can inspect them with `C-x b *Messages*' or with: (find-ebuffer "*Messages*")

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 anyting 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*")