Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
[[Memecopia]][[Puppets and Kings]][[anx1.01]]
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Version|1.6.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Insert Javascript executable code directly into your tiddler content.|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Usage
<<<
When installed, this plugin adds new wiki syntax for surrounding tiddler content with {{{<script>}}} and {{{</script>}}} markers, so that it can be treated as embedded javascript and executed each time the tiddler is rendered.
''Deferred execution from an 'onClick' link''
By including a {{{label="..."}}} parameter in the initial {{{<script>}}} marker, the plugin will create a link to an 'onclick' script that will only be executed when that specific link is clicked, rather than running the script each time the tiddler is rendered. You may also include a {{{title="..."}}} parameter to specify the 'tooltip' text that will appear whenever the mouse is moved over the onClick link text
''External script source files:''
You can also load javascript from an external source URL, by including a src="..." parameter in the initial {{{<script>}}} marker (e.g., {{{<script src="demo.js"></script>}}}). This is particularly useful when incorporating third-party javascript libraries for use in custom extensions and plugins. The 'foreign' javascript code remains isolated in a separate file that can be easily replaced whenever an updated library file becomes available.
''Display script source in tiddler output''
By including the keyword parameter "show", in the initial {{{<script>}}} marker, the plugin will include the script source code in the output that it displays in the tiddler.
''Defining javascript functions and libraries:''
Although the external javascript file is loaded while the tiddler content is being rendered, any functions it defines will not be available for use until //after// the rendering has been completed. Thus, you cannot load a library and //immediately// use it's functions within the same tiddler. However, once that tiddler has been loaded, the library functions can be freely used in any tiddler (even the one in which it was initially loaded).
To ensure that your javascript functions are always available when needed, you should load the libraries from a tiddler that will be rendered as soon as your TiddlyWiki document is opened. For example, you could put your {{{<script src="..."></script>}}} syntax into a tiddler called LoadScripts, and then add {{{<<tiddler LoadScripts>>}}} in your MainMenu tiddler.
Since the MainMenu is always rendered immediately upon opening your document, the library will always be loaded before any other tiddlers that rely upon the functions it defines. Loading an external javascript library does not produce any direct output in the tiddler, so these definitions should have no impact on the appearance of your MainMenu.
''Creating dynamic tiddler content''
An important difference between this implementation of embedded scripting and conventional embedded javascript techniques for web pages is the method used to produce output that is dynamically inserted into the document:
* In a typical web document, you use the document.write() function to output text sequences (often containing HTML tags) that are then rendered when the entire document is first loaded into the browser window.
* However, in a ~TiddlyWiki document, tiddlers (and other DOM elements) are created, deleted, and rendered "on-the-fly", so writing directly to the global 'document' object does not produce the results you want (i.e., replacing the embedded script within the tiddler content), and completely replaces the entire ~TiddlyWiki document in your browser window.
* To allow these scripts to work unmodified, the plugin automatically converts all occurences of document.write() so that the output is inserted into the tiddler content instead of replacing the entire ~TiddlyWiki document.
If your script does not use document.write() to create dynamically embedded content within a tiddler, your javascript can, as an alternative, explicitly return a text value that the plugin can then pass through the wikify() rendering engine to insert into the tiddler display. For example, using {{{return "thistext"}}} will produce the same output as {{{document.write("thistext")}}}.
//Note: your script code is automatically 'wrapped' inside a function, {{{_out()}}}, so that any return value you provide can be correctly handled by the plugin and inserted into the tiddler. To avoid unpredictable results (and possibly fatal execution errors), this function should never be redefined or called from ''within'' your script code.//
''Accessing the ~TiddlyWiki DOM''
The plugin provides one pre-defined variable, 'place', that is passed in to your javascript code so that it can have direct access to the containing DOM element into which the tiddler output is currently being rendered.
Access to this DOM element allows you to create scripts that can:
* vary their actions based upon the specific location in which they are embedded
* access 'tiddler-relative' information (use findContainingTiddler(place))
* perform direct DOM manipulations (when returning wikified text is not enough)
<<<
!!!!!Examples
<<<
an "alert" message box:
><script show>
alert('InlineJavascriptPlugin: this is a demonstration message');
</script>
dynamic output:
><script show>
return (new Date()).toString();
</script>
wikified dynamic output:
><script show>
return "link to current user: [["+config.options.txtUserName+"]]";
</script>
dynamic output using 'place' to get size information for current tiddler:
><script show>
if (!window.story) window.story=window;
var title=story.findContainingTiddler(place).id.substr(7);
return title+" is using "+store.getTiddlerText(title).length+" bytes";
</script>
creating an 'onclick' button/link that runs a script:
><script label="click here" title="clicking this link will show an 'alert' box" show>
if (!window.story) window.story=window;
alert("Hello World!\nlinktext='"+place.firstChild.data+"'\ntiddler='"+story.findContainingTiddler(place).id.substr(7)+"'");
</script>
loading a script from a source url:
>http://www.TiddlyTools.com/demo.js contains:
>>{{{function demo() { alert('this output is from demo(), defined in demo.js') } }}}
>>{{{alert('InlineJavascriptPlugin: demo.js has been loaded'); }}}
><script src="demo.js" show>
return "loading demo.js..."
</script>
><script label="click to execute demo() function" show>
demo()
</script>
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''InlineJavascriptPlugin'' (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2007.02.19 [1.6.0]'' added support for title="..." to specify mouseover tooltip when using an onclick (label="...") script
''2006.10.16 [1.5.2]'' add newline before closing '}' in 'function out_' wrapper. Fixes error caused when last line of script is a comment.
''2006.06.01 [1.5.1]'' when calling wikify() on script return value, pass hightlightRegExp and tiddler params so macros that rely on these values can render properly
''2006.04.19 [1.5.0]'' added 'show' parameter to force display of javascript source code in tiddler output
''2006.01.05 [1.4.0]'' added support 'onclick' scripts. When label="..." param is present, a button/link is created using the indicated label text, and the script is only executed when the button/link is clicked. 'place' value is set to match the clicked button/link element.
''2005.12.13 [1.3.1]'' when catching eval error in IE, e.description contains the error text, instead of e.toString(). Fixed error reporting so IE shows the correct response text. Based on a suggestion by UdoBorkowski
''2005.11.09 [1.3.0]'' for 'inline' scripts (i.e., not scripts loaded with src="..."), automatically replace calls to 'document.write()' with 'place.innerHTML+=' so script output is directed into tiddler content. Based on a suggestion by BradleyMeck
''2005.11.08 [1.2.0]'' handle loading of javascript from an external URL via src="..." syntax
''2005.11.08 [1.1.0]'' pass 'place' param into scripts to provide direct DOM access
''2005.11.08 [1.0.0]'' initial release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
version.extensions.inlineJavascript= {major: 1, minor: 6, revision: 0, date: new Date(2007,2,19)};
config.formatters.push( {
name: "inlineJavascript",
match: "\\<script",
lookahead: "\\<script(?: src=\\\"((?:.|\\n)*?)\\\")?(?: label=\\\"((?:.|\\n)*?)\\\")?(?: title=\\\"((?:.|\\n)*?)\\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>",
handler: function(w) {
var lookaheadRegExp = new RegExp(this.lookahead,"mg");
lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = lookaheadRegExp.exec(w.source)
if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
if (lookaheadMatch[1]) { // load a script library
// make script tag, set src, add to body to execute, then remove for cleanup
var script = document.createElement("script"); script.src = lookaheadMatch[1];
document.body.appendChild(script); document.body.removeChild(script);
}
if (lookaheadMatch[5]) { // there is script code
if (lookaheadMatch[4]) // show inline script code in tiddler output
wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
if (lookaheadMatch[2]) { // create a link to an 'onclick' script
// add a link, define click handler, save code in link (pass 'place'), set link attributes
var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",lookaheadMatch[2]);
link.onclick=function(){try{return(eval(this.code))}catch(e){alert(e.description?e.description:e.toString())}}
link.code="function _out(place){"+lookaheadMatch[5]+"\n};_out(this);"
link.setAttribute("title",lookaheadMatch[3]?lookaheadMatch[3]:"");
link.setAttribute("href","javascript:;");
link.style.cursor="pointer";
}
else { // run inline script code
var code="function _out(place){"+lookaheadMatch[5]+"\n};_out(w.output);"
code=code.replace(/document.write\(/gi,'place.innerHTML+=(');
try { var out = eval(code); } catch(e) { out = e.description?e.description:e.toString(); }
if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
}
}
w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
}
}
} )
//}}}
| [img[images/krewe_worriers.png]]|Most Worriers are not impressed by historical arguments Dick concocts late into the night. I listen as we sip his scotch. The Worriers don't much buy into speculations about "blood mysticism." Maybe because most of them have been there already and their ANX doesn't allow any relish of such memories. But, as with all things desperate,+++>In search of an emblem, we decided to turn a cross '+' on its side like an 'x'. Superimposed over it was a smaller cross '+' that I felt marked two new boundaries—one between the //quiet// and the //unquiet//, as only recogs understand. The other separating //now// from //then//. Our emblem looks like an asterisk and it didn't take long for someone to christen it "Ass To Risk." I love my krewe! Worriers +++>For a Mardi Gras theme we needed something everyone could relate to, that would incite outrageous cleverness. Or at least the outrageous. Someone suggested we do a //Menstrual Show//, but since recogs are generally male we felt at a disadvantage right at the start. Then, playing around with free association we morphed through a 'blood flood' of all the liquid visceral threats dreaded by lost and failed warriors. Finally we settled on a burlesque +++>It was a hoot! +++>The parade favors we threw confused and even astounded the knots of tourists and native hell-raisers we managed to draw to our throng. We tossed packets of tampons doused in ketchup, condoms tied off to contain smatterings of egg white, little slimy plastic fish and crawfish, as well as our traditional wooden krewe doubloons. Ending up in raucous gala at a large music hall on Decatur Street, //The Odd Howler//, we drank and danced and drove the night through drunken spree. //Farewell to the Flesh//, indeed!===Some were garish caricatures of cowboys astride formidable and obscenely festooned tampons. Others came as fish of various species of pun: lots of //Trouser Trout//, //Cod Fish//, and //Smackerals//. Among the guys the //Blowfish// was most popular; she won the prize hands—and knees—down!=== of the macho Gulf fishing festival. The //Tarpon Rodeo// became our //Tampon Rodeo//. === seem to have invented fun! === yet beyond control, they do seem to find our musings uproariously funny. [[^top|anx1.13]]|
''[[First|tw_anx1.html]]''
**[[anx1.01]]
**[[anx1.02]]
**[[anx1.03]]
**[[anx1.04]]
**[[anx1.05]]
**[[anx1.06]]
**[[anx1.07]]
**[[anx1.08]]
**[[anx1.09]]
**[[anx1.10]]
**[[anx1.11]]
**[[anx1.12]]
**[[anx1.13]]
**[[anx1.14]]
''[[Second|tw_anx2.html]]''
''[[Third|tw_anx3.html]]''
''[[Fourth|tw_anx4.html]]''
''[[Fifth|tw_anx5.html]]''
''[[Sixth|tw_anx6.html]]''
''[[Seventh|tw_anx7.html]]''
''[[Eighth|tw_anx8.html]]''
----
----
//''@@color(#00d7ea): ANX@@''// is at [[SPOTOPS|http://www.spotops.net/salon/]]
Copyright: see [[Resources|Memecopia]]
<<newTiddler>>
+++[Browser Requirements|Which browsers work best?]>Best viewed with //[[Firefox|http://www.mozilla.com/firefox/]]//. Some browsers, especially older ones, do not correctly display pages dynamically created from ~JavaScript and CSS. Internet Explorer, especially, ignores CSS styles applied to tables; it draws ugly borders that should be invisible. With any browser be sure ~JavaScript is enabled. Set screen display dimensions as high as possible (1024x768 or higher) to avoid "cramping" the browser window.===
These notes illuminate Penn Hebert's life in the ANX lattice. They comprise a //memecopia//, i.e., a hypertext of "many thoughts."
''[//ANX// is a work in progress and currently is far from completion . . . .]''
>[[Overview]]
>[[Memecopia Structure]]
>[[Resources]]
|A //memecopia// is simply a collection of interlinked text passages, some with images, some without. |
|//ANX// is organized into a number of sections. The menu of links at the upper left will jump to the "starting place" of its respective section.|
|Within text passages are [[links that open new items|ANX Lattice]] as well as //gloss// links +++>that amplify or extend the tiddler in which they occur===. Some gloss links may +++[look like a button]>but they work the same way===. (Click a gloss link to open; click again to close.) These links open new ANX passages inside the same browser window.|
|[[Links that are underlined|http://en.wikipedia.org]] open supporting information from outside of //ANX//, often from //Wikipedia.org//. To avoid losing your place in //ANX//, right click underlined links and select either "Open Link in New Window" or "Open Link in New Tab".|
|Also on the left are links to all of the 'tiddlers' (a term coined by //[[TiddlyWiki|http://www.tiddlywiki.com/]]// designer and developer Jeremy Ruston) that make up the entire section.|
|Each tiddler has its own menu to close one or more tiddlers, as well as other items that are explained on the //~TiddlyWiki// web site.|
|A memecopia is for browsing at will. There is no "chronological" order of earlier or later; it is more like a mesh of interconnected thoughts and recollections. Wander about and let its context gradually reveal what is available. If you get lost try the menu links at top left or the "tiddler" links below left. Within each //ANX// section you can search for passages containing specific words.|
/***
|Name|NestedSlidersPlugin|
|Source|http://www.TiddlyTools.com/#NestedSlidersPlugin|
|Version|2.0.5|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Slider.prototype.stop|
|Description|Make any tiddler content into an expandable 'slider' panel, without needing to create a separate tiddler to contain the slider content.|
++++!!!!![Configuration]>
Enable animation for slider panels
<<option chkFloatingSlidersAnimate>> allow sliders to animate when opening/closing
>(note: This setting is in //addition// to the general option for enabling/disabling animation effects:
><<option chkAnimate>> enable animations (entire document)
>For slider animation to occur, you must also allow animation in general.
Debugging messages for 'lazy sliders' deferred rendering:
<<option chkDebugLazySliderDefer>> show debugging alert when deferring slider rendering
<<option chkDebugLazySliderRender>> show debugging alert when deferred slider is actually rendered
===
++++!!!!![Usage]>
When installed, this plugin adds new wiki syntax for embedding 'slider' panels directly into tiddler content. Use {{{+++}}} and {{{===}}} to delimit the slider content. You can also 'nest' these sliders as deep as you like (see complex nesting example below), so that expandable 'tree-like' hierarchical displays can be created. This is most useful when converting existing in-line text content to create in-line annotations, footnotes, context-sensitive help, or other subordinate information displays.
Additional optional syntax elements let you specify
*default to open
*cookiename
*heading level
*floater (with optional CSS width value)
*mouse auto rollover
*custom class/label/tooltip/accesskey
*automatic blockquote
*deferred rendering
The complete syntax, using all options, is:
//{{{
++++(cookiename)!!!!!^width^*{{class{[label=key|tooltip]}}}>...
content goes here
===
//}}}
where:
* {{{+++}}} (or {{{++++}}}) and {{{===}}}^^
marks the start and end of the slider definition, respectively. When the extra {{{+}}} is used, the slider will be open when initially displayed.^^
* {{{(cookiename)}}}^^
saves the slider opened/closed state, and restores this state whenever the slider is re-rendered.^^
* {{{!}}} through {{{!!!!!}}}^^
displays the slider label using a formatted headline (Hn) style instead of a button/link style^^
* {{{^width^}}} (or just {{{^}}})^^
makes the slider 'float' on top of other content rather than shifting that content downward. 'width' must be a valid CSS value (e.g., "30em", "180px", "50%", etc.). If omitted, the default width is "auto" (i.e., fit to content)^^
* {{{*}}}^^
automatically opens/closes slider on "rollover" as well as when clicked^^
* {{{{{class{[label=key|tooltip]}}}}}}^^
uses custom label/tooltip/accesskey. {{{{{class{...}}}}}}, {{{=key}}} and {{{|tooltip}}} are optional. 'class' is any valid CSS class name, used to style the slider label text. 'key' must be a ''single letter only''. Default labels/tootips are: ">" (more) and "<" (less), with no default access key assignment.^^
* {{{">"}}} //(without the quotes)//^^
automatically adds blockquote formatting to slider content^^
* {{{"..."}}} //(without the quotes)//^^
defers rendering of closed sliders until the first time they are opened. //Note: deferred rendering may produce unexpected results in some cases. Use with care.//^^
//Note: to make slider definitions easier to read and recognize when editing a tiddler, newlines immediately following the {{{+++}}} 'start slider' or preceding the {{{===}}} 'end slider' sequence are automatically supressed so that excess whitespace is eliminated from the output.//
===
++++!!!!![Examples]>
simple in-line slider:
{{{
+++
content
===
}}}
+++
content
===
----
use a custom label and tooltip:
{{{
+++[label|tooltip]
content
===
}}}
+++[label|tooltip]
content
===
----
content automatically blockquoted:
{{{
+++>
content
===
}}}
+++>
content
===
----
all options combined //(default open, cookie, heading, sized floater, rollover, class, label/tooltip/key, blockquoted, deferred)//
{{{
++++(testcookie)!!!^30em^*{{big{[label=Z|click or press Alt-Z to open]}}}>...
content
===
}}}
++++(testcookie)!!!^30em^*{{big{[label=Z|click or press Alt-Z to open]}}}>...
content
===
----
complex nesting example:
{{{
+++^[get info...=I|click for information or press Alt-I]
put some general information here, plus a floating slider with more specific info:
+++^10em^[view details...|click for details]
put some detail here, which could include a rollover with a +++^25em^*[glossary definition]explaining technical terms===
===
===
}}}
+++^[get info...=I|click for information or press Alt-I]
put some general information here, plus a floating slider with more specific info:
+++^10em^[view details...|click for details]
put some detail here, which could include a rollover with a +++^25em^*[glossary definition]explaining technical terms===
===
===
===
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''NestedSlidersPlugin'' (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2007.06.10 - 2.0.5'' add check to ensure that window.adjustSliderPanel() is defined before calling it (prevents error on shutdown when mouse event handlers are still defined)
''2007.05.31 - 2.0.4'' add handling to invoke adjustSliderPanel() for onmouseover events on slider button and panel. This allows the panel position to be re-synced when the button position shifts due to changes in unrelated content above it on the page. (thanks to Harsha for bug report)
''2007.03.30 - 2.0.3'' added chkFloatingSlidersAnimate (default to FALSE), so that slider animation can be disabled independent of the overall document animation setting (avoids strange rendering and focus problems in floating panels)
''2007.03.01 - 2.0.2'' for TW2.2+, hijack Morpher.prototype.stop so that "overflow:hidden" can be reset to "overflow:visible" after animation ends
''2007.03.01 - 2.0.1'' in hijack for Slider.prototype.stop, use apply() to pass params to core function
|please see [[NestedSlidersPluginHistory]] for additional revision details|
''2005.11.03 - 1.0.0'' initial public release
<<<
!!!!!Credits
<<<
This feature was implemented by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]] with initial research and suggestions from RodneyGomes, GeoffSlocock, and PaulPetterson.
<<<
!!!!!Code
***/
//{{{
version.extensions.nestedSliders = {major: 2, minor: 0, revision: 5, date: new Date(2007,6,10)};
//}}}
//{{{
// options for deferred rendering of sliders that are not initially displayed
if (config.options.chkDebugLazySliderDefer==undefined) config.options.chkDebugLazySliderDefer=false;
if (config.options.chkDebugLazySliderRender==undefined) config.options.chkDebugLazySliderRender=false;
if (config.options.chkFloatingSlidersAnimate==undefined) config.options.chkFloatingSlidersAnimate=false;
// default styles for 'floating' class
setStylesheet(".floatingPanel { position:absolute; z-index:10; padding:0.5em; margin:0em; \
background-color:#eee; color:#000; border:1px solid #000; text-align:left; }","floatingPanelStylesheet");
//}}}
//{{{
config.formatters.push( {
name: "nestedSliders",
match: "\\n?\\+{3}",
terminator: "\\s*\\={3}\\n?",
lookahead: "\\n?\\+{3}(\\+)?(\\([^\\)]*\\))?(\\!*)?(\\^(?:[^\\^\\*\\[\\>]*\\^)?)?(\\*)?(?:\\{\\{([\\w]+[\\s\\w]*)\\{)?(\\[[^\\]]*\\])?(?:\\}{3})?(\\>)?(\\.\\.\\.)?\\s*",
handler: function(w)
{
// defopen=lookaheadMatch[1]
// cookiename=lookaheadMatch[2]
// header=lookaheadMatch[3]
// panelwidth=lookaheadMatch[4]
// rollover=lookaheadMatch[5]
// class=lookaheadMatch[6]
// label=lookaheadMatch[7]
// blockquote=lookaheadMatch[8]
// deferred=lookaheadMatch[9]
lookaheadRegExp = new RegExp(this.lookahead,"mg");
lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = lookaheadRegExp.exec(w.source)
if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
{
// location for rendering button and panel
var place=w.output;
// default to closed, no cookie, no accesskey
var show="none"; var title=">"; var tooltip="show"; var cookie=""; var key="";
// extra "+", default to open
if (lookaheadMatch[1])
{ show="block"; title="<"; tooltip="hide"; }
// cookie, use saved open/closed state
if (lookaheadMatch[2]) {
cookie=lookaheadMatch[2].trim().slice(1,-1);
cookie="chkSlider"+cookie;
if (config.options[cookie]==undefined)
{ config.options[cookie] = (show=="block") }
if (config.options[cookie])
{ show="block"; title="<"; tooltip="hide"; }
else
{ show="none"; title=">"; tooltip="show"; }
}
// parse custom label/tooltip/accesskey: [label=X|tooltip]
if (lookaheadMatch[7]) {
title = lookaheadMatch[7].trim().slice(1,-1);
var pos=title.indexOf("|");
if (pos!=-1) { tooltip = title.substr(pos+1,title.length); title=title.substr(0,pos); }
if (title.substr(title.length-2,1)=="=") { key=title.substr(title.length-1,1); title=title.slice(0,-2); }
if (pos==-1) tooltip += " "+title; // default tooltip: "show/hide <title>"
}
// create the button
if (lookaheadMatch[3]) { // use "Hn" header format instead of button/link
var lvl=(lookaheadMatch[3].length>6)?6:lookaheadMatch[3].length;
var btn = createTiddlyElement(createTiddlyElement(place,"h"+lvl,null,null,null),"a",null,lookaheadMatch[6],title);
btn.onclick=onClickNestedSlider;
btn.setAttribute("href","javascript:;");
btn.setAttribute("title",tooltip);
}
else
var btn = createTiddlyButton(place,title,tooltip,onClickNestedSlider,lookaheadMatch[6]);
// set extra button attributes
btn.sliderCookie = cookie; // save the cookiename (if any) in the button object
btn.defOpen=lookaheadMatch[1]!=null; // save default open/closed state (boolean)
btn.keyparam=key; // save the access key letter ("" if none)
if (key.length) {
btn.setAttribute("accessKey",key); // init access key
btn.onfocus=function(){this.setAttribute("accessKey",this.keyparam);}; // **reclaim** access key on focus
}
// "non-click" MouseOver opens/closes slider
if (lookaheadMatch[5]) btn.onmouseover=onClickNestedSlider;
// otherwise, mouseover aligns floater position with button
else btn.onmouseover=function(event)
{ if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this,this.sliderPanel,this.sliderPanel.className); }
// create slider panel
var panelClass=lookaheadMatch[4]?"floatingPanel":"sliderPanel";
var panel=createTiddlyElement(place,"div",null,panelClass,null);
panel.button = btn; // so the slider panel know which button it belongs to
panel.defaultPanelWidth=(lookaheadMatch[4] && lookaheadMatch[4].length>2)?lookaheadMatch[4].slice(1,-1):""; // save requested panel size
btn.sliderPanel=panel;
panel.style.display = show;
panel.style.width=panel.defaultPanelWidth;
panel.onmouseover=function(event) // mouseover aligns floater position with button
{ if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this.button,this,this.className); }
// render slider (or defer until shown)
w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
if ((show=="block")||!lookaheadMatch[9]) {
// render now if panel is supposed to be shown or NOT deferred rendering
w.subWikify(lookaheadMatch[8]?createTiddlyElement(panel,"blockquote"):panel,this.terminator);
// align floater position with button
if (window.adjustSliderPos) window.adjustSliderPos(place,btn,panel,panelClass);
}
else {
var src = w.source.substr(w.nextMatch);
var endpos=findMatchingDelimiter(src,"+++","===");
panel.setAttribute("raw",src.substr(0,endpos));
panel.setAttribute("blockquote",lookaheadMatch[8]?"true":"false");
panel.setAttribute("rendered","false");
w.nextMatch += endpos+3;
if (w.source.substr(w.nextMatch,1)=="\n") w.nextMatch++;
if (config.options.chkDebugLazySliderDefer) alert("deferred '"+title+"':\n\n"+panel.getAttribute("raw"));
}
}
}
}
)
// TBD: ignore 'quoted' delimiters (e.g., "{{{+++foo===}}}" isn't really a slider)
function findMatchingDelimiter(src,starttext,endtext) {
var startpos = 0;
var endpos = src.indexOf(endtext);
// check for nested delimiters
while (src.substring(startpos,endpos-1).indexOf(starttext)!=-1) {
// count number of nested 'starts'
var startcount=0;
var temp = src.substring(startpos,endpos-1);
var pos=temp.indexOf(starttext);
while (pos!=-1) { startcount++; pos=temp.indexOf(starttext,pos+starttext.length); }
// set up to check for additional 'starts' after adjusting endpos
startpos=endpos+endtext.length;
// find endpos for corresponding number of matching 'ends'
while (startcount && endpos!=-1) {
endpos = src.indexOf(endtext,endpos+endtext.length);
startcount--;
}
}
return (endpos==-1)?src.length:endpos;
}
//}}}
//{{{
window.onClickNestedSlider=function(e)
{
if (!e) var e = window.event;
var theTarget = resolveTarget(e);
var theLabel = theTarget.firstChild.data;
var theSlider = theTarget.sliderPanel
var isOpen = theSlider.style.display!="none";
// if using default button labels, toggle labels
if (theLabel==">") theTarget.firstChild.data = "<";
else if (theLabel=="<") theTarget.firstChild.data = ">";
// if using default tooltips, toggle tooltips
if (theTarget.getAttribute("title")=="show")
theTarget.setAttribute("title","hide");
else if (theTarget.getAttribute("title")=="hide")
theTarget.setAttribute("title","show");
if (theTarget.getAttribute("title")=="show "+theLabel)
theTarget.setAttribute("title","hide "+theLabel);
else if (theTarget.getAttribute("title")=="hide "+theLabel)
theTarget.setAttribute("title","show "+theLabel);
// deferred rendering (if needed)
if (theSlider.getAttribute("rendered")=="false") {
if (config.options.chkDebugLazySliderRender)
alert("rendering '"+theLabel+"':\n\n"+theSlider.getAttribute("raw"));
var place=theSlider;
if (theSlider.getAttribute("blockquote")=="true")
place=createTiddlyElement(place,"blockquote");
wikify(theSlider.getAttribute("raw"),place);
theSlider.setAttribute("rendered","true");
}
// show/hide the slider
if(config.options.chkAnimate && (theSlider.className!='floatingPanel' || config.options.chkFloatingSlidersAnimate))
anim.startAnimating(new Slider(theSlider,!isOpen,e.shiftKey || e.altKey,"none"));
else
theSlider.style.display = isOpen ? "none" : "block";
// reset to default width (might have been changed via plugin code)
theSlider.style.width=theSlider.defaultPanelWidth;
// align floater panel position with target button
if (!isOpen && window.adjustSliderPos) window.adjustSliderPos(theSlider.parentNode,theTarget,theSlider,theSlider.className);
// if showing panel, set focus to first 'focus-able' element in panel
if (theSlider.style.display!="none") {
var ctrls=theSlider.getElementsByTagName("*");
for (var c=0; c<ctrls.length; c++) {
var t=ctrls[c].tagName.toLowerCase();
if ((t=="input" && ctrls[c].type!="hidden") || t=="textarea" || t=="select")
{ ctrls[c].focus(); break; }
}
}
if (this.sliderCookie && this.sliderCookie.length) {
config.options[this.sliderCookie]=!isOpen;
if (config.options[this.sliderCookie]!=this.defOpen)
saveOptionCookie(this.sliderCookie);
else { // remove cookie if slider is in default display state
var ex=new Date(); ex.setTime(ex.getTime()-1000);
document.cookie = this.sliderCookie+"=novalue; path=/; expires="+ex.toGMTString();
}
}
return false;
}
// TW2.1 and earlier:
// hijack Slider animation handler 'stop' handler so overflow is visible after animation has completed
Slider.prototype.coreStop = Slider.prototype.stop;
Slider.prototype.stop = function()
{ this.coreStop.apply(this,arguments); this.element.style.overflow = "visible"; }
// TW2.2+
// hijack Morpher animation handler 'stop' handler so overflow is visible after animation has completed
if (version.major+.1*version.minor+.01*version.revision>=2.2) {
Morpher.prototype.coreStop = Morpher.prototype.stop;
Morpher.prototype.stop = function()
{ this.coreStop.apply(this,arguments); this.element.style.overflow = "visible"; }
}
// adjust floating panel position based on button position
if (window.adjustSliderPos==undefined) window.adjustSliderPos=function(place,btn,panel,panelClass) {
if (panelClass=="floatingPanel") {
var left=0;
var top=btn.offsetHeight;
if (place.style.position!="relative") {
var left=findPosX(btn);
var top=findPosY(btn)+btn.offsetHeight;
var p=place; while (p && p.className!='floatingPanel') p=p.parentNode;
if (p) { left-=findPosX(p); top-=findPosY(p); }
}
if (findPosX(btn)+panel.offsetWidth > getWindowWidth()) // adjust position to stay inside right window edge
left-=findPosX(btn)+panel.offsetWidth-getWindowWidth()+15; // add extra 15px 'fudge factor'
panel.style.left=left+"px"; panel.style.top=top+"px";
}
}
function getWindowWidth() {
if(document.width!=undefined)
return document.width; // moz (FF)
if(document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
return document.documentElement.clientWidth; // IE6
if(document.body && ( document.body.clientWidth || document.body.clientHeight ) )
return document.body.clientWidth; // IE4
if(window.innerWidth!=undefined)
return window.innerWidth; // IE - general
return 0; // unknown
}
//}}}
//[[ANX|ANX Lattice]]// is set in the French Quarter of New Orleans. The young protagonist and author of these notes is Penn Hebert. (//Hebert// is a Cajun French name, pronounced "a bear".)
Penn, formerly a graduate student in photonic engineering, was tragically and unjustly caught up in his cousin's trafficking of a notoriously perverse hallucinogenic drug //majik//. Implicated along with a gang known as the //Teuton Warriors//, infamous for their tabloid-hyped, violently intoxicated //majik sprees//, Penn is convicted of aggravated rape and murder.
As experimental alternative to the death penalty he and most of the surviving Warriors suffer implantation of the //''ANX''//—an experimental radio-linked monitor of hypothalamic brain states that punishes any thought of violence with bouts of hysterical nausea.
Unable to recall much of their lives prior to the ANX, but now docile and firmly leashed by the ANX lattice of control nodes, such convicted felons are released on their own recognizance to survive on the streets of New Orleans. Penn finds himself tethered to an ANX node located behind St. Louis Cathedral in the French Quarter.
Victimized by bullies and perversely exploited by almost everyone, destitute recogs survive by cleaning up after tourists and performing various tasks, however menial or venal, for local citizens, whom recogs talking among themselves contemptuously call //CZ//'s.
Learning to cope within their now pitiless existence, wherein the only vices not punished by the ANX are gluttony and drunkeness, the Teuton Warrior recogs sarcastically restyle themselves the //Two Ton Worriers//.
Penn has managed to eke out an advantageous niche by putting his technical skills in service to the reigning //Queen of Vice//, Mamma Latrice. For her he installs and maintains surreptitious //transpaks//, devices that open into a virtual world of holographic data-net surveillance of public and private lives. Mamma Latrice is especially interested in scandalous failures of various police officials, politicians and rival criminal operators. And for so long as Penn helps Mamma Latrice keep control of her underworld empire, she supports and protects him from the worst of abysmal fortunes that afflict his kind.
As Penn learns ever more about events leading to his arrest and conviction, he finds new hope: that he may decipher vague clues suggesting just how he fell into such desolation, that somehow he can prove his innocence, gain official pardon and perhaps even survive removal of the ANX implant!
Penn's friend and mentor Richard Piron owns and operates an antique shop //Le Salon d'Histoire// on Decatur Street. In late night discussions Penn pours out his regrets, suspicions and aspirations for Piron's cool appraisal and counsel. In recollections of their conversations Penn ponders his own and humanity's penchant for self-induced misfortune and suffering. Through his hyperlinked notes we negotiate webs of association and speculation regarding Penn, New Orleans, the Mississippi Delta, the New World, and ancient motives braiding the human psyche.
I'll build a town on this black, swollen ground,
Fill up the sky with walls built around,
Fill up the rooms with puppets and kings,
Tie them together with white linen strings.
[[...>|http://www.spotops.net/salon/songs/pdf/ssspdf/puppets.pdf]]
''Bibliography:''
>Dufour, Charles and Hermann, Bernard M. //New Orleans//. Baton Rouge, LA: LSU Press, 1980.
>
>Daniels, Jonathan. //The Devil's Backbone: The Story of the Natchez Trace//. Gretna, LA: Pelican Press, 1992.
>
>Garvey, Joan B. And Widmer, Mary Lou. //Beautiful Crescent//. New Orleans: Garmer Press, 1982.
>
>Grissom, Michael Andrew. //When the South Was Southern//. Gretna, LA: Pelican Press, 1994.
>
>Hall, J. Storrs. //Nanofuture: What's Next for Nanotechnology//. Amherst, NY: Prometheus Books, 2005.
>
>Huizinga, Johan. //Homo Ludens: A Study of the Play Element in Culture//. Boston: Beacon Press, 1935.
>
>Lakoff, George and Nunez, Rafael. //Where Mathematics Comes From//. New York: Basic Books, 2000.
>
>Leavitt, Mel. //A Short History of New Orleans//. San Francisco: Lexidos, 1982.
>
>~LeDoux, Joseph. //Synaptic Self: How Our Brains Become Who We Are//. New York: Penguin Books, 2003.
>
>Miller, William Ian. //The Anatomy of Disgust//. Cambridge, MA: Harvard University Press, 1997.
>
>Moffett, Shannon. //The ~Three-Pound Enigma: The Human Brain and the Quest to Unlock Its Mysteries//. Chapel Hill, NC: Algonquin Press, 2006.
>
>Ricard, Matthieu and Thuan, Trinh Xuan. //The Quantum and the Lotus//. New York, NY: Three Rivers Press, 2001.
>
>Rose, Al. //Storyville, New Orleans//. Tuscaloosa, AL: University of Alabama Press, 1974.
>
>Satinover, Jeffrey. //The Quantum Brain//. New York, NY: John Wiley & Sons, 2001
>
>Shanker, Stuart G. //The First Idea: How Symbols, Language, and Intelligence Evolved From Our Primate Ancestors//. Cambridge, MA:Da Capo Press, 2004.
>
>Theweleit, Klaus. //Male Fantasies//. Minneapolis: University of Minnesota Press, vol 1:1987, vol 2:1989.
>
>Tipler, Frank J. //The Physics of Immortality//. New York: Doubleday, 1994.
>
^^ //''ANX'' memecopia// Copyright (c) 1995-2005 Howard Jones All rights reserved.
[This is Pre-release Version #20060329]
This memecopia is based upon and extends an earlier version rendered by the author in Macromedia //Director// in 1995-97 as "''//ANX//'': Pre-release Version #970512".^^
----
^^This rendering of //''ANX''// is embodied in a modified //[[TiddlyWiki|http://www.tiddlywiki.com/]]//, a uniquely dynamic non-linear writing format developed by Jeremy Ruston.^^
^^ //~TiddlyWiki 1.2.38 by Jeremy Ruston//, (jeremy [at] osmosoft [dot] com), published under a BSD open source license. //[[TiddlyWiki|http://www.tiddlywiki.com/]]// code Copyright (c) Osmosoft Limited 2005^^
^^~HTMLFormattingPlugin, ~NestedSlidersPlugin and ~InlineJavascriptPlugin were developed by Eric Shulman from [[ELS Design Studios|http:/www.elsdesign.com]]^^
^^~RolloverPlugin created by [[Frank Dellaert|http://www.cc.gatech.edu/~dellaert/tiddly.html]]^^
^^~CloseOthersButton plugin created by [[Simon Baird|http://simonbaird.com/mptw/]]^^
/***
|Name|SinglePageModePlugin|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Version|2.3.1|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Story.prototype.displayTiddler(), Story.prototype.displayTiddlers()|
|Description|Display tiddlers one at a time with automatic update of URL (permalink). Also, options to always open tiddlers at top/bottom of page|
Normally, as you click on the links in TiddlyWiki, more and more tiddlers are displayed on the page. The order of this tiddler display depends upon when and where you have clicked. Some people like this non-linear method of reading the document, while others have reported that when many tiddlers have been opened, it can get somewhat confusing.
!!!!!Usage
<<<
SinglePageMode allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one item displayed at a time. When SinglePageMode is enabled, the title of the current tiddler is automatically displayed in the browser window's titlebar and the browser's location URL is updated with a 'permalink' for the current tiddler so that it is easier to create a browser 'bookmark' for the current tiddler.
Even when SinglePageMode is disabled (i.e., displaying multiple tiddlers is permitted), you can reduce the potential for confusion by enable TopOfPageMode, which forces tiddlers to always open at the top of the page instead of being displayed following the tiddler containing the link that was clicked.
<<<
!!!!!Configuration
<<<
When installed, this plugin automatically adds checkboxes in the AdvancedOptions tiddler so you can enable/disable the plugin behavior. For convenience, these checkboxes are also included here:
<<option chkSinglePageMode>> Display one tiddler at a time
<<option chkTopOfPageMode>> Always open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Always open tiddlers at the bottom of the page
//(note: if both settings are selected, "top of page" is used)//
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''SinglePageModePlugin'' (tagged with <<tag systemConfig>>)
^^documentation and javascript for SinglePageMode handling^^
When installed, this plugin automatically adds checkboxes in the ''shadow'' AdvancedOptions tiddler so you can enable/disable this behavior. However, if you have customized your AdvancedOptions, you will need to ''manually add these checkboxes to your customized tiddler.''
<<<
!!!!!Revision History
<<<
''2007.03.03 [2.3.1]'' fix typo when adding BPM option to AdvancedOptions (prevented checkbox from appearing)
''2007.03.03 [2.3.0]'' added support for BottomOfPageMode (BPM) based on request from DaveGarbutt
''2007.02.06 [2.2.3]'' in Story.prototype.displayTiddler(), use convertUnicodeToUTF8() for correct I18N string handling when creating URL hash string from tiddler title (based on bug report from BidiX)
''2007.01.08 [2.2.2]'' use apply() to invoke hijacked core functions
''2006.07.04 [2.2.1]'' in hijack for displayTiddlers(), suspend TPM as well as SPM so that DefaultTiddlers displays in the correct order.
''2006.06.01 [2.2.0]'' added chkTopOfPageMode (TPM) handling
''2006.02.04 [2.1.1]'' moved global variable declarations to config.* to avoid FireFox 1.5.0.1 crash bug when assigning to globals
''2005.12.27 [2.1.0]'' hijack displayTiddlers() so that SPM can be suspended during startup while displaying the DefaultTiddlers (or #hash list). Also, corrected initialization for undefined SPM flag to "false", so default behavior is to display multiple tiddlers
''2005.12.27 [2.0.0]'' Update for TW2.0
''2005.11.24 [1.1.2]'' When the back and forward buttons are used, the page now changes to match the URL. Based on code added by Clint Checketts
''2005.10.14 [1.1.1]'' permalink creation now calls encodeTiddlyLink() to handle tiddler titles with spaces in them
''2005.10.14 [1.1.0]'' added automatic setting of window title and location bar ('auto-permalink'). feature suggestion by David Dickens.
''2005.10.09 [1.0.1]'' combined documentation and code in a single tiddler
''2005.08.15 [1.0.0]'' Initial Release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].
Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts
<<<
!!!!!Code
***/
//{{{
version.extensions.SinglePageMode= {major: 2, minor: 3, revision: 1, date: new Date(2007,3,3)};
if (config.options.chkSinglePageMode==undefined) config.options.chkSinglePageMode=false;
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSinglePageMode>> Display one tiddler at a time";
if (config.options.chkTopOfPageMode==undefined) config.options.chkTopOfPageMode=false;
config.shadowTiddlers.AdvancedOptions += "\n<<option chkTopOfPageMode>> Always open tiddlers at the top of the page";
if (config.options.chkBottomOfPageMode==undefined) config.options.chkBottomOfPageMode=false;
config.shadowTiddlers.AdvancedOptions += "\n<<option chkBottomOfPageMode>> Always open tiddlers at the bottom of the page";
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
if (!config.options.chkSinglePageMode)
{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
if (config.lastURL == window.location.hash)
return;
var tiddlerName = convertUTF8ToUnicode(decodeURI(window.location.hash.substr(1)));
tiddlerName=tiddlerName.replace(/\[\[/,"").replace(/\]\]/,""); // strip any [[ ]] bracketing
if (tiddlerName.length) story.displayTiddler(null,tiddlerName,1,null,null);
}
if (Story.prototype.SPM_coreDisplayTiddler==undefined) Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,title,template,animate,slowly)
{
if (config.options.chkSinglePageMode) {
window.location.hash = encodeURIComponent(convertUnicodeToUTF8(String.encodeTiddlyLink(title)));
config.lastURL = window.location.hash;
document.title = wikifyPlain("SiteTitle") + " - " + title;
story.closeAllTiddlers();
if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
}
if (config.options.chkTopOfPageMode) { story.closeTiddler(title); srcElement=null; }
else if (config.options.chkBottomOfPageMode) { story.closeTiddler(title); srcElement="bottom"; }
this.SPM_coreDisplayTiddler.apply(this,arguments);
if (config.options.chkTopOfPageMode) window.scrollTo(0,0); // make sure top of page is visible
else if (config.options.chkBottomOfPageMode) {
var display=document.getElementById("tiddlerDisplay"); // for TW2.1-
if (!display) var display=document.getElementById("storyDisplay"); // for TW2.2+
window.scrollTo(0,ensureVisible(display.lastChild)); // make sure last tiddler is visible
}
}
if (Story.prototype.SPM_coreDisplayTiddlers==undefined) Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function(srcElement,titles,template,unused1,unused2,animate,slowly)
{
// suspend single-page mode (and/or top/bottom display options) when showing multiple tiddlers
var saveSPM=config.options.chkSinglePageMode; config.options.chkSinglePageMode=false;
var saveTPM=config.options.chkTopOfPageMode; config.options.chkTopOfPageMode=false;
var saveBPM=config.options.chkBottomOfPageMode; config.options.chkBottomOfPageMode=false;
this.SPM_coreDisplayTiddlers.apply(this,arguments);
config.options.chkBottomOfPageMode=saveBPM;
config.options.chkTopOfPageMode=saveTPM;
config.options.chkSinglePageMode=saveSPM;
}
//}}}
notes of a ''//recog's//'' life
[img[images/titleicon.png]][img[images/titlespacer.png]]@@color(#00d7ea):''ANX''@@
http://www.spotops.net/salon/
There are many theories as to how and why New Orleans transmuted much of its medical establishment into therapeutic resort facilities of Faubourg Marigny, that ever hip neigborhood on the downriver side of the French Quarter, from Esplanade Avenue across Eysian Fields to Press Street. The Zone is situated at the Mississippi River where once [[Bernard Marigny|mirror/craps.html]] gambled away his family's plantation, selling it off piecemeal to become the Bywater neighborhood, as it also is known. The area seems especially hospitable to entrepreneurial onslaughts of consorted gaming, hotel, tourism, medical, pharmaceutical and nanobiotic industry giants. That Mamma Latrice, a notoriously popular madam and "social entrepreneur" played into this gumbo of competing interests is remarkable in itself; that she came to dominate and guide its fortunes is a wonder.
Why in New Orleans? Some point to Mardi Gras traditions of masking and celebration of sensual abandon. Or the notorious red-light district of pre-World War One [[Storyville|http://en.wikipedia.org/wiki/Storyville]] where anti-vice laws were overlooked so long as operators maintained a semblance of civil decorum and remunerated official tolerance. Others claim that the Zone is the best economic option remaining after several ruinous seasons combined devastating hurricanes and ongoing economic woes to drive most pragmatic enterprises to higher ground north of Lake Pontchartrain or upriver to Baton Rouge. In the throes of revising what became Third Regime policies federal strategists acknowledged that decades of forcibly suppressing "evil economies" of drugs and sexual trafficking simply had not worked. Prohibited enterprises had only become more persistent, powerful and pernicious in their criminal disruptions of people's normal day-to-day lives. Special dispensation was given to New Orleans as an experimental "historic reclamation" district. Led and tutored by Clare Latrice, local officials worked with industry representatives to overcome vehement protest of regional, national—even global—religious groups +++>Likely the medical aspects of therapeutic instantiation would have kept the Zone free of controversy had the issue of religious heresy not arisen. //Stimuvision//, a nanobiotic technology capable of inducing full-sense hallucinations of practically any imaginable scenario, was at the center of the tumult. Through Stimuvision clients can select any role from the entire gamut of imaginable experience, however benign, however horrific, and literally become that being, human or not, playing out every implication within a full sensory hallucination that is widely reputed to be "more real than reality itself". Carefully monitored by therapists each voyage eventually returns the client to their "normal" identity, but typically it is an identity revived and enhanced by otherwise unlikely insights and understandings of self in world. Its proponents claim Stimuvision has genuinely beneficial therapeutic effect for many struggling with neurotic and even psychotic compulsions. Able to act out and encounter consequences of even the most reprehensible actions in a sustained and utterly convincing hallucinatory unfolding of "new reality" clients succumb to revelations that are said to be of the most ineffably exquisite and religiously compelling moment. And therein lay the seeds of controversy.
In the early days of the Zone a teleview news channel looked into these reputed moments of ecstasy gained through transformative instantiation. At issue was whether acclaim of Stimuvision was marketing hype or medical triumph. Discussing popularity of Stimuvision the journalist alluded to the early Christian sect of [[Carpocrates|http://en.wikipedia.org/wiki/Carpocrates]] as a metaphor for the immense appeal of Stimuvision. In the first century C.E. Carpocrates taught that "one's imprisoned eternal soul must pass through every possible condition of earthly life". Thus, attempting to cram multiple and diverse moral circumstances into a single lifetime the Carpocratians were accused by early church father Irenaeus as doing "all those things which we dare not either speak or hear of" in order that when they died that would not be compelled to incarnate again but would return to God. Irenaeus maintained that the Carpocratians believed they themselves could transcend the material realm and, as a result, were no longer bound by Mosaic law (which was established by the material powers) or any morality (which, they held, was mere human opinion). Irenaeus offers these factors in explanation of their licentious behaviour. The Carpocratians were denounced and expelled as heretics from the orthodox canon of Christian teaching. By citing their sensually religious zeal the journalist was pointing toward ecstatic energies of transformation as the metaphor of rebirth and renewal. Conservative Christians, especially, never great fans of metaphor, were offended and horrified that such literal calumny risked validating "Satanic machinations".
Exemplars of the medical community and of various corporate interests lavishly funding and handsomely profiting from these new instantiation technologies stoutly maintain that the Snake Zone has no religious connotation or implication. The Snake Zone, they explain, is the most effective means yet devised for sapping and extinguishing criminal enterprise by offering therapeutic solutions to a spectrum of human failings and sensual proclivities. They quote former New Orleans Mayor Martin Behrman who, protesting the 1917 closing of Storyville by federal authorities, famously observed, "You can make it illegal, but you can't make it unpopular!" They point to St. Augustine's early years as a dissolute libertine as evidence that "satiation of appetite is the surest path to sainthood". Despite heroic efforts in restorative public relations the firestorm of controversy continues to flare throughout interlocking worlds of conservative Jewish, Moslem and Christian theistic beliefs. In their imaginings +++>For all of our dependence upon the notion of a //material// world it seems to me that at root of everything—me, world, time—is //imagining//. Think about it. How do you know where the various parts of you are located? How do you manage to touch your nose and not poke your own eye? Body image . . . your image of yourself is a complex pattern of ongoing imagining. Lose a limb and the missing part still hurts or itches. How can that be unless the limb is still present in the body image that persists in being imagined?
One of the very earliest games parents play with children is asking, "Where are your ears? Where is your nose? Where are your toes?" More than simply learning to name things a child learns from such play where they are found in the personal body space. Movements of hands and fingers are adjusted to ever more familiar landmarks of //my body image//.
So, too, does one learn deployments and patterns of the larger world. Where things are, what they look like, how they may be disassembled and reconstituted. All stuff of imagining that controls my relationship to things, people, and possibilities.
And do we all imagine ourselves and the world in the same way? Does a two year old have grasp of body and world images equivalent to a middle age adult? Could a desert nomad of ancient times envision a world commensurable with the demands and events of this modern post-industrial urban world? If we play the child's game with a nomad magically transported to our time imagine his/her bewilderment as we inquire, "Where is your driver's license? And where are your keys? And where are your medical records? And where do you get your groceries? What is your favorite news source?"
[[The world grows ever more complex|sources/sentiarity.html]]. For child becoming adult. For world passing from ancient to future epochs. Ever more tangled and fraught with ever more complex kinds of information to be stored, recalled, manipulated, and cataloged—in our respective imaginings. Much of the character of ourselves and our world is given in how we come to envision our respective spaces and their interrelated contents, each of which is its own space of interrelated contents. When we humans disagree, the fault most likely is some misconstruing of ongoing picture shows we deliver to ourselves and others. For if we each imagine the world and ourselves, so we must interpret implications of the imaginings of others. And therein lies the litany of human wars of rectitude—fighting to the death for or slaughtering in the name of //moral rectitude//. The //rightness// we demand of our imaginings and those of our fellow beings. It has ever been a bloody business, this imagining . . . . Why can't we just let it all go?=== the Snake Zone transmogrifies from "recreational medical therapy" into Satanic resurrection of ancient heresy denying the divinity of Christ, slandering Him in scandalous sexual innuendo and challenging circumspect foundations of traditional moral rectitude. === and set up a strictly controlled "Reclamation Zone" in Faubourg Marigny that combines attractions of resort spa, casino, medical cosmetic instantiation, and therapeutic hospital. Outlandishly expensive and globally appealing to wealthy status-preening corporate clientele, New Orleans joins multiple skills for healing, pandering and marketing into a heady nexus joining the respectable with more riotous energies. Richly inventive and ever fostering celebratory re-dedication to //life, libertinism and happiness of pursuit// New Orleans once again has revived its festive spirit of sensual largesse, "Laissez les bons temps rouler!"
In the Zone a client can check in and undergo almost any "therapeutic and cleansing" ritual they can conceive. First they undergo thorough medical examination and profiling to establish personalized "safe boundaries" for re-instantiation experiences and to protect against infection, personal hyper-neural stress, and family dislocation or disorientation. Once admitted to therapeutic process clients are kept within the host facility until final de-briefing and re-instantiation. Swarms of nanobots infused throughout the body monitor neural status and enforce client therapeutic detention until denoument, i.e., "return to self". Despite horrendous expense and lack of insurance coverage, re-instantiation has exploded into immense popularity among those who can afford to compete in escalating extravagansas of hallucinogenic and therapeutic personal exploration. The experience has been likened to the shedding of one's usual identity to assume some cocktail of new and shimmering prospects, even if temporarily. It is widely hailed as transformative, like a snake shedding skin in growth and renewal of being. Hence the popular name //Snake Zone// and Mamma Latrice's frequent portrayal in prudish editorials as a cartoonishly domineering //Queen Python// squeezing cash and propriety from a giddily acquiescing clientele. [[^top|anx1.09]]
#mainMenu{
position: relative;
float: left;
}
body{background:#F1F7E4;}
#sidebar{
position: relative;
margin: 720px 0 0 20px;
display: none;
//visibility: visible;
}
.tiddler {-moz-border-radius:0em;border-top:1px solid #ccc;border-left:1px solid #ccc;
border-bottom:5px solid #ccc;border-right:5px solid #ccc;margin:0.5em;background:#fff;padding:0.5em;}
#displayArea{
position: absolute;
top: 120px; left:0px;
margin: 0 80px 0 200px;
}
.headerShadow {padding:1em 0em 1em 5.6em;}
.headerForeground {padding:1em 0em 1em 5.6em;}
.tiddler .button:hover {
color: #444;
background: #ccc;
}
.tiddler .button:active {
color: #000;
background: #c90;
}
.viewer .button {
background: #ddd;
color: #300;
border-right: 1px solid #600;
border-bottom: 1px solid #600;
}
.viewer .button:hover {
background: #eea;
color: #c90;
}
.viewer blockquote{
border-left: 3px solid #666;
}
.viewer h1,.viewer h2,.viewer h3,.viewer h4,.viewer h5 {
background: #cc9;
}
.viewer table {
border: 2px none #606060;
}
.viewer th {
background: #996;
border: 1px none #606060;
color: #fff;\n
}
.viewer td, .viewer tr {
border: 1px none #606060;
}
.viewer pre {
color: #000000;
border: 1px solid #963;
background: #eea;
}
.viewer code {
color: #630;
}
.viewer hr {
border-top: dashed 1px #606060;
border-left: none;
border-right: none;
border-bottom: none;
color: #666;
}
Sometimes this engineer's brain starts wondering about itself. When I ask, "Who am I?" what is going on in this //[[Three Pound Enigma|Resources]]// that is my brain? How does my self know myself?
Measuring brain activity reveals that the thought process where one thinks about what one is doing is pretty slow. The amount of information that a person can keep in mind, be consciously aware of at any given moment, amounts to only about 40 bits per second. Compared to even a single paltry terahertz computer processor, that's a pretty low number! So how come, say, ~JasonHood doesn't seem to have self awareness, or take any initiative, or even hold grudges. And how is it that I control him rather than his controlling me?
The brain's information process begins with input from all the senses comprising its outer nervous system. A rough estimate is about 12 million bits/second (10 million visual, 1 million touch, plus various other sensory pathways). Somehow this all percolates up through layers of brain function and is boiled down to symbols and metaphors (which are merely symbols of patterns of symbols . . . !) the content of which is the present moment's conscious awareness.
But the self, my self, cannot be that momentary content of awareness. My self is not simply a stream of awareness, but is the persisting commonality cohering through the stream. Memory streams into prospect. I choose among prospective options. The self chooses . . . .
My hand cannot grasp itself; neither can the self directly perceive itself. With all due apologies to Descartes, it cannot possibly be that I am simply because I think. Rather, I infer that I am from envisioned prospect. It turns out that I don't actually know myself, because I only seem to be. And what //seems// to be keeps changing through this //seemly persistence// that is my self. My self is a metaphor of the totality of information being boiled down to render my consciousness. Most of the self, therefore, is inexorably hidden from me. It cannot be seen by me because it's down in the processes that occur before my conscious awareness even happens. This likely is why people seem to be better at estimating and appreciating motivations of others than they are of their own true personal agendas. As the hand cannot grasp itself, but can grasp another so, too, is perception of another likely to be more canny than one's own grasp of self.
As fellow Cajun Joseph ~LeDoux expressed it in his classic //[[Synaptic Self|Resources]]//, ". . . the self is the totality of what an organism is physically, biologically, psychologically, socially, and culturally. Though it is a unit, it is not unitary. It includes things that we know and things that we do not know, things that others know about us that we do not realize. It includes features that we express and hide, and some that we simply don't call upon. It includes what we would like to be as well as what we hope we never become.
". . . While explicit memory is mediated by a single system, there are a variety of different brain systems that store information implicitly, allowing for many aspects of the self to coexist. . . . as the painter Paul Klee expressed it, the self is a 'dramatic ensemble'." [[^top|anx1.08]]
[[next...|anx1.02]]
|[img[Penn Hebert is a recog|images/anx_1_1.png]]|Here in New Orleans, in the penal lattice, +++>|
|Stay near your node and beg God not to let the power go down. The only thing worse than terror is the dread of it. That keeps you where you're supposed to be—that's the ANX!|
|They should keep it up and running right. We're still humans, for Christ's sake. Every time even a little thunderstorm sweeps in off the gulf or down from the lake, it seems that lightning knocks out my node. I go down with all the other brothers in this part of the grid. All over the Quarter, recogs drop like stunned dogs, flailing and retching dry heaves of wild ANX. Why don't they fix it?|
|Dick says they like to give us a little taste and blame it on the weather. It reminds us to stay close by the node, to keep cool. It tells us who's in charge. Not recogs, that's for sure.|
=== is a leash that ties down a recog.|
|~|To cops, judges, DA's, juries, and wardens, it's technology's most formidable weapon in the latest CZ freak-out over "epidemic violent crime." It's an //~AdrenoNeuraleXtinguisher//.|
|~|To recogs like me—pathetic, destroyed—it's simply, //''[[the ANX]]''//|
|~|It never lets go. Your body is the only handle you have and you learn to do whatever it takes: meditation, alpha waves, drugs, sex, epiphany...a lot of [[recogs get religion]]. Anything to still the ANX. //It ain't happy, but it's staying alive//.|
|~|The closest a recog gets to happiness is in learning not to struggle. +++>|
|The hell of it is that the ANX won't even let me get angry. The most I can do is work up an intellectually pissed disdain for justice.|
|Not many things can cool the ANX. Alcohol doesn't do much except make you sad and disoriented. A clamped ANX will sit you up straight, even out of a Kanthol coma. Even when it's quiet it just lies there all the time, like a tight knot of cramped dread in the pit of your belly. Get angry or think of something violent and it can suddenly reach up to grab the back of your tongue and wrench you into a limbo of nausea and body spasms.|
|Any kind of excitement can set it off. It clamps at neural frequencies calibrated for each implant. I'm here to tell you that I have learned the hard way to stay real cool. Nothing fazes an old recog like me—nothing.|
|Eventually I learned "goaway". When the ANX begins opening on a memory like a dog's first rumbling snarl after you accidentally walk onto its turf, I turn off. I just goaway. There's nothing left behind for the ANX but my body hanging time in vacancy. It's a strange way of watching your own eyes watch. Sometimes the ANX dog even lies back down and goes back to sleep, like maybe the sniff didn't pan out or the noise was just his own tail thumping. It's the only way to get the ANX off you. |
|Goaway doesn't help at all when the node goes down, but it does help cool down your thinking, to stay calm when all about everyone else is losing their lunch. Dick says it's just meditation. I say maybe, but meditation never had incentive like an ANX on the verge of opening into hysterical nausea.|
|Inside my head—in my mind, around the ANX blind spot—is an icy-hot memory flashout, a flaresheet void that won't allow recall of what happened or anything connected with what happened, or even anything remotely resembling what happened that brought me the ANX. Those days are laced in anger and fear, so I don't know in my own mind what I did that was so horrible. What may be worse—or a blessing—I don't remember much about where I came from or what life was like before the ANX. Whatever family I had has pretty much wiped me from their concerns.|
|Those days are lost behind the ANX flaresheet. I guess it's because all of that would make me angry. They say it cuts out the option of going berserk. I say it's like castration.|
|Like we always say, It ain't happy—but it's staying alive.|
===Not against the enemy. Not against fate. And certainly not against the ANX. You just learn to [[goaway]] when you need to.|
[[...back|anx1.01]] [[next...|anx1.03]]
|[img[the age of light that never touches darkness|images/anx_1_2.png]]|Now is the age of light that never touches darkness.|
|~|The ANX lattice may phreak my flesh, but light delivers me into the only freedom remaining. Dancing wraithes tease the beyond—aurora borealis of mind, aurora australis of soul—each swaddling this earthly body. Their spectral forms, his and hers, leap from holofield datanets+++>|
|The lattice holds this body down but light delivers me into the only freedom left.|
|I rigged a primitive version of Simpson spectacles from mirrored piezoelectric film and virtual frame monitors. An asynchronous datalink lets me move among photonic wraiths in virtual reality that taunts a world of gravitating hardness.|
|My carnal phantom moves among and through the shimmering forms of people sequestered in pure light. The oldest adolescent fantasy of being an invisible watcher has come of age. And it's all that's really, or virtually, left to this recog. A life as voyager voyeur. My data wraiths are drawn from fiction, from fact, from fable, from fatuous whim—all the species of posited life. I may have been born flesh and blood, but often I become an unseen phantom treading their spectral worlds, a watcher not seen.|
|I can monitor such transpak feeds via ~ConRelCo fiber to my place. Mamma Latrice +++>|
|As Dick tells it, Clare Latrice crossed the divide of underworld poverty and racial exploitation the old fashioned way, through sex, drugs and rock 'n' roll. Combining an uncanny sense for other people's true intentions with pragmatic business acumen and entrepreneurial flourish she moved from pedestrian pandering to caring for prurient needs of society's uppercrust.|
|Over years she built from a list of salacious resource contacts and her own keen appreciation for prospects of sensual diversion into a clientele of wealthy corporate executives, attorneys, politicians and doctors. According to prevailing myth, she cut a deal with three psychosomatic clinicians to find, arrange and deliver "therapeutic specialists" as needed for certain well-heeled clients undergoing trendy and expensively customized courses of treatment. Their informal association blossomed into a fusion of medical therapy, spa, casino, hotel and restaurant industries operating under auspices of the //New Orleans Historic Reclamation Zone//. Some call it the new Storyville because it's a privileged business district established to economically exploit New Orleans's unique legacies after decades of storm lashed devastation have driven more pragmatic businesses north across Lake Pontchartrain, upriver to Baton Rouge, or out of Louisiana altogether.|
|Lately the Zone has come under siege by moralizing self-appointed guardians of propriety. The next Governor, who selects the Board of Directors overseeing the Zone, will decide whether this infamous brew of sensuality, celebration, and self-realization is to flourish or be pruned back to more traditionally circumspect boundaries. Mamma Latrice and the Zone face a formidable coalition of conservative antagonists.|
=== pays me to install paks wherever she needs to keep an eye on someone. Maybe the Mayor. Maybe the DA. Certainly the head of Vice. She pays, I play, and they stay—out of her business!|
|Transpak feeds ride in coded bursts back among interstitial moments of ~ConRelCo network exchanges. I may be a recog, but I traffic in light— it's the only currency of this realm. I love to look. Network show or pakstash window, news, hype or neurotic trash, I'll watch anything that moves. Sometimes I think I am moved only by what I watch.|
=== into my rooms.|
[[...back|anx1.02]] [[next...|anx1.04]]
These displays of factual and fictioned phantasmagoria are orchestrated by a data agent, //~AiPAL: ~JasonHood//. I didn't make him, nor did I name him. He won't let me change his name or the lightmask through which he speaks and listens. His author and creator was Jason Hood, a cognitive systems programmer who became friend and would-be disciple of Grasshopper, the renegade cult icon around whom coalesced the //One World One Way// movement back in the days of Ira Crown's administration. This data agent is an old-style, now illegal, //Artificially Intelligent ~Pro-Active Linker//. For those who haven't looked into //pro-active linkers// lately, they're sometimes called "IE pattern matchers" (IE: interpolative-extrapolitive); a popular art-geek name is "metaphor engine". A pro-active linker navigates oceans of data to find matches and near matches of any resonant pattern that can be digitally specified, across vector matrices of any dimension. ~JasonHood is an interface into the //quantum allocated frequency neural network//s—quantal nets—down in ~ConRelCo's core data systems. Apparently someone—his creator?—protected ~JasonHood from the federal ban and subsequent crackdowns by hiding him deep inside ~ConRelCo's core systems. I bartered the ~AiPAL from a phreaker I worked with there who didn't have the wit to realize what he had found.
Old code hack that I am, I usually interact with the ~AiPAL via keyboard, though ~JasonHood has very sophisticated linguistic skills in every language I've checked out, (which, admittedly, remains relatively unchallenged by my scant repertoire). Most of the time his readiness is signaled, to suit my preferences, by a shimmering text legend that hovers above my workspace,
"//[~AiPAL: ~JasonHood]>// Ready:"
[[...back|anx1.03]] [[next...|anx1.05]]
~JasonHood talks to me and listens. He plies oceanic datanets comprising ~ConRelCo and corresponding seas beyond in search of what I need to know or want to see or hear. ~JasonHood monitors international traffic, moves in and out of libraries and laboratories—he is the genie of the fiber.
~JasonHood has none of the FEDCOM governor routines now required by the legals. And ~JasonHood has all of the encryption breakers now forbidden by federal law. No encryption scheme exisiting in finite time can withstand this ~AiPAL's quantum para-processed code breakers. He is a wonder. The phreaker found him resting, cycling through empty hibernation checks, waiting for someone to activate him, forgotten in the deep files of ~ConRelCo's most privileged system layers. What do I care if he's a prohibited agent? What are they going to do to me, turn me recog?
I choose by dreaming and dreams are of choices. The ~AiPAL is my agent among these possibilities drawn out of history, anticipation and retribution. ~JasonHood has learned what I like to know and see and provides shimmering layers of wonder, or at least diversion, throughout my rooms. That's one reason given for banning ~AiPALs . . . CZ's would never get anything done with an ~AiPAL to tease, titillate and distract them. The real reason, though, is that the powers that be can't handle the prospect of legions of ~CZ-driven ~AiPALS forever snooping and keeping tabs on what they're really up to behind the scenes. But best of all, for me, ~JasonHood makes me useful to Mamma Latrice.
Through ~JasonHood my favored myth has become //Jason and the Luxonaut//. This voyager voyeur quests in unexcused magic and peculiar fantasy. Mamma Latrice may be the //New Orleans Queen of Sin//, but all I care is that she, because of ~JasonHood's all-intrusive eye, has become my //Protecting Mother//.
[[...back|anx1.04]] [[next...|anx1.06]]
|[img[I don't remember|images/idontremember.png]]|I don't remember what I supposedly did.|
|~|Dick says I killed a young woman, a Vietnamese girl out near the Rigolets. But what does he know? I don't feel like I could have done such a thing.|
|~|Sometimes I think he just likes to keep me off balance, twist lies and cripple truthes until they need each other to lean on. Even he can't tell the difference anymore. Sometimes I wish somebody else would pour me a drink.|
|~|Dick [[buys junk and sells antiques]]. That's the oldest joke of all in the Quarter and out along Magazine Street. I haven't been on Magazine in ages; it's beyond the range of my node. They say it's changed a lot. They say money is moving in and running out all the old shops that have been there forever. Now they buy antiques and sell junk.|
|~|He keeps teasing me that there's a place where they can pull out the ANX and not kill you. I tell him he's full of crap. Sometimes I wonder if he's fronting for the federals and expects me to bite on one of their schemes. Recogs are the favorite easy target of government types. Catch a few fooling about with the ANX lattice and all the voter CZ's get aroused and are willing to punch the penal budget up another notch.|
[[...back|anx1.05]] [[next...|anx1.07]]
|[img['cripples truthes'|images/cripplestruthes.png]]|I know that my name is Penn Hebert and that I lived for awhile in Norco, upriver from New Orleans in //La Cote des Allemandes//. I moved there from northeast Tennessee, where our family lived among my mother's people. In Norco I stayed with my uncle until I entered university work.|
|~|In my last year of graduate school at UNO, in the accelerated doctoral track of photonic engineering, my cousin, Destin, had a big argument with his dad and moved in with me for a while. +++>|
|At first I thought we might hit it off. Destin was really into the latest game tech, //~StimuVision//, "simstim" or simply "stim", which combines full-immersion digital simulation with visual, auditory and tactile sense stimulation. Destin knew a lot about all kinds of stims, from simple visual and auditory content of v-stims, through slightly more convincing tactile skinpat suits of t-stims, to the full, mind-blowing nanobiotically induced full-immersion hallucinogenics of n-stims.|
|The military probably would liked to have Destin working on their //uber-warrior// programs. Destin not only knew about game tech, apparently he also knew a lot about hyping up peptide cocktails with majik to heighten blood lust thrills of first person shooters. He not only transformed the //Teuton Warriors// into recreational thrill killers; he found a way to make money doing it by recording their marauding sprees for the whackporn blackmarket. At least that's what went down in the trials.|
=== He got us both [[into serious trouble]]. He wound up with his face taken off by a shotgun blast. He was found lying in his own gore in one of the gazebos out by the lake.|
|~|The District Attorney hauled in the //Teuton Warriors//. He had been trying to pin something on them for a long time, said they killed Destin in a majik deal gone bad. When cops searched my place somehow they found a blood-stained t-shirt in my car. They claimed it implicated me in the rape and murder of a Vietnamese girl. How could that be? And how could I ever agree to let them try out their new ANX penal monitor? Surely death would be more gentle.|
[[...back|anx1.06]] [[next...|anx1.08]]
The indictment claimed I kidnapped a Vietnamese girl from a Time Saver out in New Orleans East where she had gone just after a babysitting job. Her body was found out near the Rigolets. She had been raped and murdered. Her genitals had been doused in paint thinner and set on fire. Somebody tipped Lieutenant Ryan, the detective who broke it all open, a license number from a coaster seen in the vicinity. It was mine. They found her shirt, bloodied, in the door pocket of my coaster. Would I have done that? If I had, would I have been that stupid? I don't feel that stupid.
I don't remember any of it. I told Dick I didn't feel like I could have done it. He said it must be the ANX that keeps me from remembering and that I should think of that part as a blessing. I wonder if Dick really thinks I could have done it.
Seems to me anyone who had done something like that should be able to remember it, should be able to feel at least a little guilt.
It may sound crazy to a CZ, but the guilt would at least be a connection of some kind, a way of knowing what I am now. But I just feel blank, like there's nothing there except an icy flaresheet separating me from any memory—pain and emptiness, wrapped in meaningless details.
I don't even remember not having the ANX. People who don't have one, CZ's, act different. It seems they don't really pay much attention to their body. Maybe that's why they get so stressed out.
Marla, for instance. She's a very successful CZ. She hired me as groomer (and keeps me on because I practice shiatsu) before I got into Mamma Latrice's surveillance gig. Marla hurts all the time and doesn't even know it until I start working it out of her body. How can people get into that state? How can people forget to pay attention to the most basic part of themselves?
Listen, an ANX turns your body into the only really important thing in life. When the ANX suddenly clamps open, life stops and death sucks at your entrails. When the ANX is closed and quiet, you're trying to figure a way to keep it quiet, to hold back the lightning storms, to phreak the node forever, to escape, maybe even to die.
To die. There's the irony!
Thoughts of killing clamp the ANX, even if you're on a keeper. A recog can only kill himself if he doesn't get excited about it. And the first time you try, and get excited—that's enough to make you elect eternal misery! That's also why recogs are generally so polite and composed. The ANX teaches you in a hurry. Get suckered into a fight and your dog will rise up and drag you through its own kind of mongrel hell.
New recogs get pushed around by CZ bullies who like to watch a sucker's anger suddenly clamp into paroxysms of desperation.
[[...back|anx1.07]] [[next...|anx1.09]]
I wonder what I was like as a CZ. I know I must have been someone else. That's the bizarre part—I can't possibly be the same person. But if I'm a different person, I still have his body. I'm different because the ANX clamps the old CZ. [[Who can I possibly be]]?
What did he do that deserved an ANX? I asked a priest once, how can different beings share the same soul. He stared suspiciously at me, shaken at the prospect of sudden heresy, then hurried away.
I stay near the node. Mine is back behind St. Louis Cathedral, near the Presbytere—Dick laughs and swears that it's under the altar, down with all of the relics like monks' skulls, knuckle bones of saints and True Pieces of a cypress Cross. There are about thirty of us down here, mostly old members of Destin's gang. We'd all have been executed in the old days, back before the ANX lattice was invented, back when justice taunted mercy from the electric chair.
Wherever it is, as long as I stay close by, the ANX just lies at the bottom of my throat, down where the gullet meets the gut, half dozing like a spiteful mongrel. But if I move off too far beyond Canal Street or past Esplanade, it rises up and sucks filth from the depths of my bowels to shove into my brain.
It's like that for all recogs. When a lightning storm knocks down the node, Dick says he can hear a sad moan go up across the Quarter, like a great rushing whisper among us all gasping that death's sister has come so soon.
[[...back|anx1.08]] [[next...|anx1.10]]
When they want you to go outside the range of the node, they give you a keeper. It's a little black lozenge that you can swallow. It cycles through the codes that keep the ANX shut down. You have anywhere from eighteen to twenty-four hours before it dissolves into useless biomass. If you aren't back into the grid by then, just hang it up. The ANX will nearly kill you with spasms until a parole squad comes and picks you up. Dick loves to tell stories about recogs trapped beyond the grid and the ways they fought to pull suicide for relief. It doesn't work, though; the struggle to kill yourself only clamps more tightly into the seizure.
Only cops are supposed to have access to keepers. They're supposed to only use them to transport us to court appearances and the like. But, with enough cash, others get them, too. I've used them to make some premium stashes over in the [[Snake Zone]] in Faubourg Marigny where Mamma Latrice sells time to the pornets.
Life on a keeper is really sweet. Your dog is sound asleep and you're alive again! That's when I thank God for Womankind and all the blessings She bestows. My fantasy is to have a bucket of keepers and Mamma Latrice's indulgence in the run of the Zone.
Dick says illegal keepers are smuggled in from Rio. How would he know? But then, maybe he does. I asked if he could get me some. He smiled a brown-toothed grin and said maybe, then rubbed his fingers together to let me know that I couldn't afford it.
[[...back|anx1.09]] [[next...|anx1.11]]
Sitting in the Salon d'Histoire if I want to irritate Dick while he's thinking, I hum //The Purple Rose of Cairo//. He knows I do it to annoy him and to remind him that I don't care who my ancestors are, much less his. Small wonder that he is so condescending. His history is all that he has. He may be worse off than a recog.
[[...back|anx1.10]] [[next...|anx1.12]]
|<<rollover hisandhers images/against_fate.png images/angela_eyes.png>>|Dick's notion of history is that we remember dire intrusions and dislocations, but all the rest is imagination desperately trying to make sense of it all. He doesn't care what happens every day. +++>|
|Dick didn't know Angela. He won't let me talk about her anymore. He seems to think I made her up. I know I didn't. I don't know what happened to her, but I know I didn't make her up. Memories of her occasionally peek out from behind some elusively shimmering veil.|
|I saw her once. I looked up into her gaze from an antique mirror in a store window on Royal Street. When I turned around she was rushing away from me, hurrying like one of those occasions where you've really blundered into something awkward. She was alone. I think it was her—I know it was. I didn't run after her. The ANX doesn't like excitement.|
|Sometimes if I tug really hard—persisting through the memory pale—I can remember our afternoons out on the lake. The sweet love in her green eyes. The way she drank in the world and gave it to me in a glance. The wonder of her smiling into my dumb reluctance to know her. Then, viciously saddening madness—there is only blankness. Hot, sheer white vacancy surrounding the ANX that won't let me remember what happened. Only her eyes live on in their seductive sorrow. Men drown in those eyes.+++>|
|Some people think history is what happened. I'm here to tell you that history is what you believe people believed, nothing more, nothing less.|
|I know Angela was there. I know she loved me. I know I loved her. What difference if I can't prove it to Dick. He doesn't believe in anything. He has no history except the junk he buys and sells as antiques.|
|This copper-skinned, wizened old man doesn't know whether I'm his best friend or his worst enemy. He reads and writes about the Romans, the Ancient Chinese, the distant steppes of the Ukraine, but pays very little attention to what happens everyday, either in the Quarter or in teleview.|
===|
=== If it's important, he says, eventually it will be revealed.|
|~|Dick touts the Calendar, not the Cross, as the //maker's mark// of Euromerica. The Calendar measures and remembers and reminds us all of the [[fatal significance of power]].|
[[...back|anx1.11]] [[next...|anx1.13]]
In New Orleans there are two seasons: before [[Mardi Gras|http://en.wikipedia.org/wiki/Special:Search?search=Mardi+Gras&go=Go]] and after Mardi Gras. Even those who profess disdain for its dislocations and inconveniences get swept up into the swirl of mummery and illusion.
|[img[freedom remaining|images/freedom_1.png]]|Mardi Gras is for those who know that children play at being adult +++>|
"We are hovering over spheres of thought barely accessible either to psychology or to philosophy. Such questions as these plumb the depths of our consciousness. Ritual is seriousness at its highest and holiest. Can it nevertheless be play? We began by saying that all play, both of children and of grown-ups, can be performed in the most perfect seriousness. Does this go so far as to imply that play is still bound up with the sacred emotion of the sacramental act? Our conclusions are to some extent impeded by the rigidity of our accepted ideas. We are accustomed to think of play and seriousness as an absolute antithesis. It would seem, however, that this does not go to the heart of the matter." +++>"Let us consider for a moment the following argument. The child plays in complete—we can well say, in sacred—earnest. But it plays and knows that it plays. The sportsman, too, plays with all the fervour of a man enraptured, but he still knows that he is playing. The actor on the stage is wholly absorbed in his playing but is all the time conscious of "the play". The same holds good of the violinist, though he may soar to realms beyond this world. The play-character, therefore, may attach to the sublimest forms of action. Can we now extend the line to ritual and say that the priest performing the rites of sacrifice is only playing? At first sight it seems preposterous, for if you grant it for one religion you must grant it for all. Hence our ideas of ritual, magic, liturgy, sacrament and mystery would all fall within the play-concept. In dealing with abstractions we must always guard against overstraining their significance. We would merely be playing with words were we to stretch the play-concept unduly. But, all things considered, I do not think we are falling into that error when we characterize ritual as play. The ritual act has all the formal and essential characteristics of play which we enumerated above, particularly in so far as it transports the participants to another world. This identity of ritual and play was unreservedly recognized by Plato as a given fact. He had no hesitation in comprising the //sacra// in the category of play. "I say that a man must be serious with the serious," he says (//Laws//, vii, 803). "God alone is worthy of supreme seriousness, but man is made God's plaything, and that is the best part of him. Therefore every man and woman should live life accordingly, and play the noblest games and be of another mind from what they are at present . . . . For they deem war a serious thing, though in war there is neither play nor culture worthy of the name, which are the things //we// deem most serious. Hence all must live in peace as well as they possibly can. What, then, is the right way of living? Life must be lived as play, playing certain games, making sacrifices, singing and dancing, and then a man will be able to propitiate the gods, and defend himself against his enemies, and win in the contest.
. . . .
"The Platonic identifications of play and holiness does not defile the latter by calling it play, rather it exalts the concept of play to the highest regions of the spirit. We said at the beginning that play was anterior to culture; in a certain sense it is also superior to it or at least detached from it. In play we may move below the level of the serious, as the child does; but we can also move above it—in the realm of the beautiful and the sacred."
=== [Johan Huizinga, //Homo Ludens//]
=== and adults play at not being.|
|~|Folly and madness—some fey //civic enterprise// drives this storm-wasted city in annual rounds of failing and forgiving, a saving grace that has kept this region, alone, apart from the icy embrace of narrow Calvinist pragmatics. Apart from the closet fascism of Euromerica. Apart from the grayness of this Third Regime. //...if ever I cease to love....//|
|~|Nothing is sacred, but here, at least, even bankers sometimes pretend [[to have seen the Grail]].|
[[...back|anx1.12]] [[next...|anx1.14]]
|[img[recogs play|images/recogsplay.png]] |Recogs play +++>The krewe helps keep me straight. If we didn't poke fun at ourselves, and everybody else, and how we are so different +++>We pour our souls into a mischief of merriment with few nods to taste or even good sense. Marching and dancing confer respite from the ANX. Swirling and gyrating to jetso at Cafe Brasil, swaying in the street while forming up to parade, cheap bourbon infusing warmth through the veins.... There's no ecstasy like the primal course welling up from deep below even the ANX, responding to the thrumming insistence of the St. Augustine Marching Band Drum Corps. //if ever I cease to love....//=== from CZ/s, I'd be truly insane. Dick says recogs in other cities aren't like us. They have a distant crazed stare. Spooks with no place to haunt but their own minds. When the Two Ton Worriers march, watch out! Berserk irony is on parade!=== at Mardi Gras like everyone else. The ANX punishes most vices, excepting only gluttony and drunkeness. Thus, recogs tend to be overweight and bleary-eyed. In the Quarter we survivors of the Warrior trials formed the //[[Krewe of the Two Ton Worriers]]//.|
|~|Along with all the CZ's we howl through the festive season. +++> Mardi Gras, Fat Tuesday, literally bids "Farewell to the Flesh", i.e. "Carne Vale", or Carnival, a final carnal fling just before onset of Lent's renunciation of mortal pleasures. Just as Christmas derives from ancient pagan winter rites so Mardi Gras is a Christianized version of primordial Rites of Spring, when Mother Earth and All Her Daughters, warmed by the renascent Sun, are reborn from frozen graves of winter into full and fruitful voluptuousness. Such wonder seeks expression in collective ecstasies of drunkeness, sensual frolic, willful folly, and thespian frivolity. New Orleans and Rio de Janeiro vie for honors in extremes of The New World Turned Upside Down!=== Worriers, however, unlike their CZ counterparts, remain a little detached, cool and cerebral. We sometimes nervously joke at the prospect of our entire krewe going down, just because in the excitement everyone's ANX clamps open all at once.|
[[...back|anx1.13]] [[next...|anx1.14p2]]
|[img['Mamma Latrice'|images/mammalatrice1.png]]|Mamma Latrice lets it out that she wants to see me. So we meet at Dick's shop. She is bracketed by her two big and mean looking CZ bodyguards, ~LeRoi and Boogey, as she sweeps into the back room where I wait, toying with an old children's bank.|
|~|~LeRoi sports alternating bands of brilliant color painted across his deep sienna forehead. It's a fashion that's beginning to catch on with some people, part of the One World One Way fad. I'm afraid Nikki is being swept up in the movement. She knows ~LeRoi and they talk about that stuff a lot. She says the stripes can be any colors, that wearing them means you have gotten beyond prejudice, that you have joined the global family. It sounds a lot like one of Dick's notions! She mentions more and more that she would like to go the the OWOW center in the mountains of Virginia. I wonder how a street tough like ~LeRoi gets involved with such crap. I wonder if he and Nikki ever make love. The ANX tells me to cut it out and let it go....|
|~|Mamma Latrice, like many from a much earlier era, seems to enjoy dressing out of the 1960's; it's becoming fashionable again. A little video pin displayed colorized "Leave It To Beaver" episodes non-stop on her lapel. She looks good in green and knows it. She is a big woman with deep umber skin that dances in little rainbows when she grows animated.|
|~|So far as I know she is the single most powerful person in the city. Even the DA and the Mayor think twice before tangling with her. She can hurt you legally or illegally, whichever seems most effective.|
|~|Dick says Mamma Latrice let the Mafia operate in the Zone for a while, then grew annoyed at their fickle ways and ran them out. She has lots of friends and a few fools who claim to be enemies but most don't know for sure which they are.|
|~|I'm grateful to be one of the friends, I think. ~LeRoi and Boogey aren't too sure of my allegiances, however. They casually let their coats shift so I can see the hardware available. Each carries a //cat//, an electric catapult that can kill or stun. Somewhere each probably has a backup, maybe an old style pistol or one of the newer launchers. One eyes me, the other posts himself on Dick. [[...next 2>|anx1.14p2]]|
[[...back|anx1.14]] [[next...|tw_anx2.html]]
|Mamma Latrice arduously slides her estimable figure into an old booth Dick salvaged from the Camellia Grill. I edge onto the seat opposite. Her CZ escort looks about, as if Dick might have stashed some treachery into his inventory of things living on borrowed time. Dick takes the hint in their eyes and leaves the room. Mamma Latrice looks at me for a long while, then says,|
|"I know it's you, Penn. Are you with me?"|
|"Yeah, Mamma. I know it's you. I'm with you," we repeat the familair exchange. It might as well have been one of the nights I lolled about her parlor in the Zone, filled in the bliss