Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#######
#
# E-scripts on eev itself: demos, hints, packing, works in progress, etc.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
#   (find-eev-quick-intro)
#   http://angg.twu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/eev.e>
#           or at <http://angg.twu.net/e/eev.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######





# «.mailing-list»		(to "mailing-list")
# «.byte-compilation-bug»	(to "byte-compilation-bug")
# «.debian-package»		(to "debian-package")
# «.cdbs»			(to "cdbs")
# «.dh-make»			(to "dh-make")
# «.dh-make-2»			(to "dh-make-2")
# «.inspect-the-DEBIAN-dir»	(to "inspect-the-DEBIAN-dir")
# «.eev-deb-unpacked»		(to "eev-deb-unpacked")
# «.eev-repository.tar»		(to "eev-repository.tar")
# «.upload-the-deb»		(to "upload-the-deb")
# «.sources.list»		(to "sources.list")
# «.dpkg-i»			(to "dpkg-i")
# «.what-the-deb»		(to "what-the-deb")
# «.backtick-eev-mode»		(to "backtick-eev-mode")
# «.code-c-d-docs»		(to "code-c-d-docs")
# «.README.Debian»		(to "README.Debian")
# «.vncserver-very-old»		(to "vncserver-very-old")
# «.vnc2swf»			(to "vnc2swf")
# «.byzanz»			(to "byzanz")
# «.isend»			(to "isend")
# «.dmarc»			(to "dmarc")
# «.eepitch-indented»		(to "eepitch-indented")
# «.eepitch-indented-tomas»	(to "eepitch-indented-tomas")
# «.eev2.tgz»			(to "eev2.tgz")
# «.eev2-video-1.sh»		(to "eev2-video-1.sh")
# «.eev2-build-tgz»		(to "eev2-build-tgz")
# «.eev2-test-unpack»		(to "eev2-test-unpack")
# «.eev2-test»			(to "eev2-test")
# «.eev2-hmtlize-intros»	(to "eev2-hmtlize-intros")
# «.eev2-add-new-intro»		(to "eev2-add-new-intro")
# «.eev2-add-new-file»		(to "eev2-add-new-file")
# «.eev2-upload»		(to "eev2-upload")
# «.eev2-video-2.sh»		(to "eev2-video-2.sh")
# «.eev2-video3-eepitch»	(to "eev2-video3-eepitch")
# «.eev2-announcements»		(to "eev2-announcements")
# «.move-to-eev-mode»		(to "move-to-eev-mode")
# «.video-eev-quick-0»		(to "video-eev-quick-0")
# «.video-eev-quick-1»		(to "video-eev-quick-1")
# «.video-sympy-1»		(to "video-sympy-1")
# «.video-sympy-1-end»		(to "video-sympy-1-end")
# «.video-three-keys-pt-1»	(to "video-three-keys-pt-1")
# «.video-three-keys-2»		(to "video-three-keys-2")
# «.video-three-keys-index»	(to "video-three-keys-index")
# «.video-emacsconf-short»	(to "video-emacsconf-short")
# «.video-emacsconf-short-i»	(to "video-emacsconf-short-i")
# «.video-emacsconf-short-dt»	(to "video-emacsconf-short-dt")
# «.video-workshop-0»		(to "video-workshop-0")
# «.video-workshop-1»		(to "video-workshop-1")
# «.video-workshop-2»		(to "video-workshop-2")
# «.video-workshop-3»		(to "video-workshop-3")
# «.video-workshop-4»		(to "video-workshop-4")
# «.video-workshop-5»		(to "video-workshop-5")
# «.video-eev-wconfig-pt»	(to "video-eev-wconfig-pt")
# «.video-eev-wconfig»		(to "video-eev-wconfig")
# «.punch-and-judy»		(to "punch-and-judy")
# «.emacsconf2019-captions»	(to "emacsconf2019-captions")
# «.2020-several-tbfs»		(to "2020-several-tbfs")
# «.find-esymbol»		(to "find-esymbol")
# «.find-elisp-into-subs»	(to "find-elisp-into-subs")

# «.carmen-1»			(to "carmen-1")
# «.eegchannel-test»		(to "eegchannel-test")
# «.eexterm-test»		(to "eexterm-test")

# «.eev-emacs-package»		(to "eev-emacs-package")
# «.eev-pkg.el-fields»		(to "eev-pkg.el-fields")
# «.eev-pkg-repo»		(to "eev-pkg-repo")
# «.eev-pkg-build»		(to "eev-pkg-build")
# «.eev-pkg-readme»		(to "eev-pkg-readme")
# «.eev-pkg-test-0»		(to "eev-pkg-test-0")
# «.eev-pkg-submit-to-ELPA»	(to "eev-pkg-submit-to-ELPA")
# «.eek-pkg-announcement»	(to "eek-pkg-announcement")
# «.eev-pkg-signing»		(to "eev-pkg-signing")
# «.eev-in-elpa»		(to "eev-in-elpa")
# «.eev-tar-windows»		(to "eev-tar-windows")
# «.push-master»		(to "push-master")
# «.git-merge-elpa»		(to "git-merge-elpa")
# «.find-wget-email»		(to "find-wget-email")
# «.describe-symbol»		(to "describe-symbol")
# «.eepitch-shell-vterm»	(to "eepitch-shell-vterm")
# «.quick-load»			(to "quick-load")
# «.eev-on-windows-on-linux»	(to "eev-on-windows-on-linux")
# «.eev-on-windows-julha»	(to "eev-on-windows-julha")
# «.eev-on-windows-aniketgm»	(to "eev-on-windows-aniketgm")
# «.felipe-bastos»		(to "felipe-bastos")
# «.felipe-bastos-pdf-bug»	(to "felipe-bastos-pdf-bug")
# «.felipe-bastos-wgeta-bug»	(to "felipe-bastos-wgeta-bug")
# «.lucatelli»			(to "lucatelli")
# «.info-tutorial»		(to "info-tutorial")
# «.2021-workshop-log»		(to "2021-workshop-log")
# «.vagner-settings»		(to "vagner-settings")
# «.eev-on-windows-lucas»	(to "eev-on-windows-lucas")
# «.wconfig-fake-wget.exe»	(to "wconfig-fake-wget.exe")


# (find-angg "TEXINFO/eev-article.texi")
# (find-eevex "")
# (find-eevex "lua.e" "quick-presentation")





#####
#
# Mailing list
# 2012apr06
#
#####

# «mailing-list»  (to ".mailing-list")

# http://lists.gnu.org/archive/html/eev/        archives
# http://lists.nongnu.org/mailman/listinfo/eev  subscription
# http://dir.gmane.org/gmane.emacs.eev.devel    gmane
# http://news.gmane.org/gmane.emacs.eev.devel


https://www.gnu.org/software/maintainer-tips.en.html

# E-mail to maintainers@gnu, 2019jan22:
# https://mail.google.com/mail/ca/u/0/#sent/QgrcJHsHkxCzVrHtZWklGZRhJTxKVNjqwvG

I lost admin access to the eev mailing list

Hi Maintainers,

I lost admin access to the eev mailing list,

  http://lists.gnu.org/archive/html/eev/
  https://lists.nongnu.org/mailman/listinfo/eev

even though my main e-mail, eduardoochs@gmail.com, is still one of the
administrative e-mails of the list... What do I do? 

Thanks in advance!
  Eduardo Ochs
  http://angg.twu.net/#eev


# 2021jun06:
# http://savannah.nongnu.org/projects/eev
# https://savannah.nongnu.org/support/?109635







#####
#
# Michael Heerdegen's bug
# 2008sep04
#
#####

# «byte-compilation-bug»  (to ".byte-compilation-bug")
# https://mail.google.com/mail/ca/u/0/#search/Michael+Heerdegen
# https://mail.google.com/mail/ca/u/0/#search/Michael+Heerdegen/11ca96503c16e1dc glyphs
# https://mail.google.com/mail/ca/u/0/#search/Michael+Heerdegen/11c2996861415ce6 byte-compilation

Hi Michael!

Thanks a lot for your report - I've been able to reproduce the bug at
my machine... here's the e-script that I used, by the way:

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
rm -v /tmp/test.elc
cat > /tmp/test.el <<'%%%'
(setq y (+ 1 2))
%%%
cat > /tmp/loadeev.el <<'%%%'
(progn
  (add-to-list 'load-path "~/eev-current/")
  (require 'eev-all)
  (eev-mode 1))
(eev-mode 0)
(byte-compile-file "/tmp/test.el")
%%%
~/bigsrc/emacs/src/emacs -Q loadeev.el

The "loadeev.el" file gives me an easy way to choose which sexps to
execute.

I know very little about byte-compilation too (really!), but I have
some ideas for what to do to track down this bug... I'll try them over
the next days. Anyway: strangely, if I run the sexp

  (byte-compile-file "/tmp/test.el")

with M-5 M-e - this is a way to eval a sexp with debug-on-error
temporarily turned on - the byte-compiler does not stop when the "End
of file during parsing" error occurs...

  Cheers, & thanks again,
    Eduardo Ochs
    eduardoochs@gmail.com
    http://angg.twu.net/


P.S.: did you notice that byte-compiling test.el always gives a
warning?

  Compiling file /tmp/test.el at Thu Sep  4 22:48:58 2008
  test.el:1:7:Warning: assignment to free variable `y'
  test.el:1:3:Error: End of file during parsing

Assignment to non-defvar'ed variables is frowned upon...






#####
#
# New ideas for a Debian package for eev
# 2009jul26
#
#####

# «debian-package»  (to ".debian-package")
# «cdbs»  (to ".cdbs")
# (find-angg ".emacs" "debian-devel-docs")

# (find-efile "progmodes/ps-mode.el" ":prefix \"ps-run-\"")
# (find-fline "/usr/share/doc/emacsen-common/debian-emacs-policy.gz")
# (find-fline "/usr/share/emacs/")
# (find-fline "/etc/emacs/site-start.d/")
# (find-sitelispfile "maxima/")

# (find-status   "cdbs")
# (find-vldifile "cdbs.list")
# (find-udfile   "cdbs/")
# (find-udw3m "cdbs/cdbs-doc.html")
# (find-udw3m "cdbs/cdbs-doc.html" "\nSwitching the Package to CDBS\n\n")
# (find-udw3m "cdbs/cdbs-doc.html" "DEB_DESTDIR")
# (find-udw3m "cdbs/cdbs-doc.html" "build/myprog::")
# (find-fline "/usr/share/cdbs/1/")

# (find-sh "grep -niH -e cdbs ~/usrc/*/*/debian/*")
# (find-fline "~/usrc/camlp5/camlp5-5.10/debian/rules")

#*
# (eev-bounded)

rm -Rv ~/usrc/eev/
mkdir  ~/usrc/eev/
mkdir  ~/usrc/eev/eev-0.1/
mkdir  ~/usrc/eev/eev-0.1/debian/
cat >  ~/usrc/eev/eev-0.1/debian/rules <<'%%%'
#!/usr/bin/make -f
include /usr/share/cdbs/1/class/makefile.mk
include /usr/share/cdbs/1/rules/debhelper.mk
DEB_PACKAGES = eev
PKGNAME = eev
configure/$(PKGNAME):: debian/configure-stamp
debian/configure-stamp:
	./configure $(CONFIGURE_FLAGS)
	touch debian/configure-stamp
clean::
	rm -f debian/configure-stamp
build/$(PKGNAME)::
	$(MAKE) -C doc/
	echo foo > doc/foo
%%%

# (find-anggfile "mktclapp-3.9/debian/changelog")
# (find-fline "~/usrc/eev/eev-0.1/debian/changelog")
# (find-maintgtext "dh_make -e your.maintainer@address")
# (find-man "8 dh_make")

# (find-status   "dh-make")
# (find-vldifile "dh-make.list")
# (find-udfile   "dh-make/")

cat > ~/usrc/eev/eev-0.1/debian/changelog <<'%%%'
%%%

# (find-



cat  > ~/usrc/eev/eev-0.1/debian/control <<'%%%'
Source: eev
Section: editors
Priority: optional
Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
Uploaders: Eduardo Ochs <eduardoochs@gmail.com>
Standards-Version: 3.7.3
Build-Depends:

Package: eev
Architecture: any
Depends: emacsen-common
Recommends: maxima
Suggests: bash
Description: Eev.
 Long description.
%%%

cd     ~/usrc/eev/eev-0.1/
dpkg-buildpackage -us -uc -b -rfakeroot     |& tee odb

#*
# (find-fline "~/usrc/eev/eev-0.1/")
# (find-fline "~/usrc/eev/eev-0.1/debian/")




#####
#
# dh-make (first attempt, obsolete)
# 2009aug03
#
#####

# «dh-make»  (to ".dh-make")
# (find-eev "debian/control.sh")
# (find-eev "debian/90eev.el")
# (find-maintgtext "dh_make -e your.maintainer@address")
# (find-man "8 dh_make")
# (find-fline "/var/cache/apt/archives/")
# (find-fline "/var/cache/apt/archives/debian-el_29.3-2_all.deb")
#*
rm -Rv ~/usrc/eev/
mkdir  ~/usrc/eev/
mkdir  ~/usrc/eev/eev-0.1/
cd     ~/usrc/eev/eev-0.1/

mkdir -p etc/emacs/site-start.d/
mkdir -p usr/share/emacs/site-lisp/eev/
cat    > etc/emacs/site-start.d/90eev.el <<'%%%'
;; (find-angg ".emacs" "eev-block")
;; (add-to-list 'load-path "/usr/share/emacs/site-lisp/eev")
;; (require 'eev-all)      ; (find-eev "eev-all.el")
;; (eev-mode 1)
(message "The debianized eev package would be loaded.")
%%%
cat    > usr/share/emacs/site-lisp/eev/foo.el <<'%%%'
(message "Foo!")
%%%
cat    > Makefile <<'%%%'
clean:
%%%

# (find-udw3m "cdbs/cdbs-doc.html" "DEB_DESTDIR")
# (find-udw3m "cdbs/cdbs-doc.html" "build/myprog::")
# (find-udw3m "cdbs/cdbs-doc.html" "install/foo::")
# (find-maintgtext "")
# (find-maintgtext "4.4. `rules' file")

# (find-man "8 dh_make")
echo | \
DEBFULLNAME="Eduardo Ochs" \
  dh_make --email eduardoochs@gmail.com \
          --copyright=gpl \
          --cdbs \
          --native

rm -v debian/README.Debian debian/*.EX debian/*.ex

cat >> debian/rules <<'%%%'
build/eev::
install/eev::
	echo "In install: $(DEB_DESTDIR)"
	cp -Rv etc/ usr/ debian/eev/
%%%

mv -iv debian/control debian/control.orig
cat >  debian/control <<'%%%'
Source: eev
Section: editors
Priority: extra
Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
Build-Depends: cdbs, debhelper (>= 7)
Standards-Version: 3.7.3
Homepage: http://angg.twu.net/

Package: eev
Architecture: all
Depends: emacs
Description: <insert up to 60 chars description>
 <insert long description, indented with spaces>
%%%

dpkg-buildpackage -us -uc -b -rfakeroot     |& tee odb

#*
# (find-fline "~/usrc/eev/eev-0.1/")
# (find-fline "~/usrc/eev/eev-0.1/odb")
# (find-fline "~/usrc/eev/eev-0.1/debian/")
# (find-fline "~/usrc/eev/eev-0.1/debian/control")
# (find-sh "cd ~/usrc/eev/eev-0.1/debian/eev/ && find")
# (find-fline "~/usrc/eev/eev-0.1/debian/dirs")

# (find-fline   "~/usrc/eev/eev_0.1_i386.deb")
# (find-sh "ar t ~/usrc/eev/eev_0.1_i386.deb")
# (find-sh "ar p ~/usrc/eev/eev_0.1_i386.deb control.tar.gz | tar -tvzf -")
# (find-sh "ar p ~/usrc/eev/eev_0.1_i386.deb data.tar.gz    | tar -tvzf -")
# (find-sh "ar p ~/usrc/eev/eev_0.1_i386.deb debian-binary")

# (find-fline   "~/usrc/eev/eev_0.1_all.deb")
# (find-sh "ar t ~/usrc/eev/eev_0.1_all.deb")
# (find-sh "ar p ~/usrc/eev/eev_0.1_all.deb control.tar.gz | tar -tvzf -")
# (find-sh "ar p ~/usrc/eev/eev_0.1_all.deb data.tar.gz    | tar -tvzf -")
# (find-sh "ar p ~/usrc/eev/eev_0.1_all.deb debian-binary")

# (find-man "1 ar")


# (find-maintgtext "5.4. dirs")
# cat > debian/dirs <<'%%%'
# /usr/share/emacs/site-lisp/eev
# etc/emacs/site-start.d
# %%%




#####
#
# Building a Debian package for eev with dh-make (attempt 2)
# 2009aug16 / 2009nov25
#
#####

# «dh-make-2»  (to ".dh-make-2")
# (find-angg ".emacs" "eevbuild")
# (find-dhmake-links "eev" "eevbuild" "20110612")

# (find-eev "debian/README.Debian" nil "How the .deb is built")
# (find-eevsh "ls *.el")
# (find-eev "debian/")
# (find-eev "debian/emacs-eev")
# (find-eev "debian/90eev.el")
# (find-eev "debian/Makefile")
# (find-eev "debian/rules")
# (find-eev "debian/control.sh")
# (find-eev "debian/README.Debian")
# (find-maintgtext "5.1. README.Debian")
# (find-es "lenny" "apt-ftparchive")
# (find-angg ".emacs" "date")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
#*
rm -Rv ~/usrc/eev/
mkdir  ~/usrc/eev/
mkdir  ~/usrc/eev/eev-0.1.20110612/
ln -s             eev-0.1.20110612 ~/usrc/eev/eev-0.1
cd     ~/usrc/eev/eev-0.1.20110612/

# Copy the files from (find-eev "debian/")
# to their correct positions in the build dir of the deb package.

# Create the directories,
mkdir -p etc/emacs/site-start.d/
mkdir -p usr/share/emacs/site-lisp/eev/
mkdir -p usr/bin/
mkdir -p usr/share/eev/

# Copy the files.
cp -v  ~/eev-current/debian/Makefile   .
cp -v  ~/eev-current/debian/emacs-eev  usr/bin/
cp -v  ~/eev-current/eev-rctool        usr/bin/
cp -v  ~/eev-current/debian/90eev.el   etc/emacs/site-start.d/
cp -av ~/eev-current/eev*.el           usr/share/emacs/site-lisp/eev/
cp -v  ~/eev-current/debian/eev_16.xpm usr/share/eev/
cp -v  ~/eev-current/debian/eev_32.xpm usr/share/eev/

# (find-udw3m "cdbs/cdbs-doc.html" "DEB_DESTDIR")
# (find-udw3m "cdbs/cdbs-doc.html" "build/myprog::")
# (find-udw3m "cdbs/cdbs-doc.html" "install/foo::")
# (find-man "1 dpkg-architecture" "linux-any")

# (find-maintgtext "")
# (find-maintgtext "4.4. `rules' file")

# (find-man "8 dh_make")
echo | \
DEBFULLNAME="Eduardo Ochs" \
  dh_make --email eduardoochs@gmail.com \
          --copyright=gpl \
          --cdbs \
          --native
rm -v debian/README.Debian
rm -v debian/*.EX
rm -v debian/*.ex
mv -iv debian/control debian/control.orig

# (find-eevbuilddfile "")
# (find-eevbuilddfile "rules")

      ~/eev-current/debian/control.sh    >  debian/control
cp -v ~/eev-current/debian/README.Debian    debian/README.Debian
cat   ~/eev-current/debian/rules         >> debian/rules
cp -v ~/eev-current/debian/eev.menu         debian/eev.menu
cp -v ~/eev-current/debian/eev.desktop      debian/eev.desktop

# (find-eev "debian/control.sh")
# (find-eev "debian/README.Debian")
# (find-eev "debian/rules")

# (find-eevbuildfile  "")
# (find-eevbuilddfile "")
# (find-eevbuilddfile "control")
# (find-man "1 dpkg-buildpackage")
# dpkg-buildpackage -us -uc    -rfakeroot     |& tee odb
  dpkg-buildpackage -us -uc -b -rfakeroot     |& tee odb
# (find-eevbuildfile "odb")

# «eev-deb-unpacked»  (to ".eev-deb-unpacked")
rm -Rv ~/usrc/eev/eev-unpacked/
mkdir  ~/usrc/eev/eev-unpacked/
mkdir  ~/usrc/eev/eev-unpacked/DEBIAN/
cd     ~/usrc/eev/
ar p eev_*_all.deb control.tar.gz | tar -C eev-unpacked/DEBIAN/ -xvzf -
ar p eev_*_all.deb data.tar.gz    | tar -C eev-unpacked/        -xvzf -

# (find-eevbuildufile "")
# (find-eevbuildufile "DEBIAN/")
# (find-eevbuildufile "DEBIAN/control")

# «inspect-the-DEBIAN-dir»  (to ".inspect-the-DEBIAN-dir")
# (find-eevbuildddsh "find * | sort")
# (find-eevbuildush  "find * | sort")

cd     ~/usrc/eev/
sudo dpkg -i eev*.deb
sudo dselect update

# (find-status   "eev")
# (find-vldifile "eev.list")
# (find-udfile   "eev/")

# (find-eev "debian/README.Debian")
# (find-angg "debian/README")

#*
# «apt-ftparchive»  (to ".apt-ftparchive")
# (find-es "lenny" "apt-ftparchive")
# (find-man "1 apt-ftparchive")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd     ~/usrc/eev/
mkdir -p dists/./main/binary-i386/
mkdir -p dists/./main/binary-amd64/
laf
apt-ftparchive packages .
apt-ftparchive packages . \
  | tee        dists/./main/binary-i386/Packages \
  | gzip -c9 > dists/./main/binary-i386/Packages.gz
apt-ftparchive packages . \
  | tee        dists/./main/binary-amd64/Packages \
  | gzip -c9 > dists/./main/binary-amd64/Packages.gz

find * | sort

# «eev-repository.tar»  (to ".eev-repository.tar")
# (find-sh "cd ~/usrc/eev/; find eev_* dists")
# (find-sh "cd ~/usrc/eev/; find eev_* dists -type f")
#   eev_0.1_all.deb
#   eev_0.1_i386.changes
#   dists/main/binary-i386/Packages.gz
#   dists/main/binary-i386/Packages
#   (find-twusfile "debian/dists/main/binary-i386/")
#   (find-twusfile "debian/dists/main/binary-i386/Packages")
#   (find-twusfile "debian/dists/main/binary-amd64/Packages")
#
# Make a tarball of the repository:
cd ~/usrc/eev/
tar -cvf eev-repository.tar eev_*_all.deb dists eev-unpacked/

# «upload-the-deb»  (to ".upload-the-deb")
# Copy it to twu and unpack it there:
# (find-fline "~/usrc/eev/")
# (find-fline "~/usrc/eev/eev-repository.tar")
# (find-twufile  "tmp/")
# (find-twusfile  "debian/")
# (find-twusfile  "debian/eev-repository.tar")
# (ee-cp "~/usrc/eev/eev-repository.tar" (ee-twufile "tmp/eev-repository.tar") 'over)
# (find-es "page" "makepagefromtar-at-twu")

* (fvwm-sloppy-focus)
* (eebgTWU)
* (fvwm-click-to-focus)
zsh
cd     ~/slow_html/debian/
rm -Rv ~/slow_html/debian/eev-unpacked/
laf
tar -xvf ~/tmp/eev-repository.tar
laf
laf  dists/
find dists/main/   | sort
find eev-unpacked/ | sort
#
cd; tar -xvf edrx.tar; rezshrc
{makepagefromtar; makepageindexhtmls} |& tee ~/ompft



# «sources.list»  (to ".sources.list")
# Patch the /etc/apt/sources.list file (by hand):
# (find-fline "/etc/apt/sources.list")
# (find-man "5 sources.list")
# (find-es "eev" "sources.list")
# deb file:/home/edrx/usrc/eev . main
# deb http://angg.twu.net/debian . main
#
#

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# Install the eev deb in the clean way:
sudo apt-get update
sudo dselect update

# (find-available "eev")
aptrm eev
y
apti  eev
y


# «dpkg-i»  (to ".dpkg-i")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# The dirty way:
cd     ~/usrc/eev/
sudo dpkg -i *.deb

# (find-sh "sudo dselect update")
# (find-available "eev")
# (find-status   "eev")
# (find-vldifile "eev.list")
# (find-udfile   "eev/")



# Test: log as aleph, run emacs-eev, type M-h M-e.
# (find-man "1 ssh" "-X" "Enables X11 forwarding.")
# (eev "ssh -X aleph@localhost xterm")

# To do: fix math glyphs,
#   http://angg.twu.net/debian/
#   http://angg.twu.net/debian/README
#   .dsc package.





#####
#
# What the debian package should do
# 2009aug03
#
#####

# «what-the-deb»  (to ".what-the-deb")
# (find-man "1 readlink")
# (find-node "(coreutils)")
# (find-node "(coreutils)readlink invocation")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
w emacs
laf /usr/bin/emacs
laf /etc/alternatives/emacs
laf /usr/bin/emacs22-x
laf /usr/bin/emacs22

# (find-angg ".zshrc" "ae")

cat > usr/bin/emacs-eev <<'%%%'
#!/bin/sh
exec emacs -fg bisque -bg black $*
%%%

# (find-enode "Action Arguments" "`--funcall=FUNCTION'")

# Mode: add "eev"
# (find-eevfile "eev.el" "define-minor-mode eev-mode")
# (find-elnode "Index" "* define-minor-mode:")
# (find-elnode "Defining Minor Modes" "`:lighter LIGHTER'")

Two packages: emacs-eev and emacs-eev-puro
  emacs-eev should be minimal (sort of)
  emacs-eev-puro should depend on maxima and such stuff

Icon pointing to /usr/bin/emacs-eev:
# (find-angg "elisp/myxpm.el")
# (find-eevfile "eev-icon.png")





#####
#
# Backticking the definition of eev-mode
# 2009aug18
#
#####

# «backtick-eev-mode»  (to ".backtick-eev-mode")
# (find-es "emacs" "define-minor-mode")
# To be done. Big mess at the moment.

# (find-elnode "Defining Minor Modes")
# (find-elnode "Defining Minor Modes" "hungry-mode")

# (find-evardescr 'minor-mode-list)
# (find-eapropos "hung")
# (find-eapropos "hung")
# (find-eapropos "mode-line")
# (find-eapropos "mode-line-modes")
# (find-evardescr 'mode-line-modes)
# (find-evardescr 'minor-mode-alist)
# (find-evardescr 'minor-mode-alist "hungry-mode")

# (find-efunction 'hungry-mode)
# (find-efunctionpp 'hungry-mode)

(setq hungry-mode-lighter " Hungry")
(setq hungry-mode-lighter " Hung")
(setq hungry-mode-lighter nil)
(define-minor-mode hungry-mode 
  :init-value 0
  :lighter hungry-mode-lighter
  :group 'hunger)

(hungry-mode 1)
(hungry-mode 0)

# (find-eevfile "eev.el" "define-minor-mode eev-mode")

# (find-eevfile "debian/90eev.el")




#####
#
# Adding documentation to functions generated by code-c-d and friends
# 2010jul30
#
#####

# «code-c-d-docs»  (to ".code-c-d-docs")
# (find-efunction 'find-code-c-d-new)
# (find-efunction 'code-c-d)

Just a vague idea at the moment...





#####
#
# Old stuff removed from the README.Debian
# 2010sep28
#
#####

# «README.Debian»  (to ".README.Debian")
# (find-eev "debian/README.Debian")


# «.exploring-the-deb»		(to "exploring-the-deb")
# «.what-the-deb-does»		(to "what-the-deb-does")
# «.how-the-deb-is-built»	(to "how-the-deb-is-built")
# «.upstream»			(to "upstream")
# «.repository»			(to "repository")

# «exploring-the-deb»  (to ".exploring-the-deb")
# «what-the-deb-does»  (to ".what-the-deb-does")
# «how-the-deb-is-built»  (to ".how-the-deb-is-built")


Exploring the .deb (without installing it)
==========================================
This package is so trivial at this moment that it would be pointless -
and misleading - to create a source debian package for it. The best
way to inspect the .deb, then, is to unpack it directly:

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
  rm -Rv ~/usrc/eev-deb/
  mkdir  ~/usrc/eev-deb/
  cd     ~/usrc/eev-deb/
  cp -v  ~/usrc/eev/eev_0.1_all.deb .

  ar t eev_0.1_all.deb
  ar p eev_0.1_all.deb debian-binary
  ar p eev_0.1_all.deb control.tar.gz | tar -tvzf -
  ar p eev_0.1_all.deb data.tar.gz    | tar -tvzf -

  mkdir DEBIAN/
  ar p eev_0.1_all.deb control.tar.gz | tar -C DEBIAN/ -xvzf -
  ar p eev_0.1_all.deb data.tar.gz    | tar -xvzf -
  #
  # (find-sh "cd ~/usrc/eev-deb/ && find | sort")
  # (find-fline "~/usrc/eev-deb/")



What the .deb does
==================
See:

In short: nothing! 8-)
Well, not exactly, but the .deb is incredibly non-invasive: the
"find-sh ... find | sort" above reports these files:


There are no installation scripts - no eev.{pre,post}{inst,rm} files in:
  (find-fline "/var/lib/dpkg/info/" "eev")
and the only thing that runs automatically in some sense is this file,
  (find-eev       "debian/90eev.el")
  /etc/emacs/site-start.d/90eev.el
that only contains one definition, for `eev-activate-initial' (see below).
If you start Emacs with
  (find-eev "debian/emacs-eev")
  /usr/bin/emacs-eev
rather than with "emacs", the "--funcall=eev-activate-initial"
argument in the emacs-eev script runs the `eev-activate-initial'
function in 90eev.el, which is:

  (defun eev-activate-initial ()
    (interactive)
    (add-to-list 'load-path "/usr/share/emacs/site-lisp/eev")
    (setq eev-lighter " eev")
    (require 'eev-all)      ; (find-eev "eev-all.el")
    (eev-mode 1))

it is that function that adds the /usr/share/emacs/site-lisp/eev/
directory to the load-path, loads the eev modules and turns on
eev-mode. So: if you invoke Emacs using the `emacs-eev' script you get
an Emacs with eev loaded - from /usr/share/emacs/site-lisp/eev/ - and
turned on; if you invoke the standard `emacs' there are no changes at
all - not even in the load-path!

  (find-debemacspoltext)

How the .deb is built
=====================
Currently, by this script:
  (find-es "eev" "dh-make-2")

# «upstream»  (to ".upstream")

Upstream
========
The correct way to obtain the *most current* eev source tree is to
fetch this tarball:
  http://angg.twu.net/edrx.tgz
It contains the sources that are used to generate the pages at
<http://angg.twu.net/>. That tarball is updated about twice a week.
The "official" eev-current tarball, at
  http://angg.twu.net/eev-current.tar.gz
is updated less often.

The .deb package is very alpha-ish now, and it is changing very often.


# «repository»  (to ".repository")

The repository
==============
It should be possible to install the .deb in your machine with apt by
adding this line to your /etc/apt/sources.list file,

  deb http://angg.twu.net/debian . main

and then doing the usual "apt-get update; apt-get install eev"
sequence.

The repository is generated with these commands:

  (find-es "eev" "eev-repository.tar")

actually they generate a tarball that you can install anywhere - e.g.,
on a local server (this is what I plan to do for the local undergrad
lab at my university). See:

  (find-es "eev" "sources.list")
  (find-fline "/etc/apt/sources.list")





#####
#
# Very old notes on vncserver
# 2021oct27
#
#####

# «vncserver-very-old»  (to ".vncserver-very-old")

# Kill the running vncserver
vncserver -kill :2
killall -9 Xrealvnc
rm -fv /tmp/.X2-lock
rm -fv /tmp/.X11-unix/X2

rm -Rv ~/.vnc/     ;# goodbye, old vnc password, goodbye
vncserver -geometry 600x400 -depth 16 :2
password
password

export DISPLAY=:0.0
my_vnc2swf -nostatus /tmp/channels.swf :2
password





#####
#
# vnc2swf
# 2010nov14
#
#####

# «vnc2swf»  (to ".vnc2swf")
# (find-es "vnc" "vnc2swf")
# (find-eev "anim/")
# (find-eev "examples/anim.e" "compile-vnc2swf")





#####
#
# byzanz
# 2010nov14
#
#####

# «byzanz»  (to ".byzanz")
# (find-eev "examples/anim.e" "movie1_A0")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
apti byzanz
# (find-status   "byzanz")
# (find-vldifile "byzanz.list")
# (find-udfile   "byzanz/")

# (find-man "1 byzanz-record")
# (find-man "1 byzanz-record" "--display=DISPLAY")
# (find-man "1 byzanz-record" "    byzanz ")
# (find-man "1 byzanz-playback")

# (find-sh "byzanz-record --help")
# (find-sh "byzanz-record --help-all")




#####
#
# isend
# 2016apr19
#
#####

# «isend» (to ".isend")
# (find-es "emacs" "isend")
# (find-epackage 'isend-mode)
(code-c-d "isend" "~/.emacs.d/elpa/isend-mode-20190201.832/")
# (find-isendfile "")

# https://github.com/ffevotte/isend-mode.el
# https://github.com/ffevotte/isend-mode.el.git
# (find-git-links "https://github.com/ffevotte/isend-mode.el.git" "isendmode")
# (code-c-d "isendmode" "~/usrc/isend-mode.el/")
# (find-isendmodefile "")

(add-to-list 'load-path "~/usrc/isend-mode.el/")
(require 'isend-mode)
(require 'isend)
;; (find-efunctiondescr 'isend-mode)

# http://lists.gnu.org/archive/html/emacs-orgmode/2016-04/msg00495.html Xor3
# http://lists.gnu.org/archive/html/emacs-orgmode/2016-04/msg00498.html Edrx






#####
#
# Message about removing the "[eev]" from the eev mailing list (for dmarc)
# 2019oct24
#
#####

# «dmarc» (to ".dmarc")
# https://mail.google.com/mail/ca/u/0/#inbox/FMfcgxwDrtxxhkrDfHmzpZSGQwmFTtMQ
# https://lists.gnu.org/archive/html/eev/2019-10/msg00000.html

# https://lists.gnu.org/archive/html/savannah-hackers-public/2019-06/msg00018.html
# https://lists.gnu.org/archive/html/savannah-hackers-public/2019-09/msg00016.html

[1]: https://wiki.list.org/DEV/DMARC
[2]: https://lists.debian.org/debian-devel-announce/2015/08/msg00003.html
[5]: https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail
[6]: https://en.wikipedia.org/wiki/DMARC
[7]: https://dmarc.org/wiki/FAQ#senders
[8]: https://tools.ietf.org/html/rfc7489




#####
#
# Modifying eepitch to make it drop the first two space chars in each line
# 2019dec22
#
#####

# «eepitch-indented» (to ".eepitch-indented")
# (find-anggfile "dednat6/extra-modules.txt")

;; (find-efunction 'eepitch-this-line)
;; (find-evariable 'eepitch-regexp)
;; (find-evardescr 'eepitch-regexp)

(setq eepitch-regexp "^*\\(.*\\)")
(setq eepitch-regexp "^ **\\(.*\\)")

;; (find-efunction 'eepitch-line)
;; (replace-regexp-in-string "^  " "" "  foo")
;; (replace-regexp-in-string "^  " ""   "foo")
;;
(defun eepitch-line (line)
  "Modified version - strips two spaces from the beginning"
  (eepitch-eval-at-target-window
   '(progn (goto-char (point-max))
	   (insert (replace-regexp-in-string "^  " "" line))
	   (call-interactively (key-binding "\r")))))




#####
#
# Make eepitch ignore ";;"s at the beginning of lines (for Tomas Hlavaty)
# 2021feb21
#
#####

# «eepitch-indented-tomas»  (to ".eepitch-indented-tomas")
# Original defs:
# (find-eev "eepitch.el" "eepitch")
# (find-eev "eepitch.el" "eepitch" "(defvar eepitch-regexp")
# (find-eev "eepitch.el" "eepitch-this-line")
# (find-eev "eepitch.el" "eepitch-this-line" "(defun eepitch-line")
# (setq eepitch-regexp "^*\\(.*\\)")

(setq eepitch-regexp (rx bol (opt ";;" (opt " ")) "*" (group (* any)) eol))

(defun eepitch-line (line)
  "Modified version - strips `;;'s from the beginning of lines"
  (eepitch-eval-at-target-window
   '(progn (goto-char (point-max))
	   (insert (replace-regexp-in-string "^;;[ \t]?" "" line))
	   (call-interactively (key-binding "\r")))))

;; * (eepitch-shell)
;; * (eepitch-kill)
;; * (eepitch-shell)
;; cd /tmp

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/



#####
#
# eev2.tgz
# 2012nov03
#
#####

# «eev2.tgz» (to ".eev2.tgz")
# (find-angg ".zshrc" "eev2-files")
# (find-angg ".zshrc" "eev2-files" "eev2-test ()")
# (find-zsh "eev2-test")
# (find-eev "Makefile" "tarball" "VERSION")
# (find-eevsh "grep ^.require eev2-all.el")
# (find-eevsh "grep ^.require eev2-all.el | awk '{print $2}'")
# (find-eevsh "grep ^.require eev2-all.el | awk '{print substr($2, 2, length($2)-2)}'")
# (find-eevsh "grep ^.require eev2-all.el | awk '{print substr($2, 2, length($2)-2) \".el\"}'")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/eev-current/
(TZ=GMT date; date) > VERSION
A=( eepitch.el eev-wrap.el eev-flash.el eev-eval.el eev-multiwindow.el
    eev-mode.el eev-blinks.el eev-plinks.el eev-elinks.el
    eev-tlinks.el eev-code.el eev-env.el eev-brxxx.el eev-pdflike.el
    eev-audiovideo.el eev-anchors.el eev-intro.el eev-edit.el
    eejump.el eev-prepared.el eev-bounded.el eev-channels.el eev-rcirc.el )
tar -cvzf /tmp/eev2.tgz VERSION eev-readme.el eev2-all.el $A
laf       /tmp/eev2.tgz

# Test:
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv /tmp/eev/
mkdir  /tmp/eev/
cd     /tmp/eev/
tar -xvzf ../eev2.tgz
FvwmCommand "CursorMove +0 +100" &&
  emacs -Q -fn 6x13 -fg bisque -bg black eev-readme.el





#####
#
# eev2 videos: 1.sh
# 2012nov03
#
#####

# «eev2-video-1.sh» (to ".eev2-video-1.sh")
# (find-angg "eev-videos/1.sh")

* (find-sh0 "~/eev-videos/1.sh down xterm 80x30+0+0 ffmpeg 530x550+0+0")
# (find-fline    "/tmp/" "out.mp4")
# (find-sh0 "killall    ffmpeg")
# (find-sh0 "killall -9 ffmpeg")
* (find-mplayer0 "/tmp/out.mp4")

# (find-zsh "eev2-build-tgz")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
Scp -v /tmp/eev2.tgz edrx@angg.twu.net:slow_html/eev-current/
Scp -v /tmp/eev2.tgz edrx@angg.twu.net:public_html/eev-current/

* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
cd ~/eev-videos/
Scp -v 2* edrx@angg.twu.net:slow_html/eev-videos/



rm -Rv /tmp/eev/
mkdir  /tmp/eev/
cd     /tmp/eev/
wget http://angg.twu.net/eev-current/eev2.tgz && tar -xvzf eev2.tgz
# tar -C /tmp/eev/ -xvzf /tmp/eev2.tgz
emacs -Q -fn 6x13 -fg bisque -bg black eev-readme.el
# (find-fline "/tmp/eev/")
# (find-fline "/tmp/eev/eev-readme.el")



# (find-fline "/tmp/eev2-current.tar.gz")
# (find-eev "eev-readme.el")
# (find-eev-intro "\nInstalling eev\n")
# (find-efunction 'find-eev-intro "\nInstalling eev\n")



# (find-eevgrep "grep -nH -e ee-format *.el")
# (find-eevgrep "grep -nH -e find-function-read *.el")
# (find-eevgrep "grep -nH -e ee-buffer-name *.el")
# (find-eevgrep "grep -nH -e Info-goto-node *.el")
# (find-efunctiondescr 'Info-goto-node)
# (find-efunction      'Info-goto-node)
# (find-efunctiondescr 'info)
# (find-efunction      'info)

ee-buffer-name


(ee-no-properties (format-mode-line mode-line-format))



# (find-angg ".zshrc" "emacs-default")

cd /tmp/
cat > eev2-load.el <<'%%%'
(progn
 (menu-bar-mode 0)
 (tool-bar-mode 0)
 (scroll-bar-mode -1)
 (add-to-list 'load-path "~/eev-current/")
 (require 'eev2-all)
 (eev-mode 1)
 )
%%%

emacs-default-X -geometry 80x37+10+10 -Q eev2-load.el




#####
#
# eev2: pack, unpack, test
# 2012nov08
#
#####

# (find-angg ".zshrc" "eev2-files")
# «eev2-build-tgz»   (to ".eev2-build-tgz")
# «eev2-test-unpack» (to ".eev2-test-unpack")
# «eev2-test»        (to ".eev2-test")

# (find-eev "eev-readme.el")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -v /tmp/eev2.tgz
eev2-build-tgz
laf   /tmp/eev2.tgz
eev2-test

# (eek "M-h M-k C-x r l  ;; bookmark-bmenu-list")






#####
#
# eev2: htmlize intros
# 2012nov03
#
#####

# «eev2-hmtlize-intros» (to ".eev2-hmtlize-intros")
# (find-angg "eev-intros/README")
# (load    "~/eev-intros/README")
# file:///home/edrx/TH/L/eev-intros/
# file:///home/edrx/TH/L/eev-intros/find-eev-intro.html
#    http://angg.twu.net/eev-intros/
#    http://angg.twu.net/eev-intros/find-eev-intro.html



#####
#
# eev2: scripts to add a new intro
# 2012nov03
#
#####

# «eev2-add-new-intro» (to ".eev2-add-new-intro")
# (find-eev "eev-intro.el")
# (find-eev "eev-intro.el" ".find-eev-intro")
# (find-eev "eev-intro.el"  "find-eev-intro" "0. (find-eev-intro)")
# (find-angg "eev-intros/README")
# (find-blogme3 "angglisp.lua" "find_xxx_intros")
# (find-blogme3file "anggmake.lua" "eev-intros/find-eev-intro")
# (load    "~/eev-intros/README")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
makeL

# file:///home/edrx/TH/L/eev-intros/
# file:///home/edrx/TH/L/eev-intros/find-eev-intro.html





#####
#
# eev2: scripts to add a new file
# 2012nov03
#
#####

# «eev2-add-new-file» (to ".eev2-add-new-file")




#####
#
# eev2: upload
# 2012nov08
#
#####

# «eev2-upload» (to ".eev2-upload")
# «eev2-video-2.sh» (to ".eev2-video-2.sh")
# (find-angg ".zshrc" "eev2-files")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
eev2-build-tgz
~/eev-videos/2.sh record

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
eev2-build-tgz
eev2-upload -v
rm -v /tmp/eev2.tgz
~/eev-videos/2.sh record

# (find-angg "eev-videos/2.sh")

# http://www.emacswiki.org/emacs/EmacsForDebian








#####
#
# Video 3: eepitch
#
#####

# «eev2-video3-eepitch» (to ".eev2-video3-eepitch")
# (defun eejump-9 () (find-screencast-links  "108c 37c"))
# (find-eev-video-links "3pt-eepitch-preliminar")
# (find-eev "eepitch.el")

(defun eep2 (s1 s2)
  (eval s1) (eepitch-kill)
  (eval s2) (eepitch-kill)
  (find-wset "13o2_o_o"
	     `(ee-here ',s1)
	     `(ee-here ',s2)))







        A short video about eepitch
        ===========================
        Eduardo Ochs, 2012nov18
        http://angg.twu.net/#eev
  


* (eep2 '(eepitch-shell) '(eepitch-lua51))
* (eepitch-lua51)
readfile = function (fname)
    local f = assert(io.open(fname, "r"))
    local bigstr = f:read("*a")
    f:close()
    return bigstr
  end

* (eepitch-shell)
echo Hello... > /tmp/o
* (eepitch-lua51)
print(readfile("/tmp/o"))
* (eepitch-shell)
echo ...bye >> /tmp/o
* (eepitch-lua51)
print(readfile("/tmp/o"))





* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cat > /tmp/o <<'%%%'
Hello
  hello
    hello
%%%


* (eepitch-shell)
* (eepitch-kill)
* (eepitch-lua51)
* (eepitch-kill)
*














#####
#
# eev2: announcements
# 2012nov12
#
#####

# «eev2-announcements» (to ".eev2-announcements")
# http://lists.gnu.org/archive/html/eev/2012-11/msg00000.html
# http://www.emacswiki.org/EevMode
# http://angg.twu.net/#eev
# http://angg.twu.net/eev-videos/README.html

# http://www.youtube.com/watch?v=_B_4vhsmRRI Marco Baringer
# rfm: ok
# #emacs: ok




#####
#
# Move all keybindings to eev-mode
# 2014mar25
#
#####

# «move-to-eev-mode» (to ".move-to-eev-mode")
# http://article.gmane.org/gmane.emacs.eev.devel/148
# http://lists.gnu.org/archive/html/eev/2014-03/index.html




#####
#
# video: eev-quick-0
# 2016oct08
#
#####

# «video-eev-quick-0» (to ".video-eev-quick-0")
# (find-angg ".emacs" "size")
# http://angg.twu.net/eev-videos/video-eev-quick-0.mp4
# (find-twusfile "eev-videos/")
# (find-angg "eev-videos/")

# Use this to reset aleph's home:
# (find-adduser-links "aleph" "aleph")

** Shrink this emacs window,
** start the recording,
** open an xterm covering the emacs window,
** and when the xterm finishes stop the recording.
**
* (set-frame-size nil  70 20)
{
  avconv -f x11grab -s xga -i :1.0 -y /tmp/out.mp4 &
  sudo -u aleph -i xterm -geometry +0+0
  killall avconv
}
* (set-frame-size nil  80 35)

** Test the video
** (find-video "/tmp/out.mp4")
** (find-video "~/eev-videos/video-eev-quick-0.mp4")
** (find-fline "~/eev-videos/" "video-eev-quick-0.mp4")




#####
#
# video: eev-quick-1
# 2016oct08
#
#####

# «video-eev-quick-1» (to ".video-eev-quick-1")
# (find-twusfile "eev-videos/")
# (find-angg     "eev-videos/")

# Use this to reset aleph's home:
# (find-adduser-links "aleph" "aleph")

** Use this to create "~aleph/es"
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd
sudo -u aleph -i
cat > ~/es <<'%%%'
#!/bin/sh
cd ~/eev/ &&
emacs \
  -Q -D -fg bisque -bg black -fn fixed \
  -T emacs_bare -geometry 167x49+0+0 \
  -l eev-readme.el --eval="(find-eev-quick-intro)"
%%%
chmod 755 ~/es
# ~/es
exit

** Shrink this emacs window,
** start the recording,
** open an xterm covering the emacs window,
** and when the xterm finishes stop the recording.
**
* (set-frame-size nil  70 20)
{
  avconv -f x11grab -s xga -i :1.0 -y /tmp/out.mp4 &
  # sudo -u aleph -i xterm -geometry +0+0
    sudo -u aleph -i ~aleph/es
  killall avconv
}

** Test the video
** (find-video "/tmp/out.mp4")
** (find-video "~/eev-videos/video-eev-quick-0.mp4")





#####
#
# video: eev-ipython-1
# 2016oct08
#
#####

# «video-sympy-1» (to ".video-sympy-1")

* (defun end0 () (message (find-sh0 "killall avconv")))
* (defun end  () (interactive) (end0) (find-es "eev" "video-sympy-1-end"))
*
* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
* (size 167 59)
avconv -f x11grab -s xga -i :1.0 -y /tmp/out.mp4 &
* (find-wset "1_" '(find-es "sympy" "tutorial"))

** «video-sympy-1-end» (to ".video-sympy-1-end")
* (eek "C-x 1")
* (size  80 35)
* ;; Test the video
* (find-googlechrome "file:///tmp/out.mp4")
* (size 210 61)

** (find-video "~/eev-videos/video-eev-quick-0.mp4")
** (find-video "/tmp/out.mp4")

* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
cd /tmp/
Scp-np -v out.mp4  edrx@angg.twu.net:/home/edrx/public_html/eev-videos/
# http://angg.twu.net/eev-videos/out.mp4





#####
#
# video-three-keys-pt-1
# 2019aug10
#
#####

# «video-three-keys-pt-1» (to ".video-three-keys-pt-1")
# (find-TH "index" "eev")
# (find-TH "index" "eev" "some screencasts")
# (find-TH "index" "eev" "some screencasts" "three-keys-1-pt")
# http://angg.twu.net/eev-videos/three-keys-1-pt.mp4
# http://www.youtube.com/watch?v=GUuCpmLItTs
# https://www.facebook.com/eduardo.ochs/posts/10220135271041709
# https://drive.google.com/drive/folders/1xKobEd6YLq31besdSrfSbPwX66QyC3di
# http://angg.twu.net/eev-videos/
# (find-twusfile     "eev-videos/")
# (find-fline      "~/eev-videos/")
# (find-fline      "~/eev-videos/" "three-keys-1-pt")
# (find-eev "eev-intro.el" "find-three-main-keys-intro")
# (find-three-main-keys-intro)

(defun big () (interactive) (set-frame-font "Monospace 22"))
(defun med () (interactive) (set-frame-font "Monospace 9"))

(big)

AINDA NÃO COMEÇOU!

(find-three-main-keys-intro)


https://youtu.be/GUuCpmLItTs
http://www.youtube.com/watch?v=GUuCpmLItTs

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/eev-videos/
Scp-np -v three-keys-1-pt.mp4 \
  edrx@angg.twu.net:/home/edrx/slow_html/eev-videos/

# http://angg.twu.net/eev-videos/three-keys-1-pt.mp4





#####
#
# video-three-keys-2
# 2019aug14
#
#####

# «video-three-keys-2» (to ".video-three-keys-2")

(defun big () (interactive) (set-frame-font "Monospace 22"))
(defun big () (interactive) (set-frame-font "Monospace 20"))
(defun med () (interactive) (set-frame-font "Monospace 9"))
(defun yk ()  (interactive) (find-sh0 "yaxg stop") (eepitch-shell))

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
yaxg stop
laf   *.webm
rm -v *.webm
yaxg
*  (eek "C-x 1")
** (find-sh0 "yaxg stop")
*
*
** AINDA NÃO COMEÇOU!
*
*  (setq scroll-conservatively 0)
*  (setq scroll-conservatively 1)
*  (eek "C-x 1")
*  (big)
*  (find-three-main-keys-intro)


* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/eev-videos/
Scp-np -v three-keys-2.mp4 \
  edrx@angg.twu.net:/home/edrx/slow_html/eev-videos/

# http://angg.twu.net/eev-videos/three-keys-2.mp4




#####
#
# video-three-keys-index
# 2019aug15
#
#####

# «video-three-keys-index» (to ".video-three-keys-index")
# (find-fline "~/eev-videos/")
# (find-code-audiovideo-links "~/eev-videos/three-keys-1-pt.mp4" "eevtk1")
# (find-code-audiovideo-links "~/eev-videos/three-keys-2.mp4"    "eevtk2")

;; (find-video "~/eev-videos/three-keys-1-pt.mp4")
(code-video "eevtk1video" "~/eev-videos/three-keys-1-pt.mp4")
;; (find-eevtk1video)
;; (find-eevtk1video "1:34" "Três teclas")
;; (find-eevtk1video "3:08" "Emacs é um ambiente Lisp")
;; (find-eevtk1video "4:22" "São programas pequenininhos")

;; (find-video "~/eev-videos/three-keys-2.mp4")
(code-video "eevtk2video" "~/eev-videos/three-keys-2.mp4")
;; (find-eevtk2video)
;; (find-eevtk2video "9:46" "Emacs calls the cursor the point")
;; (find-eevtk2video "9:49" "the sexp before point")
;; (find-eevtk2video "10:03" "C-x C-e")

# (eev-avadj-mode)
# (eev-avadj-mode 0)



#####
#
# video-emacsconf-short
# 2019oct24
#
#####

# «video-emacsconf-short» (to ".video-emacsconf-short")
# https://drive.google.com/drive/folders/1rKrtcF873TP3bUjMVRpVb_TiJ9l3PBWy
# (find-es "ffmpeg" "webm-to-mp4")

# (find-es "emacsconf2019" "short")
# (set-frame-font "Monospace 19")
# (set-frame-font "Monospace Bold 19")
# (find-es "emacs" "blink-cursor-mode")
# (setq blink-cursor-blinks 2)

* (big)
* (find-es "emacsconf2019" "short")

* (defun big () (interactive) (set-frame-font "Monospace 19"))
* (defun med () (interactive) (set-frame-font "Monospace 11"))
* (eek "C-x 1")
* (big)
# (find-es "emacsconf2019" "short" '(eek "C-u 9 C-l"))

* (find-sh0 "killall unclutter")
* (find-bgprocess "unclutter -idle 1")
*
* (find-3EE '(eepitch-shell2) '(eepitch-shell3))
* (eepitch-shell3)
cd /tmp/
laf   *.webm
rm -v *.webm
yaxg
* (ecop)
* (eepitch-shell2)
cd /tmp/
yaxg stop
yaxg stop
laf *.webm
* (eepitch-shell2)

# (find-fline "~/eev-videos/emacsconf/")
cd ~/eev-videos/emacsconf/
time ffmpeg -i ZOOM0035_video.webm ZOOM0035_video.mp4
time ffmpeg -i ZOOM0035end_video.webm ZOOM0035end_video.mp4



#####
#
# video-emacsconf-short: an index
# 2019nov13
#
#####

# «video-emacsconf-short-i» (to ".video-emacsconf-short-i")
# http://www.youtube.com/watch?v=86yiRG8YJD0

# (find-video "~/eev-videos/emacsconf/25_35_end0001-69788.mp4")
# (code-video "emacsconfshortvideo" "~/eev-videos/emacsconf/25_35_end0001-69788.mp4")
# (find-emacsconfshortvideo)
# (find-emacsconfshortvideo "0:00")
# (eev-avadj-mode 0)
# (eev-avadj-mode)

Index of the video:
0:00 Title page
0:15 Prehistory 1: eev appeared by accident
1:08 Prehistory 2: my notes started to have lots of elisp hyperlinks
2:35 Prehistory 3: M-x eev
3:04 Prehistory 4: several other kinds of elisp kyperlinks
4:05 Prehistory 5: these elisp hyperlinks could be put in comments
5:34 Prehistory 6: variants of M-x eev
5:41 Prehistory 7: several megabytes of scripts and notes
6:41 Prehistory 8: I was sure that everybody was using Emacs like that
7:52 Prehistory 9: users should not be forced to see Lisp
9:22 Eev as an ELPA package
10:47 Eev as an ELPA package 2: tutorials, beginner setup
11:19 M-j
12:54 A demo
13:10 Demo: patching xpdf
14:01 Demo: the `find-man' links
14:45 Demo: the `find-apt-get-source-links'
15:11 Demo: the eepitch block (in red star lines)
15:48 Demo: eepitch on non-red star lines
15:56 Demo: eepitch in action (two windows, smaller font)
16:40 Demo: I will not run the apt-get source --build
16:47 Demo: the `find-fline's to the source directory
17:07 Demo: `code-c-d'
17:22 Demo: `find-xpdffile'
17:32 Demo: `find-xpdfsh'
17:44 Demo: `find-xpdfgrep'
18:29 Demo: (back to the big font)
18:32 Demo: the second `find-xpdfgrep'
18:46 Demo: the relevant occurrence / direct link to it
19:18 Links




#####
#
# video-emacsconf-short: transcription of the "demo" part
# 2019nov13
#
#####

# «video-emacsconf-short-dt» (to ".video-emacsconf-short-dt")

13:11 Let me show you an example of executable notes and how to play them back.
13:18 I will only be able to explain how to _record_ these executable notes in the longer video.
13:25 Anyway: when I was recording this video I realized that xpdf was behaving in a very annoying way -
13:34 it was changing the page in moments that I didn't want it to...
13:39 and the problem was that when my finger was at the right side of the touchpad
13:45 and I moved it up or down this would be interpreted as a _mousewheel scroll_,
13:52 that would be interpreted as PageUp or PageDown,
13:57 and I wanted to disable that - I wanted to disable the support for mousewheel scroll in xpdf.
14:01 So I took a look at the man page for xpdf - here -
14:06 I didn't find a simple way to change that by changing a configuration file
14:11 but I found a section that described all the default mouse bindings - here -
14:18 I found a line that seemed to be relevant - this one -
14:21 I created a hyperlink that pointed directly to that line - this one -
14:30 and I also found an explanation for what this function does
14:35 and the explanation says that this function either scrolls up by some pixels
14:41 or it moves to the previous page - which means PageUp.
14:46 So the _quickest_ way to change xpdf - because I was in a hurry -
14:51 was by downloading and recompiling the Debian source with some changes.
14:56 I used this hyperlink here, that uses a template, to generate several links
15:01 and several shell commands for downloading and recompiling a debian source package.
15:08 I copied these lines to my notes with some small changes,
15:15 and this part - here - uses the alternative to M-x eev...
15:20 remember that I said that my old way of sending lines to the shell was by using M-x eev,
15:27 that was very clumsy: it needed several keystrokes, and it was difficult to install
15:34 because we would need to change an rcfile.
15:38 So, the new alternative to it uses just <f8>,
15:43 that behaves in one way in lines that start with a red star - like these ones -
15:49 and in another way in lines that do not start with a red star.
15:54 Let me change the font to a smaller one to show how it works.
16:00 If I type <f8> in these three lines - here -
16:03 this will set up a target buffer - here - running a shell,
16:08 and if I type <f8> in these lines - here - this will send these commands to the shell.
16:14 This command, in particular, it downloads - sorry, it _makes sure_ that I have
16:20 all the Debian packages that I need to be able to compile the source for xpdf,
16:27 and this command - here - downloads the source package for xpdf
16:34 and unpacks it. It takes a few seconds - here.
16:40 I do not want to execute this thing now - this thing would recompile the source.
16:49 So, this hyperlink - here - opens this temporary directory,
16:54 and it turns out that the source package was unpacked in this subdirectory - here -
17:04 so this hyperlink points to the subdirectory,
17:07 and this s-expression - here - defines several shorter hyperlinks with "find-xpdf" in their names
17:17 that operate in this subdirectory - here.
17:22 So, this hyperlink - here - opens that directory,
17:30 this one - here - runs these shell commands in that directory
17:37 to list all the files - remember that I haven't compiled anything yet,
17:41 so all these files belong to the source package,
17:46 and this one is much more interesting - it runs a grep in that directory.
17:51 Remember that I discovered that the name of the mouse event that was bound to
17:57 PageUp, or to the _bad_ PageUp in the bad PageDown,
18:02 was MousePress4 (and MousePress5)...
18:06 So this grep here searches for all the occurrences of MousePress4
18:12 in the source... and it shows that there are only two occurrences,
18:18 one of them in the source for the man page and the other one
18:22 in the rendered version of that source, which is not good...
18:27 Let me change to the bigger font again.
18:31 So I decided to search for the function that was associated to that mouse event -
18:39 this function here - and I found several occurrences of that string,
18:45 and it turned out that _this_ is a relevant occurrence,
18:49 so I created a direct link to that source file,
18:53 and I discovered that if I commented out these lines by hand
19:03 and recompiled everything and installed the new debian binary package
19:09 then I would get an xpdf that does not have the annoying behavior. But...
19:15 That's it.

* (eepitch-blogme3)
* (eepitch-kill)
* (eepitch-blogme3)
bigstr = [[
18:45 and it turned out that _this_ is a relevant occurrence,
18:49 so I created a direct link to that source file,
18:53 and I discovered that if I commented out these lines by hand
]]






#####
#
# video-workshop-0
# 2021nov29
#
#####

# «video-workshop-0»  (to ".video-workshop-0")
# http://angg.twu.net/2021-workshop.html
# (find-angg "elisp/emacsconf2021.el")

  Workshop: Creating and Saving Elisp Hyperlinks
  Version 0 - monday, 2021-nov-29
  Eduardo Ochs

    See: http://angg.twu.net/#eev
         http://angg.twu.net/2021-workshop.html





  (find-emacs-keys-intro "1. Basic keys (eev)")
  (find-emacs-keys-intro "1. Basic keys (eev)" "hyperlinks to here")

  (find-here-links-intro)
  (find-here-links-intro "4. `find-here-links-3'")
  (find-here-links-intro "5. `find-here-links-1'")
    (eek "C-x 1 C-x 2 C-x 2 C-x +")

  (find-eev "eev-videolinks.el" "ee-1stclassvideos-field")

           ___________________________
	  |             |             |
 M-h M-3  |     [T]     |    [EH]     |
--------> | M-1 M-h M-h |   M-h M-2   |
	  |             |   M-h M-y   |
	  |             |   M-h M--   |
          |             |   M-w       |
          |             |______::_____|
          |             |      \/     |
          |             |             |
          |             |     [N]     |
          |             |     C-y     |
          |             |             |
          |             |             |
          |_____________|_____________|





#####
#
# video-workshop-1
# 2021dec01
#
#####

# «video-workshop-1»  (to ".video-workshop-1")
# (find-eev-exercises-intro)
# (find-ssr-links     "2021workshop1" "2021-workshop-1" "HuqJFPD871E")
# (code-eevvideo      "2021workshop1" "2021-workshop-1" "HuqJFPD871E")
# (code-eevlinksvideo "2021workshop1" "2021-workshop-1" "HuqJFPD871E")
# (find-2021workshop1video "0:00")
# (sshot 5 "2021-workshop-1")



  Very short video 1:
  the base cases 1 and 2

  Eduardo Ochs


  For the  --->  Workshop on Creating and
                 Saving Elisp Hyperlinks

            Today: Wednesday, 2021-dec-01
          Workshop: Saturday, 2021-dec-04

    See: http://angg.twu.net/#eev
         http://angg.twu.net/2021-workshop.html





#####
#
# video-workshop-2
# 2021dec02
#
#####

# «video-workshop-2»  (to ".video-workshop-2")
# (find-eev-exercises-intro "3. Two-window settings")
# (find-eev-exercises-intro "Very short video 2")
# (find-ssr-links     "2021workshop2" "2021-workshop-2" "hqqIlZBXNhk")
# (code-eevvideo      "2021workshop2" "2021-workshop-2" "hqqIlZBXNhk")
# (code-eevlinksvideo "2021workshop2" "2021-workshop-2" "hqqIlZBXNhk")
# (find-2021workshop2video "0:00")
# (find-2021workshop2video "1:10")
# (find-2021workshop2video "2:18")
# (find-2021workshop2video "3:07")

# (find-sshot-links "5" "2021-workshop-2")

# (find-fline "~/TODO" :end -100 '(eek "M-2 M-5 C-l"))

# (defun e () (interactive) (find-es "eev" "video-workshop-2"))

# (find-fline "~/TODO" :end -100)

# (eek "C-x 1")
# (eejump-16)
# (find-eev-exercises-intro "Very short video 2" 9 '(eek "C-l") -5)


  Very short video 2:
  Creating a link to a file
    with a 2-window setting

  Eduardo Ochs


  For the  --->  Workshop on Creating and
                 Saving Elisp Hyperlinks

             Today: Thursday, 2021-dec-01
          Workshop: Saturday, 2021-dec-04

    See: http://angg.twu.net/#eev
         http://angg.twu.net/2021-workshop.html




#####
#
# video-workshop-3
# 2021dec03
#
#####

# «video-workshop-3»  (to ".video-workshop-3")
# (find-sshot-links "5" "2021-workshop-3")
# (find-ssr-links     "2021workshop3" "2021-workshop-3" "r83inf9s8zo")
# (code-eevvideo      "2021workshop3" "2021-workshop-3" "r83inf9s8zo")
# (code-eevlinksvideo "2021workshop3" "2021-workshop-3" "r83inf9s8zo")
# (find-2021workshop3video "0:00")

https://youtu.be/r83inf9s8zo

(defun a () (interactive) (find-fline "/tmp/a"))
(defun b () (interactive) (find-fline "/tmp/b"))
(defun ab () (interactive) (find-2a '(a) (b)))
(defun tb () (interactive) (find-2a '(eejump-1) (b)))






  Very short video 3:
  Material on `M-3 M-e'

    or: What does it mean to
        "save links to everything
         that is interesting"?

        ^ (this is the harder half of
           "taking executable notes")

  Eduardo Ochs



  For the  --->  Workshop on Creating and
                 Saving Elisp Hyperlinks

               Today: Friday, 2021-dec-03
          Workshop: Saturday, 2021-dec-04

    See: http://angg.twu.net/#eev
         http://angg.twu.net/2021-workshop.html




       (find-eev-quick-intro "2. Evaluating Lisp")
       (find-eev-quick-intro "2. Evaluating Lisp" "M-0 M-e")

       What are these other prefixes? What do they do?
        Is there a place in the documentation that lists these prefixes?
        Where is the source code? Is it readable?
        How can we discover all that?

        My memory is very bad.
        I wiil pretend that it's even worse.

       How can I rediscover what `M-3 M-e' does?
       How can I rediscover all my material on `M-3 M-e'?
          How do I find this material?
          How do I save hyperlinks to everything interesting
           that I find on the way?







  3-window setting (for beginners):
   _______________           _____________________           ________________
  |               |         |          |          |         |                |
  |               |         |          |  elinks  |         |                |
  |               |         |          |  buffer  |         |                |
  |    target     | M-h M-3 |  target  |__________| M-h M-1 |     target     |
  |    buffer     | ------> |  buffer  |          | ------> |     buffer     |
  |               |         |          |  notes   |         |                |
  |               |         |          |  buffer  |         |                |
  |_______________|         |__________|__________|         |________________|


  1-window setting:
  (for experts and addicts)
   __________         __________         __________         __________ 
  |          |       |          |       |          |	   |          |
  |  target  | M-hh  |  elinks  | M-1j  |  notes   | M-K*  |  target  |
  |  buffer  | ----> |  buffer  | ----> |  buffer  | ----> |  buffer  |
  |          |       |          |       |          |	   |          |
  |__________|       |__________|       |__________|  	   |__________|


  In this video:
   ______________________ 
  |           |          |
  |  target/  |          |
  |  elinks/  |  cheat   |
  |  notes    |  sheet   |
  |  buffer   |          |
  |           |          |
  |___________|__________|





       (find-eev-quick-intro "2. Evaluating Lisp")
       (find-eev-quick-intro "2. Evaluating Lisp" "M-0 M-e")
       (find-eev-quick-intro "4.2. `find-ekey-links' and friends")
       (eek "M-h M-k  M-e")
       (eek "M-h M-k  M-e  ;; ee-eval-sexp-eol")
  (find-eek "M-h M-k  M-e  ;; ee-eval-sexp-eol")
  (find-eek "M-h M-k  M-e  ;; ee-eval-sexp-eol" "(find-efunction ')")
             (find-efunction 'ee-eval-sexp-eol)
             (find-efunction 'ee-eval-sexp-eol "3:")
             (eek "2*<up> M-3 M-e")
             (find-efunction 'ee-eval-last-sexp)
             (find-efunction 'ee-eval-last-sexp-3)
             (find-efunction 'ee-eval-last-sexp-3 "find-wset")
             (find-efunction 'find-wset)

  (find-emacs-keys-intro "6. Windows")
  (find-emacs-keys-intro "6. Windows" "L|R")

  (find-eev-intro)
  (find-eev-intro "M-5 M-0 M-j")
  (find-eev-intro "(find-multiwindow-intro)")
  (find-multiwindow-intro)

  (find-wset "13o_2o2o23oo33ooo"  '(find-ebuffer "B"))
  (find-wset "13o_2o2o23oo33ooo+" '(find-ebuffer "B"))
  (find-2a nil '(find-efunction 'ee-eval-sexp-eol))
  (find-2b nil '(find-efunction 'ee-eval-sexp-eol))




#####
#
# video-workshop-4
# 2021dec04
#
#####

# «video-workshop-4»  (to ".video-workshop-4")
# (find-eev-exercises-intro "2.3. Invisible text")
# (find-1stclassvideo-links "2021workshop4")
# (find-2021workshop4video "0:00")
# (find-sshot-links "5" "2021-workshop-4")

  Very short video 4:
  invisible text

  Eduardo Ochs

  For the  --->  Workshop on Creating and
                 Saving Elisp Hyperlinks

          Workshop: Saturday, 2021-dec-04

    See: http://angg.twu.net/#eev
         http://angg.twu.net/2021-workshop.html






#####
#
# video-workshop-5
# 2021dec04
#
#####

# «video-workshop-5»  (to ".video-workshop-5")
# (find-eev-exercises-intro "2. Copy from left to right")
# (find-ssr-links "2021workshop5" "2021-workshop-5" "VzRsterVSXs")
# (find-1stclassvideo-links "2021workshop5")
# (find-2021workshop5video "0:00")
# (find-sshot-links "5" "2021-workshop-5")

  Very short video 5:
  copy from left to right

  Eduardo Ochs

  For the  --->  Workshop on Creating and
                 Saving Elisp Hyperlinks

          Workshop: Saturday, 2021-dec-04

    See: http://angg.twu.net/#eev
         http://angg.twu.net/2021-workshop.html






#####
#
# video-workshop-6
# 2021dec04
#
#####

# «video-workshop-6»  (to ".video-workshop-6")
# (find-eev-exercises-intro "2.2. `find-extra-file-links'")
# (find-ssr-links "2021workshop6" "2021-workshop-6" "-gi15-liGaU")
# (find-1stclassvideo-links "2021workshop6")
# (find-2021workshop6video "0:00")
# (find-sshot-links "6" "2021-workshop-6")



  Very short video 6:
  `find-extra-file-links'

  Eduardo Ochs

  For the  --->  Workshop on Creating and
                 Saving Elisp Hyperlinks

          Workshop: Saturday, 2021-dec-04

    See: http://angg.twu.net/#eev
         http://angg.twu.net/2021-workshop.html




#####
#
# video-eev-wconfig-pt
# 2022apr30
#
#####

# «video-eev-wconfig-pt»  (to ".video-eev-wconfig-pt")
# (find-fline "~/IMAGES/2022-sitio-a-cuca-vai-pegar-EP01.jpg")
# (find-ssr-links "2022eevwconfigpt1" "2022-eev-wconfig-pt-1" "bdLbocmo3r8")
# (find-ssr-links "2022eevwconfigpt2" "2022-eev-wconfig-pt-2" "ZAAxrJX-Am8")
# (code-eevvideo  "2022eevwconfigpt1" "2022-eev-wconfig-pt-1" "bdLbocmo3r8")
% (code-eevvideo  "2022eevwconfigpt2" "2022-eev-wconfig-pt-2" "ZAAxrJX-Am8")
# (find-2022eevwconfigpt1video "0:00")
% (find-2022eevwconfigpt2video "0:00")


* (defun sitio () (interactive) (find-fline "~/IMAGES/2022-sitio-a-cuca-vai-pegar-EP01.jpg"))
* (defun sitio () (interactive) (find-fline "~/IMAGES/2022-sitio-a-cuca-vai-pegar-EP01-2.jpg"))
* (defun fo () (interactive) (set-frame-font "Monospace Bold 19"))
* (defun fo () (interactive) (set-frame-font "Monospace 19"))
* (defun fos () (interactive) (find-2a '(find-fline "/tmp/o") '(sitio)) (fo))
* (defun eo () (interactive) (find-fline "/tmp/o"))
* (defun cato () (interactive) (find-sh "cat /tmp/o"))
* (defun ewd () (interactive) (find-fline "~/eev-wconfig/" "" '(eek "g")))
* (defun ewshowdir () (interactive) (find-2a nil '(ewd)))



eev-wconfig: um modo "sem mágica"
de configurar o eev no M$ Windows

  Eduardo Ochs
  http://angg.twu.net/#eev
  http://angg.twu.net/#eev-blogposts
  http://angg.twu.net/eev-wconfig.html
    2022apr30





Configuração sem mágica:
um experimento com o eev
(versão em Português)

  Eduardo Ochs
  http://angg.twu.net/#eev
  http://angg.twu.net/#eev-blogposts
  http://angg.twu.net/eev-wconfig.html
    2022may02





* (eepitch-eshell)
* (eepitch-kill)
* (find-sh0 "eev-wconfig d")
* (ewshowdir)
* (eek "C-x 1")
* (find-eev "eev-wconfig.el" "intro")
*
* (find-wconfig-browser-links)
* (setq ee-googlechrome-program "google-chrome")
*
*
* (find-wconfig-wget-links)
* (ewshowdir)
* (find-sh0 "eev-wconfig w")
* (ewshowdir)
* (find-wconfig-wget-links 2 "2. Use wget.exe")
* (ewshowdir)
* (find-sh0 "eev-wconfig c")
* (ewshowdir)
* (find-wconfig-wget-links 2 "find-callprocess")
* (ewshowdir)
* (find-wconfig-wget-links 2 "3. Make `find-wget'")
*
* (find-wconfig-shell-links)
*
* (find-wconfig-lua-links)
*
* (find-wconfig-mpv-links)
* (setq ee-mpv-program "mpv")
*
* (setq ee-googlechrome-program "c:/mainprogs/chrome.exe")
* (setq ee-mpv-program "c:/otherprogs/mpv-directory/mpv.exe")

* (find-sh0 "eev-wconfig d")
* (find-sh0 "eev-wconfig r")
* (find-fline "~/eev-wconfig/")
* (eval (read ee-wconfig-undo-links))




#####
#
# video-eev-wconfig
# 2022may07
#
#####

# «video-eev-wconfig»  (to ".video-eev-wconfig")
# (find-angg "elisp/eev-wconfig-video.el")
# (load    "~/elisp/eev-wconfig-video.el")
# (find-THfile "eev-wconfig.blogme")
# (find-THfile "eev-wconfig.blogme" "Eev-config.el: configuring eev on M$ Windows without magic")
# (find-ecolor-links "SkyBlue4")













  Eev-config.el: a way without "magic"
  to configure eev on M$ Windows

   Eduardo Ochs
   http://angg.twu.net/#eev
   http://angg.twu.net/eev-wconfig.html
   (find-1stclassvideos)
   (find-1stclassvideos      "2022eevwconfig")
   (find-1stclassvideo-links "2022eevwconfig")
   2022may15


  1. "configure"?
    Installing Emacs and eev is easy,
    but for more advanced usage
    eev needs to:  play videos,
                   display pdfs,
                   download files...
    We need to:
    download some things
    configure some paths
    put some commands in ~/.emacs



  2. Target audience:
    2.1. mainly: beginners -
         people who use Windows
         but who don't even know
         how to use a terminal -
    2.2. also: people who have
         been using Emacs for years
         and who are interested
         in alternatives to
         `M-x customize'


  3. What is eev?
    3.1. see: (find-emacsconf2019page)
    3.2. a slogan: "eev lets you record
         executable notes, and lets you
         play them back" 🤔

         Demo:
         (ee-mpv-non-fullscreen)
         (find-2022findeevanggvideo "15:17")

         ...but very few people are 
         using eev "fluently" to record
         executable notes of what they do...

    3.3. an older slogan: "eev is a
         tool for automating almost
         everything" 🤔🤔

         ...and very few people are
         using eev for automating
         their tasks... 😥


    4. Org Mode
    4.1. Org mode can ALSO be used to
         "record executable notes" and to
         "automate almost everything"...

         PROBLEM: Org Mode is "intuitive"
                  to many people,
              and eev is "intuitive"
                  to VERY, VERY, VERY FEW
                  people.

                  Org Mode is "simple"
                  in one way - related
                  to "user-friendliness"...

                  eev is "simple" in
                  another way - related
                  to Lisp.

                  (I find Org very hard)

    4.2. A trick to make eev more popular...
         TA-DA: people can use eev to learn
         Emacs and Org Mode!!!


End of Part 1



  5. Basic installation:
    5.1. install Emacs
    5.2. M-x list-packages
    5.3. install eev

      Page:
      http://angg.twu.net/#eev

      Tutorials ("intros"):
      (find-eev-quick-intro)

      Videos:
      (find-1stclassvideos)
      (find-1stclassvideo-links "eevnav")
      (find-1stclassvideoindex  "eevnav")



  6. Non-basic installation:
    6.1. install mpv
    6.2. configure the paths to
         chrome and mpv
    6.3. download wget, pdftotext, Lua
    6.4. configure lots of things

    (find-1stclassvideos)
    (find-1stclassvideo-links "eev2021")
    (find-eev2021video "0:00")
    (find-eevvideosfile "")
    (find-eevvideossh "mv -v * ../eev-videos-old/")
    (find-eev2021video "0:00")
    (find-eevvideossh "mv -v ../eev-videos-old/* .")
    (find-eev2021video "0:00")
      Btw: (find-es "mplayer" "keys")

  7. ...or replace 6.2-6.4 by:
    (require 'eev-wconfig)
    (find-wconfig-links)



  8. Exercise: Learn Org!
    8.1. See: (find-wconfig-links)
    8.2. See: (find-wconfig-exercises-links)



(code-c-d "rainerkoenig" "/sda5/videos/Rainer_Koenig/")
;; (find-rainerkoenigfile "")
(code-video "E02S01video" "/sda5/videos/Rainer_Koenig/OrgMode_E02S01_-_Tags-GcUVvlClo9k.webm")
;; (find-E02S01video)
;; (find-E02S01video "0:00")

(code-c-d "rainerkoenig" "/sda5/videos/Rainer_Koenig/")
(code-video "E01S01video" "/sda5/videos/Rainer_Koenig/OrgMode_E01S01_-_Headlines_outline_mode-sQS06Qjnkcc.webm")
;; (find-rainerkoenigfile "")
;; (find-E01S01video "0:00")
;; (find-E01S01video "2:00" "blah")



* (eepitch-eshell)
* (eepitch-kill)
* (find-sh0 "eev-wconfig d")
* (ewshowdir)
* (eek "C-x 1")
* (find-eev "eev-wconfig.el" "intro")
*
* (find-wconfig-browser-links)
* (setq ee-googlechrome-program "google-chrome")
*
*
* (find-wconfig-wget-links)
* (ewshowdir)
* (find-sh0 "eev-wconfig w")
* (ewshowdir)
* (find-wconfig-wget-links 2 "2. Use wget.exe")
* (ewshowdir)
* (find-sh0 "eev-wconfig c")
* (ewshowdir)
* (find-wconfig-wget-links 2 "find-callprocess")
* (ewshowdir)
* (find-wconfig-wget-links 2 "3. Make `find-wget'")
*
* (find-wconfig-shell-links)
*
* (find-wconfig-lua-links)
*
* (find-wconfig-mpv-links)
* (setq ee-mpv-program "mpv")
*
* (setq ee-googlechrome-program "c:/mainprogs/chrome.exe")
* (setq ee-mpv-program "c:/otherprogs/mpv-directory/mpv.exe")

* (find-sh0 "eev-wconfig d")
* (find-sh0 "eev-wconfig r")
* (find-fline "~/eev-wconfig/")
* (eval (read ee-wconfig-undo-links))






     (find-emacsconf2019page)
     (find-emacsconf2019text)
     (find-emacsconf2019page 8 "megabytes")
     (find-emacsconf2019text 8 "megabytes")
     (find-1stclassvideo-links "eev2019")
     (find-1stclassvideoindex  "eev2019")
     (find-orgnode "Working with Source Code")
     (find-1stclassvideo-links "2021orgfornonusers")


(find-extra-file-links "/sda5/videos/Rainer_Koenig/OrgMode_E02S01_-_Tags-GcUVvlClo9k.webm" "orgE02S01tags")
(code-c-d "rainerkoenig" "/sda5/videos/Rainer_Koenig/")
(find-rainerkoenigfile "")

(code-video "orgE02S01tagsvideo" "/sda5/videos/Rainer_Koenig/OrgMode_E02S01_-_Tags-GcUVvlClo9k.webm")
(find-orgE02S01tagsvideo "0:00")









#####
#
# punch-and-judy
# 2019aug18
#
#####

# «punch-and-judy» (to ".punch-and-judy")
# (find-youtubedl-links "/sda5/videos/" "Punch_and_Judy_Show_at_London_Covent_Garden_May_Fayre" "K6LmZ0A1s9U" ".mp4" "punchandjudy")
# (find-fline "/sda5/videos/" "K6LmZ0A1s9U")
# (find-video "/sda5/videos/Punch_and_Judy_Show_at_London_Covent_Garden_May_Fayre-K6LmZ0A1s9U.mp4")
# (code-video "punchandjudyvideo" "/sda5/videos/Punch_and_Judy_Show_at_London_Covent_Garden_May_Fayre-K6LmZ0A1s9U.mp4")
# (find-twusfile "eev-videos/")
# (find-twusfile "eev-videos/" "Punch_and_Judy")
# (find-fline "~/eev-videos/" "Punch_and_Judy")

# (find-eev "eev-audiovideo.el" "find-mpv-video" "ee-mpv-video-options")
# (setq ee-mpv-video-options '("--fs" "--osd-level=2"))
# (setq ee-mpv-video-options        '("--osd-level=2"))

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# http://www.youtube.com/watch?v=K6LmZ0A1s9U
# http://angg.twu.net/eev-videos/Punch_and_Judy_Mark_Poulton-K6LmZ0A1s9U.mp4
mkdir ~/eev-videos/
cd    ~/eev-videos/
wget -nc http://angg.twu.net/eev-videos/Punch_and_Judy_Mark_Poulton-K6LmZ0A1s9U.mp4

# (find-fline "~/eev-videos/")
# (find-video "~/eev-videos/Punch_and_Judy_Mark_Poulton-K6LmZ0A1s9U.mp4")
# (code-video "punchandjudyvideo" "~/eev-videos/Punch_and_Judy_Mark_Poulton-K6LmZ0A1s9U.mp4")
# (find-punchandjudyvideo)
# (find-punchandjudyvideo "0:00")
# (find-punchandjudyvideo "0:10" "calls the baby")
# (find-punchandjudyvideo "0:40" "where's the baby")
# (find-punchandjudyvideo "1:04" "right position")
# (find-punchandjudyvideo "1:17" "he will sing the baby to sleep")
# (find-punchandjudyvideo "1:33" "1-2-3")
# (find-punchandjudyvideo "1:48" "baby downstairs")
# (find-punchandjudyvideo "3:12" "slaps")
# (find-punchandjudyvideo "3:50" "1-2-3")
# (find-punchandjudyvideo "4:34" "you keep an eye on mr Punch")
# (find-punchandjudyvideo "4:46" "hat")
# (find-punchandjudyvideo "5:03" "hat")
# (find-punchandjudyvideo "5:25" "did you see him?")
# (find-punchandjudyvideo "5:55" "clown")
# (find-punchandjudyvideo "6:14" "slaps")
# (find-punchandjudyvideo "6:52" "sausages")
# (find-punchandjudyvideo "7:24" "crocodile")
# (find-punchandjudyvideo "8:07" "crocodile + sausages")
# (find-punchandjudyvideo "8:32" "another scene")
# (find-punchandjudyvideo "8:39" "fight")
# (find-punchandjudyvideo "9:03" "clown")
# (find-punchandjudyvideo "9:45" "mr punch")



#####
#
# emacsconf2019-captions
# 2020oct20
#
#####

# «emacsconf2019-captions»  (to ".emacsconf2019-captions")

[ECS 0:00 Title page]
[ECS 0:15 Prehistory 1: eev appeared by accident]
[ECS 1:08 Prehistory 2: my notes started to have lots of elisp hyperlinks]
[ECS 2:35 Prehistory 3: M-x eev]
[ECS 3:04 Prehistory 4: several other kinds of elisp kyperlinks]
[ECS 4:05 Prehistory 5: these elisp hyperlinks could be put in comments]
[ECS 5:34 Prehistory 6: variants of M-x eev]
[ECS 5:41 Prehistory 7: [COLOR RED several megabytes of scripts and notes]
             ([R http://angg.twu.net/e/ here])]
[ECS 6:41 Prehistory 8: I was sure that everybody was using Emacs like that]
[ECS 7:52 Prehistory 9: "[COLOR red users should not be forced to see Lisp]"]
[ECS 9:22 Eev as an ELPA package]
[ECS 10:51 Eev as an ELPA package (2)]
[ECS 11:20 M-j - and
  [R [STOT (find-eev-quick-intro "7.2. The list of eejump targets")]
     how beginners should use it]
  ]
[ECS 12:54 A demo]
[ECS 13:10 Demo: patching xpdf
  ([R [STOT (find-es "emacsconf2019" "short")] e-script])
  ]
[ECS 14:01 Demo: the `find-man' links]
[ECS 14:45 Demo: the `find-apt-get-source-links']
[ECS 15:11 Demo: the eepitch block (in red star lines)
  ([R [STOT (find-eev-quick-intro "6. Controlling shell-like programs")] see this])
  ]
[ECS 15:48 Demo: eepitch on non-red star lines]
[ECS 15:56 Demo: [COLOR red eepitch in action]]
[ECS 16:47 Demo: the `find-fline's to the source directory]
[ECS 17:07 Demo: `code-c-d'
  ([R [STOT (find-eev-quick-intro "9. Shorter hyperlinks")] see this])
  ]
[ECS 17:22 Demo: `find-xpdffile']
[ECS 17:32 Demo: `find-xpdfsh']
[ECS 17:44 Demo: `find-xpdfgrep']
[ECS 18:32 Demo: the second `find-xpdfgrep']
[ECS 18:46 Demo: the relevant occurrence / direct link to it]
[ECS 19:18 Links]
]

[P A transcription of what I say in the final part (i.e., in the demo):
[ECSQ 13:11 Let me show you an example of "executable notes and how to play them back".]
[ECSQ 13:18 I will only be able to explain how to _record_ these executable notes in the longer video.]
[ECSQ 13:25 Anyway: when I was recording this video I realized that xpdf was behaving in a very annoying way -]
[ECSQ 13:34 it was changing the page in moments that I didn't want it to...]
[ECSQ 13:39 and the problem was that when my finger was at the right side of the touchpad]
[ECSQ 13:45 and I moved it up or down this would be interpreted as a _mousewheel scroll_,]
[ECSQ 13:52 that would be interpreted as PageUp or PageDown,]
[ECSQ 13:57 and I wanted to disable that - I wanted to disable the support for mousewheel scroll in xpdf.]
[ECSQ 14:01 So I took a look at the man page for xpdf - here -]
[ECSQ 14:06 I didn't find a simple way to change that by changing a configuration file]
[ECSQ 14:11 but I found a section that described all the default mouse bindings - here -]
[ECSQ 14:18 I found a line that seemed to be relevant - this one -]
[ECSQ 14:21 I created a hyperlink that pointed directly to that line - this one -]
[ECSQ 14:30 and I also found an explanation for what this function does]
[ECSQ 14:35 and the explanation says that this function either scrolls up by some pixels]
[ECSQ 14:41 or it moves to the previous page - which means PageUp.]
[ECSQ 14:46 So the _quickest_ way to change xpdf - because I was in a hurry -]
[ECSQ 14:51 was by downloading and recompiling the Debian source with some changes.]
[ECSQ 14:56 I used this hyperlink here, that uses a template, to generate several links]
[ECSQ 15:01 and several shell commands for downloading and recompiling a debian source package.]
[ECSQ 15:08 I copied these lines to my notes with some small changes,]
[ECSQ 15:15 and this part - here - uses the alternative to M-x eev...]
[ECSQ 15:20 remember that I said that my old way of sending lines to the shell was by using M-x eev,]
[ECSQ 15:27 that was very clumsy: it needed several keystrokes, and it was difficult to install]
[ECSQ 15:34 because we would need to change an rcfile.]
[ECSQ 15:38 So, the new alternative to it uses just <f8>,]
[ECSQ 15:43 that behaves in one way in lines that start with a red star - like these ones -]
[ECSQ 15:49 and in another way in lines that do not start with a red star.]
[ECSQ 15:54 Let me change the font to a smaller one to show how it works.]
[ECSQ 16:00 If I type <f8> in these three lines - here -]
[ECSQ 16:03 this will set up a target buffer - here - running a shell,]
[ECSQ 16:08 and if I type <f8> in these lines - here - this will send these commands to the shell.]
[ECSQ 16:14 This command, in particular, it downloads - sorry, it _makes sure_ that I have]
[ECSQ 16:20 all the Debian packages that I need to be able to compile the source for xpdf,]
[ECSQ 16:27 and this command - here - downloads the source package for xpdf]
[ECSQ 16:34 and unpacks it. It takes a few seconds - here.]
[ECSQ 16:40 I do not want to execute this thing now - this thing would recompile the source.]
[ECSQ 16:49 So, this hyperlink - here - opens this temporary directory,]
[ECSQ 16:54 and it turns out that the source package was unpacked in this subdirectory - here -]
[ECSQ 17:04 so this hyperlink points to the subdirectory,]
[ECSQ 17:07 and this s-expression - here - defines several shorter hyperlinks with "find-xpdf" in their names]
[ECSQ 17:17 that operate in this subdirectory - here.]
[ECSQ 17:22 So, this hyperlink - here - opens that directory,]
[ECSQ 17:30 this one - here - runs these shell commands in that directory]
[ECSQ 17:37 to list all the files - remember that I haven't compiled anything yet,]
[ECSQ 17:41 so all these files belong to the source package,]
[ECSQ 17:46 and this one is much more interesting - it runs a grep in that directory.]
[ECSQ 17:51 Remember that I discovered that the name of the mouse event that was bound to]
[ECSQ 17:57 PageUp, or to the _bad_ PageUp in the bad PageDown,]
[ECSQ 18:02 was MousePress4 (and MousePress5)...]
[ECSQ 18:06 So this grep here searches for all the occurrences of MousePress4]
[ECSQ 18:12 in the source... and it shows that there are only two occurrences,]
[ECSQ 18:18 one of them in the source for the man page and the other one]
[ECSQ 18:22 in the rendered version of that source, which is not good...]
[ECSQ 18:27 Let me change to the bigger font again.]
[ECSQ 18:31 So I decided to search for the function that was associated to that mouse event -]
[ECSQ 18:39 this function here - and I found several occurrences of that string,]
[ECSQ 18:45 and it turned out that _this_ is a relevant occurrence,]
[ECSQ 18:49 so I created a direct link to that source file,]
[ECSQ 18:53 and I discovered that if I commented out these lines by hand]
[ECSQ 19:03 and recompiled everything and installed the new debian binary package]
[ECSQ 19:09 then I would get an xpdf that does not have the annoying behavior. But...]
[ECSQ 19:15 That's it.]




#####
#
# 2020-several-tbfs
# 2020dec25
#
#####

# «2020-several-tbfs»  (to ".2020-several-tbfs")
# (find-TH "2020-some-template-based")
# (defun e () (interactive) (find-fline "~/elisp/several-templated-functions-2020.el"))
# (find-ssr-links "2020sometbf" "2020_some_template-based_functions")
# (code-eevvideo  "2020sometbf" "2020_some_template-based_functions" "91-9YfRPsuk")
# http://angg.twu.net/eev-videos/2020_some_template-based_functions.mp4
# (code-video "2020sometbfvideo" "$S/http/angg.twu.net/eev-videos/2020_some_template-based_functions.mp4")
# (find-2020sometbfvideo  "0:00" "Title")
# (find-2020sometbfvideo  "0:17"   "the reason for this title")
# (find-2020sometbfvideo  "0:18" "1. `find-find-links-links-new'")
# (find-2020sometbfvideo  "1:29"   "generated again with these values")
# (find-2020sometbfvideo  "1:50"   "the implementation is very simple")
# (find-2020sometbfvideo  "2:00"   "in five minutes because ... generates skeletons")
# (find-2020sometbfvideo  "5:03" "2. `M-x brep'")
# (find-2020sometbfvideo  "5:43"   "a way to download local copies")
# (find-2020sometbfvideo  "7:11"   "The new way: `M-x brep'")
# (find-2020sometbfvideo  "8:15"   "by typing `M-x brep'")
# (find-2020sometbfvideo  "8:50"   "and then we get this buffer here")
# (find-2020sometbfvideo  "9:17" "3. The function that defines brep")
# (find-2020sometbfvideo  "9:38"   "`code-brurl' is a variant of `code-c-d'")
# (find-2020sometbfvideo "10:07"   "find-code-url shows the code instead of executing it")
# (find-2020sometbfvideo "11:26"   "this is explained in the main tutorial")
# (find-2020sometbfvideo "12:12"   "accept extra arguments")
# (find-2020sometbfvideo "12:34"   "if we run just this")
# (find-2020sometbfvideo "12:40"   "one of the reasons for using text: comments")
# (find-2020sometbfvideo "13:03"   "if we run just this with extra arguments")
# (find-2020sometbfvideo "14:10"   "code-brurl executes this code here")
# (find-2020sometbfvideo "14:20" "4. `find-esetkey-links'")
# (find-2020sometbfvideo "15:20"   "a big header with lots of help")
# (find-2020sometbfvideo "16:28"   "I have these keybindings, for toggling")
# (find-2020sometbfvideo "17:06"   "I realized that I use `M-x wrap' very often")
# (find-2020sometbfvideo "18:18"   "in the emacs-devel mailing list")
# (find-2020sometbfvideo "18:32"   "users should not be forced to see lisp")
# (find-2020sometbfvideo "19:23" "5. `find-youtubedl-links'")
# (find-2020sometbfvideo "19:43"   "if we twist the notion user enough")
# (find-2020sometbfvideo "20:02"   "user-friendly to me")
# (find-2020sometbfvideo "20:05"   "The documentation is in this tutorial:")
# (find-2020sometbfvideo "21:36"   "its code is here")
# (find-2020sometbfvideo "21:55"   "Let me show a demo")
# (find-2020sometbfvideo "22:15"   "I never type these rm -Rv/mkdir/cd by hand")
# (find-2020sometbfvideo "22:48"   "let me show how to download ... the hash is here")
# (find-2020sometbfvideo "23:25"   "they regenerate this buffer in slightly different ways")
# (find-2020sometbfvideo "24:03"   "a video with this hash. If I visit the directory")
# (find-2020sometbfvideo "24:32"   "my magic functions have to")
# (find-2020sometbfvideo "24:50"   "if I run this sexp here with nil")
# (find-2020sometbfvideo "25:00"   "it tries to guess the title")
# (find-2020sometbfvideo "25:28"   "and if I change this {stem} here I get short links")
# (find-2020sometbfvideo "26:14"   "has very long lines, but if I type super-w")
# (find-2020sometbfvideo "26:28"   "I get a buffer that shows the code for find-preadingvideo")
# (find-2020sometbfvideo "26:50"   "if I execute this I play the video")
# (find-2020sometbfvideo "27:15"   "make a copy of this that points to the right position")
# (find-2020sometbfvideo "27:53"   "summary: this is how I download videos from youtube")
# (find-2020sometbfvideo "28:12" "6. `find-here-links' and `find-extra-file-links'")
# (find-2020sometbfvideo "28:20"   "it deserves another presentation just to itself")
# (find-2020sometbfvideo "28:32"   "the central idea of eev")
# (find-2020sometbfvideo "29:17"   "it is bound to `M-h M-h'")
# (find-2020sometbfvideo "29:25"   "generates a temporary buffer with hyperlinks to here")
# (find-2020sometbfvideo "29:30"   "help and a link to the tutorial in which I was")
# (find-2020sometbfvideo "29:45"   "not very well documented yet")
# (find-2020sometbfvideo "30:05"   "it is explained in this section of the tutorial")
# (find-2020sometbfvideo "30:18"   "if we type `M-h M-e' this runs `find-extra-file-links'")
# (find-2020sometbfvideo "30:42"   "here is an example in Lisp")
# (find-2020sometbfvideo "31:06"   "and I can change this {c}")
# (find-2020sometbfvideo "31:22"   "Let me show a more realistic example of how to use it")
# (find-2020sometbfvideo "31:28"   "let's go to the directory with the video file")
# (find-2020sometbfvideo "31:45"   "this file is a video file")
# (find-2020sometbfvideo "32:00"   "(a glitch)")
# (find-2020sometbfvideo "33:03"   "these were the things that I wanted to show")

# (find-file "/tmp/o")
# (find-sh "cut -b27- /tmp/o | tr -d '\"' | rev | cut -b2- | rev")




#####
#
# find-esymbol
# 2021jun08
#
#####

# «find-esymbol»  (to ".find-esymbol")
# (eek "M-h M-k  C-h o  ;; describe-symbol")
# (find-efunctiondescr 'describe-symbol)
# (find-efunction      'describe-symbol)

# (find-eev "eev-blinks.el" "find-estruct")

        (cl-defstruct mytriple a b c)
                (make-mytriple :a 22 :c "44")
  (find-estruct (make-mytriple :a 22 :c "44"))
    (describe-symbol 'mytriple)




#####
#
# find-elisp-into-subs
# 2022jan24
#
#####

# «find-elisp-into-subs»  (to ".find-elisp-into-subs")
# (find-angg ".emacs.videos" "2022findelispintro")
# (setq ee-audiovideo-last 'find-2022findelispintrovideo)
# (find-TH "find-elisp-intro")

;; (find-{c}video)
;; (find-{c}video "0:00")

0:00 Hi! My name is Eduardo Ochs, I'm the author of an Emacs package
     called eev, and the title of this video is: "why eev comes with a
     weird elisp tutorial and how to use it".






#####
#
# Carmen Astrid
# 2014aug10
#
#####

# «carmen-1» (to ".carmen-1")

{
  rm -Rv ~/eev/
  mkdir  ~/eev/
  cd     ~/eev/
  rm -v eev2.tgz
  wget http://angg.twu.net/eev-current/eev2.tgz
  tar -xvzf eev2.tgz
}

{
  {
    echo '#!/bin/sh'
    echo 'cd ~/eev/ && emacs -l ./eev-readme.el --eval="(find-eval-intro)"'
  } > ~/e
  chmod 755 ~/e
}

# (find-man "wget")
# (find-man "rm")
# (find-man "mkdir")
# (find-man "tar")
# (find-man "tar" "-x, --extract")
# (find-man "tar" "-v, --verbose")
# (find-man "tar" "-z, --gzip, --gunzip")
# (find-man "tar" "-f, --file ARCHIVE")

(Re)generate: (find-eval-intro)




#####
#
# Low-level tests to see if eegchannel is working
# 2019mar10
#
#####

# «eegchannel-test» (to ".eegchannel-test")
# (find-eev "eegchannel")
# (find-eev "eegchannel" "proc pidfile")
# (find-eev "eegchannel-test" "proc pidfile")
# (find-channels-intro "2.2. Test eegchannel")




#####
#
# eexterm-test
# 2019mar10
#
#####

# «eexterm-test» (to ".eexterm-test")
# (find-eev "eev-channels.el" "eexterm")
# (find-eev "eev-channels.el" "eexterm" "Tests:")

* (eexterm "A")
echo hello
exit

* (eexterm "A" "ssh edrx@127.0.0.1")
* (eexterm "A" "ssh edrx@127.0.0.1" "-geometry +512+0")
edrx
exit





#####
#
# eev as an Emacs package (in ELPA or so)
# 2014oct11
#
#####

# «eev-emacs-package» (to ".eev-emacs-package")
# (find-es "emacs" "packages")
# (find-angg ".emacs" "eev-package")

;; (find-elnode "Packaging")
;; (find-elnode "Packaging Basics")
;; (find-elnode "Packaging Basics" "Long description")
;; (find-elnode "Multi-file Packages")
;; (find-elnode "Package Archives")
;; (find-elnode "Package Archives" "package-x")
;; (find-elnode "Library Headers")
;; (find-elnode "Library Headers" "Finder")

;; (find-enode "Packages")
;; (find-enode "Package Installation")

;; (find-es "emacs" "packages")
;; (find-sh "locate package-x")
;; (find-efile "emacs-lisp/package-x.el")
;; (find-ecvsfile "test/automated/package-x-test.el")
;; (find-ecvsfile "Makefile" "check:")

;; (find-epackage 'magit)
;; (find-epackage  'magit     "Invoking the magit-status function")
;; (find-magitfile "magit.el" "Invoking the magit-status function")




#####
#
# eev-pkg.el-fields
# 2019mar13
#
#####

# «eev-pkg.el-fields» (to ".eev-pkg.el-fields")
# (find-epackage      'isend-mode)
# (find-isendmodefile "isend-mode-pkg.el")
# (find-elpafile      "isend-mode-readme.txt")
# (find-pdftoolsfile  "pdf-tools-pkg.el")
# (find-elpafile      "pdf-tools-readme.txt")
# (find-eevfile       "eev-pkg.el")
# (find-epackage 'add-hooks)

# (find-elnode "Packaging")
# (find-elnode "Packaging Basics" "Name")
# (find-elnode "Packaging Basics" "Version")
# (find-elnode "Packaging Basics" "Brief description")
# (find-elnode "Packaging Basics" "Long description")
# (find-elnode "Packaging Basics" "Dependencies")
# (find-elnode "Packaging Basics" "package-initialize")
# (find-elnode "Simple Packages" "Keywords" "optional")
# (find-elnode "Multi-file Packages" "README")

# (find-elnode "Multi-file Packages" "(file-name-directory load-file-name)")

# Long description / readme:
# (find-escripts-intro "Eev's central idea")




#####
#
# eev-pkg-repo
# 2019mar13
#
#####

# «eev-pkg-repo» (to ".eev-pkg-repo")
# (find-elnode "Package Archives" "package-archives")





#####
#
# eev-pkg: build
# 2014oct11 / 2019mar13
#
#####

# «eev-pkg-build» (to ".eev-pkg-build")
# (find-es "emacs" "package-dummy")
# (find-es "emacs" "package-dummy" "package-install-file")
# (find-eev "eev-pkg.el")
# (find-sh "date +%Y%m%d")
# (setenv "DATE" "20190401")
# (code-c-d "eevpkg" (format "/tmp/eev-%s/"    (getenv "DATE")))
# (setq ee-eevpkgtar (format "/tmp/eev-%s.tar" (getenv "DATE")))
# (code-c-d "elpaeev" (format "~/.emacs.d/elpa/eev-%s/" (getenv "DATE")))
# (find-eevpkgfile "")
# (find-elpaeevfile "")
# (find-fline ee-eevpkgtar)

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
my-git-list-files /tmp/eev-g/
my-git-list-files /tmp/eev-g/ | grep '.el$' | tee /tmp/.files
echo README >> /tmp/.files

# (find-eev "README-pkg")
# (find-es "eev" "eev-pkg.el-fields")

rm -Rv /tmp/eev-2019*
mkdir  /tmp/eev-$DATE/
cd     /tmp/eev-$DATE/

# (to "eev-pkg.el")
# (find-elnode "Multi-file Packages" "README")

cd ~/eev-current/
cp -v $(cat /tmp/.files) /tmp/eev-$DATE/
# cp -v README-pkg       /tmp/eev-$DATE/eev-readme.txt
# cp -v README-pkg       /tmp/eev-$DATE/README
cd     /tmp/eev-$DATE/

cd /tmp/
tar -cvf /tmp/eev-$DATE.tar eev-$DATE/*

rm -Rv ~/.emacs.d/elpa/eev*

# (package-install-file ee-eevpkgtar)
# (find-elpafile "")
# (find-elpaeevfile "")

# (find-efunction 'package-install-file)

cd /tmp/
Scp-np /tmp/eev-$DATE.tar $TWUP/eev-current/elpa/
Scp-np /tmp/eev-$DATE.tar $TWUS/eev-current/elpa/
# (find-twusfile "eev-current/elpa/")
# (find-twupfile "eev-current/elpa/")
# http://angg.twu.net/eev-current/elpa/

* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
~/EXPECT/autopasswd ssh edrx@angg.twu.net
cd ~/public_html/ && makepageindexhtmls




# Old (2014):

eev2-build-tgz
echo $DATE
rm -Rv ~/usrc/eev-*
mkdir  ~/usrc/eev-$DATE/
cd     ~/usrc/eev-$DATE/
tar -C ~/usrc/eev-$DATE/ -xvzf /tmp/eev2.tgz

cp -v ~/eev-current/eev-pkg.el ~/usrc/eev-$DATE/

cp -v eev2-all.el eev.el
** Fix this by hand:
*  (find-eevpkgfile "eev.el" "(provide '")
cd     ~/usrc/
tar -cvf /tmp/eev-$DATE.tar eev-$DATE/*.el
laf /tmp/eev-$DATE.tar

Scp-np -v /tmp/eev-$DATE.tar $TWUS/packages-el/
Scp-np -v /tmp/eev-$DATE.tar $TWUP/packages-el/


* (eepitch-Twu)
* (eepitch-kill)
* (eepitch-Twu)
zsh
rm -v ~/public_html/packages-el/index.html
makepageindexhtmls

# http://angg.twu.net/packages-el/

# (find-angg ".zshrc" "makepagefromtar")

Scp -v eev-20141011.tar \
  edrx@angg.twu.net:/home/edrx/slow_html/




#####
#
# eev-pkg-readme
# 2019mar14
#
#####

# «eev-pkg-readme» (to ".eev-pkg-readme")
# http://elpa.gnu.org/packages/auctex-12.1.2.tar
# (find-fline "$S/http/elpa.gnu.org/packages/auctex-12.1.2.tar")
# (find-fline "$S/http/elpa.gnu.org/packages/auctex-12.1.2.tar" "auctex-12.1.2/README")

<edrx> anyone here maintains an ELPA package? If I'm reading the
       documentation correctly then the long description of the
       package that I'm building should be put at
       /tmp/eev-20190313/README before I run tar -cvf
       /tmp/eev-20190313.tar eev-20190313/*, but when I do this and
       run
<edrx> (package-install-file "/tmp/eev-20190313.tar") then this
       does not generate a file ~/.emacs.d/elpa/eev-readme.txt...

# (find-elpafile "")
# (find-elpafile "" "isend-mode")
# (find-elpafile "isend-mode-readme.txt")
# (find-epackage 'isend-mode)

# (find-epackage 'eev)
# (find-eev "README")




#####
#
# First tests on the eev package (before announcing it on emacs-devel)
# 2019mar14
#
#####

# «eev-pkg-test-0» (to ".eev-pkg-test-0")




#####
#
# eev-pkg-submit-to-ELPA
# 2019mar14
#
#####

# «eev-pkg-submit-to-ELPA» (to ".eev-pkg-submit-to-ELPA")
# http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain/README



#####
#
# elpa.git
# 2019apr09
#
#####

# «elpa.git» (to ".elpa.git")
# http://git.savannah.gnu.org/cgit/emacs/elpa.git/
# http://git.savannah.gnu.org/cgit/emacs/elpa.git/commit/?h=externals/eev
# http://git.savannah.gnu.org/cgit/emacs/elpa.git/log/?h=externals/eev
# http://git.savannah.gnu.org/cgit/emacs/elpa.git/snapshot/elpa-externals/eev.tar.gz

# https://mail.google.com/mail/ca/u/0/#search/elpa.git/QgrcJHsBpWZnWNtbdGZtDPlljGRHJsdBTZv

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/eev-e/")
cd /tmp/
wget -nc http://git.savannah.gnu.org/cgit/emacs/elpa.git/snapshot/elpa-externals/eev.tar.gz

rm -Rv /tmp/eev-e
mkdir  /tmp/eev-e/
cd     /tmp/eev-e/
tar --strip-components 2 -xvzf ../eev.tar.gz

rm -Rfv /tmp/eev-g
mkdir   /tmp/eev-g/
cd      /tmp/eev-g/ && git clone https://github.com/edrx/eev.git .
cd      /tmp/eev-g/
git checkout UTF-8

'ls' /tmp/eev-e/ | my-cmp-tkdiff /tmp/eev-e/ /tmp/eev-g/
'ls' /tmp/eev-e/ | my-cmp-tkdiff /tmp/eev-e/ "~/eev-current/"

(find-tkdiff "/tmp/eev-e/ChangeLog" "~/eev-current/ChangeLog")
(find-tkdiff "/tmp/eev-e/VERSION" "~/eev-current/VERSION")
(find-tkdiff "/tmp/eev-e/eev-anchors.el" "~/eev-current/eev-anchors.el")
(find-tkdiff "/tmp/eev-e/eev-intro.el" "~/eev-current/eev-intro.el")
(find-tkdiff "/tmp/eev-e/eev-tlinks.el" "~/eev-current/eev-tlinks.el")
(find-tkdiff "/tmp/eev-e/eev.el" "~/eev-current/eev.el")

(find-fline "~/eev-current/eev-anchors.el")
(find-fline "~/eev-current/eev-intro.el")
(find-fline "~/eev-current/eev-tlinks.el")
(find-fline "~/eev-current/eev.el")

(find-fline "~/eev-current/eev-blinks.el")
(find-fline "~/eev-current/eev-code.el")
(find-fline "~/eev-current/eev-env.el")
(find-fline "~/eev-current/eev-eval.el")
(find-fline "~/eev-current/eev-mode.el")
(find-fline "~/eev-current/eev-plinks.el")
(find-fline "~/eev-current/eev-prepared.el")
(find-fline "~/eev-current/eev-template0.el")
(find-fline "~/eev-current/eev-tlinks.el")

(find-tkdiff> "/tmp/eev-e/eejump.el" "~/eev-current/eejump.el")
(find-tkdiff> "/tmp/eev-e/eev-audiovideo.el" "~/eev-current/eev-audiovideo.el")
(find-tkdiff> "/tmp/eev-e/eev-beginner.el" "~/eev-current/eev-beginner.el")
(find-tkdiff> "/tmp/eev-e/eev-blinks.el" "~/eev-current/eev-blinks.el")
(find-tkdiff> "/tmp/eev-e/eev-brxxx.el" "~/eev-current/eev-brxxx.el")
(find-tkdiff> "/tmp/eev-e/eev-channels.el" "~/eev-current/eev-channels.el")
(find-tkdiff> "/tmp/eev-e/eev-code.el" "~/eev-current/eev-code.el")
(find-tkdiff> "/tmp/eev-e/eev-codings.el" "~/eev-current/eev-codings.el")
(find-tkdiff> "/tmp/eev-e/eev-edit.el" "~/eev-current/eev-edit.el")
(find-tkdiff> "/tmp/eev-e/eev-elinks.el" "~/eev-current/eev-elinks.el")
(find-tkdiff> "/tmp/eev-e/eev-env.el" "~/eev-current/eev-env.el")
(find-tkdiff> "/tmp/eev-e/eev-eval.el" "~/eev-current/eev-eval.el")
(find-tkdiff> "/tmp/eev-e/eev-flash.el" "~/eev-current/eev-flash.el")
(find-tkdiff> "/tmp/eev-e/eev-load.el" "~/eev-current/eev-load.el")
(find-tkdiff> "/tmp/eev-e/eev-mode.el" "~/eev-current/eev-mode.el")
(find-tkdiff> "/tmp/eev-e/eev-multiwindow.el" "~/eev-current/eev-multiwindow.el")
(find-tkdiff> "/tmp/eev-e/eev-pdflike.el" "~/eev-current/eev-pdflike.el")
(find-tkdiff> "/tmp/eev-e/eev-plinks.el" "~/eev-current/eev-plinks.el")
(find-tkdiff> "/tmp/eev-e/eev-prepared.el" "~/eev-current/eev-prepared.el")
(find-tkdiff> "/tmp/eev-e/eev-rcirc.el" "~/eev-current/eev-rcirc.el")
(find-tkdiff> "/tmp/eev-e/eev-readme.el" "~/eev-current/eev-readme.el")
(find-tkdiff> "/tmp/eev-e/eev-template0.el" "~/eev-current/eev-template0.el")
(find-tkdiff> "/tmp/eev-e/eev2-all.el" "~/eev-current/eev2-all.el")

eejump.el, eev-anchors.el, eev-audiovideo.el, eev-beginner.el, eev-blinks.el, eev-brxxx.el, eev-channels.el, eev-code.el, eev-codings.el, eev-edit.el, eev-elinks.el, eev-env.el, eev-eval.el, eev-flash.el, eev-intro.el, eev-load.el, eev-mode.el, eev-multiwindow.el, eev-pdflike.el, eev-plinks.el, eev-prepared.el, eev-rcirc.el, eev-readme.el, eev-template0.el, eev-tlinks.el, eev.el, eev2-all.el




#####
#
# eek-pkg-announcement
# 2019mar15
#
#####

# «eek-pkg-announcement» (to ".eek-pkg-announcement")
# https://mail.google.com/mail/ca/u/0/#sent/QgrcJHshbMQhlqMWtLSdBzQzdbnhBGwxVnb
# http://lists.gnu.org/archive/html/emacs-devel/2019-03/msg00433.html

[ELPA] New package: eev
Hi list,

I would like to submit a package to ELPA. It is called "eev". Let me
copy its README here:

--snip--snip--

Eev's central idea is that you can keep "executable logs" of what you
do, in a format that is reasonably readable and that is easy to "play
back" later, step by step and in any order. We call these executable
logs "e-scripts". These "steps" are mainly of two kinds:

   1) elisp hyperlinks, and
   2) lines sent to shell-like programs.

To run the tutorial: install this package, then type `M-x
eev-beginner'. This will load all the main modules, activate the
eev-mode keybindings, and open this tutorial,

  http://angg.twu.net/eev-intros/find-eev-quick-intro.html
  (find-eev-quick-intro)

in a sandboxed buffer. For a list of the other sandboxed tutorials,
run:

  (find-eev-intro)

For a non-technical description of what e-scripts are, see:

  http://angg.twu.net/escripts.html

The home page of eev is:

  http://angg.twu.net/#eev

--snip--snip--

The current version of its ELPA-ish package is here:

  http://angg.twu.net/eev-current/elpa/
  http://angg.twu.net/eev-current/elpa/eev-20190314.tar

The home page points to other, more mature, ways to install it: a .tgz
that users can install by copying and pasting a script to a shell, and
its git repository.

Feedback VERY welcome.

Thanks in advance!

  Eduardo Ochs
  http://angg.twu.net/#eev

====================================

Hi Stefan!

Wow, that was quick!!!

1) About the README: I am trying to learn how to use modern tools to
   record screencasts to create a single video with the main features
   that will last less than two minutes. Does that help? Note that
   this page

     http://angg.twu.net/escripts.html

   explains the motivation in a non-technical way, but I still need a
   way to show the "play back" in action to people who only have two
   or three minutes to spend... any problems if I spend a few weeks
   more, or a month, to produce that short video?

2) Authorship: I am the author of everything but there is a module -
   eepitch.el - that is based on the ideas of a 57-line prototype that
   a user called Rubikitch (he never told me his real name, even
   though I asked) sent to the eev mailing list in 2006. I just added
   links to the discussion in the mailing list to the comments in
   eepitch.el - let me copy them here:

    ;; NOTE 2: eepitch is based on code that Rubikitch sent to the eev
    ;; mailing list in 2006, but I rewrote his code completely several
    ;; times since then. See:
    ;;
    ;;   http://lists.gnu.org/archive/html/eev/2006-01/msg00000.html
    ;;   http://lists.gnu.org/archive/html/eev/2006-02/msg00000.html
    ;;   http://lists.gnu.org/archive/html/eev/2006-02/msg00001.html

3) About eev-beginner.el. I never found a good way to set up the
   autoloads in eev until a few days ago - and what I got then was a
   *first* way to set up autoloads that was good enough to begin with,
   i.e., until I could discuss that with senior emacsers. Here's how
   it works.

   When you install eev from ELPA there is only a single autoload -
   for `eev-beginner', that loads all main modules and opens the
   tutorial.

   When you've grasped the main ideas and you want to install eev in a
   non-beginner way what you do is to run this, possibly from your
   .emacs:

     (require 'eev-load)

   This loads all the main modules but does not turn on eev-mode and
   does not open the tutorial.

4) About the Emacs version. I *guess* that eev would run on Emacs 22
   either unmodified or with at most two very small changes, but it
   would take me a while to install an Emacs 22 here. As a temporary
   solution I've changed the 4th argument to `define-package' in
   eev-pkg.el from nil to:

     '((emacs "24.3"))

5) About byte-compilation. There isn't any code in eev that takes more
   that 1/100 seconds to run, and there are some points in the
   tutorials in which I encourage people to look at the source code of
   the functions in two ways: with [the eev variant of] find-function
   and with `find-efunctionpp', whose docstring is:

     "Visit a temporary buffer containing the pretty-printed Lisp code
     for SYMBOL."

   Roughly,

     (find-efunctionpp 'foo)

   puts the result of

     (pp-to-string (symbol-function 'foo))

   into a temporary buffer and switches it to emacs-lisp-mode to
   fontify the code. If we don't byte-compile the modules of eev then
   beginners will have a reasonable corpus of functions for which
   `find-efunctionpp' shows something readable, which is good to help
   them understand the innards of Emacs.

6) About git. I prefer to keep using my own repository, at least for
   the next few months. I know less git that I should, and by the way
   - important caveat! - all the new developments are being pushed to
   the "UTF-8" branch of the git repository, but the "master" there
   still points to an obsolete branch and I don't know how to fix
   that... =(

Thanks for the feedback!!! I will upload a new version - including an
updated tarball - in a few minutes.

  Cheers!
    E.






#####
#
# eev pkg signing
# 2014oct11
#
#####

# «eev-pkg-signing» (to ".eev-pkg-signing")
gpg --sign --detach -- archive-contents
gpg --sign --detach -- eev-0.1.tar

# (find-epackage 'eev)
# (find-epackages)
# (package-install-file "/tmp/eev-20141011.tar")
# (find-efunction 'package-install-file)
# (find-epackages)

# (find-fline "~/.emacs.d/elpa/")
# (find-fline "~/.emacs.d/elpa/" "eev")
# (find-angg ".emacs" "eev-package")
# (find-eevpkgfile "")
# (find-eevpkgfile "eev-autoloads.el")

# (find-fline "~/.emacs.d/elpa/")
# (find-fline "~/.emacs.d/elpa/eev-20141011/")





#####
#
# eev in ELPA
# 2019apr08
#
#####

# «eev-in-elpa» (to ".eev-in-elpa")
# (to "eev-pkg-submit-to-ELPA")
# (find-es "emacs" "elpa")
# http://elpa.gnu.org/packages/eev.html
# http://elpa.gnu.org/packages/eev-20190401.tar
# http://elpa.gnu.org/packages/eev-20190410.tar




#####
#
# Producing a .tar or the current version (for Windows)
# 2019apr27
#
#####

# «eev-tar-windows» (to ".eev-tar-windows")
# (find-es "emacs" "package-install-file")
# (find-eev2-links)

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-man "cut")
cat ~/eev-current/eev.el | grep Version: | cut '-d ' -f 3 |& tee /tmp/ov
DATE=$(cat /tmp/ov)
FNAME=eev-$DATE
echo $FNAME
echo    /tmp/$FNAME.tar
rm -Rfv /tmp/$FNAME.tar
rm -Rfv /tmp/$FNAME
mkdir   /tmp/$FNAME
cd ~/eev-current/
cp -iv $(cd /tmp/eev-g/ && git ls-files) /tmp/$FNAME/
cd /tmp/
tar -cvf /tmp/$FNAME.tar $FNAME/*

tar -tvf /tmp/$FNAME.tar
laf      /tmp/$FNAME.tar

# (package-install-file "/tmp/eev-20190425.tar")
# (find-fline "$S/http/elpa.gnu.org/packages/eev-20190410.tar")
# (find-fline "/tmp/eev-20190425.tar")

cp -v $S/http/elpa.gnu.org/packages/eev-20190410.tar /tmp/
# (find-fline "/tmp/eev-20190410.tar")
# (package-install-file "/tmp/eev-20190410.tar")


laf       /tmp/eev2.tgz




#####
#
# Changing the "master" to UTF-8 using push
# 2019jun14
#
#####

# «push-master» (to ".push-master")
# (find-fline "/tmp/" " eev-")

# /tmp/eev-g(edrx:li)# git checkout UTF-8
# Branch UTF-8 set up to track remote branch UTF-8 from origin.
# Switched to a new branch 'UTF-8'
# /tmp/eev-g(edrx:li)# 

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)

rm -Rfv /tmp/eev-a
mkdir   /tmp/eev-a/
cd      /tmp/eev-a/ && git clone https://github.com/edrx/eev.git .
cd      /tmp/eev-a/

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)

rm -Rfv /tmp/eev-b
cp -av  /tmp/eev-a/ /tmp/eev-b

rm -Rfv /tmp/eev-c
mkdir   /tmp/eev-c/
cd      /tmp/eev-c/ && git clone /tmp/eev-b .

cd      /tmp/eev-c/
# (find-gitk  "/tmp/eev-c/")
git checkout UTF-8
# (find-gitk  "/tmp/eev-c/")

git branch --list -a
git for-each-ref
git for-each-ref | sort


# (find-fline "/tmp/eev-c/")
# (find-fline "/tmp/eev-c/.git/refs/heads/")
# (find-fline "/tmp/eev-c/.git/refs/heads/" "master")

# (find-es "git" "HEAD")
# (find-es "git" "HEAD")






#####
#
# git-merge-elpa
# 2019jun25
#
#####

# «git-merge-elpa» (to ".git-merge-elpa")
# (find-es "emacs" "elpa-git")
# https://mail.google.com/mail/ca/u/0/#inbox/QgrcJHsBpWsJwDdfTnZCpJWHvfbNNgnMLHQ

# Another thing you should likely do is:
#   git remote add elpa http://git.sv.gnu.org/r/emacs/elpa.git
#   git fetch elpa
#   git merge elpa/externals/eev

# (find-eev2-links)

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)

rm -Rfv /tmp/eev-g
mkdir   /tmp/eev-g/
cd      /tmp/eev-g/ && git clone https://github.com/edrx/eev.git .
cd      /tmp/eev-g/

git remote add elpa http://git.sv.gnu.org/r/emacs/elpa.git
git fetch elpa
git merge elpa/externals/eev

git branch --list -a
git for-each-ref
git for-each-ref | sort

git checkout hyperbole
git checkout remotes/elpa/externals/eev
git checkout remotes/elpa/externals/hyperbole


# (find-man "1 git-remote")
# (find-man "1 git-fetch")

# (find-gitk  "/tmp/eev-g/")
# (find-fline "/tmp/eev-g/")

# (find-sh "locate /elpa/")






#####
#
# E-mail to the mailing list about find-wget
# 2021aug09
#
#####

# «find-wget-email»  (to ".find-wget-email")
# https://lists.gnu.org/archive/html/eev/2021-08/msg00000.html
# ^ Note that the htmlization of URLs in ""s is wrong
#   (find-es "mail" "mhonarc-bug-aug2021")

# Subj: find-wget, find-wget-elisp, and 0x0

Hi list,

`find-wget' used to be a bad quick hack with no error checking -
that's no longer the case. See:

  http://angg.twu.net/eev-current/eev-plinks.el.html#find-wget

Also, now we have variants with "a" that use `ee-goto-anchor' instead
of `ee-goto-position', and variants with "-elisp" that put the
buffer with the downloaded stuff in emacs-lisp-mode. Try:

  (setq my-url "http://angg.twu.net/eev-current/eev-plinks.el")
  (find-wget        my-url "find-wget")
  (find-wgeta       my-url "find-wget")
  (find-wget-elisp  my-url "find-wget")
  (find-wgeta-elisp my-url "find-wget")

This can also be used to point to files in git repositories... try:

  (setq my-url "https://raw.githubusercontent.com/edrx/eev/UTF-8/eev-plinks.el")
  (find-wget        my-url "find-wget")
  (find-wgeta       my-url "find-wget")
  (find-wget-elisp  my-url "find-wget")
  (find-wgeta-elisp my-url "find-wget")

and it can also by used on IRC, to share elisp snippets. I use the
package `0x0' from MELPA, and I have a function called `u0' - that
means "upload the current region to https://0x0.st with 0x0 and show
some elisp hyperlinks". The source code for u0 is here:

  (find-wgeta-elisp "http://angg.twu.net/.emacs.templates" "u0")
  http://angg.twu.net/.emacs.templates.html#u0

The temporary buffer that `u0' shows has a header and then some links
like these:

  (find-wget "https://0x0.st/-JH1.bin")
  (find-wget-elisp "https://0x0.st/-JH1.bin")

I tested this in an IRC session with Erich Ruff yesterday and it was
FANTASTIC - the best way to share elisp snippets EVER. =)

  Cheers =),
    Eduardo Ochs
    http://angg.twu.net/#eev





#####
#
# describe-symbol
# 2021aug10
#
#####

# «describe-symbol»  (to ".describe-symbol")
# See this bug report by Stefan Monnier:
# https://mail.google.com/mail/ca/u/0/#inbox/FMfcgzGkZkWFTnSQNTGfxrXtnHKqrZDx





#####
#
# Redefine eepitch-shell to make it use vterm. For Vagner Rener
# 2021aug16
#
#####

# «eepitch-shell-vterm»  (to ".eepitch-shell-vterm")
# Put this in your .emacs:

;; (find-eevfile "eev-load.el" "1) to load all the main modules")
(require 'eev-load)
(eev-mode 1)

;; ;; Original definitions, from:
;; ;; (find-eev "eepitch.el" "eepitch-shell")
;; (defun eepitch-shell  () (interactive) (eepitch '(shell)))
;; (defun eepitch-shell2 () (interactive) (eepitch '(shell "*shell 2*")))
;; (defun eepitch-shell3 () (interactive) (eepitch '(shell "*shell 3*")))

;; See: (find-eev "eepitch.el" "eepitch-vterm")
(defun eepitch-shell  () (interactive) (eepitch-vterm))
(defun eepitch-shell2 () (interactive) (eepitch-vterm "shell 2"))
(defun eepitch-shell3 () (interactive) (eepitch-vterm "shell 3"))


# A test. See:
# (find-multiwindow-intro "7. Eepitch blocks for two targets")

* (find-3EE '(eepitch-shell) '(eepitch-shell2))
* (find-3ee '(eepitch-shell) '(eepitch-shell2))
* (eepitch-shell)
ls --color

* (eepitch-shell2)
cd /tmp/
ls
echo $TERM
ls --color





#####
#
# Ways to load eev quickly from an "emacs -Q"
# 2021oct25
#
#####

# «quick-load»  (to ".quick-load")
# (find-angg "elisp/emacsconf2021.el")
# (find-eev "eev-beginner.el")
# (find-efunctiondescr 'load)
# (find-efunction      'load)

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cat > /tmp/o <<'%%%'
(load "~/eev-current/eev-beginner.el")
%%%

cat > /tmp/o <<'%%%'
(load "~/eev-current/eev-beginner.el")
(progn
  (require 'eev-prepared)
  (define-key eev-mode-map (kbd "<f12>") 'ee-svg-screenshot)
  (defun ee-svg-screenshot (&optional fname)
    (interactive)
    (ee-write-string
     (x-export-frames nil 'svg)
     (or fname "/tmp/screenshot.svg")))
  (if (fboundp 'menu-bar-mode)   (menu-bar-mode 0))
  (if (fboundp 'tool-bar-mode)   (tool-bar-mode 0))
  (if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
  (setq show-paren-mode nil)
  (defun eejump-16 () (set-frame-font "Monospace 16" t))
  (global-set-key (kbd "s-f") 'toggle-frame-fullscreen)
)
%%%

emacs28_0 -Q /tmp/o &
emacs28_0 -Q ~/eev-current/eev-beginner.el &





#####
#
# My setup for running the tests in eev-on-windows.el on Linux
# 2021oct27
#
#####

# «eev-on-windows-on-linux»  (to ".eev-on-windows-on-linux")

;; My setup:
(require 'eev-on-windows)
(ee-use-gnu-linux)
(ee-use-eshell)
(ee-use-find-angg-es-remote)
(defalias 'find-pdf-page 'find-firefox-page)

;; The tests:
(find-eev "eev-on-windows.el" "how-to-test-this")
(find-eev "eev-on-windows.el" "basic-tests")

;; Revert:
(ee-use-find-angg-es-local)
(ee-use-shell)
(defalias 'find-pdf-page 'find-xpdf-page)




#####
#
# eev-on-windows-julha
# 2021oct27
#
#####

# «eev-on-windows-julha»  (to ".eev-on-windows-julha")
# (find-es "2021-oficina" "julha")

# (find-eev "eev-on-windows.el" "ee-use-windows")

(require 'eev-beginner)
(require 'eev-on-windows)
(setenv "FIREFOXDIR"      "c:/Program Files/Mozilla Firefox")
(setenv "MPVDIR"          "c:/Users/User/Desktop")
(defalias 'find-pdf-page 'find-firefox-page)

;; The tests:
(find-eev "eev-on-windows.el" "how-to-test-this")
(find-eev "eev-on-windows.el" "basic-tests")




#####
#
# eev-on-windows-aniketgm
# 2021dec05
#
#####

# «eev-on-windows-aniketgm»  (to ".eev-on-windows-aniketgm")
# (find-fline "~/LOGS/2021dec04.eev")
# (find-fline "~/LOGS/2021dec04.eev" "workshop de hoje")
# https://0x0.st/-h3-.bin

;; More info:
;; (find-eev "eev-videolinks.el" "find-eev-video")
;; (find-eev "eev-audiovideo.el" "find-youtube-video")
;; (find-eev "eev-plinks.el" "find-googlechrome")
;;
(setq ee-find-eev-video-function 'find-eevyoutube-video)
(setq ee-googlechrome-program "C:/Users/Aniket/AppData/Local/Programs/Opera/launcher.exe")
;;
;; Test:
;; (find-2021workshop5video "0:00")





#####
#
# felipe-bastos
# 2022may28
#
#####

# «felipe-bastos»  (to ".felipe-bastos")
# (find-windows-beginner-intro "7. eev-wconfig.el")

(require 'eev-wconfig)
(find-wconfig-links)

(find-wconfig-browser-links)
(find-wconfig-wget-links)
(find-wconfig-shell-links)
(find-wconfig-lua-links)
(find-wconfig-mpv-links)

;; (find-2022eevwconfigvideo   "16:15"   "(require 'eev-wconfig)")
;; (find-2022eevwconfigvideo   "16:23"   "(find-wconfig-links)")



(setq ee-googlechrome-program
  "C:/program files/Mozilla Firefox/firefox.exe")
(setq ee-mpv-program "C:/program files/mpv/mpv.exe")
(code-video "2022eevwconfigvideo" "C:/Users/ferob/downloads/vids/2022-eev-wconfig.mp4")
;; (find-googlechrome "https://www.lua.org/")
;; (find-video "C:/Users/ferob/downloads/vids/2022-eev-wconfig.mp4")
;; (find-2022eevwconfigvideo "0:00")





Entre no Emacs.
Não rode M-x eev-beginner ainda.
Rode M-x list-packages.
O list packages vai dizer algo como isso aqui:
"Packages that can be upgraded: 1; type ‘U’ to mark for upgrading."
No menu "Packages" da menu bar execute as opções "Mark All Available Upgrades (U)" e depois "Execute Marked Actions (x)".
Rode M-x eev-beginner. O eev-beginner carrega (com "load") todos os módulos do eev, e agora ele vai carregar os módulos da versão nova.

Copie isto aqui pro seu ~/TODO - lembre que M-1 M-j abre o arquivo ~/TODO:

(setq ee-googlechrome-program
  "C:/program files/Mozilla Firefox/firefox.exe")
(setq ee-mpv-program "C:/program files/mpv/mpv.exe")
(code-video "2022eevwconfigvideo" "C:/Users/ferob/downloads/vids/2022-eev-wconfig.mp4")
;; (find-googlechrome "https://www.lua.org/")
;; (find-video "C:/Users/ferob/downloads/vids/2022-eev-wconfig.mp4")
;; (find-2022eevwconfigvideo "0:00")
;; (find-wconfig-links)

As linhas que não estão comentadas com ";;" são configurações e as
linhas comentadas são testes. Rode as configurações e depois os
testes. Se o teste com `find-2022eevwconfigvideo' funcionar abra esse
índice aqui no browser

http://angg.twu.net/.emacs.videos.html#2022eevwconfig

e copie o índice do vídeo pro seu ~/TODO.
Rode M-x find-wconfig-links.




(find-wconfig-links)




C:\program files\Mozilla Firefox\firefox.exe
C:\program files\mpv\mpv.exe
C:\Users\ferob\downloads\vids\

(code-video "2022eevwconfigvideo" "C:/Users/ferob/downloads/vids/2022-eev-wconfig.mp4")
(find-2022eevwconfigvideo "0:00")


M-x eev-beginner
(eek "M-j")
(setq ee-googlechrome-program "C:/program files/Mozilla Firefox/firefox.exe")
(setq ee-mpv-program "C:/program files/mpv/mpv.exe")
(require 'eev-wconfig)
(find-wconfig-links)
(code-video "2022eevwconfigvideo" "C:/Users/ferob/downloads/vids/2022-eev-wconfig.mp4")
(find-2022eevwconfigvideo "0:00")


;; (find-callprocess0 (list ee-mpv-program "--help"))
;; (find-callprocess  (list ee-mpv-program "--help"))

C:/Users/ferob/downloads/vids
(find-video "C:/Users/ferob/downloads/vids/2022-eev-wconfig.mp4")

http://angg.twu.net/eev-videos/2022-eev-wconfig.mp4
http://angg.twu.net/eev-videos/2022-eev-wconfig.vtt




#####
#
# felipe-bastos-pdf-bug
# 2022jun05
#
#####

# «felipe-bastos-pdf-bug»  (to ".felipe-bastos-pdf-bug")
# (find-eev "eev-pdflike.el" "ee-fname-page-to-url")

# (find-egrep "grep --color=auto -nH --null -e file:// *.el */*.el")

<edrx> what is the right way to convert this absolute file name to
       a file:// url?
<edrx> C:/Users/ferob/downloads/foo.pdf
<edrx> file://C:/Users/ferob/downloads/foo.pdf or
<edrx> file:///C:/Users/ferob/downloads/foo.pdf ?
<edrx> aha: https://en.wikipedia.org/wiki/File_URI_scheme#Windows
<parsnip> edrx: they both work
<parsnip> you can also do (expand-file-name "downloads/foo.pdf"
          (getenv "userprofile"))




#####
#
# felipe-bastos-wgeta-bug
# 2022jun05
#
#####

# «felipe-bastos-wgeta-bug»  (to ".felipe-bastos-wgeta-bug")
# (find-wconfig-links)
# (find-wconfig-wget-links)
#   (find-eev "eev-plinks.el" "find-wget")
#   (find-eev "eev-plinks.el" "find-wget" ";; Tests:")
# (find-wgeta "http://angg.twu.net/eev-current/eev-plinks.el" "find-wget")
# (find-wgeta-elisp "http://angg.twu.net/eev-current/eev-plinks.el" "find-wget")




#####
#
# Fernando Lucatelli
# 2022jun11
#
#####

# «lucatelli»  (to ".lucatelli")
# (find-1stclassvideoindex "oficina2021a")
# (find-eevvideosfile "")
# (find-1stclassvideo-links "2022eevwconfig")

;; Play:  (find-2022eevwconfigvideo "0:00")


(setq ee-googlechrome-program
 "C:/Program Files/Google/Chrome/Application/chrome.exe")

(setq ee-mpv-program
 "C:/ProgramData/chocolatey/lib/mpv.install/tools/mpv.exe")

(find-2022eevwconfigvideo "0:00")



c:/Users/ferna/AppData/Roaming/snarf/http/angg.twu.net/eev-videos/





#####
#
# 2021-workshop-log
# 2021dec05
#
#####

# «2021-workshop-log»  (to ".2021-workshop-log")
# (find-fline "~/LOGS/2021dec04.eev")
# (find-fline "~/LOGS/2021dec04.eev" "workshop de hoje")





#####
#
# vagner-settings
# 2022apr04
#
#####

# «vagner-settings»  (to ".vagner-settings")
# (find-angg "elisp/eev-vagner.el")

;; From: (find-newbrowser-links "g" "googlechrome" "chromium")
(defun ee-find-googlechrome-page (fname &optional page)
  `("chromium" ,(ee-fname-page-to-url fname page)))

;; See: (find-newpdfviewer-links "okular" "okular")
(defalias 'find-pdf-page 'find-okular-page)

;; See: (find-eev "eepitch.el" "glyphs")
;; This will make formfeeds appear as yellow "L"s on a red background.
(defface eev-glyph-face-yellow-on-red
  '((t (:foreground "yellow" :background "red")))
  "Face used for the formfeed glyph (char 12).")
;;
(eepitch-set-glyph   12 ?L 'eev-glyph-face-yellow-on-red)



;; Basic tests:
;; (find-sh0 "which chromium")
;; (find-bgprocess "chromium http://www.lua.org/start.html")
;; (find-bgprocess "chromium https://tannerlectures.utah.edu/_resources/documents/a-to-z/c/Coetzee99.pdf#page=3")

;; Define `find-googlechrome':
;; Test: (find-googlechrome "http://www.lua.org/start.html")
;;  See: (find-eev "eev-plinks.el" "find-googlechrome")
(defun find-googlechrome (url &rest rest)
  (find-bgprocess `("chromium" ,url)))

;; Define `find-googlechrome-page':
;; See:  (find-eev "eev-pdflike.el" "find-firefox-page")
;; Test: (ee-find-googlechrome-page "~/Coetzee99.pdf" 3)
;;          (find-googlechrome-page "~/Coetzee99.pdf" 3)
;;
(defun ee-find-googlechrome-page (fname &optional page)
  `("chromium" ,(ee-fname-page-to-url fname page)))

;; Configure `find-pdf-page':
;; See:  (find-pdf-like-intro "3. Hyperlinks to PDF files")
;;       (find-pdf-like-intro "3. Hyperlinks to PDF files" "If you have xpdf")
;;       (find-eev "eev-pdflike.el" "change-default-viewer")
;; Test: (find-pdf-like-intro "2. Preparation")
;;       (find-pdf-page "~/Coetzee99.pdf" 3)
(defalias 'find-pdf-page 'find-xpdf-page)
(defalias 'find-pdf-page 'find-googlechrome-page)



;; See: (find-eev "eev-pdflike.el" "find-mupdfpage")
;;      (find-eev "eev-pdflike.el" "find-okularpage")
;; The support for okular is not in eev yet -
;; so the second link above will not work
;;
(defun     find-okular-page (fname &optional page &rest rest)
  (find-bgprocess (ee-find-okular-page fname page)))
(defvar ee-find-okular-page-options '())
(defun  ee-find-okular-page (fname &optional page &rest rest)
  `("okular"
    ,@ee-find-okular-page-options
    ,@(if page `("-p" ,(format "%s" page)))
    ,fname
    ))

;; (find-code-pdfbackend "okular-page")
        (code-pdfbackend "okular-page")

;; Test: (find-pdf-like-intro "2. Preparation")
;;       (find-pdf-page "~/Coetzee99.pdf" 3)
(defalias 'find-pdf-page 'find-okular-page)



(defalias 'find-pdf-page 'find-xpdf-page)





#####
#
# Settings pro Lucas Moraes
# 2022apr10
#
#####

# «eev-on-windows-lucas»  (to ".eev-on-windows-lucas")

(find-newbrowser-links "g" "googlechrome"
 "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe")




#####
#
# wconfig-fake-wget.exe
# 2022apr16
#
#####

# «wconfig-fake-wget.exe»  (to ".wconfig-fake-wget.exe")
# (find-eevfile "eev-wconfig.el")
# (find-eevfile "eev-wconfig.el" "(find-wconfig-wget-links)")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -fv ~/bin/wget.exe
cat >  ~/bin/wget.exe <<'%%%'
#!/bin/sh
echo "[This is ~/bin/wget.exe]"
exec wget $*
%%%
chmod 755 ~/bin/wget.exe
~/bin/wget.exe --help
~/bin/wget.exe --version




#####
#
# A bad tutorial on info mode deleted from (find-multiwindow-intro)
# 2021oct31
#
#####

# «info-tutorial»  (to ".info-tutorial")
# Deleted from:
# (find-multiwindow-intro "9. Executing key sequences at other windows")

9. Executing key sequences at other windows
===========================================
It is possible to use multi-window settings, together with the
trick that `<f8>' on a red star line executes it as Lisp and
moves down, to create tutorials for Emacs modes. An example:

  (...)



10. A tutorial for Info mode
============================
Note: this is obsolete! It was superseded by:

  (find-eev-quick-intro "5.1. Navigating the Emacs manuals")

Here's a mini-tutorial for Info mode, demonstrating how to
navigate in Info using the usual movement keys, plus TAB,
<backtab>, RET, l (last), u (up), n (next), p (prev), q (quit),
C-h i, and the digits 1-9. Note that the display in Info mode is
like this:

   ____________________________________________
  |Next: Nonincremental Search,  Up: Search    | <- next/prev/up
  | (emacs)Top > Search > Incremental Search   | <- breadcrumbs
  |                                            |
  | 19.1 Incremental Search                    | <- section number /
  |                                            |    node name (long)
  |  (...)                                     |
  |                                            |
  |--:%%-  *info* (emacs) Incremental Search   |
  |____________________________________________|

Here:

** Define some hacks
* (defun ow (n) (other-window n))
* (defun eeoe (code) (ow 1) (prog1 (eval code) (ow -1)))
* (defun eeok (keystr) (eeoe `(eek ,keystr)))
*
** Prepare the windows
* (ee-kill-buffer "*info*")
* (find-wset "1so_o" '(find-enode "Search"))
*
** The arrows (and other movent keys) work as expected.
** Watch the cursor in the Info window...
* (eeok "3*<down>")
* (eeok "10*<right>")
*
** TAB and <backtab> move to the next and to the previous link.
** Note that they consider all the links in a page, not only
** the ones in menus - including the breadcrumb links at the top.
* (eeok "TAB       ;; Info-next-reference")
* (eeok "TAB       ;; Info-next-reference")
* (eeok "TAB       ;; Info-next-reference")
* (eeok "TAB       ;; Info-next-reference")
* (eeok "TAB       ;; Info-next-reference")
* (eeok "<backtab> ;; Info-prev-reference")
* (eeok "<backtab> ;; Info-prev-reference")
* (eeok "<backtab> ;; Info-prev-reference")
* (eeok "<backtab> ;; Info-prev-reference")
*
** RET follows a link, l (last) goes back.
** Watch the section number: 19 -> 32.3.6 -> 19.
* (eeok "RET       ;; Info-follow-nearest-node")
* (eeok "l         ;; Info-history-back")
*
** The digits 1-9 can be used to go straight to subsections.
** For example, a `4' would follow the 4th _menu_ link -
** ignoring the non-menu links.
** Watch the section number: 19 -> 19.1 -> 19.1.1.
* (eeok "1         ;; Info-nth-menu-item")
* (eeok "1         ;; Info-nth-menu-item")
*
** The keys `u', `n', `p' (up, next, and prev) move through the
** tree structure. Watch the section number:
** 19.1.1 -u-> 19.1 -u-> 19 -n-> 20 -n-> 21 -p-> 20 -p-> 19
* (eeok "u         ;; Info-up")
* (eeok "u         ;; Info-up")
* (eeok "n         ;; Info-next")
* (eeok "n         ;; Info-next")
* (eeok "p         ;; Info-prev")
* (eeok "p         ;; Info-prev")
*
** `q' leaves Info mode - more precisely, it buries the info buffer.
** `C-h i' goes back to the Info buffer (or restarts info). 
* (eeok "q         ;; Info-exit")
* (eeok "C-h i     ;; info")










#  Local Variables:
#  coding: utf-8-unix
#  modes:  (fundamental-mode emacs-lisp-mode)
#  End: