Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
# «.compile-ming» (to "compile-ming") # «.compile-vnc2swf» (to "compile-vnc2swf") # «.compile-swftools» (to "compile-swftools") # «.my_swf_functions» (to "my_swf_functions") # «.movie1_A0» (to "movie1_A0") # «.movie1_B0» (to "movie1_B0") # «.movie1_mini_emacs» (to "movie1_mini_emacs") # «.movie1» (to "movie1") # «.movie1_swf» (to "movie1_swf") # «.movie2_A0» (to "movie2_A0") # «.movie2_B0» (to "movie2_B0") # «.movie2_mini_emacs» (to "movie2_mini_emacs") # «.movie2» (to "movie2") # «.movie2_swf» (to "movie2_swf") ##### # # compiling vnc2swf-0.4.2 and its dependencies: # ming-0.2a (note that vnc2swf-0.4.2 doesn't work with ming-0.3) # swftools (for generating the html wrapper around the .swf) # 2005feb08 # ##### #* # «compile-ming» (to ".compile-ming") # http://www.opaque.net/wiki/index.php?MingInstall # http://voxel.dl.sourceforge.net/sourceforge/ming/ming-0.2a.tar.bz2 # (code-c-d "ming" "~/usrc/ming-0.2a/") # (find-mingfile "") # (find-mingfile "src/") # (find-mingfile "INSTALL") # (find-mingfile "Makefile") # rm -Rv ~/usrc/ming-0.2a/ tar -C ~/usrc/ -xvzf \ $S/http/voxel.dl.sourceforge.net/sourceforge/ming/ming-0.2a.tgz cd ~/usrc/ming-0.2a/ make \ PREFIX=/usr/share/php \ CFLAGS="-L/usr/lib/php4/20020429 -I/usr/include/php4" \ dynamic static 2>&1 | tee om #* # «compile-vnc2swf» (to ".compile-vnc2swf") # http://www.unixuser.org/~euske/vnc2swf/ # http://www.unixuser.org/~euske/vnc2swf/rec_vncserver.html # http://www.unixuser.org/~euske/vnc2swf/vnc2swf-0.4.2.tar.gz # (code-c-d "vnc2swf" "~/usrc/vnc2swf-0.4.2/") # (find-vnc2swffile "") # (find-vnc2swffile "Makefile") # (find-vnc2swffile "configure.in") # rm -Rv ~/usrc/vnc2swf-0.4.2/ tar -C ~/usrc/ -xvzf \ $S/http/www.unixuser.org/~euske/vnc2swf/vnc2swf-0.4.2.tar.gz cd ~/usrc/vnc2swf-0.4.2/ ./configure --with-ming=$HOME/usrc/ming-0.2a/src 2>&1 | tee oc make 2>&1 | tee om #* # «compile-swftools» (to ".compile-swftools") # http://www.quiss.org/swftools/swftools-0.6.3.tar.gz # (code-c-d "swftools" "~/usrc/swftools-0.6.3/") # (find-swftoolsfile "") # (find-swftoolsfile "src/") # rm -Rv ~/usrc/swftools-0.6.3/ tar -C ~/usrc/ -xvzf $S/http/www.quiss.org/swftools/swftools-0.6.3.tar.gz cd ~/usrc/swftools-0.6.3/ ./configure 2>&1 | tee oc make 2>&1 | tee om #* # (find-status "vncserver") # (find-vldifile "vncserver.list") # (find-udfile "vncserver/") # (find-vldifile "vncserver.postinst") # (find-fline "/etc/alternatives/" "vncserver") # (find-man "1x realvncserver") # (find-man "1 realvncconnect") # (find-man "1 Xrealvnc") # (find-status "xvncviewer") # (find-vldifile "xvncviewer.list") # (find-udfile "xvncviewer/") # (find-man "1x realvncserver" "vncserver :1") # (find-man "1x realvncserver" "vncserver -kill :1") # (find-vnc2swffile "docs/") # (find-vnc2swfw3m "docs/vnc2swf.html") # (find-vnc2swffile "docs/rec_vncserver.html" "embed src=") #* # «my_swf_functions» (to ".my_swf_functions") # (find-man "8 ld.so" "LD_LIBRARY_PATH") function my_vnc2swf () { LD_LIBRARY_PATH=$HOME/usrc/ming-0.2a/src: \ ~/usrc/vnc2swf-0.4.2/vnc2swf $* } function my_swfdump () { ~/usrc/swftools-0.6.3/src/swfdump $*; } function my_swftohtml () { echo -e "<html>\n<head><title>$1</title></head>\n<body>" my_swfdump --html $1 echo -e "</body>\n</html>" } #* ##### # __ __ _ ___ _ _ # | \/ | _____ _(_) ___ |_ _|_ ___| |__ __ _ _ __ _ __ ___| |___ # | |\/| |/ _ \ \ / / |/ _ \ | |(_) / __| '_ \ / _` | '_ \| '_ \ / _ \ | __| # | | | | (_) \ V /| | __/ | | _ | (__| | | | (_| | | | | | | | __/ |__ \ # |_| |_|\___/ \_/ |_|\___| |___(_) \___|_| |_|\__,_|_| |_|_| |_|\___|_|___/ # # A short movie about <f9> # In :0.0/(channel A0) we launch vncserver and vnc2swf # In :0.0/(channel B0) we treat :2 and /tmp and launch an emacs in :2 # In :2/(emacs) we prepare emacs and set HOME to /tmp # In :2/(emacs)/<<movie1>> we launch two xterms and make them talk # through netcat # In :0.0/(channel B0)/<<movie1_post>> we generate an html wrapper # around the swf # 2005feb08 / 2005mar23 # ##### # (fvwm-sloppy-focus) # (fvwm-click-to-focus) # «movie1_A0» (to ".movie1_A0") * (eechannel-xterm "A0" nil '("-geometry" "79x10")) * (ee-at "my_swf_functions" (eev-bounded) (eech "ee\n")) # (find-sh "ps ax") # Kill the running vncserver vncserver -kill :2 killall -9 Xrealvnc killall -9 Xtightvnc # rm -fv /tmp/.X2-lock # rm -fv /tmp/.X11-unix/X2 sudo rm -fv /tmp/.X2-lock sudo 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 # «movie1_B0» (to ".movie1_B0") * (eechannel-xterm "B0" nil '("-geometry" "79x10")) * (ee-at "my_swf_functions" (eev-bounded) (eech "ee\n")) export DISPLAY=:2 xsetroot -solid black unclutter -idle 2 & xhost + cat > /tmp/.zshrc <<'---' PS1='%d# ' PS2='> ' setopt autocd interactivecomments --- cat > /tmp/.Xdefaults-small <<'---' xterm*geometry: 40x12 xterm*foreground: black xterm*background: white --- emacs-cvs -geometry 40x28+0+0 \ -fg bisque -bg black \ $EEVDIR/examples/anim.e & * --- ;; «movie1_mini_emacs» (to ".movie1_mini_emacs") (progn (cd "/tmp") (eechannel "A" "exit\n") (eechannel "B" "exit\n") (find-sh0 "xrdb -merge <(echo 'xterm*geometry: 40x12')") (find-sh0 "xrdb -merge <(echo 'xterm*foreground: black')") (find-sh0 "xrdb -merge <(echo 'xterm*background: white')") (find-sh0 "xsetroot -solid black") (fvwm-sloppy-focus) (define-key eev-mode-map [f7] 'eechannel-do-this-line) (scroll-bar-mode -1) (my-modes :no-scroll-bar :no-pager) ;; (my-modes :no-fringe) ) ;; (setenv "HOME" "/home/edrx") ;; (setenv "HOME" "/tmp") # «movie1» (to ".movie1") # This runs inside the tiny emacs in :2. # To run this we'd normally type F9, F9, ..., F9, but # as vnc2swf defines F9 and F8 as `record' and `menu' # we use a define-key so that we can type F7, F7, ..., F7 # in emacs and get the same effect as F9, F9, ..., F9. * (eechannel-xterm "A") ;; create * (eechannel-xterm "B") ;; create # Listen on port 1234 netcat -l -p 1234 * * (eechannel "A") ;; change target # Send things to port 1234 { echo hi sleep 1 echo bye sleep 1 } | netcat -q 0 localhost 1234 # «movie1_swf» (to ".movie1_swf") * (eechannel-xterm "B0" nil '("-geometry" "79x10")) * (ee-at "my_swf_functions" (eev-bounded) (eech "ee\n")) export DISPLAY=:0.0 cd /tmp/ my_swftohtml channels.swf | tee channels.html firefox /tmp/channels.html & ##### # __ __ _ ___ ___ ____ ____ ____ # | \/ | _____ _(_) ___ |_ _|_ _|_ / ___| _ \| __ ) # | |\/| |/ _ \ \ / / |/ _ \ | | | |(_) | | _| | | | _ \ # | | | | (_) \ V /| | __/ | | | | _ | |_| | |_| | |_) | # |_| |_|\___/ \_/ |_|\___| |___|___(_) \____|____/|____/ # # Movie 2: a short movie about gdb # In :0.0/(channel A0) we launch vncserver and vnc2swf # In :0.0/(channel B0) we treat :2 and /tmp and launch an emacs # and an xterm in :2 # In :2/(emacs) we prepare emacs (scroll bars, etc) # In :2/(emacs)/<<movie2>> we store a series of steps, start the recording, # then create and compile a C program in two parts (by hand, in an xterm) # then run gdb on it # In :0.0/(channel B0)/<<movie2_post>> we generate an html wrapper # around the swf # 2005mar23 # ##### # «movie2_A0» (to ".movie2_A0") * (eechannel-xterm "A0" nil '("-geometry" "79x5")) * (ee-at "my_swf_functions" (eev-bounded) (eech "ee\n")) # 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 675x550 -depth 8 :2 password password export DISPLAY=:0.0 my_vnc2swf -geometry -0-0 -nostatus -buffered -framerate 6 /tmp/gdb.swf :2 password # «movie2_B0» (to ".movie2_B0") * (eechannel-xterm "B0" nil '("-geometry" "79x5")) * (ee-at "my_swf_functions" (eev-bounded) (eech "ee\n")) export DISPLAY=:2 xsetroot -solid black unclutter -idle 2 & xhost + FvwmCommand 'KillModule FvwmPager' # FvwmCommand 'Module FvwmPager' FvwmCommand 'Style "*" ClickToFocus' emacs-cvs -geometry 77x40+0+0 \ -fg bisque -bg black \ $EEVDIR/examples/anim.e & xterm -bg white -fg black -geometry 77x34-15+25 & * (eev "cd; PS1='%d# '; clear") * --- ;; «movie2_mini_emacs» (to ".movie2_mini_emacs") (progn (my-modes :no-scroll-bar :no-pager) ;; (my-modes :no-fringe) (setq eeflash-default '(highlight 0.75)) ) ;; (find-node "(gdb)Data") ;; (find-node "(gdb)Calling") (eesteps '((eek0 "ee") (eek0 "\r") (eek "M-G") (eek "M-n") (eek "M-n") (eek "M-n") (eek "M-s") (eek "M-n") (eek "M-n") (eek "M-n") (eek0 "ptype f") (eek0 "\r") (eek0 "ptype *f") (eek0 "\r") (eek0 "p f") (eek0 "\r") (eek0 "p f()") (eek0 "\r") (eek0 "call f()") (eek0 "\r") (eek "M-n") (eek "M-n") (eek "M-n") (eek "M-k") (eek "M-k"))) ;; «movie2» (to ".movie2") #* rm -Rv /tmp/dlopen/ mkdir /tmp/dlopen/ cd /tmp/dlopen/ cat > so.c <<'---' #include <stdio.h> void externalfunction() { printf("Hello from so.so\n"); } --- cat > prog.c <<'---' #include <dlfcn.h> #include <stdio.h> int main() { void *libptr; void (*f)(); printf("Hello from prog\n"); libptr=dlopen("/tmp/dlopen/so.so", RTLD_LAZY); f=dlsym(libptr, "externalfunction"); f(); printf("Bye from prog\n"); return 0; } --- ls -lAF #* cd /tmp/dlopen/ gcc -g -Wall -shared -o so.so so.c gcc -g -Wall -ldl -o prog prog.c ls -lAF ./prog #* # (ee-once (eeb-gdb-start "/tmp/dlopen/" "prog")) br main run #* # «movie2_swf» (to ".movie2_swf") * (eechannel-xterm "B0" nil '("-geometry" "79x5")) * (ee-at "my_swf_functions" (eev-bounded) (eech "ee\n")) export DISPLAY=:0.0 cd /tmp/ my_swftohtml gdb.swf | tee gdb.html firefox /tmp/gdb.html & ##### # # garbage # ##### (ee-expand "$EEVDIR") (ee-expand "$EEVDIR/eegchannel") (getenv "EEVDIR") (getenv "HOME") (switch-to-buffer "*Messages*") (message "Foo!") (eechannel-running-p "A") (eebg-channel-xterm "A") (eechannel "A" "exit\n") (find-sh0 "xrdb -load ~/.Xdefaults") #* # (progn (eev-bounded) (find-zsh0 ". $EE")) # (find-enode "Action Arguments" "--eval=EXPRESSION") : * (eechannel-xterm "A") fvwm & unclutter -idle 2 & ps ax | grep vnc LD_LIBRARY_PATH=$HOME/usrc/ming-0.2a/src: \ ~/usrc/vnc2swf-0.4.2/vnc2swf out.swf :2 # xterm -display :1 & export DISPLAY=:0.0 #* cd /tmp/ my_swftohtml out.swf | tee out.html #* cd ~/eev-current/anim/ swftohtml channels.swf | tee channels.html #* # (find-node "(make)Catalogue of Rules") # (find-vnc2swffile "oc") # (find-vnc2swffile "om") vncserver -geometry 320x240 -depth 16 :2 # cd ~/usrc/vnc2swf-0.4.2/ cd /tmp/ # (find-man "8 ld.so" "LD_LIBRARY_PATH") LD_LIBRARY_PATH=$HOME/usrc/ming-0.2a/src: \ ~/usrc/vnc2swf-0.4.2/vnc2swf out.swf :2 # (ee-expand "~/eev-current/") # (ee-expand "$EEVDIR") # (find-sh0 "xrdb -load ~/.Xdefaults") # fvwm-click-to-focus # Local Variables: # coding: raw-text-unix # ee-delimiter-hash: "\n#*\n" # ee-anchor-format: "«%s»" # End: