emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/eev a2726972b9 1/2: Added more info to the videos. Try:


From: ELPA Syncer
Subject: [elpa] externals/eev a2726972b9 1/2: Added more info to the videos. Try: (find-1stclassvideos)
Date: Fri, 11 Feb 2022 02:57:27 -0500 (EST)

branch: externals/eev
commit a2726972b9166e1a8d694a7a4404870722eb40f7
Author: Eduardo Ochs <eduardoochs@gmail.com>
Commit: Eduardo Ochs <eduardoochs@gmail.com>

    Added more info to the videos. Try: (find-1stclassvideos)
---
 ChangeLog           |  16 ++++
 VERSION             |   4 +-
 eev-compose-hash.el |  21 ++---
 eev-elinks.el       |  31 ++++++--
 eev-intro.el        |   9 ++-
 eev-tlinks.el       |  68 +++++++++++-----
 eev-videolinks.el   | 218 ++++++++++++++++++++++++++++++++++++++++------------
 eev.el              |   2 +-
 8 files changed, 277 insertions(+), 92 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f39cd6e5b5..5832eb09e0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2022-02-11  Eduardo Ochs  <eduardoochs@gmail.com>
+
+       * eev-tlinks.el (ee-find-1stclassvideo-links): new function.
+       (find-1stclassvideos): new function.
+       (find-1stclassvideo-links): use `ee-find-1stclassvideo-links' and
+       `find-1stclassvideos'.
+
+       * eev-elinks.el (ee-1stclassvideo-ask): new function.
+       (ee-1stclassvideo-around-point-ask): use `ee-1stclassvideo-ask'.
+       (ee-1stclassvideos): new function.
+
+2022-02-10  Eduardo Ochs  <eduardoochs@gmail.com>
+
+       * eev-videolinks.el (ee-1stclassvideos-info): Added dates,
+       lengths, comments, and links to play the videos.
+
 2022-01-28  Eduardo Ochs  <eduardoochs@gmail.com>
 
        * eev-tlinks.el (find-advicebefore-links): new function.
diff --git a/VERSION b/VERSION
index 93a676a6fa..ee81d498a8 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Fri Jan 28 06:56:14 GMT 2022
-Fri Jan 28 03:56:15 -03 2022
+Fri Feb 11 07:24:13 GMT 2022
+Fri Feb 11 04:24:13 -03 2022
diff --git a/eev-compose-hash.el b/eev-compose-hash.el
index 6d191bfa9c..0bf74ed248 100644
--- a/eev-compose-hash.el
+++ b/eev-compose-hash.el
@@ -498,6 +498,7 @@ instead of inserting."
   ∅ em \\emptyset
   ∇ Na \\nabla
   ∈ in \\in
+  ∎ qe \\blacksquare
   ∖ sm \\backslash
   ∘ oo \\circ
   √ sq \\sqrt
@@ -620,16 +621,16 @@ instead of inserting."
   𝐙 cZ \\mathbf{Z}
 
   face: ee-composes-face-math
-  ₀ _0 {{}_0}
-  ₁ _1 {{}_1}
-  ₂ _2 {{}_2}
-  ₃ _3 {{}_3}
-  ₄ _4 {{}_4}
-  ₅ _5 {{}_5}
-  ₆ _6 {{}_6}
-  ₇ _7 {{}_7}
-  ₈ _8 {{}_8}
-  ₉ _9 {{}_9}
+  ₀ _0 {{\\ensuremath{{}_0}}}
+  ₁ _1 {{\\ensuremath{{}_1}}}
+  ₂ _2 {{\\ensuremath{{}_2}}}
+  ₃ _3 {{\\ensuremath{{}_3}}}
+  ₄ _4 {{\\ensuremath{{}_4}}}
+  ₅ _5 {{\\ensuremath{{}_5}}}
+  ₆ _6 {{\\ensuremath{{}_6}}}
+  ₇ _7 {{\\ensuremath{{}_7}}}
+  ₈ _8 {{\\ensuremath{{}_8}}}
+  ₉ _9 {{\\ensuremath{{}_9}}}
   ₊ _+ {{}_+}
   ₋ _- {{}_-}
   ₌ _= {{}_=}
diff --git a/eev-elinks.el b/eev-elinks.el
index 42b6d6372d..cd38a76410 100644
--- a/eev-elinks.el
+++ b/eev-elinks.el
@@ -1,6 +1,6 @@
 ;;; eev-elinks.el --- `find-efunction-links' and other `find-e*-links'  -*- 
lexical-binding: nil; -*-
 
-;; Copyright (C) 2012-2021 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2022 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GNU eev.
 ;;
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20220120
+;; Version:    20220211
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-elinks.el>
@@ -154,11 +154,28 @@ This function is not very smart - it doesn't understand 
section names."
   (read-string (or prompt "Manpage: ")
               (ee-manpagename-around-point)))
 
-(defun ee-1stclassvideo-around-point-ask (&optional prompt)
+(defun ee-1stclassvideo-around-point-ask ()
 "Ask for the name of a first-class video; the default is a string around 
point."
-  (let ((str (read-string (or prompt "Stem (\"c\") of the video: ")
-                         (ee-stuff-around-point "A-Za-z0-9"))))
-    (replace-regexp-in-string "video$" "" str)))
+  (ee-1stclassvideo-ask (ee-stuff-around-point "A-Za-z0-9")))
+
+;; See: (find-eev "eev-videolinks.el" "ee-1stclassvideos-info")
+;; Tests: (ee-1stclassvideo-ask "foo")
+;;        (ee-1stclassvideo-ask "eev2020")
+;;        (ee-1stclassvideo-ask "eev2020video")
+;;        (ee-1stclassvideos)
+;;
+(defun ee-1stclassvideo-ask (default0)
+  "An internal function used by `ee-1stclassvideo-around-point-ask'."
+  (let* ((default1 (replace-regexp-in-string "video$" "" default0))
+        (videos   (ee-1stclassvideos))
+        (default  (if (member default1 videos) default1))
+        (promptd  (if default (format " (default: %s)" default) ""))
+        (prompt   (format "Stem (\"c\") of the video:%s " promptd)))
+    (completing-read prompt videos nil nil nil nil default)))
+
+(defun ee-1stclassvideos ()
+  (sort (mapcar 'car ee-1stclassvideos-info) 'string<))
+  
 
 
 
@@ -274,6 +291,7 @@ This is an internal function used by `find-efunction-links' 
and
     (find-efunctionpp ',f)
     (find-efunctiond ',f)
     (find-ealias ',f)
+    (find-eppp (symbol-plist ',f))
     ""
     ,@(if (commandp f)
          `((Info-goto-emacs-command-node ',f)
@@ -324,6 +342,7 @@ This is an internal function used by `find-efunction-links' 
and
      (find-evardescr ',var)
      (find-evariable ',var)
      (find-epp ,var)
+     (find-eppp (symbol-plist ',var))
      ""
      (find-enode "Variable Index" ,(format "* %S:" var))
      (find-elnode "Index" ,(format "* %S:" var))
diff --git a/eev-intro.el b/eev-intro.el
index f5b51995ce..27e3ba90e0 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -10255,9 +10255,9 @@ programs; but to simplify we will say just \"shells\"). 
Here is
 an overview of how it worked: if the user marked the three lines
 below,
 
-  rm -Rv /tmp/foo
-  mkdir  /tmp/foo/
-  cd     /tmp/foo/
+  rm -Rfv /tmp/foo/
+  mkdir   /tmp/foo/
+  cd      /tmp/foo/
 
 and typed `M-x eev' (which stood for \"Emacs-execute-verbosely\")
 then Emacs would save those three lines into a temporary script
@@ -10282,13 +10282,14 @@ eev' and \"ee\" work. First execute these two sexps:
   (make-directory \"~/.eev/\" 'force)
   (eev \"rm -Rv /tmp/foo\\nmkdir  /tmp/foo/\\ncd     /tmp/foo/\\n\")
 
-Now run this script
+Now run this script:
 
  (eepitch-bash)
  (eepitch-kill)
  (eepitch-bash)
 export PS1='$PWD# '
 function ee () { set -v; . ~/.eev/ee.sh; set +v; }
+ee
 
 
 
diff --git a/eev-tlinks.el b/eev-tlinks.el
index 0c7592c994..70e57e15ee 100644
--- a/eev-tlinks.el
+++ b/eev-tlinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20220128
+;; Version:    20220211
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-tlinks.el>
@@ -2741,48 +2741,66 @@ This function is used by `ee-0x0-upload-region'."
 
 
 ;; «find-1stclassvideo-links»  (to ".find-1stclassvideo-links")
-;; Skel: (find-find-links-links-new "1stclassvideo" "c" "")
-;; Skel: (find-find-links-links-new "1stclassvideo" "c" "title mp4 yp page 
lang")
+;; Skel: (find-find-links-links-new "1stclassvideo" "c" "body")
 ;;  See: (find-eev "eev-videolinks.el" "first-class-videos")
 ;;       (find-eev "eev-videolinks.el" "second-class-videos")
-;; Tests: (find-1stclassvideo-links "eev2019")
-;;        (find-1stclassvideo-links "eev2020")
+;; Tests: (find-1stclassvideo-links)
+;;        (find-1stclassvideo-links "eev2019")
+;;        (find-1stclassvideo-links "foo")
+;;        (find-estring (ee-find-1stclassvideo-links "eev2019"))
+;;        (find-estring (ee-find-1stclassvideo-links "foo"))
 ;;
 (defun find-1stclassvideo-links (&optional c &rest pos-spec-list)
-  "Visit a temporary buffer containing hyperlinks for eevvideo-1stclass."
+"Visit a temporary buffer containing hyperlinks for 1stclassvideo."
   (interactive (list (ee-1stclassvideo-around-point-ask)))
   (setq c (or c "{c}"))
+  (let* ((body (if (member c (ee-1stclassvideos))
+                  (ee-find-1stclassvideo-links c)
+                ";; Not in: (ee-1stclassvideos)")))
+    (apply
+     'find-elinks-elisp
+     `((find-1stclassvideo-links ,c ,@pos-spec-list)
+       ;; Convention: the first sexp always regenerates the buffer.
+       (find-efunction 'find-1stclassvideo-links)
+       (find-1stclassvideos)
+       ""
+       ,body
+       )
+     pos-spec-list)))
+
+(defun ee-find-1stclassvideo-links (c)
+  "An internal function used by `find-1stclassvideo-links'."
   (let* ((title   (ee-1stclassvideos-field c :title))
         (mp4     (ee-1stclassvideos-field c :mp4))
         (yt      (ee-1stclassvideos-field c :yt))
         (page    (ee-1stclassvideos-field c :page))
+        (date    (ee-1stclassvideos-field c :date))
+        (length  (ee-1stclassvideos-field c :length))
+        (comment (ee-1stclassvideos-field c :comment))
         (lang    (ee-1stclassvideos-field c :lang))
         (mp4stem (ee-1stclassvideos-mp4stem c))
         (hash    (ee-1stclassvideos-hash c)))
-    (apply
-     'find-elinks-elisp
-     `((find-1stclassvideo-links ,c ,@pos-spec-list)
-       ;; Convention: the first sexp always regenerates the buffer.
-       (find-efunction 'find-1stclassvideo-links)
-       ""
-       ,(ee-template0 "\
+    (ee-template0 "\
 ;; Title: {title}
 ;; MP4:   {mp4}
 ;; YT:    {yt}
 ;; Page:  {page}
+;; Comment: {comment}
+;; Date:    {date}
+;; Length:  {length}
+;;
+;; Play:  (find-{c}video \"0:00\")
 ;; Info:  (find-eev \"eev-videolinks.el\" \"{c}\")
 ;;            (find-1stclassvideo-links \"{c}\")
 ;;
 ;; Index: http://angg.twu.net/.emacs.videos.html#{c}
 ;;         (find-angg        \".emacs.videos\"    \"{c}\")
+;;         (find-angg-es-links)
 
 ;; See:
 ;; (find-eev \"eev-videolinks.el\" \"first-class-videos\")
 ;; (find-eev \"eev-videolinks.el\" \"second-class-videos\")
 
-;; Play:
-;; (find-{c}video \"0:00\")
-
 ;; Setups:
  ' (find-ssr-links     \"{c}\" \"{mp4stem}\" \"{hash}\")
  ' (code-eevvideo      \"{c}\" \"{mp4stem}\" \"{hash}\")
@@ -2813,9 +2831,19 @@ and: (find-video-links-intro \\\"7. \\\" 
\\\"find-eev-video\\\")
      for more info on these video tutorials.\"
   (interactive)
   (find-eev-video \"{mp4stem}\" \"{hash}\" time))
-")
-       )
-     pos-spec-list)))
+")))
+
+;; Try: (find-1stclassvideos)
+;;
+(defun find-1stclassvideos (&rest rest)
+  (let* ((ee-buffer-name (or ee-buffer-name "*(find-1stclassvideos)*"))
+        (f (lambda (s) `(find-1stclassvideo-links ,s)))
+        (finds (mapcar f (ee-1stclassvideos))))
+    (apply 'find-elinks-elisp
+          `((find-1stclassvideos)
+            ,@finds)
+          rest)))
+
 
 
 
@@ -2846,7 +2874,7 @@ how this works."
 ;; See: (find-elnode \"Advice Combinators\")
 ;; Demo: http://angg.twu.net/elisp/find-advicebefore-links.el.html
 ;;       http://angg.twu.net/elisp/find-advicebefore-links.el
-;; (find-wget \"http://angg.twu.net/elisp/find-advicebefore-links.el\";)
+;; (find-wget-elisp \"http://angg.twu.net/elisp/find-advicebefore-links.el\";)
 
 (setq  ee-log nil)
 (defun ee-log (f r) (setq ee-log (cons (cons f r) ee-log)))
diff --git a/eev-videolinks.el b/eev-videolinks.el
index 3abef7aaa1..05dff3fb42 100644
--- a/eev-videolinks.el
+++ b/eev-videolinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20220125
+;; Version:    20220210
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-videolinks.el>
@@ -42,11 +42,13 @@
 ;;   «.find-eev2019video»              (to "find-eev2019video")
 ;;   «.find-eev2020video»              (to "find-eev2020video")
 ;;   «.find-eev2021video»              (to "find-eev2021video")
+;;   «.find-eev2021bvideo»             (to "find-eev2021bvideo")
 ;;   «.find-eevnavvideo»               (to "find-eevnavvideo")
 ;;   «.find-eevtemplvideo»             (to "find-eevtemplvideo")
 ;;   «.find-eevfherelvideo»            (to "find-eevfherelvideo")
 ;;   «.find-eevtestblsvideo»           (to "find-eevtestblsvideo")
 ;;   «.find-eevvlinksvideo»            (to "find-eevvlinksvideo")
+;;   «.find-oficina2021avideo»         (to "find-oficina2021avideo")
 ;;   «.find-2021workshop1video»                (to "find-2021workshop1video")
 ;;   «.find-2021workshop2video»                (to "find-2021workshop2video")
 ;;   «.find-2021workshop3video»                (to "find-2021workshop3video")
@@ -345,6 +347,21 @@ and: (find-video-links-intro \"7. `find-eev-video'\")
   (interactive)
   (find-eev-video "emacsconf2021" "{youtubeid}" time))
 
+;; «find-eev2021bvideo»  (to ".find-eev2021bvideo")
+;; Skel: (find-1stclassvideo-links "eev2021b")
+;; Tests: (find-eev2021bvideo "0:00")
+;;        (find-efunctiondescr 'find-eev2021bvideo)
+(defun find-eev2021bvideo (&optional time &rest rest)
+  "Play one of the video tutorials of eev starting at TIME.
+See: (find-eev \"eev-videolinks.el\" \"eev2021b\")
+     http://angg.twu.net/eev-current/eev-videolinks.el.html#eev2020
+     for more info on this particular video,
+and: (find-video-links-intro \"7. \" \"find-eev-video\")
+ or: http://angg.twu.net/eev-intros/find-video-links-intro.html#7
+     for more info on these video tutorials."
+  (interactive)
+  (find-eev-video "emacsconf2021-dednat6" "QUMo7vgkHJI" time))
+
 ;; «find-eevnavvideo»  (to ".find-eevnavvideo")
 ;; Skel: (find-eevshortvideo-links "eevnav" "2020-list-packages-eev-nav" 
"kxBjiUo88_U")
 ;;  See: (find-videos-intro "1. Some videos" "2020-list-packages-eev-nav")
@@ -425,6 +442,21 @@ and: (find-video-links-intro \"7. `find-eev-video'\")
   (interactive)
   (find-eev-video "2021-video-links" "xQqWufQgzVY" time))
 
+;; «find-oficina2021avideo»  (to ".find-oficina2021avideo")
+;; Skel: (find-1stclassvideo-links "oficina2021a")
+;; Tests: (find-oficina2021avideo "0:00")
+;;        (find-efunctiondescr 'find-oficina2021avideo)
+(defun find-oficina2021avideo (&optional time &rest rest)
+  "Play one of the video tutorials of eev starting at TIME.
+See: (find-eev \"eev-videolinks.el\" \"oficina2021a\")
+     http://angg.twu.net/eev-current/eev-videolinks.el.html#eev2020
+     for more info on this particular video,
+and: (find-video-links-intro \"7. \" \"find-eev-video\")
+ or: http://angg.twu.net/eev-intros/find-video-links-intro.html#7
+     for more info on these video tutorials."
+  (interactive)
+  (find-eev-video "2021-oficina-1" "acFPMuZ5Jf4" time))
+
 ;; «find-2021workshop1video»  (to ".find-2021workshop1video")
 ;; Skel: (find-eevshortvideo-links "2021workshop1" "2021-workshop-1" 
"xQqWufQgzVY")
 ;;  See: (find-videos-intro "1. Some videos" "2021-workshop-1")
@@ -611,164 +643,252 @@ and: (find-video-links-intro \"7. \" \"find-eev-video\")
 (defvar ee-1stclassvideos-info
   '(;;
     ;; «eev2019»  (to ".eev2019")
+    ;; Play: (find-eev2019video "0:00")
     ("eev2019"
      :title "How to record executable notes with eev - and how to play them 
back"
-     :mp4  "http://angg.twu.net/eev-videos/emacsconf2019.mp4";
-     :yt   "http://www.youtube.com/watch?v=86yiRG8YJD0";
-     :page "http://angg.twu.net/emacsconf2019.html";)
+     :mp4   "http://angg.twu.net/eev-videos/emacsconf2019.mp4";
+     :yt    "http://www.youtube.com/watch?v=86yiRG8YJD0";
+     :page  "http://angg.twu.net/emacsconf2019.html";
+     :date    "2019nov02"
+     :length  "19:21"
+     :comment "A good non-technical introduction to eev.")
     ;;
     ;; «eev2020»  (to ".eev2020")
+    ;; Play: (find-eev2020video "0:00")
     ("eev2020"
      :title "On why most of the best features in eev look like 5-minute hacks"
-     :mp4  "http://angg.twu.net/eev-videos/emacsconf2020.mp4";
-     :yt   "http://www.youtube.com/watch?v=hOAqBc42Gg8";
-     :page "http://angg.twu.net/emacsconf2020.html";)
+     :mp4   "http://angg.twu.net/eev-videos/emacsconf2020.mp4";
+     :yt    "http://www.youtube.com/watch?v=hOAqBc42Gg8";
+     :page  "http://angg.twu.net/emacsconf2020.html";
+     :date    "2020nov28"
+     :length  "47:08"
+     :comment "A good technical introduction to eev.")
     ;;
     ;; «eev2021»  (to ".eev2021")
+    ;; Play: (find-eev2021video "0:00")
     ("eev2021"
      :title "Test blocks"
-     :mp4  "http://angg.twu.net/eev-videos/emacsconf2021.mp4";
-     :yt   "http://www.youtube.com/watch?v=qM0Luz78qGw";
-     :page "http://angg.twu.net/emacsconf2021.html";)
+     :mp4   "http://angg.twu.net/eev-videos/emacsconf2021.mp4";
+     :yt    "http://www.youtube.com/watch?v=qM0Luz78qGw";
+     :page  "http://angg.twu.net/emacsconf2021.html";
+     :date    "2021nov21"
+     :length  "6:04"
+     :comment "START BY THIS VIDEO!!!")
     ;;
     ;; «eev2021b»  (to ".eev2021b")
+    ;; Play: (find-eev2021bvideo "0:00")
     ("eev2021b"
      :title "Test blocks in Dednat6"
-     :mp4  "http://angg.twu.net/eev-videos/emacsconf2021-dednat6.mp4";
-     :yt   "http://www.youtube.com/watch?v=QUMo7vgkHJI";
-     :page "http://angg.twu.net/emacsconf2021.html";)
+     :mp4   "http://angg.twu.net/eev-videos/emacsconf2021-dednat6.mp4";
+     :yt    "http://www.youtube.com/watch?v=QUMo7vgkHJI";
+     :page  "http://angg.twu.net/emacsconf2021.html";
+     :date    "2021nov28"
+     :length  "8:11"
+     :comment "How I use test blocks (see above) in real life.")
     ;;
     ;; «eevnav»  (to ".eevnav")
+    ;; Play: (find-eevnavvideo "0:00")
     ("eevnav"
      :title "How to install eev with M-x list-packages and how to navigate its 
tutorials"
      :mp4   "http://angg.twu.net/eev-videos/2020-list-packages-eev-nav.mp4";
      :yt    "http://www.youtube.com/watch?v=kxBjiUo88_U";
-     :page  "http://angg.twu.net/2020-list-packages-eev-nav.html";)
+     :page  "http://angg.twu.net/2020-list-packages-eev-nav.html";
+     :date    "2020oct04"
+     :length  "12:41"
+     :comment "If you are learning Emacs start by this video!")
     ;;
     ;; «eevtempl»  (to ".eevtempl")
+    ;; Play: (find-eevtemplvideo "0:00")
     ("eevtempl"
      :title "Some template-based functions of eev that are not five-minute 
hacks"
      :mp4   "http://angg.twu.net/eev-videos/2020-some-template-based.mp4";
      :yt    "http://www.youtube.com/watch?v=91-9YfRPsuk";
-     :page  "http://angg.twu.net/2020-some-template-based.html";)
+     :page  "http://angg.twu.net/2020-some-template-based.html";
+     :date    "2020dec24"
+     :length  "33:11"
+     :comment "")
     ;;
     ;; «eevfherel»  (to ".eevfherel")
+    ;; Play: (find-eevfherelvideo "0:00")
     ("eevfherel"
      :title "How to create hyperlinks to \"here\" with `find-here-links'"
      :mp4   "http://angg.twu.net/eev-videos/2020-find-here-links.mp4";
      :yt    "http://www.youtube.com/watch?v=8jtiBlaDor4";
-     :page  "http://angg.twu.net/2020-find-here-links.html";)
+     :page  "http://angg.twu.net/2020-find-here-links.html";
+     :date    "2020dec26"
+     :length  "24:08"
+     :comment "A badly-rehearsed tutorial on an advanced feature.")
     ;;
     ;; «eevtestbls»  (to ".eevtestbls")
+    ;; Play: (find-eevtestblsvideo "0:00")
     ("eevtestbls"
      :title "Using test blocks in eev (jan/2021)"
      :mp4   "http://angg.twu.net/eev-videos/2021-test-blocks.mp4";
      :yt    "http://www.youtube.com/watch?v=fpsF_M55W4o";
-     :page  "http://angg.twu.net/2021-test-blocks.html";)
+     :page  "http://angg.twu.net/2021-test-blocks.html";
+     :date    "2021jan24"
+     :length  "4:45"
+     :comment "My first video on test blocks. Watch the video `eev2021' 
instead.")
     ;;
     ;; :title "Short videos about workflows - and how to upload them"
     ;; :page  "http://angg.twu.net/2021-ssr.html";
     ;; ^ bad & obsolete
     ;;
     ;; «eevvlinks»  (to ".eevvlinks")
+    ;; Play: (find-eevvlinksvideo "0:00")
     ("eevvlinks"
      :title "How to use the `[Video links:]' blocks in the `intro's of eev"
      :mp4   "http://angg.twu.net/eev-videos/2021-video-links.mp4";
      :yt    "http://www.youtube.com/watch?v=xQqWufQgzVY";
-     :page  "http://angg.twu.net/2021-video-links.html";)
+     :page  "http://angg.twu.net/2021-video-links.html";
+     :date    "2021may10"
+     :length  "14:56"
+     :comment "A very good tutorial on how the `(find-*video)' links work.")
     ;;
     ;; «oficina2021a»  (to ".oficina2021a")
+    ;; Play: (find-oficina2021avideo "0:00")
     ("oficina2021a"
      :title "Como instalar o eev no Emacs"
      :mp4   "http://angg.twu.net/eev-videos/2021-oficina-1.mp4";
      :yt    "http://www.youtube.com/watch?v=acFPMuZ5Jf4";
      :page  "http://angg.twu.net/2021-oficina.html";
-     :lang  "portuguese")
+     :lang  "portuguese"
+     :date    "2021nov05"
+     :length  "14:58"
+     :comment "A very good introduction in Portuguese for beginners.")
     ;;
     ;; «oficina2021b»  (to ".oficina2021b")
+    ;; Play: (find-oficina2021bvideo "0:00")
     ("oficina2021b"
      :title "Exercícios de criar e guardar links (1)"
      :mp4   "http://angg.twu.net/eev-videos/2021-oficina-2.mp4";
      :yt    "https://www.youtube.com/watch?v=XbuDnkfizYs";
      :page  "http://angg.twu.net/2021-oficina.html";
-     :lang  "portuguese")
+     :lang  "portuguese"
+     :date    "2021nov09"
+     :length  "14:10"
+     :comment "A few very basic exercises for beginners. In portuguese.")
     ;;
     ;; «2021workshop1»  (to ".2021workshop1")
+    ;; Play: (find-2021workshop1video "0:00")
     ("2021workshop1"
      :title "The base cases 1 and 2 (workshop 2021-dec-04)"
      :mp4   "http://angg.twu.net/eev-videos/2021-workshop-1.mp4";
      :yt    "https://www.youtube.com/watch?v=HuqJFPD871E";
-     :page  "http://angg.twu.net/2021-workshop.html";)
+     :page  "http://angg.twu.net/2021-workshop.html";
+     :date    "2021dec01"
+     :length  "2:26"
+     :comment "Very bad - don't watch!!!")
     ;;
     ;; «2021workshop2»  (to ".2021workshop2")
+    ;; Play: (find-2021workshop2video "0:00")
     ("2021workshop2"
      :title "Creating a link to a file with a 2-window setting (workshop 
2021-dec-04)"
-     :mp4  "http://angg.twu.net/eev-videos/2021-workshop-2.mp4";
-     :yt   "http://www.youtube.com/watch?v=hqqIlZBXNhk";
-     :page "http://angg.twu.net/2021-workshop.html";)
+     :mp4   "http://angg.twu.net/eev-videos/2021-workshop-2.mp4";
+     :yt    "http://www.youtube.com/watch?v=hqqIlZBXNhk";
+     :page  "http://angg.twu.net/2021-workshop.html";
+     :date    "2021dec01"
+     :length  "3:39"
+     :comment "Very bad - don't watch!!!")
     ;;
     ;; «2021workshop3»  (to ".2021workshop3")
+    ;; Play: (find-2021workshop3video "0:00")
     ("2021workshop3"
      :title "Material on `M-3 M-e' (workshop 2021-dec-04)"
-     :mp4  "http://angg.twu.net/eev-videos/2021-workshop-3.mp4";
-     :yt   "http://www.youtube.com/watch?v=r83inf9s8zo";
-     :page "http://angg.twu.net/2021-workshop.html";)
+     :mp4   "http://angg.twu.net/eev-videos/2021-workshop-3.mp4";
+     :yt    "http://www.youtube.com/watch?v=r83inf9s8zo";
+     :page  "http://angg.twu.net/2021-workshop.html";
+     :date    "2021dec03"
+     :length  "18:22"
+     :comment "Very bad - don't watch!!!")
     ;;
     ;; «2021workshop4»  (to ".2021workshop4")
+    ;; Play: (find-2021workshop4video "0:00")
     ("2021workshop4"
      :title "Invisible text (workshop 2021-dec-04)"
      :mp4  "http://angg.twu.net/eev-videos/2021-workshop-4.mp4";
      :yt   "http://www.youtube.com/watch?v=lhpHHjBUxv8";
-     :page "http://angg.twu.net/2021-workshop.html";)
+     :page "http://angg.twu.net/2021-workshop.html";
+     :date    "2021dec04"
+     :length  "5:42"
+     :comment "Very bad - don't watch!!!")
     ;;
     ;; «2021workshop5»  (to ".2021workshop5")
+    ;; Play: (find-2021workshop5video "0:00")
     ("2021workshop5"
      :title "Copy from left to right (workshop 2021-dec-04)"
-     :mp4  "http://angg.twu.net/eev-videos/2021-workshop-5.mp4";
-     :yt   "http://www.youtube.com/watch?v=VzRsterVSXs";
-     :page "http://angg.twu.net/2021-workshop.html";)
+     :mp4   "http://angg.twu.net/eev-videos/2021-workshop-5.mp4";
+     :yt    "http://www.youtube.com/watch?v=VzRsterVSXs";
+     :page  "http://angg.twu.net/2021-workshop.html";
+     :date    "2021dec04"
+     :length  "8:50"
+     :comment "Very bad - don't watch!!!")
     ;;
     ;; «2021workshop6»  (to ".2021workshop6")
+    ;; Play: (find-2021workshop6video "0:00")
     ("2021workshop6"
      :title "`find-extra-file-links' (workshop 2021-dec-04)"
-     :mp4  "http://angg.twu.net/eev-videos/2021-workshop-6.mp4";
-     :yt   "http://www.youtube.com/watch?v=-gi15-liGaU";
-     :page "http://angg.twu.net/2021-workshop.html";)
+     :mp4   "http://angg.twu.net/eev-videos/2021-workshop-6.mp4";
+     :yt    "http://www.youtube.com/watch?v=-gi15-liGaU";
+     :page  "http://angg.twu.net/2021-workshop.html";
+     :date    "2021dec04"
+     :length  "10:08"
+     :comment "Very bad - don't watch!!!")
     ;;
     ;; «2021orgfornonusers»  (to ".2021orgfornonusers")
+    ;; Play: (find-2021orgfornonusersvideo "0:00")
     ("2021orgfornonusers"
      :title "Org for Non-Users (2021)"
-     :mp4  "http://angg.twu.net/eev-videos/2021-org-for-non-users.mp4";
-     :yt   "http://www.youtube.com/watch?v=Eh5Wz9Vh_XM";
-     :page "http://angg.twu.net/2021-org-for-non-users.html";)
+     :mp4   "http://angg.twu.net/eev-videos/2021-org-for-non-users.mp4";
+     :yt    "http://www.youtube.com/watch?v=Eh5Wz9Vh_XM";
+     :page  "http://angg.twu.net/2021-org-for-non-users.html";
+     :date    "2021dec11"
+     :length  "10:08"
+     :comment "On why Org and eev follow opposite principles.")
     ;;
     ;; «2021ffll»  (to ".2021ffll")
+    ;; Play: (find-2021ffllvideo "0:00")
     ("2021ffll"
      :title "How I write 5-minute hacks in eev using `M-x 
find-find-links-links-new'"
-     :mp4  "http://angg.twu.net/eev-videos/2021-ffll.mp4";
-     :yt   "http://www.youtube.com/watch?v=h1CEL2fmkyc";
-     :page "http://angg.twu.net/2021-ffll.html";)
+     :mp4   "http://angg.twu.net/eev-videos/2021-ffll.mp4";
+     :yt    "http://www.youtube.com/watch?v=h1CEL2fmkyc";
+     :page  "http://angg.twu.net/2021-ffll.html";
+     :date    "2021dec25"
+     :length  "1:15:46"
+     :comment "A tutorial on a very advanced feature.")
     ;;
     ;; «2022eevmake0»  (to ".2022eevmake0")
+    ;; Play: (find-2022eevmake0video "0:00")
     ("2022eevmake0"
      :title "Using eev to test make(files)"
-     :mp4  "http://angg.twu.net/eev-videos/2022-eev-make-0.mp4";
-     :yt   "http://www.youtube.com/watch?v=Iql5C-yQk5c";
-     :page "http://angg.twu.net/eev-make.html";)
+     :mp4   "http://angg.twu.net/eev-videos/2022-eev-make-0.mp4";
+     :yt    "http://www.youtube.com/watch?v=Iql5C-yQk5c";
+     :page  "http://angg.twu.net/eev-make.html";
+     :date    "2022jan04"
+     :length  "6:43"
+     :comment "How to use test blocks in weird places. Unrehearsed.")
     ;;
     ;; «2022findeevangg»  (to ".2022findeevangg")
+    ;; Play: (find-2022findeevanggvideo "0:00")
     ("2022findeevangg"
      :title "Running executable notes from http://angg.twu.net/ with find-angg 
and find-wget"
-     :mp4  "http://angg.twu.net/eev-videos/2022-find-eev-angg.mp4";
-     :yt   "http://www.youtube.com/watch?v=FoAzpGzFCSE";
-     :page "http://angg.twu.net/eev-find-angg.html";)
+     :mp4   "http://angg.twu.net/eev-videos/2022-find-eev-angg.mp4";
+     :yt    "http://www.youtube.com/watch?v=FoAzpGzFCSE";
+     :page  "http://angg.twu.net/eev-find-angg.html";
+     :date    "2022jan16"
+     :length  "17:59"
+     :comment "A very good video on a very useful trick.")
     ;;
     ;; «2022findelispintro»  (to ".2022findelispintro")
+    ;; Play: (find-2022findelispintrovideo "0:00")
     ("2022findelispintro"
      :title "Why eev has a weird elisp tutorial and how to use it"
-     :mp4  "http://angg.twu.net/eev-videos/2022-find-elisp-intro.mp4";
-     :yt   "http://www.youtube.com/watch?v=WowDSciGs1A";
-     :page "http://angg.twu.net/find-elisp-intro.html";)
+     :mp4   "http://angg.twu.net/eev-videos/2022-find-elisp-intro.mp4";
+     :yt    "http://www.youtube.com/watch?v=WowDSciGs1A";
+     :page  "http://angg.twu.net/find-elisp-intro.html";
+     :date    "2022jan23"
+     :length  "21:12"
+     :comment "A very good video on the design decisions behind 
`(find-elisp-intro)'.")
     ))
 
 
diff --git a/eev.el b/eev.el
index 8b0beab618..3db454312a 100644
--- a/eev.el
+++ b/eev.el
@@ -6,7 +6,7 @@
 ;; Package-Requires: ((emacs "24.4"))
 ;; Keywords: lisp e-scripts
 ;; URL: http://angg.twu.net/#eev
-;; Version: 20220120
+;; Version: 20220211
 
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by



reply via email to

[Prev in Thread] Current Thread [Next in Thread]