<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7032600804825338670</id><updated>2011-11-27T15:22:01.914-08:00</updated><category term='virtualization'/><category term='lynx external usnatch bash case select accessability'/><category term='yahoo'/><category term='&quot;frank zappa&quot;'/><category term='alexander Dubcek'/><category term='Ludwig von Mises'/><category term='screen shells login &quot;text consoles&quot; &quot;virtual consoles&quot; startvt gpm lynx login.defs pam_env exec'/><category term='pdf elinks pdftohtml &quot;linux desktop hacks&quot; &quot;O&apos;Reilly&quot;'/><category term='Olaf Stapledon'/><category term='web practices'/><category term='&quot;chicago school of economics&quot; aloud'/><category term='Texas A and M'/><category term='Julie Driscoll'/><category term='tagsoup'/><category term='community'/><category term='html lynx bookmarks fragments urls firefox'/><category term='cups'/><category term='&quot;ayn rand&quot;'/><category term='pdf &quot;frame buffer&quot; svgalib bmv pdftops'/><category term='RAND'/><category term='http'/><category term='freedom'/><category term='lynx firefox pdf chvt bookmark accessability multimedia'/><category term='war'/><category term='bash &quot;syntax check&quot; chmod scripting sed'/><category term='bash pdfimages zgv pdf documents'/><category term='www'/><category term='video.google.com &quot;screen scraping&quot; accessibility usnatch'/><category term='Streetnoise'/><category term='sortasgml'/><category term='shell'/><category term='fandom'/><category term='user interface'/><category term='&quot;url redirection&quot;'/><category term='windows'/><category term='voip sip lynx mplayer www.gizmoproject.com linphonec nat firewall'/><category term='science fiction'/><category term='fbi fbgs zgv framebuffer pdf'/><category term='&quot;software testing&quot;'/><category term='bash pdf zgv ghostscript gs cookbook'/><category term='linux'/><category term='vlc tv television channels frequencies pvr cards v4l'/><category term='Scroogle'/><category term='yubnub'/><category term='&quot;media streams&quot; lynx privoxy mms mplayer accessibility'/><category term='ubuntu bash screen lynx tinyirc ckermit gkermit kermit'/><category term='printer servers'/><category term='&quot;milton friedman&quot; &quot;ronald coase&quot;'/><category term='bash pdf printers paper'/><category term='government'/><category term='web standards'/><category term='lynx'/><category term='Web 2.0'/><category term='blog'/><category term='voip sip skype hardware requirements'/><category term='Google'/><category term='Fourth of July'/><category term='pop'/><category term='mailing lists'/><category term='privoxy'/><category term='&quot;julie driscoll&quot; &quot;julie tippetts&quot; &quot;brian auger&quot; jazz &quot;free music&quot; libertarianism &quot;Adam Zagajewski&quot;'/><category term='imap'/><category term='html'/><category term='zgv svgalib framebuffer pdf imageviewers'/><category term='Brian Auger'/><category term='Milton Friedman'/><category term='information technology'/><category term='&quot;web applications&quot;'/><category term='web accessibility'/><category term='gmail'/><title type='text'>Is There Another Question?</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-2312711971049473763</id><published>2009-11-08T18:51:00.000-08:00</published><updated>2009-11-08T20:35:57.518-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zgv svgalib framebuffer pdf imageviewers'/><title type='text'>zgv'ing Again</title><content type='html'>When I started the series of posts on console tools for PDF files, I had another computer, and it handled graphics from the console differently.
The chipset on the old computer was directly supported by SVGAlib and everything was working fine as far as I was concerned.
When I upgraded to the current computer I found many of the graphics programs I was using needed to be shifted over to using frame buffer drivers or versions, as the video chipset on this PC seemed to be marginally (or in some instances brittly) supported in Linux.
In some instances this was a gain, one example being w3m, which I can if so choosing run as a graphical web browser.
In a couple of instances, zgv and svncviewer, I had to do without a console program and use an X program.

&lt;P/&gt;
zgv is one of the more amazing graphic applications that run from the raw console in Linux.  
Perhaps even more amazing than watching videos in a naked command line interface.
It is an image viewer that can be used on single images, slide shows, or a directory of image files, handling most of the formats we are familiar with.  
It has some simple image processing capabilities, and when navigating a directory of images, can generate thumbnails of all the images and can present a graphical navigation interface with these thumbnails.
The alternate viewer 'fbi' (Frame Buffer Imageviewer) if fine, but to date simply lacks some of the many capabilities of zgv.
I first encountered zgv as a default image viewer for text browsers such as Lynx and w3m.

&lt;P/&gt;
It's been over a year since I got the new computer, and the other morning, I decided to try to see if there was some way to revive use of zgv.  It never failed to run, but in maybe half the images colors were distorted beyond reasonable use - something like solarization of color phototgraphic film - great if you want an LSD/Timothy Leary effect but not for daily use.  

&lt;P/&gt;
In the SVGAlib configuration file, I'd hardcoded use of the framebuffer driver (as opposed to SVGAlib choosing one of the supported chipsets) by uncommenting the line:

&lt;PRE&gt;

chipset FBDEV           &amp;#035; Use kernel fbdev, instead of direct hardware.

&lt;/PRE&gt;

in the file /etc/vga/libvga.config.
With this, applications that use SVGAlib will now indirectly use the video framebuffer.
I rummaged around a bit through the zgv man pages, trying various things.
One clue I searched on to see if there was something that might get it working consistently was the word 'force'.
My notion was that perhaps something was being misinterpreted by the program and it 'forcing' some initial condition might solve the problem.
I finally found a switch '--force-viewer-8bit' (or briefly '-j') that seems to do the trick.
No solarization effects.
It may be that some images could be displayed with greater sharpness or color accuracy, '8bit' throwing away parts of 16/24 bits of pixel information, but everything *looks* reasonable.
Nothing is reduced to psychedelic poster (or even comicbook) appearence.
The worst thing I've encountered so far is that after looking at information on the image file sometimes I need to refresh the display with a CTL-L or CTL-R, but this is a minor point.
To make this default behaviour, edit the file /etc/zgv.conf and add the line:

&lt;PRE&gt;

force-viewer-8bit on

&lt;/PRE&gt;

A few other settings I include in the file (you can look them up in the man page) are:

&lt;PRE&gt;

zoom on
centre on
auto-mode-fit on
jpeg-speed 1
mousescale 2.0
mouse on
block-cursor on
fs-perfect-cols on
jpeg-index-style 3
fs-thick-text on

&lt;/PRE&gt;

A couple that apparently must be left out of the configuration file and placed among command line switches are:

&lt;PRE&gt;

&amp;#035;  show-dimensions on
&amp;#035; reload-delay 1000000
&amp;#035;   - fatal in this file

&lt;/PRE&gt;

A few of the more important commands of zgv:

&lt;PRE&gt;

&amp;#063;        -  help
ESC      -  return to previous mode (eventually exiting)
Enter    -  go to the next image
v        -  toggle file selector mode between graphical or text
/        -  help for video modes available
&amp;#058;        -  display file information
&amp;#059;        -  reset brightness/contract/etc. to default
Alt-u    -  generate/update thumbnail images
Ctrl-I   -  start a slide show of files tagged in file selector mode.
Ctrl-R   -  refresh view/directory
Ctrl-L   -  refresh view/directory
Right Mouse button  -  context sensitive menu
Left  Mouse button  -  select an image or directory in file selector/directory view mode

&lt;/PRE&gt;

&lt;P/&gt;
You can navigate the file selector or large images with cursor, vi or (what I think are) WordStar keys.
I leave exploring the various zooming, rotating, mirroring, flipping, contrast, brightness, gamma, rendering and file tagging capabilities to you, the reader.
The ironic reality is that using this as the viewer for a text mode web browser, the surfer has more control over image viewing than any I've encountered with so called graphical web browsers.

&lt;P/&gt;
A few of the command line switches can be of use.
The '--reload-delay 100000' mentioned above effectively sets the default slide show interval to totally at the users decision to move on, instead of the default 4-sec.  
'--show-dimensions' (or -s) causes zgv to print the dimensions of displayed files to standard out, perhaps to pass on to some program for image processing.
'-T' causes zgv to print the names of tagged files to standard out, where they could (for instance) be passed on via a script to CUPS and printed out, or copied/moved to a holding directory.
And this really is the tie-in with these article with on .pdf.
After using ghostscript to convert the pages of a pdf document to images,
you can browse through them with zgv in file selector mode, tag some, and have them printed out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-2312711971049473763?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/2312711971049473763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=2312711971049473763' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/2312711971049473763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/2312711971049473763'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2009/11/zgving-again.html' title='zgv&apos;ing Again'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-797328898983519725</id><published>2009-10-02T22:17:00.000-07:00</published><updated>2009-10-02T22:32:39.716-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pdf &quot;frame buffer&quot; svgalib bmv pdftops'/><title type='text'>With bmv ...</title><content type='html'>When I first started this series of posts on command line
access to pdf files I had a different computer,
one that was pretty compatible with SVGALib tools.
The newer computer seems to work with SVGALib with
extreme unpredictability.
There seems to be decision 'out there' to not bother
with keeping SVGALib current, to try and shift
things towards use of frame buffers,
which seem to work fine on the new PC&gt;

A while back I became aware of a frame buffer based tool
for viewing postscript files called bmv.
To take advantage of in pdfmenu, I added some lines:

&lt;PRE&gt;
alias PDFTOPS='/usr/bin/pdftops  '  ;
alias BMV='/usr/bin/bmv -m1 -v13 '  ;
    #       the -m/-v values were tuned by tests to what seemed
    #       to work best on my computer for typical .pdf files.
..........
 10 )
    THEPSFILE="${INSIDEFILE#/tmp/}"  ;
    THEPSFILE="/tmp/${THEPSFILE%.pdf}.ps"  ;
    RM  ${THEPSFILE}  ;
    PDFTOPS  ${INSIDEFILE}   ${THEPSFILE}  ;
    BMV      ${THEPSFILE}  ;
    RM ${THEPSFILE}  ;
    ;;
  
&lt;/PRE&gt;

and appropriate entries to the select menu.
bmv is fairly easy to figure out how to navigate.
In general, I'm satisfied with it's job of showing .pdf files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-797328898983519725?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/797328898983519725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=797328898983519725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/797328898983519725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/797328898983519725'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2009/10/with-bmv.html' title='With bmv ...'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-8910881147492134710</id><published>2009-01-19T03:46:00.000-08:00</published><updated>2009-01-19T03:51:41.509-08:00</updated><title type='text'>pdfmenu</title><content type='html'>As you may have figured out by now, I created a master script for handling pdf files when in text consoles.  I've put this up at http://www.lafn.org/~aw585/pdfmenu.  There are probably many improvements that can be made to this but it provides a simple way to attack pdf files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-8910881147492134710?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='' href='http://www.lafn.org/~aw585/pdfmenu' length='0'/><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/8910881147492134710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=8910881147492134710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/8910881147492134710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/8910881147492134710'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2009/01/pdfmenu.html' title='pdfmenu'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-4936968707335937759</id><published>2009-01-19T03:03:00.000-08:00</published><updated>2009-01-19T03:45:12.159-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lynx firefox pdf chvt bookmark accessability multimedia'/><title type='text'>firefox -new-tab ......</title><content type='html'>I used to use one of my 26 bookmark files of Lynx to pass URLs from web browseing in Lynx to Firefox.  I had that particular file bookmarked by Firefox, and could simply bookmark a url to the "F" bookmarkfile from Lynx, then when I swapped to Firefox pull up that file from Firefox's bookmarks, then seek out the particular URL in question.  I thought that was pretty slick, saving a lot of scratch paper moving the URL from a text console to GUI environment, but I've since done better.
&lt;P/&gt;Looking over the man page for Firefox, I found there was provision for sending URL's to already running instances of 'fox.  After a bit of experimentation, I found that this could be done from text consoles, and was not restricted to being issued from the GUI environment.  With this information, I added these lines to my Lynx externals in /etc/lynx-cur/lynx.cfg:

&lt;P/&gt;
EXTERNAL:http:firefox -new-tab %s --display=\:0.0 ; sudo chvt 11 :TRUE
&lt;P/&gt;
EXTERNAL:http:firefox -new-window %s --display=\:0.0 ; sudo chvt 11 :TRUE

&lt;P/&gt;The '-new-tab' and '-new-window' switches are pretty self explanatory.  --display tells which X display to use, which could is theory be more complex than most people use.  It should be pointed out that it was necessary to escape the colons with this parameter so as not to confuse Lynx.  The part starting with 'sudo ...' might be unfamiliar to some.  chvt is a command to switch to other virtual consoles.  Currently it seems to be limited to those setup by  inittab or it's equivalent, and requires root privilages to function.  I've sudo configured to run it without needing any password.  Anyway, one curious thing is that it can switch you to your GUI, which in my case is console 11 - you'd need to adjust it to your situation, usually console 7.

&lt;P/&gt;I'm putting this article in my series on handling pdf files in text consoles because you can use this to pass the location of a file to Firefox from a console and let it handle the file however you have Firefox configured to.  The fact of the matter is though that almost any thing can easily be passed from Lynx to Firefox this way not just pdf files.  This has accessability implications in that someone who may out of neccessity use Lynx can with this use Firefox as a simplified interface to running various media types in the GUI environment.  They could have their GUI configured to automaticly launch FireFox when it starts, and perhaps set things up so that when finished the switch back to the console and restart X rather than bother trying to navigate the GUI.  This is pretty crude, but it might serve their needs.  One complication might be the need to locate a start button, such as sites like YouTube have, but perhaps even this might be overcome.  Anyway only the future will tell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-4936968707335937759?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/4936968707335937759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=4936968707335937759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/4936968707335937759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/4936968707335937759'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2009/01/firefox-new-tab.html' title='firefox -new-tab ......'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-6566396795034662893</id><published>2009-01-19T02:32:00.000-08:00</published><updated>2009-01-19T03:02:30.892-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fbi fbgs zgv framebuffer pdf'/><title type='text'>5) with fbgs / Investigating fbi</title><content type='html'>When I started this series of articles on handling pdf in text consoles, I had a different computer, using different tools for video content in consoles.  Since then I've started using a frame buffer, and a tool for using a frame buffer to view .pdf's, fbgs came to my attention.  fbgs is actually a script to glue actions by ghostscript and fbi, "Frame Buffer Imageviewer" together.  fbgs accepts most of the flags for fbi, and a few of it's own.  The most significant of it's own, to me, seems to be '-c', to render in color.  fbi itself is a fairly straightforward tool, the most important command when using it being 'h', to toggle the help display on/off.  Once you've got the help displayed, you can do most anything with it.  fbi seems to be more minimalist oriented where the svgalib using zgv imageviewer is a 'kitchen sink' tool, loaded with features.  zgv can be compiled with sdl, "Simple DirectMedia Layer" support instead of straight svgalib, so that it can use framebuffer images display, but I haven't done that yet, and it is another story.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-6566396795034662893?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/6566396795034662893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=6566396795034662893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/6566396795034662893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/6566396795034662893'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2009/01/investigating-fbi.html' title='5) with fbgs / Investigating fbi'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-7435953068063692427</id><published>2008-08-02T00:25:00.000-07:00</published><updated>2008-08-02T00:47:30.732-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash pdf printers paper'/><title type='text'>5) dump to printer</title><content type='html'>&lt;P/&gt;Yet another option for looking at PDF files is the use of a special purpose viewing device refered to as a 'printer'.  For those of you who may be unclear on the concept, 'printer's use special chemicals to permenantly lay down a copy of the image that would normally be seen on the screen onto a thin sheet of organic celluloid material ("paper").  Bulky and cantankerous at best, the quaint devices are capable of handling not only PDF files, but with appropriate device drivers, such data formats as text, jpeg, png, gif etc.

&lt;P/&gt;Below is a script for sending a PDF to a 'printer'.  It is set to scale the file to maximize it's use of the paper, but could easily be modified to throw up a menu of scaling factors, typical might be 25&amp;#037;, 33&amp;#037;, 50&amp;#037;, 66&amp;#037;, 75&amp;#037; etc.

&lt;HR/&gt;
&lt;PRE&gt;
&amp;#035;!/bin/bash  -


&amp;#035; &amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035; security pack &amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;

PATH='/sbin&amp;#058;/bin&amp;#058;/usr/sbin&amp;#058;/usr/bin&amp;#058;/usr/X11R6/bin&amp;#058;/usr/local/sbin&amp;#058;/usr/local/bin&amp;#058;/usr/games&amp;#058;~/bin'  &amp;#059;


hash -r  &amp;#059;
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.5

ulimit  -H -c 0 --  &amp;#059;
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.6

IFS=$' \t\n'  &amp;#059;
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.7

UMASK='002'  &amp;#059;
umask  $UMASK  &amp;#059;
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.8

\unalias -a
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.4

&amp;#035; &amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035; security pack &amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;

USAGE=&amp;quot;$0  -h | file.pdf | file.ps  &amp;quot;  &amp;#059;

VERSION='$Id'  &amp;#059;

set -e  &amp;#059;
shopt -s  nocasematch    expand_aliases  &amp;#059;

&amp;#035; alias RM='/bin/rm  -f   2&amp;gt; /dev/null '  &amp;#059;
&amp;#035; alias RMDIR='/bin/rmdir 2&amp;gt; /dev/null '  &amp;#059;
&amp;#035; alias MKDIR='/bin/mkdir 2&amp;gt; /dev/null '  &amp;#059;
&amp;#035; alias EZGV='exec   /usr/bin/zgv'  &amp;#059;
&amp;#035;  alias ZGV='/usr/bin/zgv'  &amp;#059;
alias LPR='/usr/bin/lpr -o scaling=100&amp;#037;  '  &amp;#059;


THEPDFFILE=${1}  &amp;#059;

case  ${THEPDFFILE}  in
[-/][h&amp;#063;]* )
  echo 'Usage&amp;#058; '${USAGE}  &amp;#059;
  exit  &amp;#059;
  &amp;#059;&amp;#059;
[-/]v* )
  echo ${VERSION}  &amp;#059;
  exit  &amp;#059;
  &amp;#059;&amp;#059;
*.ps )
  THETTAG=${THEPDFFILE&amp;#037;.ps}  &amp;#059;
  &amp;#059;&amp;#059;
*.pdf )
  THETAG=${THEPDFFILE&amp;#037;.pdf}  &amp;#059;
  &amp;#059;&amp;#059;
* )
  exit  &amp;#059;
esac

if [ ! -f ${THEPDFFILE} ]  &amp;#059; then
   echo 'File needed'  &amp;#059;
   echo ${USAGE}  &amp;#059;
   exit  &amp;#059;
fi

LPR  ${THEPDFFILE}  &amp;#059;



exit  &amp;#059;
&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-7435953068063692427?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/7435953068063692427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=7435953068063692427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/7435953068063692427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/7435953068063692427'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/08/5-dump-to-printer.html' title='5) dump to printer'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-3268156747311900593</id><published>2008-08-01T17:56:00.000-07:00</published><updated>2008-08-01T18:47:03.510-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash pdfimages zgv pdf documents'/><title type='text'>4) individual embedded images</title><content type='html'>&lt;P/&gt;The following script extracts each individual image embedded in a PDF document and displays them.  As documented in the script, it is based on a tool I recently became aware of from a "Tech Tip" in &lt;A HREF="http://www.linuxjournal.com"&gt;Linux Journal.&lt;/A&gt;   The tool, &lt;A HREF="http://www.linuxcommand.org/man_pages/pdfimages1.html"&gt;pdfimages,&lt;/A&gt;  extracts the individual images from the PDF document, which are then viewed using zgv.  I call this script 'pdfimagesview'.

&lt;HR&gt;
&lt;PRE&gt;
&amp;#035;!/bin/bash  -


&amp;#035; &amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035; security pack &amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;

PATH='/sbin&amp;#058;/bin&amp;#058;/usr/sbin&amp;#058;/usr/bin&amp;#058;/usr/X11R6/bin&amp;#058;/usr/local/sbin&amp;#058;/usr/local/bin&amp;#058;/usr/games&amp;#058;~/bin'  &amp;#059;


hash -r  &amp;#059;
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.5

ulimit  -H -c 0 --  &amp;#059;
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.6

IFS=$' \t\n'  &amp;#059;
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.7

UMASK='002'  &amp;#059;
umask  $UMASK  &amp;#059;
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.8

\unalias -a
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.4

&amp;#035; &amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035; security pack &amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;

USAGE=&amp;quot;$0  -h | file.pdf | file.ps  [ startpage&amp;#035; [ endpage&amp;#035; ] ]&amp;quot;  &amp;#059;

VERSION='$Id&amp;#058; pdfimagesview,v 1.1 2008/07/08 09&amp;#058;20&amp;#058;30 dallas Exp dallas $'  &amp;#059;

set -e  &amp;#059;
shopt -s  nocasematch    expand_aliases  &amp;#059;

alias RM='/bin/rm  -f   2&amp;gt; /dev/null '  &amp;#059;
alias RMDIR='/bin/rmdir 2&amp;gt; /dev/null '  &amp;#059;
alias MKDIR='/bin/mkdir 2&amp;gt; /dev/null '  &amp;#059;
alias PDFIMAGES='/usr/bin/pdfimages'  &amp;#059;
alias EZGV='exec   /usr/bin/zgv'  &amp;#059;
&amp;#035;  alias ZGV='/usr/bin/zgv'  &amp;#059;

&amp;#035;  pdfimages is from the poppler-utils package,
&amp;#035;  referenced in 'Linux Journal' May, 2008, p. 83, Tech Tip
&amp;#035;  'Extract Images from PDF Files', Matthew Martin.
&amp;#035;  It extracts the images from a pdf file


THEPDFFILE=${1}  &amp;#059;

case  ${THEPDFFILE}  in
[-/][h&amp;#063;]* )
  echo 'Usage&amp;#058; '${USAGE}  &amp;#059;
  exit  &amp;#059;
  &amp;#059;&amp;#059;
[-/]v* )
  echo ${VERSION}  &amp;#059;
  exit  &amp;#059;
  &amp;#059;&amp;#059;
*.ps )
  THETTAG=${THEPDFFILE&amp;#037;.ps}  &amp;#059;
  &amp;#059;&amp;#059;
*.pdf )
  THETAG=${THEPDFFILE&amp;#037;.pdf}  &amp;#059;
  &amp;#059;&amp;#059;
* )
  exit  &amp;#059;
esac

if [ ! -f ${THEPDFFILE} ]  &amp;#059; then
   echo 'File needed'  &amp;#059;
   echo ${USAGE}  &amp;#059;
   exit  &amp;#059;
fi

if [[  ${THETAG} == */* ]] &amp;#059; then
  THETAG=${THETAG&amp;#035;&amp;#035;*/}  &amp;#059;
  fi  &amp;#059;

THEDIR1='/tmp/pdfimages'  &amp;#059;
THEDIR2=&amp;quot;${THEDIR1}/${THETAG}&amp;quot;  &amp;#059;
THEFILES=&amp;quot;${THEDIR2}/${THETAG}&amp;quot;  &amp;#059;

for ii in ${!THEDIR*}
do
if [ ! -d ${!ii}  ] &amp;#059; then
  RM      ${!ii}  &amp;#059;
  MKDIR   ${!ii}  &amp;#059;
fi  &amp;#059;
done  &amp;#059;

RM  ${THEDIR2}/*  &amp;#059;

PDFIMAGES -f ${2&amp;#058;-1} -l ${3&amp;#058;-200}  ${THEPDFFILE} ${THEFILES}  &amp;#059;

EZGV  --visual ${THEDIR2}/   &amp;#059;



exit
&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-3268156747311900593?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/3268156747311900593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=3268156747311900593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/3268156747311900593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/3268156747311900593'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/08/4-individual-embedded-images.html' title='4) individual embedded images'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-7495427213724788923</id><published>2008-07-15T04:19:00.000-07:00</published><updated>2008-07-15T04:57:07.640-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash pdf zgv ghostscript gs cookbook'/><title type='text'>3) One image/page</title><content type='html'>&lt;P/&gt;This is the first method I recall using to look at .pdf files from the command prompt.  Basicly, it simply uses Ghostscipt to convert a page into a graphic, and then view it with zgv, an SVGAlib based image viewing tool.  When I rethought this through a few days ago, and set it up as the current script below, I modified it to handle more than one page, and in the process, studied capabilities of zgv I was only vaguely aware of.

&lt;P/&gt;
&lt;UL&gt;Basicly, zgv has two modes of operation
&lt;LI&gt;Browser Mode, capable of navigating and operating within the file system
&lt;LI&gt;Viewer Mode
  &lt;UL&gt;The viewer mode has two self explanitory subdivisions
  &lt;LI&gt;Single image mode
  &lt;LI&gt;Slide show mode
  &lt;/UL&gt;
&lt;/UL&gt;

&lt;P/&gt;
&lt;UL&gt;Some of the key underdocumented commands.  These are just the ones I think most important not in the help mode.
&lt;LI&gt;? - context sensitive (but incomplete) help mode
&lt;LI&gt;u - create thumbnails for use in browse mode
&lt;LI&gt;n/t - un/tag image files
&lt;LI&gt;N/T - un/tag all image files
&lt;LI&gt;^I (TAB) - Kick into slide show of all tagged files
&lt;LI&gt;Return - Go from browse mode to viewing mode for an individual image
&lt;LI&gt;Escape - Go from viewer mode back to browse mode
&lt;LI&gt;Alt-f - show number of image files and tagged image files in the current directory
&lt;LI&gt;: - show details about image file cursor is on
&lt;/UL&gt;

&lt;P/&gt;zgv may not be the GIMP or Photoshop, but it has much more capability than to simply throw an image on a console screen.  I call the script below pdfgsview.
&lt;P/&gt;
&lt;HR&gt;
&lt;PRE&gt;
&amp;#035;!/bin/bash  -


&amp;#035; &amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035; security pack &amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;

PATH='/sbin&amp;#058;/bin&amp;#058;/usr/sbin&amp;#058;/usr/bin&amp;#058;/usr/X11R6/bin&amp;#058;/usr/local/sbin&amp;#058;/usr/local/bin&amp;#058;/usr/games&amp;#058;~/bin'  &amp;#059;


hash -r  &amp;#059;
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.5

ulimit  -H -c 0 --  &amp;#059;
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.6

IFS=$' \t\n'  &amp;#059;
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.7

UMASK='002'  &amp;#059;
umask  $UMASK  &amp;#059;
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.8

\unalias -a
&amp;#035;  -  Bash Cookbook, 1st ed.,, &amp;#035;14.4

&amp;#035; &amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035; security pack &amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;&amp;#035;

set -e  &amp;#059;
shopt -s  nocasematch    expand_aliases  &amp;#059;

alias RM='/bin/rm -f  2&amp;gt; /dev/null '  &amp;#059;
alias MKDIR='/bin/mkdir  2&amp;gt; /dev/null '  &amp;#059;
alias LS='/bin/ls -A  2&amp;gt; /dev/null '  &amp;#059;
alias WC='/usr/bin/wc -l  2&amp;gt; /dev/null '  &amp;#059;
alias GS='/usr/bin/gs'  &amp;#059;
alias EZGV='exec   /usr/bin/zgv'  &amp;#059;

USAGE=&amp;quot;$0  -h | file.pdf | file.ps&amp;quot;  &amp;#059;

VERSION='$Id&amp;#058; pdfgsview,v 1.3 2008/07/08 11&amp;#058;22&amp;#058;38 dallas Exp dallas $'  &amp;#059;

THEPDFFILE=${1}  &amp;#059;

case  ${THEPDFFILE}  in
[-/][h&amp;#063;]* )
  echo ${USAGE}  &amp;#059;
  exit  &amp;#059;
  &amp;#059;&amp;#059;
[-/]v* )
  echo ${VERSION}  &amp;#059;
  exit  &amp;#059;
  &amp;#059;&amp;#059;
*.ps )
  THETAG=${THEPDFFILE&amp;#037;.ps}  &amp;#059;
  &amp;#059;&amp;#059;
*.pdf )
  THETAG=${THEPDFFILE&amp;#037;.pdf}  &amp;#059;
  &amp;#059;&amp;#059;
* )
  exit  &amp;#059;
esac


if [ ! -f ${THEPDFFILE} ]  &amp;#059; then
   echo 'File needed'  &amp;#059;
   echo ${USAGE}  &amp;#059;
   exit  &amp;#059;
fi

if [[  ${THETAG} == */* ]] &amp;#059; then
  THETAG=${THETAG&amp;#035;&amp;#035;*/}  &amp;#059;
  fi  &amp;#059;

THEDIR1='/tmp/pdfgsimages'  &amp;#059;
THEDIR2=&amp;quot;${THEDIR1}/${THETAG}&amp;quot;  &amp;#059;
THEFILES=&amp;quot;${THEDIR2}/${THETAG}.&amp;#037;03d.png&amp;quot;  &amp;#059;

for ii in ${!THEDIR*}
do
if [ ! -d ${!ii}  ] &amp;#059; then
  RM      ${!ii}  &amp;#059;
  MKDIR   ${!ii}  &amp;#059;
fi  &amp;#059;
done  &amp;#059;

RM  ${THEDIR2}/*  &amp;#059;

&amp;#035;  THETEMP=&amp;quot;/tmp/${THETEMP&amp;#035;&amp;#035;*/}&amp;quot;  &amp;#059;
RM     ${THEDIR2}/*.png  &amp;#059;

GS -SDEVICE=png16m -sOutputFile=${THEFILES} -  ${THEPDFFILE}    &amp;lt;&amp;lt;QUIT
QUIT

count=$( LS ${THEDIR2} | WC )  &amp;#059;

case ${count}  in

1 )
  EZGV    ${THEDIR2}/*.png  &amp;#059;
  &amp;#059;&amp;#059;

* )
  EZGV     ${THEDIR2}/  &amp;#059;
  &amp;#059;&amp;#059;

esac  &amp;#059;

exit  &amp;#059;
&lt;/PRE&gt;
&lt;HR&gt;
&lt;P/&gt;The 'security pack' mentioned above are some suggested actions to improve script security mentioned in the O'Reilly 'bash Cookbook'.  There are others in the book, but these I judged 'no-brainers', in that they can simply be included and don't seem to even require understanding or any modification to use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-7495427213724788923?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/7495427213724788923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=7495427213724788923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/7495427213724788923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/7495427213724788923'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/07/3-one-imagepage.html' title='3) One image/page'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-166797145697123958</id><published>2008-07-13T19:44:00.000-07:00</published><updated>2008-07-13T20:00:39.783-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pdf elinks pdftohtml &quot;linux desktop hacks&quot; &quot;O&apos;Reilly&quot;'/><title type='text'>2) As text</title><content type='html'>&lt;P/&gt;One approach to viewing .pdf files is presented in the O'Reilly book 
http://oreilly.com/catalog/9780596009113/index.html|"Linux_Desktop_Hacks".  
In the first edition, Hack #53, p. 170, "Display PDF Documents in a Terminal", gives a script that uses pdftohtml and elinks to view the text in pdf documents.  Below is my variation on their viewpdf, I call it pdfview.

&lt;HR/&gt;
&lt;PRE&gt;
&amp;#035;!/bin/bash  -


&amp;#035;  per ORA  Linux Desktop Hacks  &amp;#035;53
&amp;#035;  with the following line added to '/etc/mailcap'&amp;#058;
&amp;#035;  application/pdf&amp;#059; /usr/local/bin/pdfview '&amp;#037;s'&amp;#059; needsterminal&amp;#059; description=Portable Document Format&amp;#059; nametemplate=&amp;#037;s.pdf
&amp;#035; $Id&amp;#058; pdfview,v 1.5 2008/07/14 02&amp;#058;19&amp;#058;18 root Exp root $


&amp;#035;  pdftohtml -q -noframes -stdout ${1} | elinks -force-html
&amp;#035; does not work&amp;#058; pdftohtml -q -stdout ${1} | elinks -force-html

ABSOLUTE=${1&amp;#058;0&amp;#058;1}  &amp;#059;

case ${ABSOLUTE} in
/ )
  PREFIX=''  &amp;#059;
  &amp;#059;&amp;#059;
* )
  PREFIX=&amp;quot;${PWD}/&amp;quot;  &amp;#059;
  &amp;#059;&amp;#059;
esac

WORKFILE=&amp;quot;$(mktemp -p /tmp XXXXXXXX).html&amp;quot;  &amp;#059;
while [ -a ${WORKFILE} ]
do
  WORKFILE=&amp;quot;$(mktemp -p /tmp XXXXXXXX).html&amp;quot;  &amp;#059;
done

&amp;#035;     -- apparently pdftohtml requires the file end in '.html'

SOURCEFILE=&amp;quot;${PREFIX}${1}&amp;quot;  &amp;#059;

cd /tmp

pdftohtml  -q -nodrm  &amp;quot;${SOURCEFILE}&amp;quot;   ${WORKFILE&amp;#035;&amp;#035;*/}  &amp;#059;

exec elinks -force-html   ${WORKFILE}  &amp;#059;
&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-166797145697123958?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/166797145697123958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=166797145697123958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/166797145697123958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/166797145697123958'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/07/2-as-text.html' title='2) As text'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-8328516748765445046</id><published>2008-07-12T02:13:00.000-07:00</published><updated>2008-08-01T18:30:58.214-07:00</updated><title type='text'>1) General info</title><content type='html'>&lt;P/&gt;Doing a 'man -k pdf' generated a list of pdf related data for my Debian system.  One that stood out was pdfinfo.

&lt;P/&gt;
&lt;PRE&gt;
/usr/bin/pdfinfo -meta -box  &amp;lt;filename&amp;gt;
&lt;/PRE&gt;

&lt;P/&gt;Seems to generate most of the info you'd want about a pdf, but one exception I noticed was nothing on the number and types of embedded images.  It also seemed to need some blank lines thrown out to keep all the information together.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-8328516748765445046?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/8328516748765445046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=8328516748765445046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/8328516748765445046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/8328516748765445046'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/07/1-general-info.html' title='1) General info'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-5991233354981085996</id><published>2008-07-10T14:58:00.000-07:00</published><updated>2008-07-12T02:11:34.861-07:00</updated><title type='text'>Window Beyond a Plateau, Window Into Windows</title><content type='html'>&lt;P/&gt;I recently had reason to use VNC, &lt;A HREF="http://en.wikipedia.org/wiki/Virtual_Network_Computing"&gt;Virtual Network Computing&lt;/A&gt; and then while using &lt;A HREF="http://www.grml.org/"&gt;GRML,&lt;/A&gt; noticed something, a mention of a VNC client, that aroused my curiosity, and made me decide to do some googling on the subject.  A search of the &lt;A HREF="http://www.debian.org/distrib/packages"&gt;Debian packages&lt;/A&gt; turned up a couple of 'console' based VNC clients that did not require X.  These obviously would need some kind of graphical interface, but in the case of svncviewer and directvnc, these were SVGAlib and framebuffers respectively.

&lt;P/&gt;Not using a framebuffer on my PC, I installed svncviewer and tried using it.  At first it didn't seem to work, but studying the error messages it gave, there was some hint that the graphic modes available for it weren't in line with what the VNC server needed.  I was puzzled at first, trying various parameters suggested by the svncviewer man pages, but then remembered that there was a configuration file for SVGAlib, /etc/vga/libvga.config in the case of my Debian computer.  I edited this, loosening up everything I could as far as the video went to allow the maximum resolutions suggested by the comments in the file. 

&lt;P/&gt;This worked great, svncviewer began working, connecting to both Linux X desktops and Windows boxes.  The act of editing this configuration file jogged my memory that when I'd originally started using SVGAlib on the computer I was using a monitor already long obsolete when I took possesion of it, and had finally gave out and had been replaced with something more reasonably up to date.  In other words, updating the SVGAlib settings was long overdue.

&lt;P/&gt;The most obvious initial problem was that the mouse seemed impossibly difficult to work with on the virtual console used by svncviewer.  With adjusting the SVGAlib video settings so fresh in mind, I tinkered with the mouse settings in the config file.  Part of the problem was that I'd try to move the mouse slightly and it would jump to the other side of the screen or do other crazy things, only occasionally doing what was desired.  This all apparently fell under the description of 'accleration' from what I could figure out from the configuration file notes.   Without going into specifics, which will undoubtedly differ from case to case, I found I could adjust the trip point and amount of 'accleration' to make the mouse move smoothly, problem solved.  These settings solved problems with applications other than svncviewer, notably the links2 browser.  Now the mouse was more usable with it as well, and the higher resolution put more of a web page on the screen at one time.

&lt;P/&gt;As a test for using this in the real world, there was a MS Window machine I needed to start using, but real world phyisical deskspace is at a premium.  I managed to get the machine connected, reasonably close to my personal desktop workstation, and then get a VNC server installed on it.  VNC doesn't seem to do anything to link up the audio I/O, only video, keyboard and mouse/pointer, so I connected it to my workstation with some 99 Cents only audio patch cords in addition to putting on the Ethernet LAN.  (Anyone know of any 'virtual patchcord' application that could replace these?) On boot up, the VNC connection seemed to start early enough to catch request for a 'Ctl-Alt-Del' entry to get to the graphical login prompt.  This I had to reach over and enter from the Windows machine keyboard, but everthing else has seemed to work one way or the other from the svncviewer.   Some online documents hinted at possible problems for svncviewer connecting to Windows boxes due to some palete problem, but that
doesn't seem to happen with the version I have installed.  Using everything involved, I've been able to use the Skype client on the Windows machine to place and recieve calls, and fire up FireFox on it, and set up/handle an account for one of my bills online.

&lt;P/&gt;There was some mention online of a bootable Linux floppy disk with svncviewer on it, for an ultra-light X desktop, and I've conducted some experiments with setting svncviewer up on a console in /etc/inittab.  (This last might require some addition to the autologin script, putting some sleep delay to prevent excessive respawning from inittab triggering a temporary lock on the virtual console if the server it's pointed at isn't immediately available, but seems like a problem that can be dealt with.)  At the very worst, svncviewer provides a remote monitor, with occasional need to get the actual keyboard of the machine you connect to.  So far I haven't found F8 or any other keyboard combinations to get to any menus or whatever, as was suggested for other VNC viewers, but this can be dealt with.  But basicly, it works.  It has me thinking about setting up an X/GUI server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-5991233354981085996?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/5991233354981085996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=5991233354981085996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/5991233354981085996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/5991233354981085996'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/07/window-beyond-plateau-window-into.html' title='Window Beyond a Plateau, Window Into Windows'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-1024446080169813779</id><published>2008-07-04T17:57:00.001-07:00</published><updated>2008-07-04T21:03:51.395-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Milton Friedman'/><category scheme='http://www.blogger.com/atom/ns#' term='alexander Dubcek'/><category scheme='http://www.blogger.com/atom/ns#' term='Julie Driscoll'/><category scheme='http://www.blogger.com/atom/ns#' term='Brian Auger'/><category scheme='http://www.blogger.com/atom/ns#' term='Ludwig von Mises'/><category scheme='http://www.blogger.com/atom/ns#' term='Streetnoise'/><category scheme='http://www.blogger.com/atom/ns#' term='Fourth of July'/><title type='text'>A Summer Day's Thoughts on Prague Spring</title><content type='html'>Being the Fourth of July, it seems particulary appropriate to mention a few updates on my earlier post,
&lt;A HREF="http://isthereanotherquestion.blogspot.com/2007/12/streetnoise.html"&gt;http://isthereanotherquestion.blogspot.com/2007/12/streetnoise.html&lt;/A&gt;.

&lt;P/&gt;A few YouTube videos I'd linked to have been removed, no great loss, since there were several to choose from anyway.  But...

&lt;P/&gt;A couple of more videos have been put up for music off Streetnoise, one hardly qualifying as a "video", but the other, is quite different.  The creator put some effort into matching up some news footage of the time with "Czechoslovakia", documenting a 'loss of independence day'.  I thought this was important enough to call attention to it in this seperate blog notice, to call attention for a few minutes today to the memory of &lt;A HREF="http://en.wikipedia.org/wiki/Alexander_Dub%C4%8Dek"&gt;Alexander Dubcek&lt;/A&gt;.  He might not be another &lt;A HREF="http://en.wikipedia.org/wiki/Milton_Friedman"&gt;Milton Friedman&lt;/A&gt; or &lt;A HREF="http://en.wikipedia.org/wiki/Ludwig_von_Mises"&gt;Ludwig von Mises&lt;/A&gt;, but he figured out a few decades before &lt;A HREF="http://en.wikipedia.org/wiki/Mikhail_Gorbachev"&gt;Mikhail Gorbachev&lt;/A&gt; that 'the system' was not working.  For this he belongs in the international pantheon of freedom lovers, along with Jefferson, Adams, Franklin etc.

&lt;UL&gt;Just realized there are at least two videos for "Czechoslovakia" on YouTube.
&lt;LI&gt;&lt;A HREF="http://www.youtube.com/watch?v=mjxRt89qFBo"&gt;http://www.youtube.com/watch?v=mjxRt89qFBo&lt;/A&gt; - the first one I was aware of.
&lt;LI&gt;&lt;A HREF="http://www.youtube.com/watch?v=3-_S00jFhn0"&gt;http://www.youtube.com/watch?v=3-_S1jFhn0&lt;/A&gt; - second one that slipped in :-)
&lt;/UL&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-1024446080169813779?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/1024446080169813779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=1024446080169813779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/1024446080169813779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/1024446080169813779'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/07/summer-days-thoughts-on-prague-spring.html' title='A Summer Day&apos;s Thoughts on Prague Spring'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-4716642995753990182</id><published>2008-07-02T01:35:00.000-07:00</published><updated>2008-07-02T01:49:15.898-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cups'/><category scheme='http://www.blogger.com/atom/ns#' term='printer servers'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Windows and Cups</title><content type='html'>These are some notes I came up with a few years ago,
for connecting Windows machines to CUPS printer servers.
This may have been on my web site or somewhere at one
time, and I just wanted to make it available for 
reference.

&lt;P/&gt;&lt;HR&gt;
&lt;P/&gt;
&lt;PRE&gt;


Install the CUPS daemon on the printer server computer.
Configure the printer via the web interface at

&lt;A HREF="http://localhost:631/"&gt;http://localhost:631/&lt;/A&gt;

This is not covered by this document but the web
interface is fairly straight forward.

On the CUPS printer server
&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;

a) On the CUPS printer server
   make some changes to the CUPS config per
   &lt;A HREF="http://www.faqs.org/docs/Linux-mini/Debian-and-Windows-Shared-Printing.html"&gt;http://www.faqs.org/docs/Linux-mini/Debian-and-Windows-Shared-Printing.html&lt;/A&gt;
   on the CUPS server.

   1) in /etc/cups/mime.convs
      uncomment&amp;#058;
      application/octet-stream   application/vnd.cups-raw   0   -

   2) in /etc/cups/mime.types
      uncomment&amp;#058;
      application/octet-stream

   3) In /etc/cups/cupsd.conf per
      &lt;A HREF="http://localhost:631/documentation.html"&gt;http://localhost:631/documentation.html&lt;/A&gt;
      This is using the suggestions in the Linux Cookbook,
      by Carla Shroder, ORA, p. 247
      and somewhat more restrictive than the suggestions
      by the mini-Howto referenced above, and needed for
      all clients anyway, whatever the OS the clients run&amp;#058;

      LogLevel info

      Port 631

      Put&amp;#058;

      &amp;lt;Location /printers&amp;gt;
      Order Deny,Allow
      AuthType None
      Deny From All
      Allow From 127.0.0.1
      Allow From 192.168.1.&amp;#042;
      &amp;#035;    -- or whatever is appropriate for the LAN
      &amp;lt;/Location&amp;gt;


At the windows end&amp;#058;
&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;&amp;#042;

b) get the ethernet cable to it  &amp;#058;-)

c) make sure the Internet Printing Services is installed
   (from Linux Cookbook, by Carla Shroder, ORA p. 249
   This will require the Windows installation CD
   For Windows 95/98 this can be downloaded from
   &lt;A HREF="http://www.microsoft.com/windows98/downloads"&gt;http://www.microsoft.com/windows98/downloads&lt;/A&gt;
   look for &amp;quot;Internet Print Services&amp;quot;, wpnpins.exe

   Windows ME is in the Add-on folder on the installation CD

   Windows NT, go to Control Panel -&amp;gt; Network -&amp;gt; Services tab
   -&amp;gt; Add Microsoft TCP/IP Printing

   Windows 2000/XP go to Network and Dial-up Connections -&amp;gt;
   Advanced Menu -&amp;gt; Optional Networking Components -&amp;gt;
   Other Network File and Print Services

   If it acts squirrely when you try to install the driver,
   it may be because the driver is already installed,
   either by default on OS installation/upgrade or perhaps
   someone else took care of it.

d) go to printer/fax setup on the windows machine,
   add a new printer, select network printer, enter the URL
   for example&amp;#058;

   &lt;A HREF="http://192.168.1.1:631/printers/theprintername"&gt;http://192.168.1.1:631/printers/theprintername&lt;/A&gt;

   or if DNS resolution is available to the print server

   &lt;A HREF="http://www.somewhere.com:631/printers/theprintername"&gt;http://www.somewhere.com:631/printers/theprintername&lt;/A&gt;

   and finish up.

   Breakdown of this URL&amp;#058;


         IP address or name of the CUPS printer server
         as needed/appropriate.

         '631' is the port of IPP and http interface to the
         CUPS server on typical CUPS installation

         '/printers/'  the directory the printers appear
         to be in, probably defined by the &amp;lt;Location...&amp;gt;
         statement mentioned above in a.3 .
         This seems to be a typical setting for this printer.

         'theprintername' points it the printer on that server
         a fairly arbitrary name defined in the CUPS configuration
         of the printer (not covered in this article,
         but just handled at the web interface in
         &lt;A HREF="http://localhost:631/"&gt;http://localhost:631/&lt;/A&gt;)

         I saw this stuff in a comment at&amp;#058;
         &lt;A HREF="http://www.linuxjournal.com/article/8618"&gt;http://www.linuxjournal.com/article/8618&lt;/A&gt;

d) select the printer model (HP LaserJet 6P in this case)
   and things are ready to rock&amp;amp;roll....
&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-4716642995753990182?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/4716642995753990182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=4716642995753990182' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/4716642995753990182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/4716642995753990182'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/07/windows-and-cups.html' title='Windows and Cups'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-5347752217609598349</id><published>2008-06-26T00:46:00.000-07:00</published><updated>2008-06-26T01:53:54.602-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lynx external usnatch bash case select accessability'/><title type='text'>Lynx HTTP EXTERNAL Menu Script</title><content type='html'>&lt;P/&gt;One thing keeping my friend Larry from getting the most out of my usnatch program and Lynx externals is awkwardness he has in dealing with the EXTERNAL selection menus.  He is blind and this coupled with many of the long, complex URLs, (in many cases having stretches of random hash characters) that are passed to the Lynx EXTERNAL menu for special handling make it hard for him to seperate out the choices the menu presents.  He literally can't wade through the URLs to get to the menu selection options.  This is different from many of the other Lynx menus, where simple brief descriptions of the choices are given, without interjecting the names of temporary files and such into the options to confuse the issues.  

&lt;P/&gt;To try and deal with this problem, I present a bash script below to replace a collection of Lynx EXTERNAL entries for http with a single entry, that presents a simplified menu.  This whole idea is a variation on what I documented in my article &lt;A HREF="http://www.columbia.edu/kermit/case20.html"&gt;Lynx/Kermit Coordination Part I&lt;/A&gt; hosted by the &lt;A HREF="http://www.columbia.edu/kermit/"&gt;Kermit Center&lt;/A&gt; at Columbia Univesity.  This script will have to be customized, and a seperate one would have to be created for other protocols such as ftp, ssh, irc and such.  I've put extensive notes in this script, since I think it makes explination simpler if the notes are close to the subject instead of before or after in this blog's narrative.  Also, the people using it might not be familiar with bash, so I try to explain as much as I can, so they can knowledgably change it to their needs.

&lt;P/&gt;To install this script, first make sure your version works from the command promt.  Then comment out all the 

&lt;P/&gt;EXTERNAL:http:....

&lt;P/&gt;statements in your lynx.cfg file, both any in your home directory, and those in /etc/ and it's subdirectories, adjust the script to include those possibilities you want in it, and put a single EXTERNAL statement:

&lt;PRE&gt;
EXTERNAL:http:extern.menu %s:TRUE
&lt;/PRE&gt;

&lt;P/&gt;Where extern.menu is taken to be the name of the menu script.

&lt;P/&gt;I've put a copy of this script online at a Yahoo group for Larry's friends,
&lt;A HREF="http://groups.yahoo.com/group/larryhsfriends/"&gt;http://groups.yahoo.com/group/larryhsfriends/&lt;/A&gt;

&lt;HR&gt;
&lt;PRE&gt;
&amp;#035;! /usr/bin/env bash
&amp;#035;  &amp;#035;!/usr/bin/bash  -

&amp;#035;  '&amp;#035;! /', env per
&amp;#035;  'bash Cookbook', 1st edition, recipe &amp;#035;15.1, p. 321
&amp;#035;  &amp;quot;Finding bash Portably for &amp;#035;!&amp;quot;
&amp;#035;  &lt;A HREF="http://www.bashcookbook.com"&gt;http://www.bashcookbook.com&lt;/A&gt;
&amp;#035;
&amp;#035;  trailing '-' per
&amp;#035;  'bash Cookbook', 1st edition, recipe &amp;#035;14.2, p. 283
&amp;#035;  &amp;quot;Avoiding Interpreter Spoofing&amp;quot;

&amp;#035;  the first line convention points to the intepretor to be used.

&amp;#035;  Some bash conventions for beginners&amp;#058;
&amp;#035;
&amp;#035;  hash/pound/sharp/octhorps to the end of line are comments.
&amp;#035;
&amp;#035;  Lines ending exactly with a backslash, '\', are continued
&amp;#035;  with the next line.
&amp;#035;  Trailing whitespace after the backslash can cause errors,
&amp;#035;  so beware of it.
&amp;#035;
&amp;#035;  I urge you to look up aspects of this script,
&amp;#035;  either with man bash, or if you are running bash
&amp;#035;  at your command prompt, with the help command
&amp;#035;  such as 'help case' or 'help select'.

URL=&amp;quot;${1}&amp;quot;  &amp;#059;

PS3='What EXTERNAL action do you want&amp;#063; '
&amp;#035;         -- defaults to '&amp;#035;&amp;#063;'
&amp;#035;            trailing blank desirable for spacing of response
&amp;#035;            from prompt
&amp;#035;            PS3 is the Select Menu Loop prompt in bash

&amp;#035;  Note 'for' statement like syntax of select&amp;#058;

select external_action in       \
      'Quit externals                                              '          \
      'Print the URL'           \
      'USnatch'                 \
      'lynxvt'                  \
      'screened-lynx'           \
      'javascript-links2'       \
      'graphical-links2'        \
      'W3M'                     \
      'links'                   \
      'elinks'                  \
      'Blogspotviewer'          \
      'lynx-noreferer'          \
      'lynx-nofilereferer'      \
      'Privoxy Control Panel'   \
      'Microbookmarker'         \
      'wget'                    \
      'Bug-Me-Not'              \
      'whomis'                  \
      'nspeep'                  \
      'pingvolley'              \
      'lynxtab'                 \
      'lynxtab-blank'           \
      'lynx-blank'              \
      'frys'                    \
      'bash'

&amp;#035;    Note&amp;#058; the last select menu item should not and a trailing
&amp;#035;    '\' to continue on to the next line.
&amp;#035;    I've placed each menu item or quoted phrase on a seperate
&amp;#035;    continuation line.
&amp;#035;    At this point, it is normally desirable to have one menu item
&amp;#035;    for each of the case statement stanza's below.
&amp;#035;    They don't need to be in order.
&amp;#035;    There just has to be a menu prompt item
&amp;#035;    and a case &amp;quot;whatever )&amp;quot; that match
&amp;#035;    so the case stanza can be triggered.
&amp;#035;    Be careful in using '*' 'splat' patterns,
&amp;#035;    that you do not unintentionally match more than
&amp;#035;    the desired pattern by mistake.
&amp;#035;    This could accidently short circuit desired action,
&amp;#035;    keeping a case stanze from being taken when wanted,
&amp;#035;    and causing another to be taken instead.
&amp;#035;    If all the menu items are short, select will try to put
&amp;#035;    them in multiple columns.
&amp;#035;    Only one item needs to be wide, (which can be because of trailing
&amp;#035;    blanks) to trigger single column menu display.
&amp;#035;    In this case, I used the 'Quit' item to do this with,
&amp;#035;    since it is basicly matched for the most part with a '*'
&amp;#035;    keeping the line in the case statement a reasonable length.
&amp;#035;    The menu items are only needed to clue the user on the
&amp;#035;    significance of each number chosen,
&amp;#035;    and to tie that to the case stanza.
&amp;#035;    Alternatively, you can keep the menu items in a strict order,
&amp;#035;    and use 'REPLY' for the case variable, in which case
&amp;#035;    each case stanza would be picked on the basis of the
&amp;#035;    number selected from the menus instead of patterns
&amp;#035;    that match the menu item strings.
&amp;#035;    In this case, ordering is critical.

&amp;#035;    Many of these actions are special purpose scripts I have
&amp;#035;    written and are included here just to provide a realistic
&amp;#035;    example.
&amp;#035;    The size is probably excessive for some people.
&amp;#035;    This script will certainly have to be customized to your
&amp;#035;    personal needs.

do

  case ${external_action} in

  &amp;#035;  item between 'case' and 'in' undergoes
  &amp;#035;  several levels of evaluation before
  &amp;#035;  the case statement is finally executed.

  &amp;#035;  Case stanza's start with
  &amp;#035;  string_to_match )
  &amp;#035;  list of actions &amp;#059;
  &amp;#035;  break  &amp;#059;   &amp;#035; include a break statement to break out of the
  &amp;#035;             &amp;#035; select menu loop
  &amp;#035;  &amp;#059;&amp;#059;    &amp;#035;  double semicolons  end actions and stanza
  &amp;#035;

  Q* )
    echo 'Returning to browsing'  &amp;#059;
    break  &amp;#059;
    &amp;#035;  Thumb rule in this sort of script is
    &amp;#035;  that a break is needed whenever there
    &amp;#035;  is no exec statement in a case stanza.
    &amp;#035;  This stops the select loop after a decisive action.
    &amp;#059;&amp;#059;

  P* )
    read -p &amp;quot;The URL in question&amp;#058; ${URL} &amp;quot;  TRASH  &amp;#059;
    break  &amp;#059;
    &amp;#059;&amp;#059;

  USnatch )
    exec    usnatch  ${URL}  -i -p  &amp;#059;
    &amp;#035;  break is not needed after an exec statement
    &amp;#035;  because this script's process, including
    &amp;#035;  the select loop is replaced
    &amp;#035;  by the action of the exec statement,
    &amp;#035;  ending the select loop.
    &amp;#035;  You could put a break after each exec,
    &amp;#035;  it would probably be excessively cautious,
    &amp;#035;  since it would only be executed under bizarre conditions.
    &amp;#059;&amp;#059;

  lynxvt )
    &amp;#035;  exec    lynxvt  ${URL}  &amp;amp;  &amp;#059;
    exec    lynxvt  ${URL}    &amp;#059;
    &amp;#059;&amp;#059;

  screened-lynx )
    screen -t 'lynx ...' lynx   \
        -useragent='Mozilla/4.0 (compatible&amp;#059; MSIE 6.0&amp;#059; Windows NT 5.0)'  \
        ${URL}    &amp;#059;
    break  &amp;#059;
    &amp;#059;&amp;#059;

  javascript-links2 )
    screen -t 'jlinks'  \
        links2 -enable-javascript 1 -html-numbered-links 1  \
        ${URL}    &amp;#059;
    break  &amp;#059;
    &amp;#059;&amp;#059;

  graphical-links2 )
    sudo links2 -g -driver svgalib -mode 640x480x256   \
        -enable-javascript 1 -html-numbered-links 1    \
        ${URL}    &amp;#059;
    break  &amp;#059;
    &amp;#059;&amp;#059;

  lynx-noreferer )
    exec  lynx -noreferer=off -tna ${URL}    &amp;#059;
    &amp;#059;&amp;#059;

&amp;#035;    start of a typical case stanza&amp;#058;
  lynx-nofilereferer )
    exec  lynx -nofilreferer=off -noreferer=off -tna ${URL}  &amp;#059;
    &amp;#059;&amp;#059;
&amp;#035; end of the typical case stanza

  Privoxy* )
    screen -t 'Privoxy Control Panel'   \
      lynx -nofilereferer=off -noreferer=off  \
      -tna 'http\&amp;#058;//config.privoxy.org'   &amp;#059;
    break  &amp;#059;
    &amp;#059;&amp;#059;

  Microbookmarker )
    exec  microBkMrk ${URL}  &amp;#059;
    &amp;#059;&amp;#059;

  Blogspotviewer )
    exec  blogspoter ${URL}  &amp;#059;
    &amp;#059;&amp;#059;

  [Ww]3[Mm] )
    exec  w3m ${URL}  &amp;#059;
    &amp;#059;&amp;#059;

  links )
    exec  links ${URL}  &amp;#059;
    &amp;#059;&amp;#059;

  elinks )
    exec  elinks ${URL}  &amp;#059;
    &amp;#059;&amp;#059;

  wget )
    exec  nohup wget  --background -a ~/wget.log -P /mnt/hda8/  ${URL}  &amp;#059;
    &amp;#059;&amp;#059;

  Bug-Me-Not )
    screen -t Bug-Me-Not   \
       lynx -cookies www.bugmenot.com/view.php&amp;#063;url=${URL}  &amp;#059;
    break  &amp;#059;
    &amp;#059;&amp;#059;

  whomis )
    exec  whomis  ${URL}  &amp;#059;
    &amp;#059;&amp;#059;

  nspeep )
    exec  nspeep  ${URL}  &amp;#059;
    &amp;#059;&amp;#059;

  pingvolley )
    exec  pingvolley  ${URL}  &amp;#059;
    &amp;#059;&amp;#059;

  lynxtab )
    exec  lynxtab  ${URL}  &amp;#059;
    &amp;#059;&amp;#059;

  lynxtab-blank )
    exec  lynxtab    &amp;#059;
    &amp;#059;&amp;#059;

   lynx-blank )
    exec  env -u HTTPS_PROXY='' lynx -tna -accept_all_cookies    ${URL}  &amp;#059;
    &amp;#059;&amp;#059;

  frys )
    &amp;#035;  to send pdf's straight to a printer
    &amp;#035;  this script has mainly been used for Fry's Electronics
    &amp;#035;  online version of their newspaper ads.
    exec  lprfrys  ${URL}  &amp;#059;
    &amp;#059;&amp;#059;

  bash )
    &amp;#035;  this is just to explore the environment that the
    &amp;#035;  externals run in
    exec  bash -i  &amp;#059;
    &amp;#059;&amp;#059;

  * )
    &amp;#035; if something unexpected happens,
    &amp;#035; this catchall stanza should simply end the script.
    &amp;#035; '*' matches anything at all, after all other
    &amp;#035; patterns have been given a chance to match.
    &amp;#035; it is customary to include this
    &amp;#035; at the end of bash case statements.
    break  &amp;#059;
    &amp;#059;&amp;#059;

  esac     &amp;#035;  'case' backwards marks the end of the case statement

done       &amp;#035;  this done statement marks the end of the select menu loop

exit  &amp;#059;  &amp;#035;  just to make sure!  &amp;#058;-)
&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-5347752217609598349?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='' href='http://groups.yahoo.com/group/larryhsfriends/' length='0'/><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/5347752217609598349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=5347752217609598349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/5347752217609598349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/5347752217609598349'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/06/lynx-http-external-menu-script.html' title='Lynx HTTP EXTERNAL Menu Script'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-1806292245181248415</id><published>2008-06-19T04:57:00.000-07:00</published><updated>2008-06-19T05:22:25.326-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;chicago school of economics&quot; aloud'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;milton friedman&quot; &quot;ronald coase&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;ayn rand&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='RAND'/><title type='text'>RAND, The Corporation and It's Non-shareholders</title><content type='html'>&lt;P/&gt;11 June 2008 I attended another ALoud talk at the Los Angeles Public Library.  The topic that night, "Soldiers of Reason: The RAND Corporation and the Rise of the American Empire".

&lt;P/&gt;When I was in college, the idea of working for a 'think tank' was very appealing.  I read some early book on the phenomenon, and naively thought of think tanks as an extension of the college dormatory all night yak session.  The speaker was not totally negative about RAND, but pointed out that they had successes on some studies, failures on others.  Most people don't realize that today it is not the little Dutch boy plugging the dike hole that keeps Holland from getting flooded, but a RAND Corp. study.

&lt;P/&gt;The speaker grabbed my attention when in the first few minutes of the talk phrases like 'Ayn Rand', 'Milton Friedman', 'Chicago School of Economics' and 'logical expectations' were brought up.  The speaker criticized a lot of RAND's studies and results as being flawed by describing people as 'logical actors'.  He mentioned the idea, as an example, that Corporations only have a duty to maximize profits for their shareholders.

&lt;P/&gt;This may have been an underlying belief at RAND, but to associate such naive ideas with Milton and the 'Chicago School' is doing them a disservice.  Economist's have long been dealing with the idea of 'externalities', what the others might call side effects.  Prominently, &lt;A HREF="http://en.wikipedia.org/wiki/Ronald_Coase"&gt;Ronald Coase&lt;/A&gt; of the University of Chicago developed the so called &lt;A HREF="http://en.wikipedia.org/wiki/Coase_theorem"&gt;"Coase's Law"&lt;/A&gt; to provide a guide on this topic.

&lt;P/&gt;But actually, you can understand the idea by a simple observation.  Maximizing the profits of the shareholders may be the most obvious goal of a corporation, but they clearly have others.  There are usually more non-shareholders than shareholders, and not provoking them into a lynch mob out to destroy the corporation and it's owners is clearly something they have to keep in mind.

19 June 2008&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-1806292245181248415?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/1806292245181248415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=1806292245181248415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/1806292245181248415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/1806292245181248415'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/06/rand-corporation-and-its-non.html' title='RAND, The Corporation and It&apos;s Non-shareholders'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-6538846604828463767</id><published>2008-06-09T03:28:00.000-07:00</published><updated>2008-07-10T00:17:05.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash &quot;syntax check&quot; chmod scripting sed'/><title type='text'>A bash Tool</title><content type='html'>&lt;P/&gt;I was writing a bash script the other day, and got fed up with having to take seperate steps to handle a lot of the routine steps to make it useable.  So, I piled them all together.  This bundles together several ideas I been exposed to in the last week.

&lt;HR&gt;
&lt;P/&gt;&lt;PRE&gt;

#!/usr/bin/env  bash

#     -  See 'man env' and the discussion involving 'env'
#        and invoking Perl
#        in "Programming Perl", by Larry Wall

#   bcmp, Bash "CoMPiler"
#   this program really just runs some housekeeping
#   chores you should do before trying to run a bash script.
#   This is partly inspired by a discussion of software
#   configuration management I read somewhere
#   (source forgotten) discussing the nightly 'build'
#   of some perl scripts, which rather than compiling them
#   they were put through regressions tests to verify they
#   were ready to run.
#   Many of the commands used in this were things I'd come
#   across lately that seemed to fit in with this idea.
#
#   7 June 2008 Dallas E. Legan II

USAGE="${0##*/}   -h | &amp;lt;script&amp;gt;"  ;

THESCRIPT=${1:?"What script file? Usage: ${USAGE}"}  ;

[ -f ${THESCRIPT} ]  || { echo ${USAGE}  ; exit ; }   ;

set -e    ;

#     - This causes bash to go into 'abort on command error' mode
#       See "Linux Journal", Feb. 2008, p. 10, "Letters"
#       "mkdir Errors Even More Trivial", Ed L. Cashin
#       &lt;A HREF="http://www.linuxjournal.com/article/9957"&gt;http://www.linuxjournal.com/article/9957&lt;/A&gt;
#       This is also documented in 'man bash' and 'help set'
#       in somewhat obscure, too understated a way.
#       9 July 2008 addition:
#       This is also referenced in
#       the "bash Cookbook",
#       Carl Albing, JP Vossen &amp; Cameron Newham
#       O'Reilly, (C) 2007
#       ISBN-10: 0-596-52678-4
#       ISBN-13: 978-0-596-52678-8
#       &lt;A HREF="http://www.bashcookbook.com/"&gt;http://www.bashcookbook.com/&lt;/A&gt;
#       p. 75 - 76
#       Recipe 4.6 "Using Fewer if Statements"

sed  -i 's/ *$//'   ${THESCRIPT}  ;

#      - to strip out trailing blanks, particularly annoying
#        after '\'   'line continuations'
#        '-i' causes 'editing in place'.
#        (Addition 1 July 2008:)
#        I came across another reason for this
#        in the "bash Cookbook",
#        p. 57 - 59,
#        Recipe 3.3 "Preventing Weird Behaviour in a Here-Document"
#        'trap' on page 59 in particular.
#        Basicly, trailing spaces on here document delimiters
#        can cause a bad day.
#        --
#        Alternatively, this might be done using
#        'ed', to make it more traditional and portable.


#       For now, I'm leaving out this idea,
#       but you might want to install some commands
#       to verify that the number of
#       '('  == ')'   (outside 'case' statements)
#       '['  == ']'
#       '{'  == '}'
#       Total number of "'" and '"' are even, etc.
#       Seperate checks for these might make
#       make interpreting the results easier to figure out.

chmod  ugo+x   ${THESCRIPT}   ;

#     - simply to set the permissions to executable

bash -n  ${THESCRIPT}  ;

#     - to do a simple syntax check
#       per the "bash Cookbook",
#       p. 476 - 477
#       Recipe 19.12 "Testing bash Script Syntax"
#       also 'man bash' and 'help set',
#       where this is obscurely documented.

cp ${THESCRIPT}   ~/bin/   ;

#     - Lastly, copy the script to a directory in PATH,
#       this could be any satisfactory location.

#       You might also want to check the script into some
#       version control system at this point,
#       or runs some functional/regression tests.

echo  ${THESCRIPT}   seems ready to run    ;
#  9 July 2008 addition:
#  This is an idea Garth told me about while at
#  Rockwell - when it doesn't conflict with the
#  purpose of the program, it's good to have a
#  message telling if it succeeded or not.
#  This was in the mainframe world,
#  and this can conflict with the needs of
#  Unix programs, but a good idea when practical.
#        END OF SCRIPT

&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-6538846604828463767?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/6538846604828463767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=6538846604828463767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/6538846604828463767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/6538846604828463767'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/06/bash-tool.html' title='A bash Tool'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-6480972144563240419</id><published>2008-06-09T03:23:00.000-07:00</published><updated>2008-06-18T02:16:29.841-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lynx'/><category scheme='http://www.blogger.com/atom/ns#' term='tagsoup'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='sortasgml'/><category scheme='http://www.blogger.com/atom/ns#' term='privoxy'/><title type='text'>Google Panic</title><content type='html'>This post was originally mailed in to 
mailto:larryhsfriends@yahoogroups.com, 8 June 2008

-- 

&lt;P/&gt;Yesterday, I got a scare when I logged into GMail with Lynx.  There were a bunch of check boxes, one for each message, but no link to actually view each of the messages.  This put me in shock, my confidence in Google hanging in mid air
just off the edge of the cliff.

&lt;P/&gt;I floundered around a bit to verify that I was in their basic html user interface (I was) and then looked at the actual html source code.  All the links to view the messages were there, but inspection of the markup language source code showed that there were some missing closing tags with each message, the probably cause of the problem.  There was no proliferation of javascript/AJAX as I had feared, it is probably just a mistake by some new CGI programmer.

&lt;P/&gt;I sent them some email (that still worked :-) ), explaining the problem, pointing out the exact spot and probable missing tags that belonged on the table/row of each inbox message.  I think having their basic html user interface output proper html is important to Google, this is the 'Plan B' not just for text mode and other alternative browsers but the many mobile devices they want to get market penetration
on.  

&lt;P/&gt;So we'll see what happens.

Dallas E. Legan II / legan@acm.org / dallas.legan@gmail.com / aw585@lafn.org
http://isthereanotherquestion.blogspot.com

&lt;P/&gt;18 June 2008 Addenda

&lt;UL&gt;Since the above was blogged, I found a couple of ways around the above problem.  I should of saved a sample of the HTML when the problem first occured to verify that there haven't been any changes in the mean time.
&lt;LI/&gt;&lt;UL&gt;For Lynx, &amp;#094;V toggles between two different HTML parsers.
     &lt;LI/&gt;The apparent default parser is 'SortaSGML', which follows strict, formal standards, and is prone producing bad results when confronted by poorly written markup.
     &lt;LI/&gt;The alternate 'TagSoup' parser, which will put up with almost any violation of standards.  This of course is the one that can deal with the new GMail format.
     &lt;/UL&gt;
&lt;LI/&gt;After some experimentation, I found that the problem seemed to be caused by some '&amp;lt;div&amp;gt;' tags.  The exact purpose of these tags seemed to somewhat unclear, especially in major browsers of the time a pocket HTML reference I use was written.  A privoxy edit to eliminate them solved the problem:
&lt;PRE&gt;
s&amp;#124;&amp;lt;/?div&amp;gt;&amp;#124;&amp;#124;igsx
&lt;/PRE&gt;
&lt;/UL&gt;

Dallas E. Legan II / legan@acm.org / dallas.legan@gmail.com / aw585@lafn.org
http://isthereanotherquestion.blogspot.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-6480972144563240419?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/6480972144563240419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=6480972144563240419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/6480972144563240419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/6480972144563240419'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/06/google-panic.html' title='Google Panic'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-670744724621706664</id><published>2008-06-03T00:50:00.000-07:00</published><updated>2008-06-03T02:56:19.570-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='screen shells login &quot;text consoles&quot; &quot;virtual consoles&quot; startvt gpm lynx login.defs pam_env exec'/><title type='text'>Full Screen Ahead</title><content type='html'>&lt;P/&gt;The last couple of days, Peter posted to &lt;A HREF="http://www.uuasc.org"&gt;uuasc@uuasc.org&lt;/A&gt; about trying to launch a program in Linux/Unix, background it, then launch screen, the virtual console manager, and have access to process control from inside screen.

&lt;P/&gt;After some short but highly technical explinations on why this was probably not possible, I posted an idea, and Peter responded:


&lt;P/&gt;&lt;PRE&gt;
From: Peter .......
To: uuasc@uuasc.org
Date: Tue, 3 Jun 2008 03:31:09 +0000 (UTC)
Subject: Re: Switching to Screen
That is a brilliant idea!

&amp;gt;&amp;gt; ...........


&amp;gt;An ounce of prevention is worth a pound of cure.
&amp;gt;A simpler approach is to launch screen in your *profile
&amp;gt;script, and never leave it without a clearcut reason.  :-)
&amp;gt;(As i discussed in my bash talk at UUASC way back when,
&amp;gt;or last week at IEEE-CS/Lilax).
&amp;gt;
&amp;gt;Regards, Dallas E. Legan II / legan@acm.org / aw585@lafn.org
&amp;gt;..........
&lt;/PRE&gt;

&lt;P/&gt;Well, to merit such accolades, maybe I ought to fill in on what I mean by this.  Typically, I launch screen in my ~/.bash_profile script with the phrase:

&lt;P/&gt;screen &amp;#045;R

&lt;P/&gt;Which usually does a good job of grabbing any detached screen sessions that may be floating around, and if any aren't, it launches a new one.

&lt;P/&gt;Now, what are some 'clearcut reasons' to leave screen?

&lt;UL&gt;I've encountered three instances I can recall.
&lt;LI&gt;I accidently cat some file to standard out, it turns out it wasn't really a text file, but a binary, and it messes up the console so bad 'stty sane', 'reset' etc. fail to clear things up.  Sometimes, I've found detaching screen, trying reset and such will get the tty working properly before you reattach.  I seem to recall instances you might need to logout and then 'kill -HUP 1' to restart intit and be really serious about this sort of thing.
&lt;LI&gt;I'm running some sort of remote console connection with screen at the opposite end.  I like to use ssh inside kermit for this sort of thing, and if you are running screen at both ends you have to escape your screen escape sequences to the other end of the remote session.  I find it simpler to login locally on an inittab controlled vitual console, not runing screen, and that way I can just skip the escape key to send screen key sequences to the remote end of the session.
&lt;LI&gt;Mouse responsive console apps like Lynx haven't responded to the rodent in the past for me when run in screen.  I recall doing some surfing in the past to investigate this and finding some posting about how screen doesn't handle mouse keys and isn't able to pass them on to the application.  You can run Lynx in another inittab controlled console, or like I do, I have a short Lynx EXTERN script to use startvt to open another console for the text mode browser if I want to use the mouse.  There are probably other apps with this problem.  I should note that gpm is not one of them, it's basic cut and past operations seem impervious to it.
&lt;/UL&gt;

&lt;P/&gt;Until I understood the first two cases above, I used to be much more hardcore about this.   I'd actually end my .bash_profile script with a line like:

&lt;P/&gt;exec screen &amp;#045;R

&lt;P/&gt;As anyone familiar with what the shell/API call exec does knows, this actually replaces the login shell entirely with screen, screen simply dropping in place of bash and taking over the default I/O.  The problem with this is that if you want to run something else like kermit and/or ssh, or detach screen to do something like run reset, then reattach you are out of luck.  Ending screen simply logs you out.  Another aspect of this, my experience seemed to indicate, was that you need to put all the real work you want done besides launching screen in your .bashrc, non-login initiallization script.

&lt;H4&gt;But Wait, There's More&lt;/H4&gt;

&lt;P/&gt;That's not as hardcore as you could get.  In the /etc/login.defs file there is a section:

&lt;PRE&gt;

#
# Instead of the real user shell, the program specified by this parameter
# will be launched, although its visible name (argv[0]) will be the shell's.
# The program may do whatever it wants (logging, additional authentification,
# banner, ...) before running the actual shell.
#
# FAKE_SHELL /bin/fakeshell

&lt;/PRE&gt;

&lt;P/&gt;Yes, you read that correctly.  I think a main purpose of this feature is insert programs like 'script' for auditing or simple minded honeypot applications (and I've heard of intruder's being trapped by similar methods).  However, I have successfully put in:


&lt;P/&gt;FAKE_SHELL /usr/bin/screen

&lt;P/&gt;commented out the screen in ~/.bash_profile, and the program in question did run before bash ran it's profile script.  Capabilities like this and those of the pam_env module start to override the shell startup scripts considerably.

&lt;P/&gt;An alternative plan might be to add /usr/bin/screen to /etc/shells,
add a line 

&lt;P/&gt;shell /bin/bash

&lt;P/&gt;into /etc/screenrc or ~/.screenrc, and replace your default shell in /etc/passwd with /usr/bin/screen. I have to confess to not experimenting with this to any serious extent.

&lt;P/&gt;Hopefully, you've gotten something out of this diatribe.  It's mostly pulled from my bash and password talks (with maybe a bit from an improvised section of the 'Greatest Hits' talk) given initially at &lt;A HREF="http://www.uuasc.org"&gt;UUASC&lt;/A&gt; meetings.  I felt like this was an opportunity to consolidate some of this information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-670744724621706664?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/670744724621706664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=670744724621706664' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/670744724621706664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/670744724621706664'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/06/full-screen-ahead.html' title='Full Screen Ahead'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-1275728323940673482</id><published>2008-06-01T04:28:00.000-07:00</published><updated>2008-06-01T05:24:11.064-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;media streams&quot; lynx privoxy mms mplayer accessibility'/><title type='text'>Fresh From a Stream</title><content type='html'>&lt;P/&gt;At tonight's &lt;A HREF="http://www.sfvlug.org/"&gt;San Fernando Valley LUG&lt;/A&gt; meeting, our friend Larry was at it again, trying to access media streams from &lt;A HREF="http://www.freetv.com"&gt;http://www.freetv.com&lt;/A&gt; from the text console, preferably from the Lynx browser.  After a lot of floundering around, we managed to play a few of the URLs given in descriptive text (not expressed in HTML links) with mplayer.

&lt;P/&gt;After arriving home, here are some things I found to explore the site with.

&lt;P/&gt;Install Privoxy, and add the following to your /etc/privoxy/user.action file(or perhaps the /etc/privoxy/standard.action if the release of Privoxy you are using doesn't have the user.action file):

&lt;PRE&gt;

{ +filter{freetv} }
.freetv.com

&lt;/PRE&gt;

&lt;P/&gt;Then add the following to /etc/privoxy/user.filter (or /etc/privoxy/standard.filter if your Privoxy doesn't use a user.filter):

&lt;PRE&gt;

#################################################################################
#
# freetv: Try to convert certain URLs floating in space to actual links
#               05/31/2008 d.e.l.
#
#################################################################################
FILTER: freetv Try to convert certain URLs to automaticly launch jlinks

s&amp;#124; (mmst&amp;#063;://[^ &amp;lt;&amp;gt;]*) &amp;#124;&amp;lt;A href="$1"&amp;gt;$1&amp;lt;/A&amp;gt;&amp;#124;igsx


&lt;/PRE&gt;

&lt;P/&gt;Restart privoxy, typically with 

&lt;P/&gt;sudo /etc/init.d/privoxy restart

&lt;P/&gt;Then, install this script, I called it mmStreamer somewhere in a directory in your PATH variable:

&lt;PRE&gt;

#!/bin/bash


URL="${1}"    ;


TURL=${URL#*://}      ;
TURL=${TURL%%[/?]*}   ;
echo 'Domain: '  ${TURL}          ;

ping  -qc 3  ${TURL}    ;
DOMAIN_TEST_RESULT=$?  ;

if [ ! ${DOMAIN_TEST_RESULT} ]
then
  echo "The domain ${TURL} seems bogus.  Hit return to continue."  ;
  read  BOGUS  ;
  exit  ;
fi

sudo mplayer -vf-clr "${URL}"    ;



sudo mplayer -vf-clr -playlist "${URL}"   ;

exit  ;

&lt;/PRE&gt;

&lt;P/&gt;You may need to modify the lines with mplayer to match how you normally invoke mplayer, just make sure one has the -playlist parameter so one or the other may run.  And of course, make sure to adjust permissions with chmod ugo+x mmStreamer.  There are probably many improvements that can be made to this script, but it is partly a proof of concept script, partly something to get rolling with some quick results.

&lt;P/&gt;Then to your lynx.cfg file, add to the EXTERNALs section add:

&lt;P/&gt;EXTERNAL:mms:mmsStreamer %s:TRUE:TRUE

&lt;P/&gt;The last 'TRUE' will cause mmsStreamer to be run automaticly when you activeate a link with type mms.

&lt;P/&gt;Now, the next time you go to &lt;A HREF="http://www.freetv.com"&gt;http://www.freetv.com&lt;/A&gt;, you should be able to play some of the mms stream URLs, that will now be actual links.  Some of them seemed to be mere ads, others seemed to have bonafide content.  A few might be missed, I noticed one with the typo of two colons (mms:://) and a Google search of the site turned up couple of http streams.  These seem to be the exceptions that will have to still be handled by hand.  A lot seemed no longer there, but perhaps a better choice of mplayer switches and settings might tap into them.

&lt;UL&gt;A few things turned up browsing the site.  
&lt;LI&gt;One is that I was reminded of the http://www.la36.org site, with a lot of Los Angeles local content.  I didn't have the time to investigate if it is being updated, but I did notice a few videos of past L.A. Public Library / Library Foundation ALoud talks.  A few of these are of technical interest, such Craig "List" Newmark, and one on the Google Book project.
&lt;LI&gt;I probably should ad some capability to deal with &lt;A HREF="http://www.la36.org"&gt;http://www.la36.org&lt;/A&gt; to &lt;A HREF="http://usnatch.sourceforge.com"&gt;usnatch&lt;/A&gt;
&lt;LI&gt;I was spurred to search Wikipedia for 
&lt;A HREF="http://www.freetv.com"&gt;http://www.freetv.com&lt;/A&gt;  and it turned up &lt;A HREF="http://en.wikipedia.org/wiki/Public_access_stations_%28United_States%29"&gt;http://en.wikipedia.org/wiki/Public_access_stations_%28United_States%29&lt;/A&gt;.  Perhaps some creative search will turn up a few other pages to explore.
&lt;LI&gt;&lt;A HREF="http://www.drgenescott.com"&gt;http://www.drgenescott.com&lt;/A&gt; didn't seem to be active, but it did remind me of the many times I'd passed him the TV dial in days past, and the many discussions of this archtypal L.A. CA personality.
&lt;/UL&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-1275728323940673482?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/1275728323940673482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=1275728323940673482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/1275728323940673482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/1275728323940673482'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/06/fresh-from-stream.html' title='Fresh From a Stream'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-7312710192796756338</id><published>2008-06-01T03:47:00.000-07:00</published><updated>2008-06-19T02:17:16.225-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video.google.com &quot;screen scraping&quot; accessibility usnatch'/><title type='text'>Goggling Google</title><content type='html'>&lt;P/&gt;This is an extract from what was originally posted on the 
larryhsfriends@yahoogroups.com
mailing list Tuesday 27 May 2008.
It's posted here on request of a mutual friend, Charles.  

&lt;P/&gt;I've deliberately avoided replacing the extravigant URLs with Tinyurl.com abbreviations because these URLs would normally be used only once and to illustrate all the dirty work involved in this branch of screen scraping and accessibility issues.

&lt;P/&gt;My blind friend Larry  was trying to access a video (to listen to, smart alec),
located by going to http://video.google.com,
&lt;UL&gt;
&lt;LI&gt;clicking the radio button to limit the search to Google hosted videos, 
&lt;LI&gt;searching on the term 'debate'.
&lt;LI&gt;Lynx numbered link #69, was an MSNBC debate from October 31, 2007,
the hosting page being at
&lt;LI&gt;http://video.google.com/videoplay?docid=8023519711099005229&amp;q=debate&amp;ei=IYM7SOuXEKDk4AL5473bAw
&lt;/UL&gt;

&lt;HR&gt;

&lt;P/&gt;Dallas:

&lt;P/&gt;You are correct that there was no link for a .mp4 on that particular
page / video, so they don't currently all have that option.
I have to agree with that.

&lt;P/&gt;However  (grin) by a process too complicated to explain right now,
I was able to get a bloated, rather complicated URL
for the video in question.

&lt;P/&gt;Try this, you'll have to cut and paste it, making sure the
whole thing, 4 lines, is on one line, quoted to make sure parts aren't
passed into background as bogus batch jobs:

&lt;P/&gt;http://vp.video.google.com/videodownload?version=0&amp;secureurl=QwAAAD0W5d-wPcVVeTl7QrGr5zTKridzSGf41ASu20PecohoZi2sOgFpCHjq8L-P4O1pMCjFMcitHUDMkPHMpztjyF2Gfx5zzGZQK-3bM6BN4oWB&amp;sigh=NrWxm3ARGWrIAA7a4p9rRb4PcMs&amp;begin=0&amp;len=6395300&amp;docid=8023519711099005229

&lt;P/&gt;Since I stepped through this once, in theory it can be automated.
I've decided to try and recreate it to record this for posterity.
Looking at the page you cited I noted the suggested, simplified
URL for embedding at the bottom of the page in some suggested
html:

&lt;P/&gt;http://video.google.com/googleplayer.swf?docid=8023519711099005229

&lt;P/&gt;I then fed this into gnash with this command:

&lt;P/&gt;$ gnash -vr 2 'http://video.google.com/googleplayer.swf?docid=8023519711099005229'

&lt;P/&gt;-v is for verbose
&lt;P/&gt;-r 2 is to play sound only, no video.

&lt;P/&gt;This cranked out about a screen of hard to understand very
technical messages, and eventually stalled out, but before
that it spit out a message:

&lt;P/&gt;17430] 22:13:13: SECURITY: Loading XML file from url:
'http://video.google.com/videofeed?fgvns=1&amp;fai=1&amp;docid=8023519711099005229&amp;hl=undefined'

&lt;P/&gt;before I lost patience and hit control c.
This seems to have the same hash string, all numeric at the original
URL, so everthing up to here could be arrived at in a shortcut
manner knowing what is crucial in the original URL and the form
of this final url.  That is to say, gnash is not essential to get to here!

&lt;P/&gt;I then dumped that URL with the command:

&lt;P/&gt;$ lynx -source  'http://video.google.com/videofeed?fgvns=1&amp;fai=1&amp;docid=8023519711099005229&amp;hl=undefined'

&lt;P/&gt;and studying the output I noticed a string:

&lt;P/&gt;vidurl=http%3A%2F%2Fvideo.google.com%2Fvideoplay%3Fdocid%3D8023519711099005229%26hl%3Den&amp;amp;usg=AL29H2354Bu9OKKGOkt8CkFi7UeioVIIgQ"

&lt;P/&gt;and then fed that into a tool I have 'dex' (de-hex encode) to 
convert the % escaped hex encoded characters back into 
straight characters:

&lt;P/&gt;$ dex &lt;&lt;&lt; 'http%3A%2F%2Fvideo.google.com%2Fvideoplay%3Fdocid%3D8023519711099005229%26hl%3Den&amp;amp;usg=AL29H2354Bu9OKKGOkt8CkFi7UeioVIIgQ'

&lt;P/&gt;and it output:

&lt;P/&gt;http://video.google.com/videoplay?docid=8023519711099005229&amp;hl=en&amp;amp;usg=AL29H2354Bu9OKKGOkt8CkFi7UeioVIIgQ

&lt;P/&gt;I then did another:

&lt;P/&gt;$ lynx -source
&lt;P/&gt;'http://video.google.com/videoplay?docid=8023519711099005229&amp;hl=en&amp;amp;usg=AL29H2354Bu9OKKGOkt8CkFi7UeioVIIgQ'

&lt;P/&gt;and saw in the output of it the string:

&lt;P/&gt;videoUrl\x3dhttp://vp.video.google.com/videodownload%3Fversion%3D0%26secureurl%3DQwAAAD0W5d-wPcVVeTl7QrGr5zTKridzSGf41ASu20PecohoZi2sOgFpCHjq8L-P4O1pMCjFMcitHUDMkPHMpztjyF2Gfx5zzGZQK-3bM6BN4oWB%26sigh%3DNrWxm3ARGWrIAA7a4p9rRb4PcMs%26begin%3D0%26len%3D6395300%26docid%3D8023519711099005229\x26

&lt;P/&gt;and feeding the string between the \x escaped hex numbers into dex again:

&lt;P/&gt;$ dex &lt;&lt;&lt;
&lt;P/&gt;'http://vp.video.google.com/videodownload%3Fversion%3D0%26secureurl%3DQwAAAD0W5d-wPcVVeTl7QrGr5zTKridzSGf41ASu20PecohoZi2sOgFpCHjq8L-P4O1pMCjFMcitHUDMkPHMpztjyF2Gfx5zzGZQK-3bM6BN4oWB%26sigh%3DNrWxm3ARGWrIAA7a4p9rRb4PcMs%26begin%3D0%26len%3D6395300%26docid%3D8023519711099005229'

&lt;P/&gt;got the final URL:

&lt;P/&gt;http://vp.video.google.com/videodownload?version=0&amp;secureurl=QwAAAD0W5d-wPcVVeTl7QrGr5zTKridzSGf41ASu20PecohoZi2sOgFpCHjq8L-P4O1pMCjFMcitHUDMkPHMpztjyF2Gfx5zzGZQK-3bM6BN4oWB&amp;sigh=NrWxm3ARGWrIAA7a4p9rRb4PcMs&amp;begin=0&amp;len=6395300&amp;docid=8023519711099005229


&lt;P/&gt;This is rediculously complicated, and obviously needs to be
automated (as it usually is via javascript!  :-)  )
But it produced working result and is describable.


&lt;P/&gt;(after a trip to Food for Less)
&lt;P/&gt;However there is an easier way to do this.
I just fed the original URL into usnatch:

&lt;P/&gt;usnatch 'http://video.google.com/videoplay?docid=8023519711099005229&amp;q=debate&amp;ei=IYM7SOuXEKDk4AL5473bAw' -u

&lt;P/&gt;and it output this url, probably by way of scraping it from 
KeepVid.com:

&lt;P/&gt;http://vp.video.google.com/videodownload?version=0&amp;secureurl=twAAAD0W5d-wPcVVeTl7QrGr5zTKridzSGf41ASu20PecohoD0a7UlL0hOryryfecm0kR0Az1TAZjqmcK4Jhzww767-M--b5VXs0aG2FyEksUHG7jZMWLv12yp10ahgVqupjVDS1ehay8IuXr_K5CJYVeSwkYqKv5owxTDiGz7X7xKbrgQVNx-7ue4RTDjur5LWmoqryoLSCkqAgx6UteEa8LIwTCBSDJhB3jzak8cwIcF70G2Np9NfuVtZ8OmJwuiMRsg

&lt;P/&gt;which played when I used it with mplayer, making sure to enclose the
url in single quotes after pasting into the command.
So it could of been played from Lynx and I'm downloading the 
file from Google right now.  The trick is to back up from the
page where they want you to view it, and be on top of the video.google.com
search results link to run usnatch.
Alternatively, from that page you could invoke usnatch
from the original url on the original url by using the
comma key instead of the period key to invoke the usnatch
external program.  Period calls externals for the currently
active link, comma calls externals for the current page.


&lt;HR&gt;

&lt;H4&gt;2008 June 1 Afterward&lt;/H4&gt;
&lt;P/&gt;...And of course the ultimate goal of the long exercise is to include the algorithm described in &lt;A HREF="http://usnatch.sourceforge.net"&gt;usnatch&lt;/A&gt;, with the idea of making it less dependent on scraping information from sites like 
&lt;A HREF="http://KeepVid.com"&gt;http://KeepVid.com&lt;/A&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-7312710192796756338?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/7312710192796756338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=7312710192796756338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/7312710192796756338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/7312710192796756338'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/06/goggling-google.html' title='Goggling Google'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-3632131357727528091</id><published>2008-05-28T01:20:00.000-07:00</published><updated>2008-05-28T01:54:31.772-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip sip skype hardware requirements'/><title type='text'>Truth or Skype?</title><content type='html'>&lt;P/&gt;Recently I had to install Skype in order to be able to contact a job lead in the manner most convenient for them.   After my recent successes with SIP VOIP I thought it was time to try Skype, I'd heard much good about it.

&lt;P/&gt;I went to their &lt;A HREF="http://www.skype.com"&gt;site,&lt;/A&gt; located the Linux build I needed, scanned the hardware requirements.  I thought I saw the requirements say that it only needed a 400 MHz CPU and about 128 MB of memory.  The installation on my desktop computer went smooth, a simple dpkg installation of a .deb package.  When I finished and tried calling their echo test number, echo123, I was greatly disappointed.  The incoming sound was fine, but I'd have to rate what I heard of my voice echoed back as one of the worst audio experiences of my life, that badly distorted.

&lt;P/&gt;I installed Skype on another computer, a much more powerful media server and found the performance was fine.  The problem then was with my desktop.  I went back to the download page, and noticed that the required CPU speed was 1 GHz, not the 400 MHz I remembered seeing.  I searched around some and did find a page on Skype's support site that quoted the speed I remembered seeing.  &lt;A HREF="http://support.skype.com/index.php?_a=knowledgebase&amp;_j=questiondetails&amp;_i=184&amp;nav2=Skype%20for%20Linux"&gt;http://support.skype.com/index.php?_a=knowledgebase&amp;_j=questiondetails&amp;_i=184&amp;nav2=Skype%20for%20Linux&lt;/A&gt; Whether they changed this after I downloaded the .deb or if I had chased off surface pages of their web sites looking for the information I can't recall.  I'd heard so much about good about Skype I didn't expect any problem, especially after the SIP successes I'd had lately.

&lt;P/&gt;Shane on irc.freenode.net suggested some terms to google and after much flondering I found a couple of pages that gave older versions of Skype's client program.

&lt;UL&gt;
&lt;LI&gt;&lt;A HREF="https://developer.skype.com/Download/OldVersionsCopy?action=AttachFile&amp;do=view&amp;target=skype_generic-1.4.0.118-1_i386.deb"&gt;https://developer.skype.com/Download/OldVersionsCopy?action=AttachFile&amp;do=view&amp;target=skype_generic-1.4.0.118-1_i386.deb&lt;/A&gt;
&lt;LI&gt;&lt;A HREF="http://eclipxe.com.mx/debian/contrib/skype/?C=N;O=D"&gt;http://eclipxe.com.mx/debian/contrib/skype/?C=N;O=D&lt;/A&gt;
&lt;/UL&gt;

&lt;P/&gt;After an abortive try at 1.4, I found a version 1.3 that seems to work fine.  There were some comments that turned up indicating some people found versions after a 1.3 release to be incompatible with some Linux Distros.  Whether this was because people using Slackware Linux had no other need to update their hardware or a genuine software incompatability I don't know.

&lt;P/&gt;I also &lt;B&gt;thought&lt;/B&gt; I saw Skype claim their program works over 33.7 KHz dialup lines.  I consider this conclusive evidence that they use some form of audio compression, which could explain why there is increased need for CPU speed.  Probably not a problem on more modern computers, but one form of audio compression, encoding to .mp3, is definitly not a real time process on my computer so this probably backs the problem cause scenario.

&lt;P/&gt;Anyway, this might save someone some time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-3632131357727528091?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/3632131357727528091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=3632131357727528091' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/3632131357727528091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/3632131357727528091'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/05/truth-or-skype.html' title='Truth or Skype?'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-8646964399977238852</id><published>2008-05-26T05:19:00.000-07:00</published><updated>2008-05-28T01:56:07.880-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip sip lynx mplayer www.gizmoproject.com linphonec nat firewall'/><title type='text'>A Phone Call From Ralf</title><content type='html'>&lt;P/&gt;Today I recieved a phone call from Ralf, a friend of me
and some of my other acquantances.
The thing that was unusual about the call was that it was
the first I have &lt;B&gt;recieved&lt;/B&gt; using Voice 
Over Internet Protocol (VOIP) / Session Initiation Protocol (SIP).
I've placed many outgoing calls in the past but never recieved
any till today.  The call was using the services and accounts of
the Gizmo Project (http://www.gizmoproject.com)  by both of us.

&lt;P/&gt;One of the cool things I like about Gizmo's service is that
if you are not logged in with it, and you recieve a call,
they will email you a .wav file of any voice message a caller
leaves for you, effectively turning your inbound email into
an answering machine.  I've played these wav files with
mplayer while browsing my email's web interface with
Lynx.  I consider this an indication of keeping things
interoperable by sticking with basic, universal
protocols and formats.

&lt;P/&gt;I'd just gotten outgoing calls using my Gizmo account to work
yesterday with the Linphonec client, from the Debian Linux
distribution package linphone-nox.  This particular client
is a text console application that simply presents you with
a prompt to type in commands, and does offer a 'help' command
to get a list and further details of possible commands as well 
as tab completion.  In general the commands are fairly straight 
forward, but I do have a few complaints.
It does not respond to 'exit', you must type in 'quit' to 
leave the program.  There is no command to toggle muting
on the microphone, so I have to put it in a wrapper
alias to handle this with an 'amixer' command I figured
out to work with my particular sound card.
This probably varies from soundcard to soundcard.
Also there is no direct command to dump the call log
(the output of the 'call-log' command) into a file for 
saving.  There may be a switch, '-l &lt;filename&gt;' to handle
saving the logfile, but that will need to be folded into the wrapper
alias, so it has to be thought out a head of time.

&lt;P/&gt;One of the things that was notable about the call was
that it traversed three firewalls, two of them
performing NAT (Network Address Translation).
There had been some adjustments to these firewalls to handle
the outgoing calls, but apparently that was sufficient to
enable incoming calls.  NAT is frequently considered the
bane of VOIP, but apparently, at least on a limited scale,
it can be dealt with.

&lt;P/&gt;Anyway, before the day ended I'd recieved
several other calls from Ralf and another friend
further confirming that the combination of software,
hardware and protocols provided functioning 
telephony.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-8646964399977238852?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/8646964399977238852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=8646964399977238852' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/8646964399977238852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/8646964399977238852'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/05/phone-call-from-ralf.html' title='A Phone Call From Ralf'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-4964397897912754719</id><published>2008-04-30T04:03:00.000-07:00</published><updated>2008-04-30T04:44:44.988-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vlc tv television channels frequencies pvr cards v4l'/><title type='text'>Quick and Dirty TV Tuner for VLC</title><content type='html'>&lt;P&gt;I'm partial to mplayer for most of my video and other media 
playing, but found myself using VLC a lot recently to 
verify that a V4L (Video for Linux) compatible 
'PVR' (Personal Video Recorder) card
had proper driver installation and was functioning correctly.
I was frequently picking 'File / PVR' and entering

&lt;P&gt;pvr:/dev/video0:channel=0:norm=ntsc:size=640x480:frequency=561250

&lt;P&gt;something I find as awkward to type in as you probably would also.  This sets the PVR card to 'channel' zero, the TV tuner, sets it for NTSC broadcast format, a typical screen pixel size, and a frequency from the standards that tunes to the local broadcast channel 28 (KCET, Los Angeles, CA).  Fumbling around some, I figured out how to save this as a playlist, and since forgot that process.

&lt;P&gt;But what I did remember was the format that the playlist was in.  I used that sample playlist file, the information at &lt;A HREF="http://en.wikipedia.org/wiki/North_American_broadcast_television_frequencies"&gt;http://en.wikipedia.org/wiki/North_American_broadcast_television_frequencies&lt;/A&gt; and created a 'TV tuner playlist', stashed online at &lt;A HREF="http://www.lafn.org/~aw585/na.tv.channels.pls"&gt;http://www.lafn.org/~aw585/na.tv.channels.pls&lt;/A&gt;

&lt;P&gt;The first few entries are what I want for a default channel, both the 'proper' and 'actual' frequency (perhaps the card or Wikipedia still needs some adjustment), entries for S-Video and Composite settings for the PVR card, and then settles into the standard North American channels in proper order.  Using information online at Wikipedia it can of course be changed to personal/local needs.  Someone more knowledgable about TV technology can probably suggest improvements on the playlist/table presented.

&lt;P&gt;You can select from the VLC control panel 'Settings' / 'preferences' / 'playlist' and enter your local name of the file ('.vlc/na.tv.channels.pls' in my case, stored in the .vlc subdirectory of my home direcory) for the default playlist and save to get the first entry to start on VLC startup.

&lt;P&gt;This leaves a lot to be desired as an interface, but you just click on the previous/next stream graphics (double arrows) to move up and down the North American TV bands.  It sometimes seems to need double clicks to get past some 'humps' going down the bands past stations, but it is functional as a quick hack!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-4964397897912754719?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/4964397897912754719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=4964397897912754719' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/4964397897912754719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/4964397897912754719'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/04/quick-and-dirty-tv-tuner-for-vlc.html' title='Quick and Dirty TV Tuner for VLC'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-1344319301053339532</id><published>2008-04-29T02:40:00.000-07:00</published><updated>2008-04-29T03:39:04.840-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu bash screen lynx tinyirc ckermit gkermit kermit'/><title type='text'>Ubuntu Battle Prep</title><content type='html'>I've ended up doing several Ubuntu installs lately, and find
I have to go through a preceedure to get some
favorite tools installed while trying to dig out information
and solve problems.

&lt;UL&gt;
&lt;LI&gt;Edit /etc/apt/sources.list.  Make a second copy of all the default
sources installed, and change on all the copies 'http://archive....' to
'http://us.archive....', to give some quick and easy extra depth to the available Ubuntu .deb package archives.
&lt;LI&gt;Immediately 'sudo aptitude update' to ensure access to the latest packages.
&lt;LI&gt;edit ~/.bashrc, including lines with:
      &lt;UL&gt;
      &lt;LI&gt;set -o vi
      &lt;LI&gt;export IRCSERVER='irc.freenode.net'
      &lt;LI&gt;export IRCNICK='mr_dallas'
      &lt;LI&gt;alias realias='vi  ~/.bashrc ;  source ~/.bashrc '  ;
      &lt;/UL&gt;
&lt;LI&gt;sudo aptitude install screen lynx-cur tinyirc ckermit gkermit
&lt;LI&gt;edit /etc/lynx-cur/lynx.cfg, adding 'TEXTFIELDS_NEED_ACTIVATION:TRUE'
   (this and the below changes to lynx options move lynx from klutz to 'thought control' mode for rapid googling of answers.)
&lt;LI&gt;edit /etc/screenrc, adding 
      &lt;UL&gt;
      &lt;LI&gt;'escape ^Oo'   # this avoids a lot of conflicts of screen with other programs
      &lt;LI&gt;'startup_message off'  # for less noise when starting screen
      &lt;LI&gt;perhaps beefing up 'defscrollback' to maybe 4096.
      &lt;/UL&gt;
&lt;LI&gt;startup Lynx, go into options  ('o')
      &lt;UL&gt;
      &lt;LI&gt;change it to advanced user mode
      &lt;LI&gt;turn on 'vi' keymode
      &lt;LI&gt;For the number pad set 'Links and form fields are numbered'
      &lt;LI&gt;check the box to 'save options to disk' before accepting changes
      &lt;LI&gt;Go to and bookmark my private portal page, where I have many usefull 
          links and forms.
      &lt;/UL&gt;
&lt;/UL&gt;

This doesn't by any means duplicate all my environment on my personal machine,
but it gets some simple tools that help quickly hunt for answers and 
solve problems available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-1344319301053339532?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/1344319301053339532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=1344319301053339532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/1344319301053339532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/1344319301053339532'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/04/ubuntu-battle-prep.html' title='Ubuntu Battle Prep'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-2971469852688117336</id><published>2008-04-05T02:33:00.000-07:00</published><updated>2008-04-07T23:34:23.959-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='html lynx bookmarks fragments urls firefox'/><title type='text'>Open(ing) ID(=)</title><content type='html'>&lt;P&gt;
The other day I was editing a personal, private portal page I've created for my own use.  It has a lot of features I've been experimenting with such as accelerated login to some services by way of simplified login forms, search engine forms with a single search field set up so just hitting enter in the field starts the search etc.
&lt;/P&gt;

&lt;P&gt;
I was checking the proper HTML for internal fragment links, recalling that a quick reference book I had the form '&amp;lt;A name=&amp;quot;....' and some examples I had on another web page had '&amp;lt;A id=&amp;quot;....'.  This triggered a chain of thought when I was looking at another page, and noticed that 'id=&amp;quot;'s were sprinkled all over the place in the HTML - if you don't believe me, just take a look at the source for &lt;A HREF="http://en.wikipedia.org"&gt;http://en.wikipedia.org&lt;/A&gt;.   So - could I tack &amp;#035;xxx's on the end of a URL and have it go to some spot corresponding to the arbitrary piece of html in a web page.
&lt;/P&gt;

&lt;P&gt;
The answer for Lynx was yes, and some checking seemed to indicate the same held true for Firefox as well.  Everything up to this point may seem obvious to someone with more in depth knowledge of HTML.  My next thought though, was that I'd like to make it easier to bookmark a page with a more specific location added as an HTML fragment to the address.
&lt;/P&gt;

&lt;P&gt;
A few hours of work on the idea turned out a modest sized script that can be used as an EXTERNAL for Lynx.  It strips out the name= and id= fields of a web page, reformats them in to &amp;#035;&amp;lt;name&amp;gt; &amp;#035;&amp;lt;id&amp;gt; fragments on the URL and pumps both lists wrapped with appropriate HTML into Lynx for browsing/bookmarking.  When you're finished, just exit Lynx to resume where you left off.  An example of what gets kicked out when you run it on &lt;A HREF="http://www.google.com"&gt;http://www.google.com&lt;/A&gt;:
&lt;/P&gt;

 &lt;UL&gt;Names:

 &lt;LI&gt;&lt;A HREF="http://www.google.com/#f"&gt;#f&lt;/A&gt;
 &lt;LI&gt;&lt;A HREF="http://www.google.com/#hl"&gt;#hl&lt;/A&gt;
 &lt;LI&gt;&lt;A HREF="http://www.google.com/#ie"&gt;#ie&lt;/A&gt;
 &lt;LI&gt;&lt;A HREF="http://www.google.com/#q"&gt;#q&lt;/A&gt;
 &lt;LI&gt;&lt;A HREF="http://www.google.com/#btnG"&gt;#btnG&lt;/A&gt;
 &lt;LI&gt;&lt;A HREF="http://www.google.com/#btnI"&gt;#btnI&lt;/A&gt;
 &lt;/UL&gt;
  &lt;UL&gt;IDs:

  &lt;LI&gt;&lt;A HREF="http://www.google.com/#gbar"&gt;#gbar&lt;/A&gt;
  &lt;LI&gt;&lt;A HREF="http://www.google.com/#guser"&gt;#guser&lt;/A&gt;
  &lt;LI&gt;&lt;A HREF="http://www.google.com/#lgpd"&gt;#lgpd&lt;/A&gt;
  &lt;/UL&gt;

&lt;P&gt;
This may not seem too important when used on such a deliberately simplified page, but it makes it much easier to bookmark the search field for &lt;A HREF="http://en.wikipedia.com"&gt;http://en.wikipedia.com&lt;/A&gt;  as an example.  One weakness of this is that since most browsers make it relatively hard to bookmark such a specific location in a page, these are probably more subject to change with the whim of the HTML coder and/or their coding tools.
&lt;/P&gt;

&lt;P&gt;
'name=' didn't seem to be noticed by the browsers I checked with, but was used in the example in the reference guide I looked at, so it may change in the future (or changed in the past.).  I left it in the script.  Some example pages I checked set 'name=' and 'id=' the same on many HTML elements.  Glancing through the quick reference on HTML I found several elements that specificly allowed 'id=' attribute&amp;#058; &amp;lt;A&amp;gt;, &amp;lt;DIV&amp;gt;, &amp;lt;LAYER&amp;gt;, &amp;lt;PARAM&amp;gt; and &amp;lt;SPAN&amp;gt;.  But on closer inspection, I found many listed a '&amp;#037;coreattrs', and when I found that in the guide it included besides 'id'&amp;#059; 'class', 'style', and 'title'.  &amp;#037;coreattrs pretty much busts wide open the elements that can have 'id' attributes - &amp;lt;FORM&amp;gt;, &amp;lt;UL&amp;gt; etc.  I used this to simplify the HTML in my portal page that triggered this discussion, rolling fragments for internal navigation into lists that group related links/forms.
&lt;/P&gt;

&lt;P&gt;
This also is an example of a subject I've railed about in person on occasion, that web pages are subject to different interpretations (&amp;quot;renderings&amp;quot;) depending on circumstances and the goals of the 'viewer'.  This extreme view provides a list of everything I can think of that could be linked to on a web page.
&lt;/P&gt;

&lt;P&gt;
I've pitched the script temporarily at&amp;#058; &lt;A HREF="http://www.lafn.org/~aw585/microBkMrk"&gt;http://www.lafn.org/~aw585/microBkMrk&lt;/A&gt;
&lt;/P&gt;

&lt;H4&gt;
7 April 2008 Addendum:
&lt;/H4&gt;

&lt;UL&gt;
A few other points about this topic:
&lt;LI&gt;Since I suspect that the fragment addresses will be more subject to change than a base address for a page, it may be more important to monitor pages bookmarked/linked to in this manner for changes by whatever means.
&lt;LI&gt;Conversely this is yet another way to view of a web page that can be hashed/'fingerprinted' to monitor for changes in the page.
&lt;LI&gt;It might be usefull to dump out a few more attributes and maybe the element they are part of for the IDs and NAMEs, to provide a more human readable overview of the page, many of which are generated by tools that provided the author with a very abstract/high level relation to the html.  In other words, he never actually saw the html, and there was no thought to anyone needing to look at it.  This provides one view that summarizes features of the page.  There are probably quite a few features that could be added to this tool.
&lt;LI&gt;From an accessability/usability view point, this might save repeated thrashing with a page.  Someone might fight it out or get help a first time, but then by finding a precise spot they can either bookmark, link to or just go to with a #&amp;lt;fragment&amp;gt; address, they can effectively reuse the work of initially understanding how to navigate the page.  This isn't neccessarily a result of a poorly designed page, but could in some instances merely be because of the nature of the information being presented or asked for.  The full implications of this remain to be seen.
&lt;/UL&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-2971469852688117336?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/2971469852688117336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=2971469852688117336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/2971469852688117336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/2971469852688117336'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/04/opening-id.html' title='Open(ing) ID(=)'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-8422716457599783862</id><published>2008-03-18T02:00:00.000-07:00</published><updated>2008-03-18T02:41:31.000-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;software testing&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;web applications&quot;'/><title type='text'>Breaking News</title><content type='html'>&lt;P/&gt;Tonight I finished reading "How to Break Software" by James A. Whittaker, 203 (C), ISBN 0-201-79619-8.  I think the book is/was used as a text book on software testing at Florida Institute of Technology.

&lt;UL&gt;There were a couple of things that stuck in my mind from reading the book.
&lt;LI&gt;Ultimately, and conceptually most accurately, all 'application software' interacts only with the Operating System.  It is one job of the Operating System (OS) to provide access to various forms of I/O and other resources to the application software.
&lt;LI&gt;When this book was written, various special testing applications were used as wedges between the software under test and the Operating System to supply bogus I/O and envirounments to the tested software as part of the test program.
&lt;/UL&gt;

&lt;P/&gt;The time period since this book was written has seen the rise of OS virtualization in importance.  Perhaps this has already been worked out, but it seems the ability to dynamicly inject I/O reactions and make arbitrary changes on demand to the the percieved environment of the application/OS system seems to be a logical developement to OS virtualization.  By this I mean to literally dial in/make changes on the fly.  This would effectively replace these 'wedge programs' with virtualized OS's, and would also extend the testing methodologies Whittaker documents to prepackaged app/virtual OS bundles.  

&lt;P/&gt;Also I can't recall much in the way of specific web application testing information in the book.   Sun proclaimed "The network is the computer", and the client is as much a part of that computer as the server and any intermediate routers are.  One continually hears about the difficulty of testing web applications against all possible browsers the people out in user land may be using.  An ideal client would of course adhere to all web standards strickly, but today no one is using such an abstraction in the real world.  An ideal *test* client would be able to dial in the actual behaviour of all real world browsers as well as the ideal, perfect standard complient browser.  Such a test tool would not only be a breakthrough in web testing, but the ideal chamleonic browser for the user, to deal with all the weird, poorly tested 'web apps' on the Internet.

&lt;P/&gt;Perhaps someone out there knows more about these subjects and can expand on these thoughts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-8422716457599783862?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/8422716457599783862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=8422716457599783862' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/8422716457599783862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/8422716457599783862'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/03/breaking-news.html' title='Breaking News'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-130708806314822874</id><published>2008-03-14T03:07:00.000-07:00</published><updated>2008-03-14T04:35:24.206-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;frank zappa&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='freedom'/><title type='text'>Let's be Frank</title><content type='html'>Continuing on about the Aloud talk, 13 March 2008, by Robin Wright.  The moderator for the presentation made some mention that "some people think Rock and Roll brought down the Iron Curtain".  This triggered a memory.

&lt;P/&gt;I was at a party some time in the late 80's.  A woman asks if I've done anything important lately.  My response, ~"I saw a Frank Zappa concert".  Her response - eyes begin to bug out, face changing color, with a look of total outrage, "Well, I hope you *Rocked Out*....." and a tirade of abuse vented till it ran out of steam.

&lt;P/&gt;I want to go on record now, before the world, for all time.  I not only glad I saw Frank Zappa while he was alive, I consider it at least on par with touring the Getty Museum or Rome/Vatican.  I'd say the same for Carlos Santana, Wynton Marsaillis and Miles Davis, but those are other articles to be written.
I understand there are college classes/symoposium to study Frank Sinatra and
Madonna - Zappa is at least as worthy.

&lt;P/&gt;Producer Tom Wilson thought he'd latched onto an American equivalent of the Rolling Stones, some white guys forming a blues band, when he heard "Trouble Every Day" (about the Watts Riots of the 60's).  This idea was greatly changed when he heard "Any Way the Wind Blows" and "Who Are the Brain Police".  The list of ~"people who have made this possible. Please do not hold it against them" on one of their first albums was a cultural education most colleges barely begin to match.  
&lt;P/&gt;Besides dealing with musicians from Edgard Varese, Zubin Mehta, Pierre Boulez to Johnny "Guitar" Watson, Zappa created satire on the level of Groucho Marx and H.L. Menken simply by singing about topics from the Illinois Enema Bandit to Senate hearings:

     &lt;P/&gt;"Government is the entertainment division of the military industrial complex."

     &lt;P/&gt;(rock journalism is) "people who can't write interviewing people who can't talk for people who can't read."

     &lt;P/&gt;and on and on....

&lt;P/&gt;But just google "Vaclav Havel" and "Frank Zappa", and you'll get hundreds of hits.  Zappa's "question authority" outlook, coupled with his free use of traditional and avant-guarde elements of Central and Eastern European music, putting it in a context of where freedom held sway, provided an inspiring alternative to the "Socialist Realism" the public was expected to buy into during the period between the 60's Czech crisis to the final fall of Communism in Europe.  He was labeled "Underground" in the U.S.A.  when the public noticed him, but fueled the real "Underground" in societies where the problems were much more serious then some of the silliness he lampooned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-130708806314822874?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/130708806314822874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=130708806314822874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/130708806314822874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/130708806314822874'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/03/lets-be-frank.html' title='Let&apos;s be Frank'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-5477233894474019510</id><published>2008-03-14T02:13:00.000-07:00</published><updated>2008-03-14T03:05:22.425-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='information technology'/><category scheme='http://www.blogger.com/atom/ns#' term='war'/><category scheme='http://www.blogger.com/atom/ns#' term='government'/><title type='text'>Nerdistan</title><content type='html'>One of the things I created this blog for was to discuss some of the
"ALoud" talks given at the Los Angeles (City) Public Library sponsored
by the Library Foundation of Los Angeles.  Today, Thursday 13 March
2008 I was at a talk by Robin Wright, who'd recently completed the book
'Dreams and Shadows: The Future of the Middle East'.  A podcast of here
talk should be up soon, I'll probably post an addendum when it is.

&lt;P/&gt;One of her goals in writing the book was to try and find the "Lech
Walensas, Nelson Mandelas" of the Middle East.  She gave some interesting
stories about people committed to fighting the injustices of the area,
getting out of prison only to return to the same kind of protests they
did time for, but perhaps the most interesting aspects of the story was
something she hit on early in the talk.  This was referred to by one
of the audience questioners as "Nerdistan".  In most Western Societies,
most people take it for granted that governments are generally benign,
but this has largely been the exception in overall human history.
(You might want to check out
&lt;A HREF="http://en.wikipedia.org/wiki/R._J._Rummel"&gt;http://en.wikipedia.org/wiki/R._J._Rummel&lt;/A&gt;)
Basicly, people in the Middle East are using high technology to bypass
government controlled media and organize public outrage against injustice
and corruption.  Wright discussed one example of people video recording
government thugs trying to intimidate voters, blogging it, and eventually
the videos making it's way to Youtube.  In another case people organized
protests texting messages by cell phone.  As we've learned with things
like the Rodney King video, the act of recording governments in action
and showing it to the public can sometimes have explosive effects,
for good or bad.

&lt;P&gt;Sun Tzu, in the "Art of War"'s last chapter talks about the importance
of information in armed struggle.  Perhaps the most titanic historical
event of my lifetime, the Cold War, while definitly having some real
deaths by physical struggle, was largely fought at an abstract level
with the Venona Decrypts, spy planes, satillites, submarines, signals
intelligence, defectors, etc.  We're beginning to see the implications
of information getting into the hands, and control of the common man,
the pen beating the sword into submission.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-5477233894474019510?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/5477233894474019510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=5477233894474019510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/5477233894474019510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/5477233894474019510'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/03/nerdistan.html' title='Nerdistan'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-2615547420271916521</id><published>2008-01-03T15:01:00.000-08:00</published><updated>2008-01-15T22:43:09.243-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lynx'/><category scheme='http://www.blogger.com/atom/ns#' term='yubnub'/><category scheme='http://www.blogger.com/atom/ns#' term='www'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;url redirection&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><category scheme='http://www.blogger.com/atom/ns#' term='privoxy'/><title type='text'>WWWsh</title><content type='html'>&lt;UL&gt;
&lt;LI&gt;meandering back from the County library, thinking about all the Google
Search commands, I realized these were just a subset of the &lt;A HREF="http://Yubnub.org"&gt;http://Yubnub.org&lt;/A&gt; commands.
&lt;LI&gt;This revived the idea of the World Wide Web shell, that Yubnub doesn't quit nail.
&lt;LI&gt;I'd given thought to making that shell with something like Kermit or CURL. 
&lt;LI&gt;Some experiments with the information from the Yubnub html form indicated that the site makes extensive use of &lt;A HREF="http://isthereanotherquestion.blogspot.com/2007/12/reflection-on-redirection.html"&gt;http redirection.&lt;/A&gt;
&lt;LI&gt;Using these tools would also require using some tool to render the html when that is appropriate (most of the time), yet leave it open to output raw html when appropriate (some times)
&lt;LI&gt;This points back to a web browser, with some kind of plug in, like some of the Yubnub tools listed on their web site.
&lt;LI&gt;One of the main charateristics of a shell interface is that it normally returns back to the prompt, or the command entry field, when it completes running a command.
&lt;LI&gt;To make sure that the you always get back to the Yubnub/WWW command prompt would require either something done at the client program or that Yubnub proxy all the final "command" output.
&lt;LI&gt;One way of implimenting this idea would be to edit some chunk of html form code into all web pages, and this could be done with &lt;A HREF="http://www.privoxy.org/"&gt;Privoxy.&lt;/A&gt;
&lt;LI&gt;And so the following Privoxy filter, in /etc/privoxy/user.filter:
&lt;P/&gt;
&lt;PRE&gt;

###################################################################### 14:24:24##
#
# yubnub: Try at a yubnub 'command prompt' on each web page
#               30/12/2007 d.e.l.
#
#################################################################################
FILTER: yubnub Try at a yubnub 'command prompt' on each web page


s|(&amp;lt;/body[^&amp;gt;]*&amp;gt;)|\
  &amp;lt;form action=&amp;quot;http&amp;#058;//www.yubnub.org/parser/parse&amp;quot; \n\
         + method=&amp;quot;get&amp;quot; name=&amp;quot;input_box&amp;quot;&amp;gt; \n\
    &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;command&amp;quot; size=&amp;quot;55&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt; \n\
  &amp;lt;/form&amp;gt;  \n\
  $1|ig

&amp;#035;  For a single text input field, &lt;A HREF="http://lynx.isc.org/"&gt;Lynx&lt;/A&gt;  will submit on entering return,
&amp;#035;    so no submit needed
&amp;#035;  W3M and possibly members of the Links family browsers have
&amp;#035;    function to force submission of forms
&amp;#035;  To use with other browsers, you may need to include a line like
&amp;#035;    this before the closing of the form with '&amp;lt;/form&amp;gt;'&amp;#058;
&amp;#035;
&amp;#035;   &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Enter&amp;quot;&amp;gt;
&amp;#035;
                  
&lt;/PRE&gt;
&lt;LI&gt;then this in user.action:
&lt;P/&gt;&lt;PRE&gt;
 
 { +filter{yubnub} }
 .
  
&lt;/PRE&gt;
&lt;LI&gt;And after restarting Privoxy you get a screen shot like this: 
&lt;P/&gt;&lt;PRE&gt;
--
,,,                                            Los Angeles Free-Net's Home Page+
   The Los Angeles Free-Net

   A volunteer non-profit organization dedicated to bringing people
   together, providing community information, and offering Internet
   access at the lowest possible cost.

   [1]____________________________________________________
















(Form field) Inactive. Use &lt;return&gt; to edit ('x' to submit with no cache).
--
&lt;/PRE&gt;
&lt;P/&gt;Where the entry field is the command prompt/entry field.
&lt;LI&gt; In lynx, ^E will always put at the bottom of the current web page, which from now on will be the prompt location.
&lt;LI&gt;This has the obvious weakness that there must be a '&amp;lt;/BODY..' tag for it to work, but then some apps run inside bash fail to complete properly and hang also.
&lt;LI&gt;It also turned out that default settings for Privoxy skip edits on sites with 'wiki' in the address (as one example), but it is normal for a shell to not present a prompt while an application is running also, so this makes some logic.
&lt;LI&gt;Time to start learning more Yubnub commands - the ones I think of off the top of my head are 'g &lt;google search terms&gt;', 'w &lt;zip&gt;' (for a weather report), 'wp &lt;wikipedia article&gt;' 'ls' (for a list of commands).
&lt;/UL&gt;

&lt;P/&gt;Addenda 15 Jan. 2008
&lt;P/&gt;I should point out this idea could be used for simplified services, like Google search, standard and www.google.com/ie, google proxies like www.scroogle.com/scraper.html, etc.  It's just that Yubnub includes these as commands, but if there were no Yubnub, these would certainly be fine enough to justify the idea.  Also, I may need to rename this - I noticed that WWWsh is already used for some software of some kind!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-2615547420271916521?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/2615547420271916521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=2615547420271916521' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/2615547420271916521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/2615547420271916521'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/01/wwwsh.html' title='WWWsh'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-858374675134311928</id><published>2008-01-01T16:45:00.000-08:00</published><updated>2008-01-01T17:32:31.038-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scroogle'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Olaf Stapledon'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Web 2.0'/><title type='text'>The Google Project</title><content type='html'>&lt;UL&gt;
&lt;LI&gt;A list can be something between the formlessness of stream
of conciousness, and mathematics and computer science.

&lt;LI&gt;It all started when I realized that 
&lt;A HREF="http://www.lafn.org"&gt;Los Angeles FreeNet&lt;/A&gt;
for various bureaucratic reasons no longer gained any benefit from 
it's users having LAFN as their start page.  An e-mail and the response
confirmed this so the quest was on to create my own start or "portal" page.

&lt;LI&gt;One of the things I wanted on this start page was to have the links
go as directly to the functionality of the linked pages as possible.

&lt;LI&gt;I mentioned this to L. while at one of 
&lt;A HREF="http://www.sfvlug.org"&gt;San Fernando Valley LUG's&lt;/A&gt;
meetings, in conjunction with a stab at it on Google.
He pointed me to http://www.scroogle.org/scraper.html|Scroogle_Scraper.
At first I had this confused with some direct hack on Google's
home search page.  

&lt;LI&gt;This list of thoughts got under steam
the next day while showering and continued through a walk
to the L.A. county library.

&lt;LI&gt;I started digging around for all the Google search hacks.

&lt;LI&gt;Did a bit of web surfing on the subject. 

&lt;LI&gt;Located my copy of the O'Reilly "Google Hacks" book.

&lt;LI&gt;Then it occured to me, is there a Google Search man page?

&lt;LI&gt;I stumbled onto the Google help page,

&lt;LI&gt;But using one of the tips, 'man google' did not turn up
a properly formated, real man page.

&lt;LI&gt;Getting back to the start page project, one of the goals was
to group some links into functional groups like E-mail, Twitter,
Web 1.0, Web 2.0 etc.

&lt;LI&gt;And where did Google belong on here, Web 1.0 or 2.0?

&lt;LI&gt;And with a brief glimpse, a nanosecond flash of vision from the 
&lt;A HREF="http://en.wikipedia.org/wiki/Olaf_Stapledon"&gt;Stapledonian&lt;/A&gt;
perpective, I realized that Google was in fact the first Web 2.0
application.  With the power of superior indexing and search
algorithms, they had effectivly shanghied preceeding Internet activity
into providing the user supplied content for The Google Project, 
previously known as the World Wide Web.

&lt;LI&gt;(with their search results, the mother of all mashups.)

&lt;LI&gt;...Or maybe it was Linux, that pulled ahead of BSD in 
mindshare by opening up to user supplied content.

&lt;LI&gt;Or maybe Richard Stallman and the FSF?

&lt;LI&gt;Besides, Google doesn't seem to have a charismatic
leader like Linus, RMS or Jimmy Whales.  

&lt;LI&gt;Do they need one?
&lt;/UL&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-858374675134311928?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/858374675134311928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=858374675134311928' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/858374675134311928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/858374675134311928'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2008/01/google-project.html' title='The Google Project'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-672309379962060450</id><published>2007-12-30T01:58:00.000-08:00</published><updated>2007-12-30T03:09:32.550-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='http'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;url redirection&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Redirection Reflection</title><content type='html'>&lt;P/&gt;Being as I'm moving a few appropriate pages from their original
location on my 
&lt;A HREF="http://www.lafn.org/~aw585/"&gt;home site&lt;/A&gt;  
over to this blog, I'm doing
bit of redirection from the original URLs to blogsitedness (TM Reg. :-) ).
Frequently seeing redirects when browsing with Lynx, 
I felt it was time look into the subject.
As usual Wikipedia provides a reasonably thorough
overview of the subject at

&lt;P/&gt;&lt;A HREF="http://en.wikipedia.org/wiki/Url_redirection"&gt;http://en.wikipedia.org/wiki/Url_redirection&lt;/A&gt;

&lt;P/&gt;One of the more interesting aspects of the discussion were all
the reasons for the practice, much more than my casual expectation.
As typical for the Net some are hardcore technical issues, others in
various parts of social phenomenon, some are perfectly innocent reasons,
others 'suspect'.  In short a microcosm of the factors that make up
the WWW.

&lt;P/&gt;One of the things I gathered from the article, but didn't
seem to be explictly spelled out, was that there seem
to be three broad groupings of how URL redirection is 
achieved.
&lt;P/&gt;&lt;UL&gt;
&lt;LI&gt;HTTP level methods
    &lt;UL&gt;
    &lt;LI&gt;HTTP refresh header
    &lt;LI&gt;HTTP status codes 3xx
    &lt;LI&gt;Server mechanations, like SSS or special Apache directives
    &lt;/UL&gt;
&lt;LI&gt;HTML level methods, primarily 'Refresh Meta tag'
&lt;LI&gt;Bogus methods, at least someone out there almost certainly considers
    them "problematic":
    &lt;UL&gt;
    &lt;LI&gt;Manual redirects (Manual? what do we have technology for?)
    &lt;LI&gt;Javascript (a good general purpose WWW whipping boy)
    &lt;LI&gt;(Yet another) abuse of Frames
    &lt;/UL&gt;
&lt;/UL&gt;

&lt;P/&gt;The first two HTTP methods grabbed my attention because of their
flagrant use of the 'Location: ' HTTP header.
I was slightly familiar with this from the way YouTube handles
their video URLs.  (See my usnatch project at (the soon to be redirected):
&lt;A HREF="http://www.lafn.org/~aw585/usnatch.html"&gt;http://www.lafn.org/~aw585/usnatch.html&lt;/A&gt;)

&lt;P/&gt;You can do it yourself recoding/reconfiguring, 
or have someone else (web host, special redirection sevice) do the deed,
but it is an inevitable necessity of the constantly changing
nature of the Internet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-672309379962060450?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/672309379962060450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=672309379962060450' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/672309379962060450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/672309379962060450'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2007/12/reflection-on-redirection.html' title='Redirection Reflection'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-4361076262647386191</id><published>2007-12-24T01:50:00.000-08:00</published><updated>2007-12-30T01:24:46.061-08:00</updated><title type='text'>'WAVing' Your Videos</title><content type='html'>&lt;P/&gt;A friend asked tonight if I knew how to strip out the audio
from videos, for conversion to things like .ogg and .mp3 formats.
This is one of those things I remember doing, but not the details,
so below is a script for creating a .wav file for each video
.avi file in a directory.  Just look up the parameters in man mplayer 
for a detailed explination.

&lt;P/&gt;&amp;#045;&amp;#045;


&lt;P/&gt;&lt;PRE&gt;
&lt;P&gt;
&amp;#035;&amp;#033;&amp;#047;bin&amp;#047;bash
&lt;/P&gt;

&lt;P&gt;
&amp;#035;&amp;#032;&amp;#032;Script&amp;#032;to&amp;#032;extract&amp;#032;&amp;#046;wav&amp;#032;audios&amp;#032;from&amp;#032;&amp;#046;avi&amp;#032;files
&amp;#035;&amp;#032;&amp;#032;04&amp;#032;Sept&amp;#046;&amp;#032;2007&amp;#032;&amp;#032;d&amp;#046;e&amp;#046;l&amp;#046;
&lt;/P&gt;

&lt;P&gt;
USAGE&amp;#061;&amp;#034;&amp;#036;0&amp;#032;&amp;#091;&amp;#045;h&amp;#093;&amp;#034;
&lt;/P&gt;

&lt;P&gt;
shopt&amp;#032;&amp;#032;&amp;#045;q&amp;#032;&amp;#032;nocasematch
&amp;#035;&amp;#032;&amp;#032;&amp;#032;&amp;#045;&amp;#032;this&amp;#032;seems&amp;#032;to&amp;#032;be&amp;#032;inoperative
&lt;/P&gt;

&lt;P&gt;
&amp;#035;&amp;#032;if&amp;#032;&amp;#091;&amp;#091;&amp;#032;&amp;#039;&amp;#045;h&amp;#039;&amp;#032;&amp;#061;&amp;#032;&amp;#036;&amp;#123;1&amp;#058;0&amp;#058;2&amp;#125;&amp;#032;&amp;#093;&amp;#093;
&amp;#035;&amp;#032;then
&amp;#035;&amp;#032;&amp;#032;&amp;#032;echo&amp;#032;&amp;#036;&amp;#123;USAGE&amp;#125;
&amp;#035;&amp;#032;&amp;#032;&amp;#032;exit
&amp;#035;&amp;#032;fi
&lt;/P&gt;

&lt;P&gt;
case&amp;#032;&amp;#036;&amp;#123;1&amp;#058;0&amp;#058;2&amp;#125;&amp;#032;&amp;#032;in
&amp;#045;h&amp;#032;&amp;#124;&amp;#032;&amp;#045;H&amp;#032;&amp;#124;&amp;#032;&amp;#045;&amp;#063;&amp;#032;&amp;#124;&amp;#032;&amp;#047;h&amp;#032;&amp;#124;&amp;#032;&amp;#047;H&amp;#032;&amp;#124;&amp;#032;&amp;#047;&amp;#063;&amp;#032;&amp;#041;&amp;#032;&amp;#032;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;echo&amp;#032;&amp;#036;&amp;#123;USAGE&amp;#125;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;exit&amp;#032;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#059;&amp;#059;
&amp;#045;&amp;#045;&amp;#032;&amp;#041;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;case&amp;#032;&amp;#032;&amp;#036;&amp;#123;1&amp;#058;2&amp;#058;1&amp;#125;&amp;#032;&amp;#032;in
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;h&amp;#032;&amp;#124;&amp;#032;H&amp;#032;&amp;#124;&amp;#032;&amp;#063;&amp;#032;&amp;#041;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;echo&amp;#032;&amp;#036;&amp;#123;USAGE&amp;#125;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;exit&amp;#032;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#059;&amp;#059;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#042;&amp;#032;&amp;#041;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;esac
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#059;&amp;#059;
&amp;#042;&amp;#032;&amp;#041;
esac
&lt;/P&gt;

&lt;P&gt;
set&amp;#032;&amp;#045;o&amp;#032;braceexpand&amp;#032;&amp;#032;&amp;#059;
&lt;/P&gt;

&lt;P&gt;
aviconvert&amp;#032;&amp;#040;&amp;#041;
&amp;#123;
&lt;/P&gt;

&lt;P&gt;
PATIENT&amp;#061;&amp;#036;&amp;#123;1&amp;#125;&amp;#032;&amp;#032;&amp;#059;
CURED&amp;#061;&amp;#034;&amp;#036;&amp;#123;1&amp;#037;&amp;#046;avi&amp;#125;&amp;#046;wav&amp;#034;&amp;#032;&amp;#032;&amp;#059;
echo&amp;#032;&amp;#034;Converting&amp;#058;&amp;#032;&amp;#036;&amp;#123;PATIENT&amp;#125;&amp;#034;&amp;#032;&amp;#032;&amp;#059;
&amp;#035;&amp;#092;mplayer&amp;#032;&amp;#045;ao&amp;#032;pcm&amp;#058;waveheader&amp;#058;fast&amp;#058;file&amp;#061;charley1&amp;#046;wav&amp;#032;&amp;#045;vc&amp;#032;null&amp;#032;&amp;#045;vo&amp;#032;null&amp;#032;&amp;#092;
&amp;#035;&amp;#032;&amp;#032;&amp;#032;charly&amp;#046;01&amp;#046;avi
&lt;/P&gt;


&lt;P&gt;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;nice&amp;#032;&amp;#032;&amp;#045;20&amp;#032;&amp;#032;&amp;#092;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#047;usr&amp;#047;bin&amp;#047;mplayer&amp;#032;&amp;#032;&amp;#032;&amp;#092;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#045;ao&amp;#032;pcm&amp;#058;waveheader&amp;#058;fast&amp;#058;file&amp;#061;&amp;#036;&amp;#123;CURED&amp;#125;&amp;#032;&amp;#032;&amp;#032;&amp;#092;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#045;vc&amp;#032;null&amp;#032;&amp;#045;vo&amp;#032;null&amp;#032;&amp;#092;
&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#032;&amp;#036;&amp;#123;PATIENT&amp;#125;&amp;#032;&amp;#032;
&lt;/P&gt;

&lt;P&gt;
&amp;#032;&amp;#032;return&amp;#032;&amp;#032;&amp;#059;
&lt;/P&gt;

&lt;P&gt;
&amp;#125;
&lt;/P&gt;



&lt;P&gt;
for&amp;#032;&amp;#032;&amp;#032;i&amp;#032;&amp;#032;in&amp;#032;&amp;#032;&amp;#032;&amp;#042;&amp;#046;avi
do&amp;#032;
&lt;/P&gt;

&lt;P&gt;
&amp;#032;&amp;#032;aviconvert&amp;#032;&amp;#032;&amp;#036;&amp;#123;i&amp;#125;&amp;#032;&amp;#032;&amp;#059;
&lt;/P&gt;

&lt;P&gt;
done&amp;#032;&amp;#032;&amp;#059;&amp;#032;&amp;#032;&amp;#032;&amp;#035;&amp;#032;for
&lt;/P&gt;
&lt;/PRE&gt;
&lt;P/&gt;&lt;H4&gt;Addenda 30 Dec. 2007&lt;/H4&gt;

&lt;P/&gt;I located this article I'd seen before after a bit of surfing:

&lt;P/&gt;&lt;A HREF="http://www.linuxjournal.com/article/9719"&gt;http://www.linuxjournal.com/article/9719&lt;/A&gt;

&lt;P/&gt;which gives what might be considered an intermediate action,
conversion to Black and White.  Example from the above link:

&lt;P/&gt;$mencoder color-video.avi -o black-white-video.avi -vf hue=0:0 -oac copy -ovc lavc

&lt;P/&gt;The only problem I noticed was that the final video froze up on
playback unless I turned any mplayer.conf video filtering off, but then my
computer is somewhat marginal for playing videos to begin with.  Besides
the Ansel Adams/film noir effect a test on a random video reduced it to
20% of it's original size.  I'm unaware of any "LSD/light show" filter
that drops the chiaroscuro and spatial forms and keeps the colors.  ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-4361076262647386191?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/4361076262647386191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=4361076262647386191' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/4361076262647386191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/4361076262647386191'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2007/12/waving-your-videos.html' title='&apos;WAVing&apos; Your Videos'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-6960489443127815460</id><published>2007-12-21T18:08:00.000-08:00</published><updated>2008-07-04T17:46:04.639-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;julie driscoll&quot; &quot;julie tippetts&quot; &quot;brian auger&quot; jazz &quot;free music&quot; libertarianism &quot;Adam Zagajewski&quot;'/><title type='text'>Streetnoise</title><content type='html'>&lt;P/&gt;This was originally on my personal website starting some time
around May/June 2005, announced on the KHC site,
&lt;A HREF="http://pub35.bravenet.com/forum/2969538590/fetch432690/2"&gt;http://pub35.bravenet.com/forum/2969538590/fetch432690/2&lt;/A&gt;  .
I never linked it to my home page, and so wanted to 
put it here, and beef it up with some YouTube/web research.
With a few minor changes below is the original article:

&lt;P/&gt;Before a recent &lt;A HREF="http://www.karlhessclub.org/"&gt;Karl Hess Club&lt;/A&gt;  meeting, at the Tower Records near by,
I noticed that Julie Driscoll and Brian Auger's Streetnoise album had
been reissued as a CD, remastering having taken place not too far away
in Venice, CA.  The most widely heard recording in the USA that Auger
participated in is probably the 'heavy' Thelonious Monk meets Mozart
harpsichord comping he added to the Yardbirds "For Your Love" single back
in the 60's.  Driscoll (now Tippetts) most famous for the re-recorded
version of Dylan's "This Wheels on Fire" used as the theme song on the
"Absolutely Fabulous" TV show.

&lt;P/&gt;There's hardly anything to add to the musical reviews at:

&lt;P/&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;A HREF="http://www.amazon.com/exec/obidos/tg/detail/-/B00002EQ2W/qid=1117339327/sr=1-2/ref=sr_1_2/102-1140813-3593736?v=glance&amp;s=music"&gt;http://www.amazon.com/exec/obidos/tg/detail/-/B00002EQ2W/qid=1117339327/sr=1-2/ref=sr_1_2/102-1140813-3593736?v=glance&amp;s=music&lt;/A&gt;
&lt;LI&gt;
&lt;A HREF="http://www.artistdirect.com/nad/store/artist/album/0,,46008,00.html"&gt;http://www.artistdirect.com/nad/store/artist/album/0,,46008,00.html&lt;/A&gt;
&lt;LI&gt;
&lt;A HREF="http://www.bbc.co.uk/music/release/x3cz/"&gt;http://www.bbc.co.uk/music/release/x3cz/&lt;/A&gt;
&lt;/UL&gt;

&lt;P/&gt;I wanted to comment briefly on the political content of the album,
which ties it in some with the Karl Hess Club in ways other than
geographic chance.  "Streetnoise" touches on various topics common in the
era it epitomizes, civil rights ("A Word About Colour"), social activism
("Save the Country"), alienation ("Vauxhall to Lambeth Bridge"), but goes
on to deal with some things not so frequently dealt with.

&lt;P/&gt;The instrumental "Ellis Island" is dedicated to big band leader Don
Ellis, who's exploration of rhythm on a larger scale paralleled Augers.
Auger, with the title, compares the excitement of what Ellis is showing
with that of moving to (and exploring) a new continent (which Mr. Auger
eventually did), hinting at the topic of immigration.

&lt;P/&gt;Unique in pop music at the time, to my knowledge, (let me know if you
know any exceptions!)  and otherwise dealt with musicly only by Husa's
"Music from Prague", "Czechoslovakia" is protest song about the Soviet
invasion of said country.

&lt;P/&gt;Many might dismiss "I've Got Life" from the musical Hair as a bubble
headed up beat show tune, but along with some of the more blues oriented
material on the album, it does celebrate personal/bodily integrity.

&lt;P/&gt;I recently heard a talk by Polish poet 
&lt;A HREF="http://www.kcet.org/explore-ca/on-demand/podcasts/podcast-media/aloud-zagajewski.mp3"&gt;Adam Zagajewski,&lt;/A&gt;
in which he attributed a lot of his fascination with jazz to the
fact that the central trait of jazz, improvisation, represented the
antithesis of totalitarianism, such as he lived under for so long.
The album "Streetnoise" overall marked a turning point in interest
in jazz.  It was recorded at about the same time as Miles Davis's "In
a Silent Way" and helped start a trend that would see ex-Auger sidemen
like John McLaughlin and Rick Laird, along with some of those wild and
crazy guys from Central Europe like Austrian Joe Zawinul and the Czech
Jan Hammer bring to fruition.  In the early 70's it became cool to listen
to jazz again.

&lt;P/&gt;In conclusion, the first time I recall seeing the term "Politically
Correct" was on the liner notes the "Encore" album Auger and Driscoll
(by then Tippett) made a few years after "Streetnoise", their last
recordings together.  It was not only the first time I saw the phrase,
but it was the last time I recall seeing the term and not feeling a
sense of nausea at the twisted semantics it has come to represent.

&lt;P/&gt;&lt;A HREF="http://www.lafn.org/~aw585"&gt;Dallas E. Legan&lt;/A&gt;&lt;BR&gt;

&lt;H4&gt;Addenda, 17 Dec. 2007&lt;/H4&gt;

&lt;P/&gt;Browsing through the "Rough Guide to Bob Dylan", I noticed that
it listed Driscoll and Auger's version of "This Wheel's on Fire"
as the third best Dylan cover of all time, so I thought a few videos
might be in order:

&lt;P/&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;A HREF="http://www.youtube.com/watch?v=YYHYJebd9rY"&gt;http://www.youtube.com/watch?v=YYHYJebd9rY&lt;/A&gt;
My favorite, dispite the corny TV production
&lt;LI&gt;
&lt;A HREF="http://www.youtube.com/watch?v=BRu7L4OmVGw"&gt;http://www.youtube.com/watch?v=BRu7L4OmVGw&lt;/A&gt;
The bicycle truing stands were one of Artist/chess master Marcel Duchamp's "ready mades"
&lt;LI&gt;
&lt;A HREF="http://www.youtube.com/watch?v=Z-mttBtOHXI"&gt;
http&amp;#058;&amp;#047;&amp;#047;www&amp;#046;youtube&amp;#046;com&amp;#047;watch&amp;#063;v&amp;#061;Z&amp;#045;mttBtOHXI
&lt;/A&gt;
&lt;LI&gt;
&lt;A HREF="http://www.youtube.com/watch?v=4SX4nL3CUEA"&gt;http://www.youtube.com/watch?v=4SX4nL3CUEA&lt;/A&gt;
An accurate reproduction of the original "viewing experience". Perhaps the "hot" 45 record spinning was considered sufficient representation of the songs prophetic vision. :-)
&lt;/UL&gt;

&lt;P/&gt;Other video significant to album and artists.
&lt;P/&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;A HREF="http://www.youtube.com/watch?v=VHsIZpP2hbc"&gt;http://www.youtube.com/watch?v=VHsIZpP2hbc&lt;/a&gt;
Early British Blues scene, Julie and Brian along with the more famous Rod Stewart accompanying John Baldry.
&lt;LI&gt;
&lt;A HREF="http://www.youtube.com/watch?v=-aLGLpWRER0"&gt;http://www.youtube.com/watch?v=-aLGLpWRER0&lt;/A&gt;
Flip side of Wheels. Songwriter David Ackles worked as a minister in Pasadena at one time.
&lt;LI&gt;
&lt;A HREF="http://www.youtube.com/watch?v=F6wk6m-x09Q"&gt;http://www.youtube.com/watch?v=F6wk6m-x09Q&lt;/A&gt;
The only video I've found on YouTube for any music on Streetnoise.
&lt;LI&gt;
&lt;A HREF="http://pi.zshare.net/download/1f76b9badd5f5cd63e513bb896df114b/1197983797/2468491/vauxhall%20to%20lambeth%20bridge.mp3"&gt;
An mp3 from Streetnoise
&lt;/A&gt;
from
&lt;A HREF="http://www.zshare.net/audio/24684910897453/"&gt;
http://www.zshare.net/audio/24684910897453/
&lt;/A&gt;
&lt;A HREF="http://psychedeliclion.blogspot.com/2007/04/ultimate-mod-chick-julie-driscoll.html"&gt;
And some more here
&lt;/A&gt;
&lt;/UL&gt;

&lt;UL&gt;
4 July 2008 Update:
I recently found some more video's for music off Streetnoise.
&lt;LI&gt;&lt;A HREF="http://www.youtube.com/watch?v=3-_S00jFhn0"&gt;http://www.youtube.com/watch?v=3-_S00jFhn0&lt;/A&gt; An interesting video of "Czechoslovakia".
&lt;LI&gt;&lt;A HREF="http://www.youtube.com/watch?v=p0dJFRDhgM0"&gt;http://www.youtube.com/watch?v=p0dJFRDhgM0&lt;/A&gt; This hardly rates as a video, but you can hear one of the more well known songs that were part of Streetnoise.
&lt;/UL&gt;
&lt;P/&gt;Julie did something far more fatal to her career than overdosing on
heroin - she married a jazz musician.  One of the links in the original
article above spoke of her discovering 'entirely new ways of using the
human voice.'  Some samples of her work from the last decades, and
other links:

&lt;P/&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;A HREF="http://www.youtube.com/watch?v=8m9cTe7rZb4"&gt;http://www.youtube.com/watch?v=8m9cTe7rZb4&lt;/A&gt;
Keith conducting an orchestra where Julie is one of 3 vocalists.  Yes, that is a voice solo in this.
&lt;LI&gt;
&lt;A HREF="http://www.youtube.com/watch?v=PBFan0Hva9Q"&gt;http://www.youtube.com/watch?v=PBFan0Hva9Q&lt;/A&gt;
Julie dueting with a soprano saxist accompanied by her husband Keith Tippett.
Touches of African folk music, Gregorian chant, Ligeti's "Atmospheres" (used in "2001: A Space Odyssey" soundtrack.)
&lt;LI&gt;
&lt;A HREF="http://www.mindyourownmusic.co.uk/julie-tippetts.htm"&gt;
Home page
&lt;/A&gt;
&lt;LI&gt;
&lt;A HREF="http://www.allmusic.com/cg/amg.dll?p=amg&amp;searchlink=JULIE|DRISCOLL&amp;uid=SUB030412122224&amp;sql=11:jmdayl6jxpcb~T1"&gt;
Career summary
&lt;/A&gt;
&lt;LI&gt;
&lt;A HREF="http://www.ilpopolodelblues.com/rev/ottobre2006/ristampa/Julie-Driscoll.html"&gt;
Interview
&lt;/A&gt;
&lt;LI&gt;
Reserved for an incredible interview I found and forgot to bookmark, lost in infospace
&lt;/UL&gt;

&lt;P/&gt;
Some Brian Auger info:
&lt;P/&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;A HREF="http://www.brianauger.com/"&gt;
His home page
&lt;/A&gt;
&lt;LI&gt;
&lt;A HREF="http://www.filmbaby.com/films/2322"&gt;
An interview
&lt;/A&gt;
&lt;LI&gt;
&lt;A HREF="http://www.allaboutjazz.com/iviews/bauger.htm"&gt;
Another interview
&lt;/A&gt;
&lt;LI&gt;
&lt;A HREF="http://www.radiolondon.co.uk/rl/scrap60/fabforty/april67/april6701/fab020467.html"&gt;
http://www.radiolondon.co.uk/rl/scrap60/fabforty/april67/april6701/fab020467.html
&lt;/A&gt;
&lt;/UL&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-6960489443127815460?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/6960489443127815460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=6960489443127815460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/6960489443127815460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/6960489443127815460'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2007/12/streetnoise.html' title='Streetnoise'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-3523715942934703436</id><published>2007-12-15T22:01:00.000-08:00</published><updated>2007-12-16T01:28:52.756-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mailing lists'/><category scheme='http://www.blogger.com/atom/ns#' term='web practices'/><category scheme='http://www.blogger.com/atom/ns#' term='web accessibility'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='web standards'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><title type='text'>Friends of Larry</title><content type='html'>&lt;P/&gt;Me and Charles (C.) occasionally help our friend Larry (L.) with his
Linux problems.  Larry is blind, and it has been an education in Web
and PC accessibility and user interface issues to help him out.

&lt;P/&gt;Charles is one of the people who persuaded me to start this blog,
and he has been urging Larry to start one also.  C. points out, I
think justifiably, that it would provide a good way for us to track
L.'s problems, his successes, to share his lessons with other people in
his situation, to let the IT community at large know the consequences
of some of the things they are doing and what they can do to correct
the situation.

&lt;P/&gt;L. on the other hand is concerned that he'll just come off as a
Johnny-one-note complaining about the trend of things, that he's just
a PC user who probably can't articulate his problems in a way that
someone can figure out a solution to them, and that no one besides his
acquaintances are concerned with his problems.

&lt;P/&gt;I gave some thought today to all this, and was thinking maybe
if we set up his blog so he could just CC: the correspondence
he sends to friends about problems, to say blogspot (posting
by e-mail), so we could keep an online running tab of issues
for him.  Then it occurred to me maybe we could set up a mailing
list to hit all L.'s friends and the e-mail/blog interface
with one e-mail address.  Based on my experiences setting up the &lt;A
HREF="http://isthereanotherquestion.blogspot.com/2007/12/cepheid-historicals.html"&gt;Cepheid
Historicals&lt;/A&gt; mailing list, I realized that the posts to Yahoo's groups
can be public, accessible to anyone on the net, with out necessarily
having to sign on to the site.  So why not just skip the blog, and
set up a dedicated mailing list, tentatively called "Friends of Larry"?
Maybe the long winded editorials of a blog aren't the best medium for L.,
but instead simply recording the day to day problems he needs help with,
will get his message through.
&lt;br/&gt;Any opinions out there?

&lt;P/&gt;I want to wrap this up with a quote from some of my correspondance
with L. and C.:

&lt;P/&gt;We should view the Lynx External not just a literal
solution to some problems, but also a metaphor
for dealing with them - when one tool gets us far enough
down the road that it finds and hits a road
block, call up another special purpose one,
in the UNIX tradition of tools that do one thing extrememly well,
and carry on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-3523715942934703436?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/3523715942934703436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=3523715942934703436' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/3523715942934703436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/3523715942934703436'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2007/12/friends-of-larry.html' title='Friends of Larry'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-6660499813555076702</id><published>2007-12-12T21:15:00.000-08:00</published><updated>2007-12-12T22:06:29.544-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Texas A and M'/><category scheme='http://www.blogger.com/atom/ns#' term='fandom'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='science fiction'/><title type='text'>Cepheid Historicals</title><content type='html'>&lt;P/&gt;About a month ago, I was e-mailed by the ex-roommate and ex-leader of the
&lt;A HREF="http://cepheid.tamu.edu/"&gt;Texas A&amp;M Cepheid Variable SF Club&lt;/A&gt;,      after many years out of touch.  I was contacted because of a yearly
"Monkeygiving" celebration held by ex-members every year the weekend            before Thanksgiving.  (Named in honor of an off-campus group residence          nicknamed after the famous Kurt Vonnegut short story, "Welcome to the
Monkeyhouse")  Shortly after, I did a Google search.  Perhaps I was using
too many search terms, but the only thing that turned up was
&lt;A HREF="http://libraryasp.tamu.edu/cushing/collectn/lit/science/sci-fi/science%20fiction%20texas%20am.pdf"&gt;http://libraryasp.tamu.edu/cushing/collectn/lit/science/sci-fi/science%20fiction%20texas%20am.pdf&lt;/A&gt;.

&lt;P/&gt;A message or two a week was passed with friends from that era in my
life and I noticed that we were CCing the e-mail to more than 10 people.
I decided this was enough people to justify a mailing list, so I floated
the idea today of starting one one on Yahoo.  I'd picked Yahoo because
of local L.A. LUG friend Charles's recomendation of their services.
I'd picked the name 
&lt;A HREF="http://groups.yahoo.com/group/CepheidHistoricals"&gt;Cepheid Historicals&lt;/A&gt;
so as not to collide with any current activity of the club, and also since
it was mainly just so the 'old timers' could keep in touch.  I managed to
get started on the project a few minutes after one response to my e-mail.

&lt;P/&gt;The process was pretty easy, but I do have a complaint that it
required skipping out of my preferred Lynx to use Firefox to navigate
Yahoo's group starting process.  As usual, it took a bit of floundering
around to reach this conclusion.  This is in contrast to the Google
services I use, which as time goes by seem to get more Lynx/text browser
friendly, or at least maintain some core functionality that can be
accessed without graphical browsers.  However, as I knew from joining
and posting to Yahoo based groups, opposed to actually starting one,
you could still carry out those activities purely by e-mail.

&lt;P/&gt;I sent out the announcement of the group to about 15
people, and one person subscribed while I was deciding
on my subscription preferences.  Two other people have
subscribed on the first day, one person from two addresses.
One person posted a link to a wiki already set up for ex-members,
&lt;A HREF="http://wiki.cepheid.org/index.php/Main_Page"&gt;http://wiki.cepheid.org/index.php/Main_Page&lt;/A&gt;.
This spurred me to google again.  I don't know if it was using laxer
search terms, actually being wide awake or that the 'bots at Google
were finally clued into a need to fill, but a wealth a of results
turned up.  The actual club at TAMU is going stronger than ever,
charging semester membership dues, with interest groups working
away and Club and AggieCon entries in Wikipedia.  I was there,
actually just a bystander, for AggieCon No. 2, but there it is in
&lt;A HREF="http://en.wikipedia.org/wiki/Aggiecon"&gt;Wikipedia&lt;/A&gt;.
Must of been for real!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-6660499813555076702?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/6660499813555076702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=6660499813555076702' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/6660499813555076702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/6660499813555076702'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2007/12/cepheid-historicals.html' title='Cepheid Historicals'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-1590701529093844591</id><published>2007-11-26T13:55:00.000-08:00</published><updated>2007-11-26T21:54:09.183-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='science fiction'/><title type='text'>Heinlein in PolyDimension</title><content type='html'>&lt;P&gt;
Continuing the Blogging experience, so far successfully using
the Lynx text mode browser and using some guidance from a book
checked out from the Los Angeles Public Library, "Publishing
a Blog with Blogger" by Elizabeth Castro, Peachpit Press.
&lt;/P&gt;

&lt;P&gt;
I usually try to make the monthly meeting in West Los Angeles
of the &lt;A HREF="http://www.karlhessclub.org/"&gt;Karl Hess Club
(KHC)&lt;/A&gt;, named in honor of the political philosopher and
welder.  The Nov 2007 meeting was on "Rand and Heinlein:
Beyond This Horizon", conducted by McCall Jones III.
&lt;/P&gt;

&lt;P&gt;
At the meeting some attendees expressed, what I take to be,
an impression of Robert A. Heinlein (RAH) as a militarist
writer who never deals with ambiguity, uncertainty or doubt
and is therefore of no concern.  Some spoke of "Starship
Troopers" (ST) as if it was the most representative statement
of Heinlein's personal beliefs.  I tried reading ST and gave
up, while in high school or maybe earlier.  All the talk in it
seemed endless, and not what I wanted at the time.  I've read
several of his other novels, far from all of them, but my main
impression of RAH is from having read all of the available
short stories and novellas and a big chunk of his essays.
Before commenting on my three favorite Heinlein stories,
I want to suggest (tongue-in-cheek) that the central story,
key to understanding RAH is not "Lost Legacy" as asserted by
KHC speaker/RAH scholar Bill Patterson, but "--And He Built
a Crooked House--", with it's multi-dimensional habitat a
metaphor for RAH himself.
&lt;/P&gt;

&lt;P&gt;
"Life-Line", RAH's first published story, is a stirring tragedy
dealing with the political theory of special interest groups
colliding with the economic theory of risk.  We see similar
social stuggles in the world today, such as Californias current
economic civil war (So. CA/"Hollywood"/Traditional media
vrs. No. CA/Digital Technology/Open Source).  Right now I'm
partway through watching the movie "Giant" - cattle/farming/old
wealth vrs. oil/technology/new wealth in Texas.  Many people
have commented on their opinion that the basic idea behind
"Life-Line", a machine that charts human life is bogus.
I disagree - as time passes, Heinlein's idea only seems more
plausible - the machine in the story merely charts out what we
now know as a Feynman Diagram. FDs were used by it's namesake 
&lt;A HREF="http://en.wikipedia.org/wiki/Richard_feynman"&gt;Richard
Feynman&lt;/A&gt; to revolutionize back-of-the-envelope
calculations on the frontiers of physics,
but with RAH they are not for elementary
subatomic particles, but for an entire human body.  The book
&lt;A HREF="http://www.amazon.com/World-Without-Time-Forgotten-Einstein/dp/0465092942/ref=pd_bbs_sr_1/104-7514988-7449526?ie=UTF8&amp;s=books&amp;qid=1196108788&amp;sr=1-1"&gt;"A
World Without Time: The Forgotten Legacy of Godel And
Einstein"&lt;/A&gt; also seems pertinent.  Could anyone of kicked
off a writing career with a stronger story?
&lt;/P&gt;

&lt;P&gt;
"No Bands Playing, No Flags Flying" was rejected for
publication by John W. Campbell because it was non-fiction.
In my mind it is linked Jorge Luis Borges story "The Challenge"
- superficially both are brief, just a few pages, both deal
with the subject of courage.  Borges story rang so true he
was bombarded with letters perporting to tell the real story
of the protagonists crippling showdown with an anonymous thug
from the other side of town.  It rings true because it stands
in for Borges own showdown with the anonymous, unseen forces
that blinded him, and not so anonymous, all too often seen
political forces that would hound him.  Similarly, Heinlein
cuts past hundreds of dreary pages about life in a tuberculosis
sanatarium and deals directly with a crucial confrontation
equal to Borges in significance.
&lt;/P&gt;

&lt;P&gt;
"Water Is For Washing" is an extrapolation on Heinlein's
essay on patriotism.  The central character overcomes several
irrational fears, literal phobias in some cases, prejudices in
others, to act on Heinlein's definition of patriotism as given
in his essay, surviving a geological catastrophe in the process.
&lt;/P&gt;

&lt;H4&gt;An Alternate History Scenario.&lt;/H4&gt;

&lt;P&gt;
I have to wonder how different peoples perception of RAH
would be if "Stranger In a Strange Land" had been filmed first
instead of "Starship Troopers".  As his wikipedia entry hints,
would these same people be dismissing him as a countercultural,
New Age flake instead of a fascist militarist?  It had been
pointed out at previous KHC meetings even in ST, most of the
people doing public service in the scenario's society are
*not* in the military.  RAH sold a lengthy 'action adventure
war' story.  It was Monty Python that finally filmed "A Day
In the Life of a Chartered Accountant".
&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-1590701529093844591?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/1590701529093844591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=1590701529093844591' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/1590701529093844591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/1590701529093844591'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2007/11/heinlein-in-polydimensionality.html' title='Heinlein in PolyDimension'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7032600804825338670.post-5487639054571517634</id><published>2007-11-24T22:40:00.000-08:00</published><updated>2007-12-15T21:57:54.356-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pop'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='imap'/><title type='text'>Popping GMail in the IMAP era</title><content type='html'>&lt;P/&gt;I've finally decided to start blogging after discussions with friends,
and a sudden on rush of possible subjects.  I decided to go with whatever
Google provided based on generally good experinces with Gmail.  After
plowing into it I found out that their service, Blogger/Blogspot, (and
not Gblogger or Googlelog as I might of expected) was both recommended
by a friend and used by the L.A. Freenet to keep an 'out of band' status
channel for it's users.

&lt;P/&gt;As part of a push to start using more 'Web 2.0' services, I recently
decided to redirect one of my email forwarding addresses through GMail to
take advantage of what seemed to be superior spam filtering.  All seemed
well till I noticed expected mail through the redirected address seemed
to dry up.  A little investigation showed that to my embarassment, GMail
was already forwarding to the redirected address, had been for some time,
and their mail servers had correctly noted that forwarding mail back to
the address it was coming from was setting up a mail loop and simply let
it set in the inbox rather than start looping the mail back and forth
out of control.  Of course I corrected things to not send gmail to the
first redirected forwarding account.

&lt;P/&gt;Friends may already be aware that I normally ultimately download and sort
out my email from my Los Angeles Freenet account using a Perl script I
wrote using the Net::POP3 library, and actually read it with vi where
I can generate summaries of mailing lists with various scripts I've
written to speed things up.  The perl script allows leaving the messages
in the mailbox or removing them with download, getting a summary of
message number and sizes, grabbing just the headers, deleting a range
of messages, etc.  I've told a few people, with tongue in cheek,
that IMAP is simply a copout to avoid giving people shell accounts
to manage their mail accounts.  All this usually follows a preliminary
scan and maybe some urgent responses with LAFNs web / email interface.
This Perl script already had provision for popping my gmail account and
it seemed a simple matter of scooping up the messages over the range
of time the loop had existed.  I've had the Gmail account for several
years and never clear anything out of it.  Logging in to the account
currently shows about 3,000 messages.  I was shocked when running my
Perl script to only see 516 on check of mailbox size.  Using a switch
to download the headers and a few lines of the message body, I found
these messages to be from the beginning of the account.  I downloaded
and ran another perl script from the Debian repositories, POP3browser,
that produced the same results.  This was not just me.

&lt;P/&gt;Digging around in the GMail help, I found that you needed to preface
your user account with 'recent:' when loggin in to get the last 30
days of email.  As an example, I have to log in to the POP server
as 'recent:dallas.legan@gmail.com' to access the most recent mail.
If you are detected to be using a Blackberry to access the account
by POP, supposedly the last 30 days will be accessed automaticly.
This leaves the messages after the first 516 messages and before
the last 30 days in a state of limbo.  I looked briefly over the 
&lt;A HREF="http://tools.ietf.org/html/rfc1939"&gt;POP RFC for POP Version 3&lt;/A&gt; 
and didn't notice anything about 'recent:', 516, etc., so this
is undoubtedly something brought on by necessity when never deleting
messages for several years.

&lt;P/&gt;Whether it has anything to do with Google recently adding IMAP access
to GMail accounts I don't know.  Anyone having more information on this,
feel free to contact me about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7032600804825338670-5487639054571517634?l=isthereanotherquestion.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://isthereanotherquestion.blogspot.com/feeds/5487639054571517634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7032600804825338670&amp;postID=5487639054571517634' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/5487639054571517634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7032600804825338670/posts/default/5487639054571517634'/><link rel='alternate' type='text/html' href='http://isthereanotherquestion.blogspot.com/2007/11/popping-gmail-in-imap-era.html' title='Popping GMail in the IMAP era'/><author><name>dallas</name><uri>http://www.blogger.com/profile/01226684787563695745</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
