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: