% (find-LATEX "2019emacsconf.tex")
% (defun c () (interactive) (find-LATEXsh "lualatex -record 2019emacsconf.tex" :end))
% (defun d () (interactive) (find-pdf-page "~/LATEX/2019emacsconf.pdf"))
% (defun d () (interactive) (find-pdftools-page "~/LATEX/2019emacsconf.pdf"))
% (defun e () (interactive) (find-LATEX "2019emacsconf.tex"))
% (defun u () (interactive) (find-latex-upload-links "2019emacsconf"))
% (setq revert-without-query '("pdf$"))
% (find-pdf-page   "~/LATEX/2019emacsconf.pdf")
% (find-sh0 "cp -v  ~/LATEX/2019emacsconf.pdf /tmp/")
% (find-sh0 "cp -v  ~/LATEX/2019emacsconf.pdf /tmp/pen/")
%   file:///home/edrx/LATEX/2019emacsconf.pdf
%               file:///tmp/2019emacsconf.pdf
%           file:///tmp/pen/2019emacsconf.pdf
% http://angg.twu.net/LATEX/2019emacsconf.pdf
% (find-LATEX "2019.mk")

% (find-fline "~/eev-videos/emacsconf-audios/")

% «.defs»		(to "defs")
%   «.co»		(to "co")
% «.title-page»		(to "title-page")
% «.prehistory»		(to "prehistory")
% «.prehistory-2»	(to "prehistory-2")
% «.prehistory-3»	(to "prehistory-3")
% «.prehistory-4»	(to "prehistory-4")
% «.prehistory-5»	(to "prehistory-5")
% «.prehistory-6»	(to "prehistory-6")
% «.prehistory-7»	(to "prehistory-7")
% «.prehistory-8»	(to "prehistory-8")
% «.prehistory-9»	(to "prehistory-9")
% «.eev-elpa»		(to "eev-elpa")
% «.eev-elpa-2»		(to "eev-elpa-2")
% «.M-j»		(to "M-j")
% «.demo»		(to "demo")
% «.links»		(to "links")

\documentclass[oneside]{book}
\usepackage[colorlinks,urlcolor=DarkRed]{hyperref} % (find-es "tex" "hyperref")
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{pict2e}
\usepackage[x11names,svgnames]{xcolor} % (find-es "tex" "xcolor")
\usepackage{colorweb}                  % (find-es "tex" "colorweb")
%\usepackage{tikz}
%
% (find-dn6 "preamble6.lua" "preamble0")
%\usepackage{proof}   % For derivation trees ("%:" lines)
%\input diagxy        % For 2D diagrams ("%D" lines)
%\xyoption{curve}     % For the ".curve=" feature in 2D diagrams
%
\usepackage{edrx15}               % (find-LATEX "edrx15.sty")
\input edrxaccents.tex            % (find-LATEX "edrxaccents.tex")
\input edrxchars.tex              % (find-LATEX "edrxchars.tex")
\input edrxheadfoot.tex           % (find-LATEX "edrxheadfoot.tex")
\input edrxgac2.tex               % (find-LATEX "edrxgac2.tex")
%
% (find-es "tex" "geometry")
\usepackage[paperwidth=11.5cm, paperheight=9cm,
            %total={6.5in,4in},
            %textwidth=4in,  paperwidth=4.5in,
            %textheight=5in, paperheight=4.5in,
            %a4paper,
            top=1.5cm, bottom=.5cm, left=1cm, right=1cm, includefoot
           ]{geometry}
%
\begin{document}

%\catcode`\^^J=10
%\directlua{dofile "dednat6load.lua"}  % (find-LATEX "dednat6load.lua")

% %L dofile "edrxtikz.lua"  -- (find-LATEX "edrxtikz.lua")
% %L dofile "edrxpict.lua"  -- (find-LATEX "edrxpict.lua")
% \pu


% «defs»  (to ".defs")
% (find-LATEX "edrx15.sty" "colors-2019")
\long\def\ColorRed   #1{{\color{Red1}#1}}
\long\def\ColorViolet#1{{\color{MagentaVioletLight}#1}}
\long\def\ColorViolet#1{{\color{Violet!50!black}#1}}
\long\def\ColorGreen #1{{\color{SpringDarkHard}#1}}
\long\def\ColorGreen #1{{\color{SpringGreenDark}#1}}
\long\def\ColorGreen #1{{\color{SpringGreen4}#1}}
\long\def\ColorGray  #1{{\color{GrayLight}#1}}
\long\def\ColorGray  #1{{\color{black!30!white}#1}}

% pos-spec colors
% (find-es "tex" "xcolor")
% (find-xcolorpage 17 "2.4       Predefined colors")
% (find-xcolortext 17 "2.4       Predefined colors")
\def\Cnum#1{{\color{magenta}#1}}
\def\Cnum#1{{\color{Red1}#1}}
\def\Cnum#1{{\color{violet}#1}}
\def\Cnum#1{{\color{orange}#1}}
\def\Cstr#1{{\color{violet}#1}}
\def\Cstr#1{{\color{Red1}#1}}
\def\Csex#1{{\color{Red1}#1}}

% «co»  (to ".co")
% (find-es "tex" "co")
% \co: a low-level way to typeset code; a poor man's "\verb"
\def\cocolor{}
\def\cocolor{\color{DarkGreen!80!black}}
\def\co#1{{%
  \cocolor%
  \def\%{\char37}%
  \def\\{\char92}%
  \def\^{\char94}%
  \def\~{\char126}%
  \tt#1%
  }}
\def\qco#1{`\co{#1}'}
\def\qqco#1{``\co{#1}''}
\def\pco#1{\par\co{#1}}

\noedrxfooter % (find-LATEX "edrxheadfoot.tex")

\setlength{\parindent}{0em}



%  _____ _ _   _                               
% |_   _(_) |_| | ___   _ __   __ _  __ _  ___ 
%   | | | | __| |/ _ \ | '_ \ / _` |/ _` |/ _ \
%   | | | | |_| |  __/ | |_) | (_| | (_| |  __/
%   |_| |_|\__|_|\___| | .__/ \__,_|\__, |\___|
%                      |_|          |___/      
%
% «title-page»  (to ".title-page")
% (ecop 1 "title-page")
% (eco    "title-page")
% (find-LATEX "2019ilha-grande-slides.tex" "title-page")
% (find-LATEX "2018vichy-vgms-slides.tex" "title-page")
% (find-TH "emacsconf2019")

\thispagestyle{empty} % (find-es "tex" "thispagestyle")

\begin{center}

\begin{tabular}{c}
{\Large {\bf How to record \ColorRed{executable notes}}} \\[1pt]
{\Large {\bf with \ColorGreen{eev}, and how to}} \\[1pt]
{\Large {\bf \ColorViolet{play them back}}} \\[1pt]
\ColorGray{(talk @ EmacsConf 2019; short version)}
\end{tabular}

\bsk

\begin{tabular}[c]{r}
  By: \\
  Eduardo Ochs $→$ \\
  \ColorGray{(original author)} \\
  \\
  Selana Ochs $→$ \\
  \ColorGray{(recent contributor)} \\
\end{tabular}
  \!\!\!\!\!\!\!
\begin{tabular}[c]{c}
  $\includegraphics[height=90pt]{2019emacsconf-eu-e-selana.jpg}$
\end{tabular}

% \msk
% \url{http://angg.twu.net/\#eev}

\end{center}

\newpage

%  ____           _     _     _                   
% |  _ \ _ __ ___| |__ (_)___| |_ ___  _ __ _   _ 
% | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | |
% |  __/| | |  __/ | | | \__ \ || (_) | |  | |_| |
% |_|   |_|  \___|_| |_|_|___/\__\___/|_|   \__, |
%                                           |___/ 
%
% «prehistory»  (to ".prehistory")
% (ecop 2 "prehistory")
% (eco    "prehistory")
% (find-escripts-intro "1. Prehistory")

{\bf Prehistory}

\ColorRed{Eev appeared by accident.}

\ssk

In 1995 I bought a computer that could run GNU/Linux

and a Linux CD. I was studying Maths at the university,

and I knew a tiny bit of *NIX and Lisp.

\ssk

I was fascinated by programming and *NIX seemed to be

``the right thing''.

\ssk

My social skills were bad. ``Everybody uses vi'', but...

\ssk

My memory was bad too, and I typed slowly and with

lots of mistakes, so at one point I gave up learning vi,

and tried Emacs.

\msk

It was \ColorRed{\bf\Large MIND-BLOWING.}



\newpage


%  ____           _     _     _                     ____  
% |  _ \ _ __ ___| |__ (_)___| |_ ___  _ __ _   _  |___ \ 
% | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | |   __) |
% |  __/| | |  __/ | | | \__ \ || (_) | |  | |_| |  / __/ 
% |_|   |_|  \___|_| |_|_|___/\__\___/|_|   \__, | |_____|
%                                           |___/         
%
% «prehistory-2»  (to ".prehistory-2")
% (ecop 3 "prehistory-2")
% (eco    "prehistory-2")

{\bf Prehistory (2)}

My notes started to have lots of ``elisp hyperlinks''

to files and directories that I found interesting...

\msk

{\footnotesize

\pco{\ \ (find-file "/usr/share/emacs/19.24/lisp/")}
\pco{\ \ (find-file "/usr/share/emacs/19.24/lisp/files.el")}
%\pco{\ \ (find-fline "/usr/share/emacs/19.24/lisp/files.el")}
%\pco{\ \ (find-fline "/usr/share/emacs/19.24/lisp/files.el" \Cnum{423})}
%\pco{\ \ (find-efile "files.el")}
%\pco{\ \ (find-efile "files.el" \Cnum{423})}
%\pco{\ \ (find-efile "files.el" \Cstr{"(defun find-file "})}

}

\msk

At first I used \qco{find-file}, then I created a

variant called \qco{find-fline}, that accepted a

\Cnum{line number}, then I made it accept a \Cstr{string to search for},

then I invented ``shorter hyperlinks'', like \qco{find-efile}...

\msk

{\footnotesize

%\pco{\ \ (find-file "/usr/share/emacs/19.24/lisp/")}
%\pco{\ \ (find-file "/usr/share/emacs/19.24/lisp/files.el")}
\pco{\ \ (find-fline "/usr/share/emacs/19.24/lisp/files.el")}
\pco{\ \ (find-fline "/usr/share/emacs/19.24/lisp/files.el" \Cnum{423})}
\pco{\ \ (find-efile "files.el")}
\pco{\ \ (find-efile "files.el" \Cnum{423})}
\pco{\ \ (find-efile "files.el" \Cstr{"(defun find-file "})}

}



\newpage

%  ____           _     _     _                     _____ 
% |  _ \ _ __ ___| |__ (_)___| |_ ___  _ __ _   _  |___ / 
% | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | |   |_ \ 
% |  __/| | |  __/ | | | \__ \ || (_) | |  | |_| |  ___) |
% |_|   |_|  \___|_| |_|_|___/\__\___/|_|   \__, | |____/ 
%                                           |___/         
%
% «prehistory-3»  (to ".prehistory-3")
% (ecop 4 "prehistory-3")
% (eco    "prehistory-3")

{\bf Prehistory (3)}

I also wrote a \ColorRed{very primitive} way to send the region to a shell.

\qco{M-x eev} (meaning: emacs-execute-verbosely) wrote

the region into the file \qco{\~/.eev/ee.sh} (actually \qco{\$EE}),

and if I typed \qco{ee} in a shell it would run the commands

in \qco{\$EE} in \ColorRed{verbose mode}, i.e., outputting each command

before executing it.

I had this in my \qco{\~/.zshrc}:

\msk

{\footnotesize

\pco{\ \ export EEVTMPDIR=\$HOME/.eev}
\pco{\ \ export EE=\$EEVTMPDIR/ee.sh}
\pco{\ \ function ee () \{ set -v; . \$EE; set +v; \}}

}

\msk

The \qco{. \$EE} was a trick to run the commands

``\ColorRed{in the current shell environment}'', so that things like

\qco{cd} and \qco{export} would work ``as expected''...

\newpage

%  ____           _     _     _                     _  _   
% |  _ \ _ __ ___| |__ (_)___| |_ ___  _ __ _   _  | || |  
% | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | | || |_ 
% |  __/| | |  __/ | | | \__ \ || (_) | |  | |_| | |__   _|
% |_|   |_|  \___|_| |_|_|___/\__\___/|_|   \__, |    |_|  
%                                           |___/          
%
% «prehistory-4»  (to ".prehistory-4")
% (ecop 5 "prehistory-4")
% (eco    "prehistory-4")

{\bf Prehistory (4)}

In a few months I had created several other kinds of elisp

hyperlinks that also supported those extra arguments

(``\ColorRed{pos-spec-lists}'') that indicated \ColorRed{strings to
  search for...}

Some examples:

\msk

{\footnotesize

\pco{\ \ \# (find-man "1 gawk" \Cstr{"Built-in Variables"})}
\pco{\ \ \# (find-man "1 gawk" \Cstr{"I/O Statements"})}
\pco{\ \ \# (find-man "1 gawk" \Cstr{"String Functions"})}
\pco{\ \ \# (find-node "(make)Automatic Variables" \Cstr{"\$*" "stem"})}
\pco{\ \ \# (find-node "(make)Recursion")}
\pco{\ \ \# (find-node "(make)Special Targets" \Cstr{".PRECIOUS"})}
\pco{\ \ \# (find-node "(make)Chained Rules" \Cstr{".SECONDARY"})}
\pco{\ \ \# (find-sh "man -d print > /dev/null")}
\pco{\ \ \# (find-sh "man -d print > /dev/null |\& grep print")}

}

\newpage

%  ____           _     _     _                     ____  
% |  _ \ _ __ ___| |__ (_)___| |_ ___  _ __ _   _  | ___| 
% | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | |___ \ 
% |  __/| | |  __/ | | | \__ \ || (_) | |  | |_| |  ___) |
% |_|   |_|  \___|_| |_|_|___/\__\___/|_|   \__, | |____/ 
%                                           |___/         
%
% «prehistory-5»  (to ".prehistory-5")
% (ecop 6 "prehistory-5")
% (eco    "prehistory-5")

{\bf Prehistory (5)}

These elisp hyperlinks could be put in comments.

They were always the \ColorRed{sexp at the end of the line:}

\msk

{\footnotesize

\pco{\ \ \#!/usr/bin/tclsh}
\pco{\ \ \# \Csex{(find-fline "\~/TCL/inc.tcl")}}
\pco{\ \ source \$env(HOME)/TCL/inc.tcl}
\pco{\ \ eval [lindex \$argv 1]}

}

\msk

I made \qco{M-e} work like \qco{C-e C-x C-e}:

\msk

\begin{tabular}{rcl}
 \quad
 \qco{C-x C-e} & $→$ & \qco{eval-last-sexp} \\
 \qco{M-e}     & $→$ & \qco{eval-sexp-eol} \\
\end{tabular}

\msk

At that time I was using mostly shell, elisp, Awk, Icon, Tcl, Expect,
C, Forth, makefiles, \TeX/\LaTeX, and config files, and \ColorRed{all
  these languages and interpreters supported elisp hyperlinks in
  comments.}

\newpage


%  ____           _     _     _                      __   
% |  _ \ _ __ ___| |__ (_)___| |_ ___  _ __ _   _   / /_  
% | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | | '_ \ 
% |  __/| | |  __/ | | | \__ \ || (_) | |  | |_| | | (_) |
% |_|   |_|  \___|_| |_|_|___/\__\___/|_|   \__, |  \___/ 
%                                           |___/         
%
% «prehistory-6»  (to ".prehistory-6")
% (ecop 7 "prehistory-6")
% (eco    "prehistory-6")

% (find-eev "eev-prepared.el")

{\bf Prehistory (6)}

I also created variants of \qco{M-x eev} that could

send regions of text to other external interpreters

besides shells, like Tcl, GDB, \LaTeX, and...

\newpage

%  ____           _     _     _                     _____ 
% |  _ \ _ __ ___| |__ (_)___| |_ ___  _ __ _   _  |___  |
% | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | |    / / 
% |  __/| | |  __/ | | | \__ \ || (_) | |  | |_| |   / /  
% |_|   |_|  \___|_| |_|_|___/\__\___/|_|   \__, |  /_/   
%                                           |___/         
%
% «prehistory-7»  (to ".prehistory-7")
% (ecop 8 "prehistory-7")
% (eco    "prehistory-7")

{\bf Prehistory (7)}

...and in a few years I had several megabytes of:

\ssk

\begin{tabular}{cl}
1) & \ColorRed{scripts} with elisp hyperlinks in comments, \\[2.5pt]
2) & ``\ColorRed{executable notes}'' (or ``\ColorRed{e-scripts}''): a
free-form mix \\& of elisp hyperlinks, blocks of code to be sent to \\& shells
and other interpreters, and comments \\&
in English/Portuguese/whatever... \\
\end{tabular}

\msk

In 1997 I started to have internet at home, and in 1999

I created a home page and uploaded \ColorRed{all} these scripts
and

notes to it, because it was

\ssk

\begin{tabular}{cl}
1) & good karma, \\[2.5pt]
2) & a way to become a person who \\& \ColorRed{deserves hints and help.} \\
\end{tabular}

\newpage

%  ____           _     _     _                      ___  
% |  _ \ _ __ ___| |__ (_)___| |_ ___  _ __ _   _   ( _ ) 
% | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | |  / _ \ 
% |  __/| | |  __/ | | | \__ \ || (_) | |  | |_| | | (_) |
% |_|   |_|  \___|_| |_|_|___/\__\___/|_|   \__, |  \___/ 
%                                           |___/         
%
% «prehistory-8»  (to ".prehistory-8")

{\bf Prehistory (8)}

I was sure that \ColorRed{everybody} was using Emacs like that.

At one point I sent an e-mail to one of the Emacs MLs.

In the e-mail I used some elisp hyperlinks and other tricks.

I explained how to use everything there, and I apologized:

``I don't know what are the standard functions that do that,

so I wrote my own ones. Sorry for the ugly names...''

\msk

RMS himself answered. It was sort of:

``This looks interesting, and AFAIK no one else is using

Emacs like this. Someone should clean up the code and

document it so that we can included it in Emacs.

Can you do that?''

\newpage

%  ____           _     _     _                      ___  
% |  _ \ _ __ ___| |__ (_)___| |_ ___  _ __ _   _   / _ \ 
% | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | | (_) |
% |  __/| | |  __/ | | | \__ \ || (_) | |  | |_| |  \__, |
% |_|   |_|  \___|_| |_|_|___/\__\___/|_|   \__, |    /_/ 
%                                           |___/         
%
% «prehistory-9»  (to ".prehistory-9")
% (ecop 10 "prehistory-9")
% (eco     "prehistory-9")

{\bf Prehistory (9)}

I started to work to make Eev an official package,

and I submitted some code. RMS had some objections...

\ssk

In 2000 (?) he gave a talk in Campinas, that is 500Km

away from where I live (Rio de Janeiro). I went there,

and chatted with him after the talk.

\ssk

He said that \ColorRed{users should not be forced to see Lisp}.

\msk

I was \ColorRed{\large \bf INCREDIBLY OFFENDED.}

RMS was so startled by my reaction that he walked away.

\ssk

For me the ability to write elisp one-liners was

\ColorRed{\large \bf THE} thing
that completely dissolved the barrier

between ``users'' and ``programmers''. It was a beautiful

catalyst, and the distilled essence of Free Software.



\newpage

%  _____             _____ _     ____   _    
% | ____|_____   __ | ____| |   |  _ \ / \   
% |  _| / _ \ \ / / |  _| | |   | |_) / _ \  
% | |__|  __/\ V /  | |___| |___|  __/ ___ \ 
% |_____\___| \_/   |_____|_____|_| /_/   \_\
%                                            
% «eev-elpa»  (to ".eev-elpa")
% (ecop 11 "eev-elpa")
% (eco     "eev-elpa")

{\bf Eev as an ELPA package}

\ssk

\begin{tabular}{ll}
2000: & \ColorRed{``users should not be forced to see Lisp''} \\
      & \qco{M-x eev} was hard to set up \\
      & (it needed changing rcfiles) \\[5pt]
2019: & \qco{M-x eev} is now obsolete ($→$ \co{eepitch}) \\
      & setup is now trivial \\
      & lots of sandboxed tutorials: \co{(find-*-intro)} \\[2pt]
      & I've been using eev to teach Emacs and \\
      & Free Software principles to people who \\
      & didn't know programming or *NIX \\[2pt]
      & people can learn it by memorizing just three keys: \\
      & \qco{M-e} (``execute''), \qco{M-j} (``jump''), \\
      & \qco{M-k} (``kill this buffer'')
      %
\end{tabular}

% (like in Neal Stephenson's \\
% & ``In the Beginning it was the command line'') \\

\newpage

%  _____             _____ _     ____   _      ____  
% | ____|_____   __ | ____| |   |  _ \ / \    |___ \ 
% |  _| / _ \ \ / / |  _| | |   | |_) / _ \     __) |
% | |__|  __/\ V /  | |___| |___|  __/ ___ \   / __/ 
% |_____\___| \_/   |_____|_____|_| /_/   \_\ |_____|
%                                                    
% «eev-elpa-2»  (to ".eev-elpa-2")
% (ecop 12 "eev-elpa-2")
% (eco     "eev-elpa-2")
% (find-es "eev" "eev-in-elpa")

{\bf Eev as an ELPA package (2)}

In april 10, 2019 Eev became an ELPA package.

The new eev has lots of tutorials, with names like:

\ssk

{\footnotesize

\pco{\ \ 0. (find-eev-quick-intro)}
\pco{\ \ 1. (find-emacs-keys-intro)}
\pco{\ \ 2. (find-eev-intro)}
\pco{\ \ 3. (find-here-links-intro)}
\pco{\ \ 4. (find-refining-intro)}
\pco{\ \ 5. (find-pdf-like-intro)}
\pco{\ \ 6. (find-eepitch-intro)}
\pco{\ \ 7. (find-audiovideo-intro)}
\pco{\ \ 8. (find-rcirc-intro)}
\pco{\ \ 9. (find-eev-install-intro)}

}

\msk

The ``beginner setup'' turns \co{eev-mode} on and

opens \co{(find-eev-quick-intro)}.




% People can learn it by memorizing just three keys:

% \qco{M-e} (``execute''), \qco{M-j} (``jump''), \qco{M-k} (``kill this buffer'')


\newpage

%  __  __       _ 
% |  \/  |     (_)
% | |\/| |_____| |
% | |  | |_____| |
% |_|  |_|    _/ |
%            |__/ 
%
% «M-j»  (to ".M-j")
% (ecop 13 "M-j")
% (eco     "M-j")

{\bf `M-j'}

If you type just \qco{M-j} without a numeric prefix

you get a page whose header is this:

\msk

{\footnotesize

\pco{\ \ ;; Generated by: (find-eejumps)}
\pco{\ \ ;; See: \Csex{(find-eev-quick-intro "7.1. `eejump'" "`M-j'")}}
\pco{\ \ ;; \ \ \ \ \ \Csex{(find-emacs-keys-intro "1. Basic keys (eev)")}}
\pco{\ \ ;; \ \ \ \ \ \Csex{(find-emacs-keys-intro "2. Key sequences")}}
\pco{\ \ ;; For example,}
\pco{\ \ ;; \ \ \ \ M-1 M-j \ runs: \ (find-fline "\~/TODO")}
\pco{\ \ ;; \ \ \ \ M-2 M-j \ runs: \ \Csex{(find-emacs-keys-intro)}}
\pco{\ \ ;; \ \ \ \ M-5 M-j \ runs: \ \Csex{(find-eev-quick-intro)}}
\pco{\ \ ;; Current eejump targets:}

}

\msk

The tutorial \qco{(find-emacs-keys-intro)} starts with a section about
the keys of eev and then has several sections about the main keys of
Emacs, \ColorRed{with hyperlinks to the Emacs manuals.}



\newpage

%  ____                       
% |  _ \  ___ _ __ ___   ___  
% | | | |/ _ \ '_ ` _ \ / _ \ 
% | |_| |  __/ | | | | | (_) |
% |____/ \___|_| |_| |_|\___/ 
%                             
% «demo»  (to ".demo")
% (ecop 13 "demo")
% (eco     "demo")

{\bf A demo}

% (find-eev-install-intro "1. Beginners and experts")
% (find-eev-install-intro "2. The expert setup")

% (Only one minute left!)

So: \qco{M-x eev} is obsolete,

It has been replaced by \qco{<f8>}, that

always operates on the current line, and moves down.

\ssk

On \ColorRed{normal lines} it sends the current line to the

target buffer (usually \qqco{*shell*})

\ssk

On \ColorRed{red star lines} it executes the current line

as Lisp (we use this to set up the target buffer).

\msk

The following demo shows how I:

downloaded the Debian source package of \co{xpdf},

unpacked it, found the code that implemented

``touchpad scroll'', commented it out, and compiled

and installed the changed version.


\newpage

%  _     _       _        
% | |   (_)_ __ | | _____ 
% | |   | | '_ \| |/ / __|
% | |___| | | | |   <\__ \
% |_____|_|_| |_|_|\_\___/
%                         
% «links»  (to ".links")
% (ecop 15 "links")
% (eco     "links")

{\bf Links}

See:

\url{http://angg.twu.net/\#eev}

\url{http://angg.twu.net/emacsconf2019.html}

\url{http://angg.twu.net/e/emacsconf2019.e.html\#short}

\msk

Most of the ``several megabytes of free-form executable notes''

mentioned in slide 8 are here:

\url{http://angg.twu.net/e/}

% (find-sh "cd ~/e/ && wc *.e")
% (find-sh "cd ~/e/ && wc *.e | sort -n")

\bsk


\phantom{aa} \ColorRed{Thank you! $=)$}

% (find-es "emacsconf2019" "short")
% (find-es "ps" "xpdf-touchpad-scroll")
% (find-TH "emacsconf2019")
% https://en.wikipedia.org/wiki/Touchpad
% https://en.wikipedia.org/wiki/Scroll_wheel
% https://help.gnome.org/users/gnome-help/stable/mouse-touchpad-click.html.en
% https://en.wikipedia.org/wiki/Pointing_device_gesture

\end{document}



% (find-es "eev" "eek-pkg-announcement")
















% (find-angg ".zshrc" "ee")
% (find-zshnode "Shell Builtin Commands" "source FILE")
% (find-zshnode "Shell Builtin Commands" ". FILE")




% (find-anggfile ".bashrc")

% (find-escripts-intro "3. Sharing")
% (find-escripts-intro "3. Sharing" "Eev Manifesto")
% (find-escripts-intro "3. Sharing" "in a public place")

% One of its features was incompatible with UTF-8
% https://en.wikipedia.org/wiki/UTF-8
% Since 2009, UTF-8 has been the dominant encoding (of any kind, not
% just of Unicode encodings) for the World Wide Web











\end{document}

% Local Variables:
% coding: utf-8-unix
% ee-tla: "eco"
% End:
