[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