Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#######
#
# E-scripts on Plan9.
#
# 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/plan9.e>
#           or at <http://angg.twu.net/e/plan9.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/>.
#
#######





# «.plan9-from-user-space»	(to "plan9-from-user-space")
# «.plan9-ports»		(to "plan9-ports")
# «.plan9port-2022»		(to "plan9port-2022")
# «.acme»			(to "acme")





#####
#
# plan9 from user space
# 2008feb17
#
#####

# «plan9-from-user-space»  (to ".plan9-from-user-space")
# http://swtch.com/plan9port/
# http://swtch.com/plan9port/plan9port.tgz
# http://swtch.com/plan9port/man/man1/install.html
#*
rm -Rv ~/bigsrc/plan9/
tar -C ~/bigsrc/ -xvzf \
  $S/http/swtch.com/plan9port/plan9port.tgz
cd     ~/bigsrc/plan9/
./INSTALL -b |& tee oib
cp -v install.log install-b.log
./INSTALL -c |& tee oic
cp -v install.log install-c.log

#*
# (code-c-d "plan9us" "~/bigsrc/plan9/")
# (find-plan9usfile "")
# (find-plan9usfile "README")
# (find-plan9usfile "install.txt")
# (find-plan9usfile "src/")
# (find-plan9usfile "src/cmd/")
# (find-plan9usfile "bin/")
# (find-plan9usfile "man/")
# (find-plan9usfile "man/man1/")
# (find-plan9usw3m "man/man1/rio.html")
# (find-plan9usw3m "man/man1/9term.html")
# (find-plan9usw3m "man/man1/acme.html")
# (find-plan9usw3m "man/man4/acme.html")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
sudo rm -Rv /usr/local/plan9/
sudo mkdir  /usr/local/plan9/
sudo chown edrx:edrx /usr/local/plan9/

cd ~/bigsrc/plan9/bin/
export PATH=$PWD:$PATH
./rio &
acme &
# imageinit: can't open font /lib/font/bit/lucsans/euro.8.font: No
# such file or directory
# acme: can't open display: No such file or directory

acme -f /home/edrx/bigsrc/plan9/font/fixed/unicode.9x15.font



# Video of an acme session:
# http://groups.google.com/group/comp.os.plan9/browse_thread/thread/96d20548d0ef5901/
# http://www.rangboom.com/videos/acme_session.wmv
# http://www.rangboom.com/videos/acme_session.mov





#####
#
# Ports of Plan 9 programs (Debian)
# 2011nov21
#
#####

# «plan9-ports»  (to ".plan9-ports")
# (find-zsh "grep-available 'Plan 9'")

# (find-available "9base")
# (find-available "9wm")
# (find-available "drawterm")
# (find-available "rc")
# (find-available "scheme9")
# (find-available "wily")

# (find-available "9fonts")
# (find-available "9menu")
# (find-available "9mount")
# (find-available "wmii2")



#####
#
# plan9port-2022
# 2022feb23
#
#####

# «plan9port-2022»  (to ".plan9port-2022")
# (find-angg ".zshrc" "plan9")

2022feb18:
https://www.reddit.com/r/unixporn/comments/a73wg5/rio_debian_suckless_and_plan9port_setup/
https://9fans.github.io/plan9port/
https://9fans.github.io/plan9port/man/man1/install.html
https://9fans.github.io/plan9port/man/man1/git.html

# (find-fline "/usr/local/plan9/")
rm -Rv /usr/local/plan9/
mkdir  /usr/local/plan9/
cd     /usr/local/plan9/


# https://9fans.github.io/plan9port
https://github.com/9fans/plan9port

# (find-git-links "https://github.com/9fans/plan9port" "plan9port")
# (code-c-d "plan9port" "~/usrc/plan9port/")
# (find-plan9portfile "")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# rm -Rfv ~/usrc/plan9port/
cd      ~/usrc/
git clone https://github.com/9fans/plan9port
cd      ~/usrc/plan9port/
./INSTALL    |& tee oi

# * Add these to your profile environment.
#	PLAN9=/home/edrx/usrc/plan9port export PLAN9
#	PATH=$PATH:$PLAN9/bin export PATH


git clone https://9fans.github.io/plan9port plan9
git pull
git diff revision [ path ... ]
gitk
web https://9fans.github.io/plan9port


; ./INSTALL [ −b | −c ] [ −r path ]




#####
#
# acme
# 2022feb23
#
#####

# «acme»  (to ".acme")
# https://research.swtch.com/acme
# (find-youtubedl-links "/sda5/videos/" "A_Tour_of_the_Acme_Editor" "dP1xVpMPn8M" ".webm" "acmetour")
# (code-video "acmetourvideo" "/sda5/videos/A_Tour_of_the_Acme_Editor-dP1xVpMPn8M.webm")
# (find-acmetourvideo "0:00")

# (find-acmetourvideo "00:00" "welcome this is a quick tour of acne and")
# (find-acmetourvideo "00:03" "text-editor created by Rob Pike almost")
# (find-acmetourvideo "00:05" "20 years ago as part of plan 9 although")
# (find-acmetourvideo "00:08" "Rob created acne on plan 9 acne is now")
# (find-acmetourvideo "00:10" "available on freebsd linux OS x and")
# (find-acmetourvideo "00:13" "other unix systems as part of plan 9")
# (find-acmetourvideo "00:14" "from user space there is also a port of")
# (find-acmetourvideo "00:17" "acne to the infernal operating system")
# (find-acmetourvideo "00:19" "which gives a way to run it on windows")
# (find-acmetourvideo "00:20" "the video description has a link to a")
# (find-acmetourvideo "00:23" "page with pointers to downloads and more")
# (find-acmetourvideo "00:24" "information for me the distinguishing")
# (find-acmetourvideo "00:28" "feature of acne is that it works well")
# (find-acmetourvideo "00:29" "alongside the surrounding system instead")
# (find-acmetourvideo "00:31" "of trying to be a complete environment")
# (find-acmetourvideo "00:33" "all by itself")
# (find-acmetourvideo "00:34" "Acme doesn't enjoy nearly the popularity")
# (find-acmetourvideo "00:36" "that editors like Emacs or VI do but it")
# (find-acmetourvideo "00:39" "has a small dedicated following when I")
# (find-acmetourvideo "00:41" "had to switch to using UNIX workstations")
# (find-acmetourvideo "00:43" "again in the early 2000s I missed acne")
# (find-acmetourvideo "00:45" "so much that i ported all the plan 9")
# (find-acmetourvideo "00:47" "user programs to unix to get it back")
# (find-acmetourvideo "00:49" "acne creates an experience where text is")
# (find-acmetourvideo "00:52" "a dynamic thing that can be executed and")
# (find-acmetourvideo "00:54" "assigned arbitrary meanings or plugins")
# (find-acmetourvideo "00:56" "written in any language at all can")
# (find-acmetourvideo "00:57" "interact with acne and control windows")
# (find-acmetourvideo "00:59" "the result is that you can keep using")
# (find-acmetourvideo "01:01" "the tools you have instead of having to")
# (find-acmetourvideo "01:03" "learn a whole new system but you can")
# (find-acmetourvideo "01:05" "still customize them to fit well into")
# (find-acmetourvideo "01:07" "acne in this screencast I'm going to try")
# (find-acmetourvideo "01:10" "to convey a feel of what it's like to")
# (find-acmetourvideo "01:11" "use acne I'm going to start with the")
# (find-acmetourvideo "01:13" "basics and build up to a short")
# (find-acmetourvideo "01:15" "programming session at the end one final")
# (find-acmetourvideo "01:17" "note before the content I size the video")
# (find-acmetourvideo "01:19" "to fit YouTube's large video playing")
# (find-acmetourvideo "01:21" "mode exactly if the screen text looks")
# (find-acmetourvideo "01:23" "fuzzy please switch to that mode because")
# (find-acmetourvideo "01:29" "acne was designed as part of plan 9 it")
# (find-acmetourvideo "01:31" "is graphical program not cursor dressed")
# (find-acmetourvideo "01:33" "and it makes extensive use of the mouse")
# (find-acmetourvideo "01:35" "the screen you're looking at is a small")
# (find-acmetourvideo "01:38" "acne screen its size to fit exactly into")
# (find-acmetourvideo "01:40" "a YouTube 854 by 480 video box normally")
# (find-acmetourvideo "01:44" "you use a larger display I like to run")
# (find-acmetourvideo "01:46" "acne fullscreen as you see in the video")
# (find-acmetourvideo "01:48" "on a laptop I flip back and forth")
# (find-acmetourvideo "01:50" "between acne in a conventional desktop")
# (find-acmetourvideo "01:52" "when I'm at work I use two monitors with")
# (find-acmetourvideo "01:55" "acne on one and everything else on the")
# (find-acmetourvideo "01:56" "other acne takes care of window layout")
# (find-acmetourvideo "01:59" "for you automatically choosing the")
# (find-acmetourvideo "02:00" "location for each window and arranging")
# (find-acmetourvideo "02:02" "them in columns in this tour acne has")
# (find-acmetourvideo "02:05" "just two columns a larger stream can")
# (find-acmetourvideo "02:07" "comfortably support three or four each")
# (find-acmetourvideo "02:09" "column contains some number of windows")
# (find-acmetourvideo "02:11" "on the screen right now")
# (find-acmetourvideo "02:13" "column contains a single window showing")
# (find-acmetourvideo "02:15" "a quick UI tour and the right column")
# (find-acmetourvideo "02:18" "contains two windows showing a directory")
# (find-acmetourvideo "02:20" "and a shell session each window has two")
# (find-acmetourvideo "02:22" "parts the top line or tag set on a light")
# (find-acmetourvideo "02:25" "blue background shows the file name and")
# (find-acmetourvideo "02:28" "some command such as Dell and snarf the")
# (find-acmetourvideo "02:31" "body set on a light yellow background")
# (find-acmetourvideo "02:33" "shows the window content each tag has a")
# (find-acmetourvideo "02:35" "nearly square layout box to the left of")
# (find-acmetourvideo "02:38" "the tag the layout box fills dark blue")
# (find-acmetourvideo "02:40" "when the window has been edited to")
# (find-acmetourvideo "02:41" "indicate that you might want to save it")
# (find-acmetourvideo "02:44" "each column also has a tag with some")
# (find-acmetourvideo "02:47" "useful commands in a layout box of its")
# (find-acmetourvideo "02:49" "own because acne was created on plan 9")
# (find-acmetourvideo "02:52" "its UI assumes you have a 3 button mouse")
# (find-acmetourvideo "02:54" "and a graphical display there is no text")
# (find-acmetourvideo "02:57" "only mode or cursor dressing since you")
# (find-acmetourvideo "03:00" "can't watch my hand use the mouse in a")
# (find-acmetourvideo "03:01" "screencast I've modified acne to show")
# (find-acmetourvideo "03:04" "the buttons that are currently held down")
# (find-acmetourvideo "03:05" "above the mouse pointer Acme refers to")
# (find-acmetourvideo "03:07" "the left middle and right buttons as")
# (find-acmetourvideo "03:10" "button one button 2 and button 3 the")
# (find-acmetourvideo "03:14" "scrollbar to the left of the body is a")
# (find-acmetourvideo "03:16" "bit non-standard but much more powerful")
# (find-acmetourvideo "03:18" "than most when you have a window that")
# (find-acmetourvideo "03:20" "cannot be shown all at once like the")
# (find-acmetourvideo "03:22" "silly sampler the scrollbar darkens to")
# (find-acmetourvideo "03:29" "represent the entire content with a")
# (find-acmetourvideo "03:30" "light box showing the fraction you're")
# (find-acmetourvideo "03:32" "currently viewing you can click on the")
# (find-acmetourvideo "03:34" "bar with button to to move to a")
# (find-acmetourvideo "03:35" "different part of the text you can also")
# (find-acmetourvideo "03:39" "click with button 1 to scroll up and")
# (find-acmetourvideo "03:41" "button 3 to scroll down the amount of")
# (find-acmetourvideo "03:46" "these clicks scroll")
# (find-acmetourvideo "03:47" "depends on where in the scroll bar you")
# (find-acmetourvideo "03:48" "click if you click just one line down")
# (find-acmetourvideo "03:50" "from the top each click Scrolls by one")
# (find-acmetourvideo "03:53" "line if you clip 3/4 of the way down the")
# (find-acmetourvideo "03:57" "window each click Scrolls by")
# (find-acmetourvideo "03:58" "three-quarters of a window you can also")
# (find-acmetourvideo "04:03" "use the mouse to manipulate the window")
# (find-acmetourvideo "04:04" "by clicking in the layout box clicking")
# (find-acmetourvideo "04:07" "button 1 expands the window in the")
# (find-acmetourvideo "04:09" "column nudging other windows away")
# (find-acmetourvideo "04:11" "dragging button 1 repositions a window")
# (find-acmetourvideo "04:14" "without moving others clicking button 2")
# (find-acmetourvideo "04:18" "makes a window as big as possible while")
# (find-acmetourvideo "04:20" "leaving the other window tags visible")
# (find-acmetourvideo "04:22" "clicking button 3 makes the window take")
# (find-acmetourvideo "04:25" "over the entire column hiding the other")
# (find-acmetourvideo "04:26" "windows")
# (find-acmetourvideo "04:27" "clicking one of the other buttons brings")
# (find-acmetourvideo "04:29" "them back")
# (find-acmetourvideo "04:45" "when manipulating text with acne the")
# (find-acmetourvideo "04:48" "three buttons have distinct roles button")
# (find-acmetourvideo "04:50" "one is for selecting text button two is")
# (find-acmetourvideo "04:55" "for executing commands for example I")
# (find-acmetourvideo "04:58" "have been executing the slide plus")
# (find-acmetourvideo "04:59" "command to advance the next slide button")
# (find-acmetourvideo "05:02" "three is for searching and loading if I")
# (find-acmetourvideo "05:04" "select the word button with button three")
# (find-acmetourvideo "05:06" "acne searches for the next instance of")
# (find-acmetourvideo "05:08" "the word button and moves to it in the")
# (find-acmetourvideo "05:11" "directory window if I select the file")
# (find-acmetourvideo "05:13" "named sampler with button three acne")
# (find-acmetourvideo "05:16" "opens a new window for that file I can")
# (find-acmetourvideo "05:18" "then execute using button to the command")
# (find-acmetourvideo "05:21" "del to close the window I don't have to")
# (find-acmetourvideo "05:25" "select the text so carefully when using")
# (find-acmetourvideo "05:26" "buttons two or three acne will expand an")
# (find-acmetourvideo "05:29" "ordinary click into a selection of the")
# (find-acmetourvideo "05:31" "given word so I can just right click on")
# (find-acmetourvideo "05:33" "button or on sampler and just middle")
# (find-acmetourvideo "05:37" "click del acne also assigns some")
# (find-acmetourvideo "05:42" "convenient meanings two combinations of")
# (find-acmetourvideo "05:44" "buttons if you select some text with")
# (find-acmetourvideo "05:46" "button one but keep it held down then")
# (find-acmetourvideo "05:49" "clicking button two cuts that text")
# (find-acmetourvideo "05:51" "clicking button three pastes over the")
# (find-acmetourvideo "05:53" "text cut paste our frequent motion is to")
# (find-acmetourvideo "06:01" "combine the two selecting text with")
# (find-acmetourvideo "06:03" "button one clicking button two to cut it")
# (find-acmetourvideo "06:05" "and clicking button three to paste it")
# (find-acmetourvideo "06:07" "back before releasing button one that")
# (find-acmetourvideo "06:09" "amounts to a copy")
# (find-acmetourvideo "06:10" "a less common cord is to select some")
# (find-acmetourvideo "06:12" "text with button two for executing but")
# (find-acmetourvideo "06:14" "add button one to the cord that executes")
# (find-acmetourvideo "06:17" "the command with an argument")
# (find-acmetourvideo "06:20" "for example we can execute the command")
# (find-acmetourvideo "06:23" "echo with argument button")
# (find-acmetourvideo "06:31" "let's look a little more in depth at")
# (find-acmetourvideo "06:33" "executing text button - we've seen that")
# (find-acmetourvideo "06:35" "useful commands such as del are listed")
# (find-acmetourvideo "06:37" "in the window tag but the tags are just")
# (find-acmetourvideo "06:39" "a nice place to scribble text that")
# (find-acmetourvideo "06:41" "doesn't belong in the body text anywhere")
# (find-acmetourvideo "06:43" "can be executed for example I can select")
# (find-acmetourvideo "06:46" "the word cut here with button 1 and then")
# (find-acmetourvideo "06:49" "click on it with button 2 to execute it")
# (find-acmetourvideo "06:51" "it cuts itself similarly I can select")
# (find-acmetourvideo "06:54" "something else and then execute paste to")
# (find-acmetourvideo "06:59" "paste what I cut there's also a useful")
# (find-acmetourvideo "07:03" "built-in command called edit that")
# (find-acmetourvideo "07:05" "accepts the editing language used in the")
# (find-acmetourvideo "07:07" "text editor Sam which bears some")
# (find-acmetourvideo "07:08" "resemblance to the language used by Ed")
# (find-acmetourvideo "07:10" "and said if I execute edit comma s slash")
# (find-acmetourvideo "07:13" "tag slash tags let's G it applies the S")
# (find-acmetourvideo "07:16" "command to the entire window body")
# (find-acmetourvideo "07:18" "denoted by comma acne would not be very")
# (find-acmetourvideo "07:23" "powerful though if all the commands had")
# (find-acmetourvideo "07:25" "to be provided by Acme itself external")
# (find-acmetourvideo "07:27" "programs can be invoked as commands -")
# (find-acmetourvideo "07:29" "like we did with echo similar to running")
# (find-acmetourvideo "07:31" "them at a shell prompt executing date X")
# (find-acmetourvideo "07:35" "runs the date program and puts its")
# (find-acmetourvideo "07:37" "output in a temporary window created to")
# (find-acmetourvideo "07:39" "hold the output when you run a command")
# (find-acmetourvideo "07:41" "in a particular directory the window for")
# (find-acmetourvideo "07:43" "the output has a title named for a file")
# (find-acmetourvideo "07:45" "plus errors in that directory although")
# (find-acmetourvideo "07:48" "that's the name the file does not exist")
# (find-acmetourvideo "07:50" "on disk it's just Acme's title for the")
# (find-acmetourvideo "07:52" "window in addition to running commands")
# (find-acmetourvideo "07:56" "we can pipe selected text through a")
# (find-acmetourvideo "07:57" "command for example I can select the top")
# (find-acmetourvideo "08:00" "few lines and then execute pipe rot13 to")
# (find-acmetourvideo "08:03" "pipe the text through the rot13 program")
# (find-acmetourvideo "08:05" "and replace the selection with that")
# (find-acmetourvideo "08:07" "programs output a command beginning with")
# (find-acmetourvideo "08:10" "a greater than arrow instead of a pipe")
# (find-acmetourvideo "08:11" "only writes the selection to the command")
# (find-acmetourvideo "08:14" "it does not read the result back into")
# (find-acmetourvideo "08:16" "the selection if I click greater spell")
# (find-acmetourvideo "08:19" "it pipes the selected text through spell")
# (find-acmetourvideo "08:21" "which tells me via the errors window")
# (find-acmetourvideo "08:23" "that I've misspelled execute similarly a")
# (find-acmetourvideo "08:28" "command beginning with the less than")
# (find-acmetourvideo "08:29" "arrow only reads the command output into")
# (find-acmetourvideo "08:31" "the selection the command runs with no")
# (find-acmetourvideo "08:34" "input clicking on less than Astro runs")
# (find-acmetourvideo "08:38" "the Astro program which tells us what we")
# (find-acmetourvideo "08:40" "can see in the sky when like I said")
# (find-acmetourvideo "08:44" "earlier it's more")
# (find-acmetourvideo "08:45" "and to keep commands in the tag than in")
# (find-acmetourvideo "08:47" "the window body I have two tiny scripts")
# (find-acmetourvideo "08:49" "of my own called a plus and a minus")
# (find-acmetourvideo "08:51" "that indent a nun indent text when I'm")
# (find-acmetourvideo "08:53" "working on a program I often have both")
# (find-acmetourvideo "08:55" "in the tag just waiting to help out now")
# (find-acmetourvideo "09:10" "let's look a little more in depth at")
# (find-acmetourvideo "09:11" "loading text with button three we've")
# (find-acmetourvideo "09:14" "seen that we can search for literal text")
# (find-acmetourvideo "09:15" "and open files but in fact the syntax")
# (find-acmetourvideo "09:17" "accepted here is quite rich we saw")
# (find-acmetourvideo "09:23" "before that loading a file or directory")
# (find-acmetourvideo "09:25" "name opens that file or directory")
# (find-acmetourvideo "09:28" "if file is followed by : line number")
# (find-acmetourvideo "09:31" "Acme opens the file to that line the")
# (find-acmetourvideo "09:35" "next address is pretty advanced it says")
# (find-acmetourvideo "09:38" "to select the third line but then the -")
# (find-acmetourvideo "09:40" "moves to the beginning of the line and")
# (find-acmetourvideo "09:42" "the + number eight moves forward eight")
# (find-acmetourvideo "09:44" "Unicode characters which puts the cursor")
# (find-acmetourvideo "09:46" "just inside the quoted string pumped in")
# (find-acmetourvideo "09:51" "my local Acme settings I have : 3 : 9")
# (find-acmetourvideo "09:53" "set up as a shorthand for the last")
# (find-acmetourvideo "09:55" "address that's the form you see in very")
# (find-acmetourvideo "09:57" "precise error messages from some")
# (find-acmetourvideo "09:59" "compilers these days addresses don't")
# (find-acmetourvideo "10:02" "have to be numbers either they can be")
# (find-acmetourvideo "10:04" "regular expression searches and closed")
# (find-acmetourvideo "10:06" "in slashes this next address opens hello")
# (find-acmetourvideo "10:08" "duck Oh")
# (find-acmetourvideo "10:09" "searches for the word func at the")
# (find-acmetourvideo "10:11" "beginning of the line starts the")
# (find-acmetourvideo "10:12" "selection there and then ends it with")
# (find-acmetourvideo "10:14" "the first closing brace at the beginning")
# (find-acmetourvideo "10:16" "of a line one common use of this rich")
# (find-acmetourvideo "10:18" "address syntax is to create a kind of")
# (find-acmetourvideo "10:20" "hyperlinking even in text files like")
# (find-acmetourvideo "10:22" "programs for example here's a comment I")
# (find-acmetourvideo "10:25" "wrote some number of years ago in the")
# (find-acmetourvideo "10:26" "plan line kernel the comment says that")
# (find-acmetourvideo "10:29" "this file dot C's sis on mount function")
# (find-acmetourvideo "10:31" "might be useful to look at and we can")
# (find-acmetourvideo "10:33" "just by right-clicking on the text of")
# (find-acmetourvideo "10:39" "course as I mentioned the basic form of")
# (find-acmetourvideo "10:41" "the address index is the conventional")
# (find-acmetourvideo "10:42" "file colon line number generated by UNIX")
# (find-acmetourvideo "10:44" "tools like compilers or grep let's run")
# (find-acmetourvideo "10:47" "hello dot go")
# (find-acmetourvideo "10:54" "compiler tells us there's a syntax error")
# (find-acmetourvideo "10:56" "at line six clicking on the error takes")
# (find-acmetourvideo "10:59" "us straight to the line and we can see")
# (find-acmetourvideo "11:01" "that there really is a new line in our")
# (find-acmetourvideo "11:02" "string because we use the wrong closing")
# (find-acmetourvideo "11:04" "quote this works even if the file is not")
# (find-acmetourvideo "11:08" "already open the program G runs grep - n")
# (find-acmetourvideo "11:12" "overall source files in the directory")
# (find-acmetourvideo "11:14" "executing G main shows us the matches")
# (find-acmetourvideo "11:17" "for me here we have two in hello duck oh")
# (find-acmetourvideo "11:19" "and one in smiley smiley smiley C")
# (find-acmetourvideo "11:21" "perhaps I should point out explicitly")
# (find-acmetourvideo "11:23" "here that acne supports Unicode in utf-8")
# (find-acmetourvideo "11:25" "and of course was one of the first")
# (find-acmetourvideo "11:27" "editors to do so if you're wondering")
# (find-acmetourvideo "11:29" "what smiley smiley smiley C is here it")
# (find-acmetourvideo "11:32" "is I believe it was written by Dennis")
# (find-acmetourvideo "11:34" "I think of acne is an IDE done right")
# (find-acmetourvideo "11:39" "wikipedia says that 90 E is a software")
# (find-acmetourvideo "11:42" "application that provides comprehensive")
# (find-acmetourvideo "11:43" "facilities to computer programmers for")
# (find-acmetourvideo "11:45" "software development and that one")
# (find-acmetourvideo "11:47" "normally consists of a source code")
# (find-acmetourvideo "11:48" "editor build automation tools a debugger")
# (find-acmetourvideo "11:51" "and sometimes even a compiler and")
# (find-acmetourvideo "11:53" "interpreter an IDE tries to do")
# (find-acmetourvideo "11:55" "everything")
# (find-acmetourvideo "11:56" "acne takes a different approach it does")
# (find-acmetourvideo "11:59" "provide the editor part but it assumes")
# (find-acmetourvideo "12:01" "you've already got all the other tools")
# (find-acmetourvideo "12:02" "and just want to use them effectively it")
# (find-acmetourvideo "12:04" "lets UNIX or plan 9 provide the")
# (find-acmetourvideo "12:06" "development environment and only worries")
# (find-acmetourvideo "12:08" "about integration that is it does not")
# (find-acmetourvideo "12:10" "try to reinvent everything it integrates")
# (find-acmetourvideo "12:12" "the tools that are already on your")
# (find-acmetourvideo "12:14" "system and helps you use them more")
# (find-acmetourvideo "12:15" "effectively it fits into the surrounding")
# (find-acmetourvideo "12:18" "system in this case Unix")
# (find-acmetourvideo "12:19" "that brings us to exactly how it")
# (find-acmetourvideo "12:21" "interacts with other tools because Acme")
# (find-acmetourvideo "12:24" "started on plan 9 it presents two other")
# (find-acmetourvideo "12:25" "programs as a file system on UNIX acne")
# (find-acmetourvideo "12:29" "still serves the plan line file protocol")
# (find-acmetourvideo "12:31" "but there are helper programs that will")
# (find-acmetourvideo "12:33" "talk to it for you if your language")
# (find-acmetourvideo "12:34" "cannot the best helper program is fuse")
# (find-acmetourvideo "12:37" "which lets you mount acne directly into")
# (find-acmetourvideo "12:39" "the kernel file tree but fuse is not a")
# (find-acmetourvideo "12:41" "requirement let's look around a bit each")
# (find-acmetourvideo "12:47" "window shows up as a subdirectory under")
# (find-acmetourvideo "12:49" "munde acne the index file gives a list")
# (find-acmetourvideo "12:52" "of all the windows and their tags this")
# (find-acmetourvideo "12:55" "list is meant for processing by programs")
# (find-acmetourvideo "12:57" "not people so it has a rigid format we")
# (find-acmetourvideo "13:00" "can see the FS window here the first")
# (find-acmetourvideo "13:03" "number gives the window ID to")
# (find-acmetourvideo "13:06" "in that windows directory we can read")
# (find-acmetourvideo "13:09" "the tag by reading the tag file and we")
# (find-acmetourvideo "13:14" "can read the body by reading the body")
# (find-acmetourvideo "13:15" "file we can even write to the body by")
# (find-acmetourvideo "13:18" "writing to the file we can run UNIX")
# (find-acmetourvideo "13:26" "tools like graph or spell but we can")
# (find-acmetourvideo "13:28" "also run programs that know about the")
# (find-acmetourvideo "13:30" "Acme file system to good effect")
# (find-acmetourvideo "13:31" "we've been running one of them this")
# (find-acmetourvideo "13:33" "whole time the slide plus command is a")
# (find-acmetourvideo "13:36" "little shell script I wrote a few years")
# (find-acmetourvideo "13:37" "ago for giving talks using text file")
# (find-acmetourvideo "13:39" "slides from within Acme let's look at it")
# (find-acmetourvideo "13:42" "it does two interesting things first")
# (find-acmetourvideo "13:45" "finds the name of the current window")
# (find-acmetourvideo "13:47" "using dollar % then it does some")
# (find-acmetourvideo "13:50" "grubbing around to figure out what the")
# (find-acmetourvideo "13:51" "next slide is and then finally it")
# (find-acmetourvideo "13:54" "invokes the slide command to load it in")
# (find-acmetourvideo "13:57" "the current window the slide command is")
# (find-acmetourvideo "14:00" "simpler and more interesting it writes")
# (find-acmetourvideo "14:02" "three control messages just text strings")
# (find-acmetourvideo "14:05" "into the current windows control file to")
# (find-acmetourvideo "14:07" "set the name shown in the tag mark the")
# (find-acmetourvideo "14:10" "file clean to clear the blue layout box")
# (find-acmetourvideo "14:13" "and then invoke get to reload the window")
# (find-acmetourvideo "14:16" "content from its current filename every")
# (find-acmetourvideo "14:18" "time we advance slides these scripts are")
# (find-acmetourvideo "14:21" "running another example is the a dict")
# (find-acmetourvideo "14:23" "program it's a dictionary for Acme if I")
# (find-acmetourvideo "14:26" "execute a dict Acme it creates a new")
# (find-acmetourvideo "14:29" "window showing me the definition of the")
# (find-acmetourvideo "14:31" "word Acme inside the dictionary windows")
# (find-acmetourvideo "14:34" "button threes load functionality has")
# (find-acmetourvideo "14:36" "been fine to mean look up a word so if")
# (find-acmetourvideo "14:38" "we type computer in the tag and then")
# (find-acmetourvideo "14:42" "right click on it we get a new window")
# (find-acmetourvideo "14:45" "showing the definition for computer one")
# (find-acmetourvideo "14:47" "who computes this is using the Project")
# (find-acmetourvideo "14:50" "Gutenberg Webster's dictionary which")
# (find-acmetourvideo "14:51" "dates from 1913 so it's not quite up to")
# (find-acmetourvideo "14:54" "date with modern usage but it's freely")
# (find-acmetourvideo "14:56" "available for you to install on your")
# (find-acmetourvideo "14:57" "machine edict is a shell script its")
# (find-acmetourvideo "15:02" "pretty long shell script we won't go")
# (find-acmetourvideo "15:03" "through it in detail but the important")
# (find-acmetourvideo "15:05" "part is that reads events like mouse")
# (find-acmetourvideo "15:07" "clicks from the windows events file and")
# (find-acmetourvideo "15:09" "then invokes the event function here to")
# (find-acmetourvideo "15:12" "respond to each click or event the ml")
# (find-acmetourvideo "15:14" "events indicate a mouse driven low")
# (find-acmetourvideo "15:18" "event in response the script creates a")
# (find-acmetourvideo "15:21" "new dictionary window showing the")
# (find-acmetourvideo "15:22" "definition of the loaded word the")
# (find-acmetourvideo "15:26" "program win that I've been running over")
# (find-acmetourvideo "15:28" "here to show you the file system is not")
# (find-acmetourvideo "15:31" "an ACME built-in it is an external")
# (find-acmetourvideo "15:33" "command like a dict although it is a c")
# (find-acmetourvideo "15:36" "program not a shell script it starts a")
# (find-acmetourvideo "15:38" "new window and a new shell and cross")
# (find-acmetourvideo "15:40" "connects them every time you complete a")
# (find-acmetourvideo "15:42" "line in the window it sends that line to")
# (find-acmetourvideo "15:44" "the shell every time the shell prints")
# (find-acmetourvideo "15:46" "something it adds that line to the")
# (find-acmetourvideo "15:48" "window it's a terminal program in some")
# (find-acmetourvideo "15:51" "sense but it's really just a shell")
# (find-acmetourvideo "15:53" "session synced with an ACME window")
# (find-acmetourvideo "15:54" "because it's an ACME window you can of")
# (find-acmetourvideo "15:57" "course go back and edit anything until")
# (find-acmetourvideo "15:59" "you hit Enter you can even edit the")
# (find-acmetourvideo "16:00" "current input line you can also edit all")
# (find-acmetourvideo "16:03" "the history to cut out unnecessary")
# (find-acmetourvideo "16:04" "pieces or mark things that look")
# (find-acmetourvideo "16:07" "interesting when I'm debugging low-level")
# (find-acmetourvideo "16:13" "problems in the go runtime I often run")
# (find-acmetourvideo "16:15" "gdb in a win window and then end up")
# (find-acmetourvideo "16:17" "typing my own notes all over the gdb")
# (find-acmetourvideo "16:19" "output as I work through a tough")
# (find-acmetourvideo "16:20" "debugging session win redefines the")
# (find-acmetourvideo "16:23" "middle-click execution to mean send that")
# (find-acmetourvideo "16:26" "to the shell a common idiom is then to")
# (find-acmetourvideo "16:28" "edit a command line you typed earlier")
# (find-acmetourvideo "16:30" "andrey executed i worked for many years")
# (find-acmetourvideo "16:35" "in a shell without history or command")
# (find-acmetourvideo "16:37" "line editing and i never missed it")
# (find-acmetourvideo "16:38" "because acne is providing this for me")
# (find-acmetourvideo "16:42" "over the years people have written many")
# (find-acmetourvideo "16:44" "interesting acne client programs")
# (find-acmetourvideo "16:46" "including a mail reader a debugger chat")
# (find-acmetourvideo "16:48" "and IRC clients and a music player and")
# (find-acmetourvideo "16:51" "you can write them in any language shell")
# (find-acmetourvideo "16:52" "script C Go Python whatever you like")
# (find-acmetourvideo "16:56" "maybe even a lisp if you're into that")
# (find-acmetourvideo "16:57" "kind of thing")
# (find-acmetourvideo "17:00" "button 2 isn't the only one with some")
# (find-acmetourvideo "17:02" "deep tricks button 3 can do some fun")
# (find-acmetourvideo "17:04" "things too we saw that you can load")
# (find-acmetourvideo "17:06" "files or directories with a rich")
# (find-acmetourvideo "17:07" "addressing to specify parts of the file")
# (find-acmetourvideo "17:09" "you care about button 3 can also")
# (find-acmetourvideo "17:12" "synthesize new window content for")
# (find-acmetourvideo "17:14" "example if you right-click on Acme 1")
# (find-acmetourvideo "17:17" "here it brings up a new window with")
# (find-acmetourvideo "17:19" "Acme's man page at the bottom of that")
# (find-acmetourvideo "17:23" "main page is a reference to another page")
# (find-acmetourvideo "17:28" "acne for describing the file system want")
# (find-acmetourvideo "17:31" "to read it right click or here's a file")
# (find-acmetourvideo "17:37" "containing the output of a mercurial")
# (find-acmetourvideo "17:38" "command showing some commits that")
# (find-acmetourvideo "17:40" "affected the Yaak program want to see a")
# (find-acmetourvideo "17:42" "particular commit right-click on the")
# (find-acmetourvideo "17:44" "hash or here's a UPS shipment I was")
# (find-acmetourvideo "17:51" "expecting I want to see the status you")
# (find-acmetourvideo "17:55" "get the idea the result of a load")
# (find-acmetourvideo "17:58" "doesn't have to be a new acne window")
# (find-acmetourvideo "18:00" "either in this demo directory I have a")
# (find-acmetourvideo "18:02" "few PDF files one of you one right-click")
# (find-acmetourvideo "18:05" "or here's a URL what's there the loading")
# (find-acmetourvideo "18:15" "here is done by a separate program")
# (find-acmetourvideo "18:16" "called the plumber the plumber is")
# (find-acmetourvideo "18:17" "controlled by a rule file went plumb")
# (find-acmetourvideo "18:19" "rules that contains patterns to match")
# (find-acmetourvideo "18:21" "against button 3 text this rule says")
# (find-acmetourvideo "18:27" "that if the text ends in dot PDF and")
# (find-acmetourvideo "18:29" "names an existing file it should be")
# (find-acmetourvideo "18:33" "passed to the plan 9 page program which")
# (find-acmetourvideo "18:36" "is a simple PostScript in PDF viewer you")
# (find-acmetourvideo "18:38" "saw similarly if the text begins with")
# (find-acmetourvideo "18:41" "HTTP or otherwise it looks like a URL it")
# (find-acmetourvideo "18:44" "should be handed to the web browser the")
# (find-acmetourvideo "18:49" "rules are yours to write on plan 9 when")
# (find-acmetourvideo "18:51" "programs crashed the kernel left the")
# (find-acmetourvideo "18:53" "processes around like UNIX aam B's for")
# (find-acmetourvideo "18:55" "debugging instead of writing core files")
# (find-acmetourvideo "18:57" "when your program crashed then the shell")
# (find-acmetourvideo "18:59" "would show the reason in the process ID")
# (find-acmetourvideo "19:01" "not core dumped I used to use a plumbing")
# (find-acmetourvideo "19:04" "rule that when I right clicked on a")
# (find-acmetourvideo "19:05" "number corresponding to a process would")
# (find-acmetourvideo "19:07" "start a new window with the debugger")
# (find-acmetourvideo "19:09" "running attached to that process I also")
# (find-acmetourvideo "19:11" "had a rule that when I right clicked on")
# (find-acmetourvideo "19:13" "a phone number would turn on the")
# (find-acmetourvideo "19:14" "speakerphone on my desk and dial that")
# (find-acmetourvideo "19:15" "number the nicest thing about this is")
# (find-acmetourvideo "19:18" "that the link logic is separate from the")
# (find-acmetourvideo "19:20" "text formatting in webpages the author")
# (find-acmetourvideo "19:23" "of the page has to decide how to")
# (find-acmetourvideo "19:24" "interpret the text and where the links")
# (find-acmetourvideo "19:26" "are and where they should go in the")
# (find-acmetourvideo "19:28" "plumbing rules you control how")
# (find-acmetourvideo "19:30" "pre-existing unlinked text gets")
# (find-acmetourvideo "19:32" "reinterpreted let's go through a simple")
# (find-acmetourvideo "19:35" "example of using Acme to write some")
# (find-acmetourvideo "19:37" "programs let's see if we can fix go")
# (find-acmetourvideo "19:39" "issue 3942 what was that again")
# (find-acmetourvideo "19:42" "oh right")
# (find-acmetourvideo "19:46" "Jason is reading one bite at the end of")
# (find-acmetourvideo "19:48" "the array which makes it block reading")
# (find-acmetourvideo "19:50" "network data that isn't coming I feel")
# (find-acmetourvideo "19:52" "like I fixed this before actually let's")
# (find-acmetourvideo "19:55" "look at this program let's copy this and")
# (find-acmetourvideo "19:58" "turn it into a test to do some test")
# (find-acmetourvideo "20:00" "driven development")
# (find-acmetourvideo "20:15" "this is about streaming so let's put it")
# (find-acmetourvideo "20:17" "in stream test go I'm going to start a")
# (find-acmetourvideo "20:21" "new acne program called watch it watches")
# (find-acmetourvideo "20:24" "the current directory and each time")
# (find-acmetourvideo "20:25" "something changes in the directory it")
# (find-acmetourvideo "20:27" "reruns the command given to it as an")
# (find-acmetourvideo "20:29" "argument it maintains the current output")
# (find-acmetourvideo "20:31" "in a separate window here I'm going to")
# (find-acmetourvideo "20:35" "watch the output of running the short")
# (find-acmetourvideo "20:37" "test suite for this package right now it")
# (find-acmetourvideo "20:41" "passes that's good let's add our test")
# (find-acmetourvideo "20:57" "whoops compiler errors looks like I need")
# (find-acmetourvideo "21:00" "to say import net and since we're")
# (find-acmetourvideo "21:02" "already in the Jason package we don't")
# (find-acmetourvideo "21:04" "need that")
# (find-acmetourvideo "21:13" "and now we have our deadlock here we can")
# (find-acmetourvideo "21:17" "see that JSON decoder read value has")
# (find-acmetourvideo "21:19" "called a read method we think it")
# (find-acmetourvideo "21:22" "shouldn't be reading that far so let's")
# (find-acmetourvideo "21:24" "look at the context of this read call")
# (find-acmetourvideo "21:25" "and see why it started the call I'm")
# (find-acmetourvideo "21:28" "really surprised that this is reading")
# (find-acmetourvideo "21:30" "too far I really thought I fix this")
# (find-acmetourvideo "21:41" "aha I did fix this but I only fixed it")
# (find-acmetourvideo "21:44" "for JSON objects which use curly braces")
# (find-acmetourvideo "21:46" "JSON arrays which use square brackets")
# (find-acmetourvideo "21:49" "still read too far so we need to treat")
# (find-acmetourvideo "21:52" "arrays like objects let's see what this")
# (find-acmetourvideo "21:55" "scan end object is hmm this looks like")
# (find-acmetourvideo "22:01" "the definition yes and thankfully")
# (find-acmetourvideo "22:05" "there's already a scan end array so")
# (find-acmetourvideo "22:07" "let's just treat that the same way")
# (find-acmetourvideo "22:21" "and we're done all right bug fixed")
# (find-acmetourvideo "22:29" "so that's acne it's a text driven")
# (find-acmetourvideo "22:31" "programming system it only supports text")
# (find-acmetourvideo "22:33" "no graphics at all I like to think of it")
# (find-acmetourvideo "22:35" "as an integrating development")
# (find-acmetourvideo "22:37" "environment because it integrates the")
# (find-acmetourvideo "22:38" "separate pieces you already have in your")
# (find-acmetourvideo "22:40" "current development environment you can")
# (find-acmetourvideo "22:42" "extend and customize acne by writing")
# (find-acmetourvideo "22:43" "programs that interact with it or that")
# (find-acmetourvideo "22:45" "manage windows or by writing plumbing")
# (find-acmetourvideo "22:47" "rules to redefine what loading means and")
# (find-acmetourvideo "22:49" "you can write the extensions in any")
# (find-acmetourvideo "22:51" "language you want we saw a dictionary")
# (find-acmetourvideo "22:53" "written in the shell script a terminal")
# (find-acmetourvideo "22:55" "window written in C and the watch")
# (find-acmetourvideo "22:56" "program written in go I've been using")
# (find-acmetourvideo "22:59" "acne as my day-to-day work environment")
# (find-acmetourvideo "23:01" "for over a decade now I found it to be")
# (find-acmetourvideo "23:03" "an incredibly productive way to work if")
# (find-acmetourvideo "23:05" "you want to try it out visit my blog")
# (find-acmetourvideo "23:06" "post at the link on the screen and in")
# (find-acmetourvideo "23:08" "the video description thanks for")
# (find-acmetourvideo "23:10" "watching")

http://iwp9.org/ 9th International Workshop on Plan 9
https://yotam.net/posts/linux-namespaces-are-a-poor-mans-plan9-namespaces/
https://the-dam.org/docs/explanations/Plan9ListenOnLinux.html






#  Local Variables:
#  coding:               utf-8-unix
#  End: