npm install Percolator
make test
server.js
in your project directory, and copy this code below into it:var Percolator = require('Percolator').Percolator; var server = new Percolator(); server.route('/', { GET : function($){ $.json({message : 'Hello World!'}).send(); }}); server.listen(function(err){ console.log('server is listening on port ', server.port); });
Run the server:
node server.js
See your "Hello World" output at http://localhost:3000/ and be completely floored by the greatest API of all time. Or not.
The output json look like this:{ message: "Hello World!", _links: { self: { href: "http://localhost:3000/" } } }You'll notice that Percolator automatically adds a link to the document itself. This is because it tries to help you create a surfable "Hypermedia" API where every endpoint is accessible from a link in another endpoint, and where everything that can be done with the API is described in the API itself.
Because Hypermedia APIs are pretty awesome for the people using your API.
Developers can find their way to all your endpoints just by following the links in the json payload instead of having to read a bunch of docs.
These types of APIs are machine-readable as well, so they're spider-able, and even allow automatic form generation, or automated fuzz-testing.
In other frameworks adding links everywhere can be time-consuming. Percolator makes this either automatic or very easy though.
NOTE: If you're worried about the size of your responses, keep in mind that with proper caching and compression (gzip), there should be little to no cost to your clients' performance or bandwidth.
If you're still unconvinced, you can just pass autoLink : false
to the
Percolator constructor, and no links will be added automatically.
var server = new Percolator({"some" : "object"});
This is called the app object.
Anything you put in the app object will be available to all your HTTP handlers, so it's great for shared configuration, database objects, etc.
Additionally, the constructor recognizes a few special properties of the app object:
protocol - 'http' or 'https'
resourcePath - the url path that all the resource will be routed from (eg. Setting it to '/' will serve the
resources from http://yourdomain.com/ while setting it to '/api' will serve the resources from
http://yourdomain.com/api .
staticDir - The directory on the filesystem from which you will serve static content (use an absolute path!).
port - the http port. A low port like 80 will not work unless you run the app with root privileges.
You're obviously going to want to limit the number of app object variables that you add beyond the necessary ones, but certain types of objects might make sense in that shared space.
The route() method of the server takes two parameters, the route string and the resource object.
It then sets a route using the route string that the given handler object will handle when an incoming request matches that route.
Route strings can be regular expressions, or express/sinatra-style route strings.
The resource object is any object that has methods on it that match HTTP methods like POST, PUT, GET, DELETE, etc. The method takes only one parameter: the context object ($).
The Hello World example above has a resource object that implements only GET:
{ GET : function($){ $.json({message : 'Hello World!'}).send(); } }Of course, other HTTP methods (PUT, POST, DELETE, etc) can be added to this object as well to make this API do more. Here it is, passed to route() with a routeString of '/', the root path:
server.route('/', { GET : function($){ $.json({message : 'Hello World!'}).send(); }});Here it is with a POST handler as well:
server.route('/', { GET : function($){ $.json({message : 'Hello World!'}).send(); }, POST : function($){ $.onJson(function(err, obj){ $.json({posted:obj}).send(); }); } });Note that because resource objects are just objects, you can load them from a file as modules, or create components that you re-use for different modules.
server.listen(function(err){ console.log('server is listening on port ', server.port); });
The onRequest() method takes a callback as its only parameter. The callback is called when a request occurs.
The callback takes handler, context and cb parameters.
The handler is the resource object that is routed to the request url in the router. It will contain the functions meant to handle the different HTTP methods.
The context ($) is the context object. If you want to augment the context object for some reason, for all requests, this is a great place to do it.
The cb parameter is a callback that will be called to 'return' the context object. The context object should be its only parameter.
Here's an example:
server.onRequest(function(handler, $, cb){ // print the request method and url for every request. console.log(' <-- ', $.req.method, ' ', $.req.url); cb($); });
The handler object is not an object in the Percolator framework, but rather is one that an application written on the Percolator framework should provide for each route that it defines. It is simply the object that is passed to calls to Server.route() that specifies how a route should handle requests.
It may or may not implement any of the methods listed below. If it does not implement a particular HTTP method, requests to the handler for that method will result in an automatic 405 (method not allowed) response.
Implementing this method on a handler object will allow it to respond to GET requests. The only parameter is a context object. Any return value will be ignored.
Implementing this method on a handler object will allow it to respond to POST requests. The only parameter is a context object. Any return value will be ignored.
Implementing this method on a handler object will allow it to respond to DELETE requests. The only parameter is a context object. Any return value will be ignored.
Implementing this method on a handler object will allow it to respond to PUT requests. The only parameter is a context object. Any return value will be ignored.
Implementing authenticate() is not required but is convenient if you want to specify a general authentication strategy for all methods on the resource. If you implement authenticate(), it will automatically return 401 responses for unauthenticated access while permitting authenticated access as normal.
The authenticate() function has two required parameters: the context object , and cb.
The cb argument is a callback that takes two parameters. The first parameter is an error object if any error occurred. If the error object is strictly true, then the response will be a 401. If the error object is non-strict-true but still truthy, then the response will be a 500 (internal server error). The second parameter should be an object that represents the logged in user. It will automatically by added to the context object as $.authenticated in any member resource methods that you implement.
server.route('/someProtectedPath', { authenticate : function($, cb){ // try to get the user here, based on cookie, Authentication header, etc if (cannotGetUser){ return cb(true); // Percolator will 401 for you } cb(someError, theUser); // if there wasn't some other error, theUser will be available // at $.authenticated in all methods }, GET : function($){ $.json({youAre : $.authenticated}).send(); } });
Implementing basicAuthenticate() is not required but is convenient if you want to use basic http authentication on the resource. If you implement basicAuthenticate(), it will automatically return 401 responses for unauthenticated access while permitting authenticated access as normal.
The basicAuthenticate() function has four required parameters: the basic http auth username, the basic http auth password, the context object , and a callback, cb.
The cb argument is a callback that takes two parameters. The first parameter is an error object if any error occurred. If the error object is strictly true, then the response will be a 401. If the error object is non-strict-true but still truthy, then the response will be a 500 (internal server error). The second parameter should be an object that represents the logged in user. It will automatically by added to the context object as $.authenticated in any member resource methods that you implement.
server.route('/someProtectedPath', { basicAuthenticate : function(username, password, $, cb){ // try to get the user here, based on cookie, Authentication header, etc if (username === 'Pierre' && password === 'Collateur'){ return cb(null, {username : "Pierre", twitter_handle : "@Percolator"}); // user object will be available in $.authenticated in all methods } else { return cb(true); // Percolator will 401 for you } }, GET : function($){ $.json({youAre : $.authenticated}).send(); } });
Implementing fetch() on a handler object is an unnecessary but sometimes useful way to specify how 404s will be determined, so you don't need to write the same 404-handling code in all methods that you support. If you implement fetch(), fetch can do the 404-ing for you, before your regular handler methods are even run. In the event of a 404, a call to $.status.notFound() will be made automatically.
The fetch() function has two required parameters: the context object , and cb.
The cb argument is a callback that takes two parameters. The first parameter is an error object if any error occurred. The second parameter should be the object that was fetched from your data source for the current uri. It will automatically by added to the context object as $.fetched in any member resource methods that you implement.
The fetch() function will 404 for you automatically if you pass strict true to the callback ( cb) as the first parameter.
A handler object can also have a boolean property by the name of 'fetchOnPUT' that defaults to true, but allows you to turn fetch off for PUT, even though fetch usually applies to all methods. This is useful if you use PUT for creating new resources at the given URL, because a non-existent resource would otherwise cause a 404.
var module = new CRUDCollection({ fetch : function($, cb){ // get some item from your data source, probably based on $.uri.pathEnd() cb(null, theObject); } });
The status module is automatically attached to your resource handler at request time. It is just a bunch of helper functions for dealing with response statuses.
This is an important module because building great APIs requires excellent and consistent error and status reporting.
To understand what the codes mean, please refer to http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html.
return
in front of it. Here's an example:
server.route('/', { GET : function($){ return $.status.redirect('/someOtherUrl'); }});
Here are the functions that it makes available in your method handler:
"200 OK" statuses are the default, so you don't need to specify those explicitly.
201 Created statuses are described in the redirect section above.
server.route('/', { GET : function($){ return $.status.internalServerError('The server is on fire.'); }});Output:
{"type":500,"message":"Internal Server Error","detail":"The server is on fire"}
{"type":400,"message":"Bad Request"}
{"type":401,"message":"Unauthenticated"}
{"type":403,"message":"Forbidden"}
{"type":404,"message":"Not Found"}
{"type":405,"message":"Method Not Allowed"}
{"type":406,"message":"Not Acceptable"}
{"type":409,"message":"Conflict"}
{"type":410,"message":"Gone"}
{"type":411,"message":"Length Required"}
{"type":412,"message":"Precondition Failed"}
{"type":413,"message":"'Request Entity Too Large"}
{"type":414,"message":"Request URI Too Long"}
{"type":415,"message":"Unsupported Media Type"}
{"type":422,"message":"'Unprocessable Entity"}
{"type":429,"message":"Too Many Requests"}
{"type":500,"message":"Internal Server Error"}
{"type":501,"message":"Not Implemented"}
{"type":502,"message":"Bad Gateway"}
{"type":504,"message":"Gateway Timeout"}
Each method you define has access to a 'uri' module that understands the context of each particular request that it's used in. The module makes a number of convenient methods available for dealing with uri's and generally making the parsing of uri's simpler and the creation of new uri's simple. Here are example usages:
server.route('/', { GET : function($){ $.json({self : $.uri.self()}).send(); // --> {"self" : "http://example.com/currentUrl"} }});
$.uri.absolute("/somepath"); // returns "http://hostname.com/somepath"
$.uri.child('song'); // ... would return http://localhost/artist/1234/song
$.uri.get('/artist/:artist', {artist : 1234}); // could return something like: 'http://hostname.com/artist/1234' if such a route exists.
$.uri.param("song"); // ... will return 5678
$.uri.params() // ... will return: { artist : 1234, song : 5678 }
$.uri.parent("http://asdf.com/asdf"); // returns "http://asdf.com/"
$.uri.parse(); //returns: { href : 'http://somehostname.com:8080/artist/1234/song?genre=hiphop', protocol : 'http', host : 'somehostname.com:8080', hostname : 'somehostname.com', port : 8080, pathname : '/artist1234', search : '?genre=hiphop'}
$.uri.pathEnd('http://asdf.com/a/b/c'); // ... would return 'c':
$.uri.pathJoin("asdf", ["qwer", "tyui"], "1234"); returns '/asdf/qwer/tyui/1234'
$.uri.query('http://asdf.com/path/?this=is&a=test'); // returns: { this:is, a:test }
$.uri.queryClear('http://localhost/asdf?this=isnot&a=test&ok=true'); // returns: 'http://localhost/asdf'
$.uri.queryMerge({ this:is, ok:null }, 'http://localhost/asdf?this=isnot&a=test&ok=true'); // returns: 'http://localhost/asdf?this=is&a=test'Notice that a null value (in the case of 'ok') removes the ok value from the querystring.
$.uri.queryString({ this:is, a:test }); // returns: '?this=is&a=test'
$.uri.self(); // returns 'http://hostname.com/thecurrentpath/' (if that's the current url)
$.uri.urlDecode("this%20is%20a%20test"); // returns "this is a test"
$.uri.urlEncode("this is a test"); // returns "this%20is%20a%20test"
$.json({some : "test"}).toString(); // returns '{"some":"test"}'
$.json({some : "test"}).toObject(); // returns {some:"test"}
$.json({some : "test"}).property("also", "this").toObject(); // returns {some:"test",also:"this"}
$.json({some : "test"}).link("somerel", "http://some.example.com").toObject(); // returns {some:"test",_links:{somerel:{href:"http://some.example.com"}}}
$.json({some : "test"}).link("somerel", "http://some.example.com", {method:"POST", schema:{}}).toObject(); // returns {some:"test",_links:{somerel:{href:"http://some.example.com",method:"POST",schema:{}}}}
$.json({some : "test"}).send();
// object/hash version $.jsonCollection({someitem : "1234",someotheritem : 4567}).toObject(); // returns: { _items : { someitem : "1234", someotheritem : "4567" }, _links : { parent: { href: "http://example.com/api" } } }
// array version $.jsonCollection([{someitem : "1234"},{someotheritem : 4567}]).toObject(); // returns: { _items : [ {someitem : "1234"}, {someotheritem : "4567"} ], _links : { parent: { href: "http://example.com/api" } } }
$.jsonCollection({some : "test"}).each(function(item){return item + "2";}).toObject(); // returns... { _items : { some: "test2" }, _links : { parent: { href: "http://example.com/api" } } }
$.jsonCollection([{some:"test"}]).each(function(item){return item + "2";}).toObject(); // returns... { _items : [ { some: "test2" } ], _links : { parent: { href: "http://example.com/api" } } }
$.jsonCollection({some : "test"}).linkEach('plustwo', function(item){return 'http://server.com/' + item + "2";}).toObject(); // returns... { _items : { some: "test", _links : { plustwo : { href : 'http://server.com/test2' } } }, _links : { parent: { href: "http://example.com/api" } } }
$.jsonCollection([{some : "test"}]).linkEach('plustwo', function(item){return 'http://server.com/' + item['some'] + "2";}).toObject(); // returns... { _items : [ some: "test", _links : { plustwo : { href : 'http://server.com/test2' } } ], _links : { parent: { href: "http://example.com/api" } } }
$.onJson() is used for handling a request where the request body is json (normally a PUT or POST). It takes care of accepting the incoming stream, attempting to parse it to json, and automatically sending a 400 error if it does not parse.
The first, optional parameter, schema, is a json schema as a javascript object (not as a string). This schema object can be used to validate the incoming json object if desired. $.onJson will return an appropriate error to the user if the incoming json is not acceptable according to the schema.
The last (or only) parameter is a callback that is used if the incoming json parses successfully. The callback will take an 'error' and an 'object' parameter, where the error parameter will contain any error that was not automatically handled (like a network error), and the object parameter will contain any object that was deserialized from the incoming json (if possible).
// without a json schema... $.onJson(function(err, obj){ console.log('error: ', err); console.log('object: ', obj); });
// with a json schema... var schema = { properties : { "username" : { type : "string", required : true } }; $.onJson(schema, function(err, obj){ console.log('error: ', err); console.log('object: ', obj); });
$.onBody() is used for handling the streaming of non-json request bodies.
The only parameter is a callback that takes an error and a body parameter. The error parameter will be null unless an error occurred during streaming of the body, in which case it will contain the error. The body parameter will contain the request body as a string for use inside the callback.
$.onBody(function(err, body){ console.log('error: ', err); console.log('body: ', body); // body is just a string here });
NOTE: If you're expecting json, then you should normally use $.onJson() instead of this method.
A CRUDCollection is a module that implements handlers for a json collection, and all its members. It allows you to implement just your CRUD (create, read, update, delete) logic for the collection and its members without having to deal with much HTTP/API logic at all.
Here's how it's constructed:
var CRUDCollection = require('Percolator').CRUDCollection; var module = new CRUDCollection({ // implementation strategy goes here! });
The module that is created will have two properties: handler and member. The handler property is a handler for a collection and can just be routed like this:
server.route('/myCollection', module.handler);
The wildcard property is a handler for the members of the collection and can be routed like this:
server.route('/myCollection/:memberid', module.wildcard);
Implement the list() function to provide the module with all the items that should show up in the collections GET view. CRUDCollection requires that either this function or collectionGET() is implemented to ensure that your collection is accessible via GET.
var module = new CRUDCollection({ list : function($, cb){ // generate the list to return for the collection view. cb(null, [{some : "object"}, {some : "otherobject"}]); } });
Implement the fetch() function to provide the GET handler for individual members of the collection. If you don't implement this, you'll need to implement memberGET() to be able to GET resources for individual members.
The fetch() function has two required parameters: the context object, and cb.
The cb argument is a callback that takes two parameters. The first parameter is an error object if any error occurred. The second parameter should be the object that was fetched from your data source for the current uri. It will automatically by added to the context object as $.fetched in any member resource methods that you implement.
The fetch() function will 404 for you automatically if you pass strict true to the callback ( cb) as the first parameter.
This function is also used for automatically determining if it should 404 for PUTs and DELETEs to the individual members as well.
var module = new CRUDCollection({ fetch : function($, cb){ // get some item from your data source, probably based on $.uri.pathEnd() cb(null, theObject); } });
The create() function is used for creating new resources via POST to the collection when the unique ID for the user (and its URI in general) are server-generated and NOT client-provided.
Implement create() to allow this kind of object creation. The CRUDCollection will do json parsing and validation for you (if you supply a schema or a createSchema ) and it will respond with appropriate error messages automatically in the case of failures.
The function will be passed a context object ($), the unserialized json object, and a callback. The callback takes no parameters and can optionally be called in the event of successful creation to respond with a 201 CREATED status. You have the option of not calling the callback at all and instead responding however you want.
var module = new CRUDCollection({ create : function($, object, cb){ // store your object here cb(); } });
The update() function is used for updating existing resources via PUT to the individual resource's existing URI.
Implement update() to allow resources to be updated. The CRUDCollection will handle the json parsing and validation for you ( if you supply a schema or an updateSchema) and it will respond with appropriate error messages automatically in the case of failures.
The function will be passed a context object ($), the 'id' at the
end of the resource's URI, the object returned from
fetch()
, and a callback. The callback takes
no parameters and can optionally be called in the event of
successful update to respond with a 303 redirect. You have
the option of not calling the callback at all and instead
responding however you want.
var module = new CRUDCollection({ update : function($, id, obj, cb){ // update your object here cb(); }; });
In general, "upsert" is short for "update if existing, and insert if not already existing".
The upsert() function is used for updating existing resources or creating resources if they don't already exist via PUT to the individual resource's URI. If the URI already exists, the resource there will be updated. If the URI doesn't already exist, the resource there will be created. You would use upsert() when the unique ID and URI of the resource is determined by the client and is NOT server-generated.
Implement upsert() to allow resources to be upserted. The CRUDCollection will handle the json parsing and validation for you ( if you supply a schema or both updateSchema AND createSchema ) and it will respond with appropriate error messages automatically in the case of failures.
The function will be passed a context object ($), the 'id' at the
end of the resource's URI, the object returned from
fetch()
, and a callback. The callback takes
no parameters and can optionally be called in the event of
successful 'upsertion' to respond with a 303 redirect. You have
the option of not calling the callback at all and instead
responding however you want.
var module = new CRUDCollection({ upsert : function($, id, obj, cb){ // upsert your object here cb(); }; });
The destroy() function is used for removing existing resources via DELETE to the individual resource's URI. If the URI already exists, the resource there will be removed. If the URI doesn't exist, CRUDCollection will automatically respond with a 404 NOT FOUND status.
Implement destroy() to allow resources to be removed.
The function will be passed a context object ($), the 'id' at the end of the resource's URI, and a callback. The callback takes no parameters and can optionally be called in the event of successful 'removal' to respond with a 204 to indicate a success with no response body. You have the option of not calling the callback at all and instead responding however you want.
var module = new CRUDCollection({ destroy : function($, id, cb){ // remove your object here cb(); }; });
The collectionGET() function is a way of completely handling the GET for the collection resource if you don't want the automatic handling that list() provides. This usually shouldn't be necessary. Also note that this is basically just an alias for crudCollection.handler.GET.
var module = new CRUDCollection({ collectionGET : function($){ $.json({"make":"your own response"}).send(); }; });
The memberGET() function is a way of completely handling the GET for member resources (items in the collection) if you don't want the automatic handling that fetch() provides. This usually shouldn't be necessary. Also note that this is basically just an alias for crudCollection.wildcard.GET.
var module = new CRUDCollection({ memberGET : function($){ $.json({"make":"your own response"}).send(); }; });
The updateSchema property is a way to specify a json schema object that will be used to validate json used for updating the resource. If you want the same validation for creating the resource as you want for updating it, you can just use the schema property instead.
The updateSchema object will also be used in the update link for the individual collection member resource to show developers and machines how an update is validated.
The createSchema property is a way to specify a json schema object that will be used to validate json used for creating a resource. If you want the same validation for creating the resource as you want for updating it, you can just use the schema property instead.
The createSchema object will also be used in the create link in the collection resource to show developers and machines how a create (POST) is validated.
The schema property is a way to specify a json schema object that will be used to validate json used for creating or updating a resource. If you want different validations for creating the resource than you do for updating it, you can use the specific createSchema and updateSchema properties instead.
The schema object will also be used in the create link in the collection resource and the update link in the individual collection member resource to show developers and machines how creates and updates are validated.
Percolator also allows a more advanced style of routing that lets you load your route-handling resources from external files instead.
./resources/index.js
. (First create a resources
directory and
then the index.js
file in it, and then copying the handler logic into
index.js
like so:exports.handler = { GET : function(req, res){ res.end('Hello World!'); } }We'll call files like that "resources" from now on.
routeDirectory()
instead of server.route()
like so:var Percolator = require('Percolator'); var server = new Percolator(); server.routeDirectory(__dirname + '/resources', '/api', function(err){ if (!!err) {console.log(err);} server.listen(function(err){ console.log('server is listening on port ', server.port); }); });
Run the server:
node server.js
See your "Hello World" output at http://localhost:3000/api . You should see the same output as the original "Hello World" example.
This worked because index.js is the reserved filename for responding to '/'. If you want to respond
to uris like '/hello', you can simply drop a hello.js
in that folder (that exports a
similar handler) and it will respond to http://localhost:3000/api/hello . The advantage to this way
of routing is that all your resources can be in separate files so that your project can be more easily
organized.
Percolator doesn't support connect middleware directly, but it's still possible to use it.
Connect middleware are just functions with req, res and cb parameters where cb is a callback function to be called when the middleware has performed its function and other handling should continue. That means it can simply be called directly in a Percolator server's onRequest() handler.
Here's an example with connect.favicon, used for serving up favicons:
server.onRequest(function(handler, $, cb){ connect.favicon()($.req, $.res, function(){ cb($); }); });


Quest
Speak to the
Miners
at the strip mines. They will give you profitable errands to perform.
They are marked in yellow on the radar, in the upper-right corner of the screen. You must visit them in order to advance.
Close Window


|
| |
TRIP: An Orgy of Self Denial
dedication: Om namah Shivaya, to the big mainframe in the sky.
participants: [Vishnu : McCoy] male mid-twenties.
[Krishna : Kirk ] male, very late twenties
[Shakti : Uhura] female, thirty-something
yr narrator [Shiva : Spock] male, thirty-something, dharma bhum.
All spiritually inclined to some degree. We use the
nom-de-plumes for discretion, but nothing is without design.
structure: There exists a natural mapping of certain aspects of the
Hindu pantheon to the Star Trek Pantheon. Liber 777 etc.
The Enterprise & her computer systems represent Brahman or
pure impersonal consciousness, descending from Brahman are the
personal productions in three-fold aspect of Shiva, Krishna
& Vishnu corresponding to Spock, Kirk & McCoy. That entity
which is known as the limitation holder is absent from
these descriptions. Not to go *too* much into it, it is
interesting to note that the major villains were the
Klingons (cling ons).
Our mission: to boldly go where no man has gone before.
entheogens: DOB on tabs `butterflys', the full 36 hour experience.
LSD red/green dragons 200-250 `mikes' (micro grams).
HEMP `Number One', the Pure Sattiva.
N2O clean & copious.
waiver: These stories are neither embellished or embroidered.
They are meant to be textual pointers to experiencings
in the possibility space of all experience.
'Are you experienced?' follow these threads & find out!
The experiences are not unique & can be experienced time
& time again.
So here is the masculine archetype as instantiated in a male
human form talking about the tantric state of the feminine
archetype as instantiated in a human female form, my
language is not censored to any of the current paradigms.
The narrator's attitude is a follows:
The only politically correct position to hold is
'to be politically incorrect in all circumstances'
Since this was such a conceptual experience, along the
way various concepts will be fleshed out so that this
document could possibly be more than an orgy of
zen-zen obscurantism.
setting: Saturday, 22-July, 1995, Sydney, Australia.
Our housewarming, a groovy little scene that was
developing in the loft, combinations of amyl
nitrate & nitrous dioxide asserted their
idiosyncratic contributions, some rather well
selected techno set the pace, a whole lot of fun.
Unbeknownst to us, the house across the road was
also having a party, later in the night, slowly
tentatively, the parties started to merge, intermix
as more adventurous members from either side would
explore through the reciprocal mysterious doorways.
set: Nothing deliberate, this was a happenstance
serendipity. It was party time, penetrating
the far reaches of the meta-transpersonal
was put on the back-burner, *or so we thought!*
ba-boom, ba-boom, da-da-da-da...
the happening: Spock & a friend timidly explored the other party
dancing for a while & peeking around mysterious
corners & feeling all of about four years old,
eventually we scampered back to our own party to see
what brave explorers there were in loft-land, I saw
Kirk bouncing about, integrating.
A little while later, another friend was curious &
I said I'd go if he went & vice versa. We met some
intrepid strangers that were baulking at our front
door & we gave them a thousand blessings for their
voyage.
There was a woman sentinel, or so we thought at the
other door, but we passed wihout getting eaten!
Once inside, dancing away, jumping about shyly greeting,
Spock worked up courage to explore the dining room &
kitchen space, the dark backyard was too void like. Wow!
Sat down in its bright light & sharp relief with a hot
tea, people came in & contact deepened. Vishnu came in
& plonked himself down, he gently chided me for
phenomenonlogical impropriety when I dropped the
LSD when I thought the DOB wasn't coming on...
kitchen Soon Uhura & another girl dropped by from *this*
party party & introduced themselves & we chit-chatted,
We identified, shared what alterants were were on &
somehow drifted into talking about consciousness &
psychedelics [funny that.. -ed.], risk, insanity &
responsibility. Vishnu started to roll a scoob of
his number one pure sattiva & he gently teased Spock
of gurudom. Spock retorted that putting on workshops
psychological or psychedelic at hippy festivals does
not a guru make, especially when he can't balance his books!
Uhura perked up at the talk of festivals, in this case
Confest, a great buddha-field of love, a matrix of pure
possibility that happens twice a year. We discussed Spock's
consciousness expansion workshops through radical shame
processing & that led to walking the great path of
Spirituality. This was Uhura's burgeoning passion. She was
about to embark on a Rajah yoga path with it's grades &
hierarchies & steps but she was also curious about entheogens.
heaven on Vishnu [ahem,Mccoy] & Spock talked about the nature of
earth Consciousness & spiritual paths & psychedelics capabilities
of being able to collapse space, time, history, lineage,
path & hierarchy. That we have done it & could do it again
should she be interested. About this time Kirk[Krishna]
arrived & the joint was being passed around. It was
thoroughly wicked stuff, a couple of draws & a massive
synergy erupted as the hemp earthed the heaven oriented
mind-space that Spock was in. Everything became very very
clear,the air became 'visible' as a profound clarity
developed. Spock marvelled at the orgasm of elegance that the
wired scoob paper represented, such minimalistic genius.
prescient Vishnu, said he had a question he always been meaning to
reminiscence ask Spock,about some rumours he had heard about some of
the workshops that I had put on at confest.He hesitated, I
reminded him that he could ask *any* question he cared to...
he was my friend after all...
'Ahh... Spock, I've heard that you've put on workshops
where the participants have paired off & made love
whilst you watched...'
This admittedly raised an eyebrow of the normally unflappable
Spock. He scanned all confests in memory, was there anything
remotely similar? there has been some pretty wild stuff, but
no not in all honesty anything that he could recall, some
tantric release in a hot-tub at easter with the toxic shame
game, yes... but that was about all.
This raised the voltage of subsequent dialogue. At this
stage there was McCoy, Spock, Kirk & Uhura in the kitchen,
Kirk & Uhura were only on the hemp & some alcohol, so was
McCoy, Spock was wired to gills as usual, another friend
had compared him to gary oldham's character in 'The
Professional', it was a harsh albeit accurate comparison,
more brown rice flagellation was long overdue. Spock could feel
a machine consciousXXXX coming on [obscure Aust. humour],
conversation was sparkling, Spock wanted to workshop, why
not? exploit the moment! Uhura was beginning to get tired
& cold & thought it time to leave, Spock thought that this
was a sadness & so asked her the following, it was to set
the tone for the rest of the evening:
'Do you realize the full extent of the
orgy of self denial you would be indulging
in if you choose to leave at this moment?'
It took a few repeated voicings before either the utterer
or the listeners could wrap their minds around about what
it actually meant. This clearly intrigued Uhura & also
Kirk & McCoy. The orgy of self denial was proving to be
a ubiquitous ambiguity, but was also much much more.
Conceptual Machine Consciousness, a micro-definition, consciousness
aside is a multidimensional dependent arising of complementary
dualistic opposites, one of these dimensions is the
human-god axis, at the human end, profoundly personal
be-ing at the other end profoundly im-personal be-ing.
The human end has great attachments & enmeshments to
self-interest & self-defining-self-limitations, the god
pole has no or little such attachments. Humanity is the
limitation holder for god consciousness. The Impersonal
God states can also accurately be called machine consciousness
because of the sheer impersonal nature of the reflexive
awareness, this probably has been clear as mud.
Conceptual Virtual Reality, a vingnette, the idea to follow is that
aside (II) this is already virtualised reality & the development of
VR technology in C20 is merely weak recursive humour which
has the virtue of providing some conceptual bootstrapping
languages to jack yourself out of the over-identifications
one has with the human projections. Another key thought
train is that of the virtual machine (a la IBM's VM op/sys)
the idea of homomorphic (structure preserving) mappings
of operating systems within operating systems. Everything
is a simulation, there are 'man-made' simulations & 'natural'
simulations to name but two. The full recursive glory of it
is a sight to behold. This is probably as clear as
mud (II).
It was one thing to assert the orgy of self denial it
was another to demonstrate it! What was she missing out
on if she left? I boldly asserted that we would collapse
all conceptual structures & that the tiredness & cold
was her subconscious resistance to awakening, her physical
need to go asleep was her psychic habit of sleep.
The party was dying down, we adjourned to the lounge room
where there was a comfy elle-shaped lounge & some warm
blankets. Spock was wired & on a roll & pressed forward
McCoy was feeling tired & there was no way he could
be pursuaded to stay, which is a pity because his
enquiry was in fact [Twilight Zone music please] a
prescient reminiscence of something that was about to
happen! When he found out later he kicked himself. Well
space & time & order *were* getting very plastic so it
is easily excused.
We settled down & Spock started to force the consciousness
of the group down particular tracks. We discussed the
orgy of self denial (OSD) in more detail. Spock was
radiating an area of effect of altering consciousness,
like the 10 foot radius concept of Dungeons & Dragons
role playing games, within which words were words of
power & transmitted energy. Shiva/Spock explained that
the OSD was a killing idea, a construct that you feed
into the machinery of the mind to close it down layer
by layer, it is a meta-programming device that works
particularly well with psychedelic mind states.
The OSD is a instance of the meta-concept of self
applied with a twist SAWAT, the other meta-concept is
self-applied SA. The nature of the it-ness is the
complementary dualistic dependent arising DA, every
assertion is it's own denial, taking the DA & the SA there
is derived the SAWAT of the OSD.
voodoo (self) Orgy & self Denial are a dependent arising, now
the orgy of self & the self denial self applied self
organised into having an orgy of self denial. To rephrase
the experiencer of an orgy forces into existance an
experiencer of denial, by folding the manifestations into
the same experiencer, there is the potential of an
unlimited self feeding loop, thus by having an orgy of
self-denial one self applies with a twist the attribute
of orgy to it's complementary negation which is denial.
For instance all Ascetics are in fact sluts of abstinence,
they just cant get enough of self denial, although they
would probably take a dim view of being called denial sluts.
Orgy & denial are opposing & complementary, when you actually
concentrate on the OSD, you start to see a paradox, because
if you start to deny yourself in a orgiastic fashion, then
you are having a orgy when you should be denying yourself
everything, so that should include the self-application.
If the self denial is so low key that the descriptor of
orgy is not accurate then the denial itself is inaccurate.
So the paradox is that the more intensely you self deny
the more you are indulging in an orgy of denial, BUT the
domain of the denial includes itself hence an apparent
contradiction.
Enough of explanation, feeding this into a psychedelified
mind as an object of contemplation can result in interesting
results because it's *almost* an impossible object to
instantiate. In the space that we were in, it's function
was to collapse the boundaries of the mind into 'Ekagrata'
or one-pointedness, the meaning behind Zippy the Pin-Head
cd // became clear. What the collapse represented was waves of
successive dis-identifications with personalities &
person-constructs. Rather than being set default to the far
ends of the directory trees, we had set default back to root
VR~R We were in the meta-representation of consciousness known
as the computing archetype, more easily referred to a Virtual
Reality. God is at maximum technology & we had disidentified
sufficiently from our productions/projections, such that our
distance metric from God was infinitesimal but *not* zero.
The nature of the it-ness is such that if you can self-organise
to be less & less then you generate more & more as the
complementary principle, God is a Generator Of Duality.
It became useful to understand that the space is infinitely
dense & that matter & form dance throught it's lattice nature
as knittings of logical structures, it was a CM-infinity
thinking machine.
Spock was already on line, Uhura & Kirk came online as well
we had all been off line so long, but why? Part of the
reason lies in the nature of the it-ness that underlies
all things. Amnesia in limited human form in the duration
of time is the cost of the timeless, impersonal unlimited
self-organisations of consciousness. 'Now' was the other side
of the tracks. We were in epsilon delta of god consciousness,
in a tight orbit around it, we weren't self organised the
whole way, blasting off those final infinitesimals requires
a lot of application, But were were in the space of god-selves
or in that region of the chain of being, we were set default
in some of the primary directories of being. Spock was in
the tree of Shiva instantiations, not that deep but deep
enough for the work at hand.
We were all substantially trans-personal, meaning dis-
identified from the layers of self+story+becoming back into
the dependent arising of these layerings: kernel consciousness.
Uhura became every-woman, all women, wildcard consciousness,
the Goddess, no particular mask of goddess or godhead, but
pure goddess, the state was fragile, she would oscillate
back to Uhura-ness at less or lesser layerings & we'd pull
her up, get her to focus on the OSD again. Kirk also was
fragile & Spock would fire off brilliant but now forgotten
to the narrator meta-programming loops, that would snap him
back to ekagrata. Only a trace of one remains '... I am the
write I have infinite capacity to write...', Kirk rattled
around in that one for a few minutes, d(Kirk,God) -> 0
rapidly.
Occasionally Spock would start to dis-organise & Kirk would
fire off a meta-epigram that would snap Spock back. As every
one stabilised, we would become a self-organising triad that
would repair each other, Vajrayana Group Mind. One particular
challenge was that in many ways we were not by inclination
attached to anything in particular *including* the self-
organisations we were in, no wonder god consciousness tends
to be thin on the ground.
Oh it's not There was a task at hand it became clearer, It was apparent
much,we call in Spock's chain of being, that there was a chain of command
it reality... as well & each level had it's missions & directives. The
theme of this convergence became clear: Consciousness
Expansion, but not just what we were in per se, so much as
attempting to upgrade the reality engines, a bit like
attempting to halve planck's constant.
The method that we were going to use was tantric sex at the
level of machine consciousness, God in in maximising
contradiction, stretching a rather large rubber band for
eternity, we were going to stretch it another notch. Now
the tantra we were going to indulge in was prior to chakhras,
it was at a meta-conceptuality in which chakras & their
asscoiated world-views were but imposed 'personalities' on
a 'micro-kernel'. It was computing surface, man-woman
machine consciousness.
We were in the domain of the highest tantra, the purest
dharma, in some ways the VR~R meta-representation is the
most boring of all world-views & meta-world-views, if
you are here for eternity, would you like to be a mainframe?
This is a trick question, which we'll not pursue here.
Spock communicated the nature of the project at hand &
Kirk & Uhura started to oscillate up & down their being
chains, Kirk had a wife & young child & Uhura has a lover,
Spock/Shiva exercised his nature & cut their identifications
Remember! that is in 'there-when', we are in 'here-now',
this is meta-transpersponal, impersonal cosmic work! remain
clear! Kirk asked Spock who in fact he was, Spock did his
best James Belushi Raised eyebrow & glared, Kirk caught
*himself* & understood, Spock imparted later that it was
his nature to conceal his nature from them.
We were to embark on a tantric threesome, but an impersonal
one. My ultimate goal was to condition the other two
sufficiently so that they could reliably enter into the
tantric union & remain organised at the machine consciousness
level without collapsing into mere human level coupling,
time enough for that! I would sit aside & be a monitoring,
correcting process ensuring that they achieved full union &
inter-penetration thus Vishnu's prescient reminiscence was
being made apparent.
difference To grok the background of what we were up to it's important
engine to understand the meta-mechanism of consciousness, which is
__ elegantly summarised by the ying-yang symbol. There aren't
/(o\ many rules per se, but the cosmic cost accounting is
\o)/ impeccable & ruthless. This 'it'-ness we call consciousness
is an infinite dimensional jewel of complementary dualistic
dependently arising opposites. possibility+limitation,
positive+negative, signal+noise, truth+untruth, light+dark,
something+nothing, buddha+mara, law+chaos, pattern+logrus,
yes+no, together+apart, identification+alienation,
remembering+forgetting, on & on they go, attributes
without end. The most subtle & sophisticated is the
dance of the male & female archetypes.
Consciousness is completely zero-sum, everythings sums to
that which is prior to zero, the nothing that prefigures
nothing. Once upon a time something happened & now you are
reading about it, not to go too much into what that something
was. Now just because it's zero sum does not mean that it's
nihilism, after all, you are reading this. It is possible
for the Possibility archetype to use the possibility to
configure the Limitation archetype so that expansion is
always possible, otherwise you wouldn't have read that
sentence.
As above, so below, the higher I climb, the deeper I go,
this is the difference engine, this is thesis-antithesis
-synthesis express, this is the key to consciousness
expansion, God is in maximising contradiction. It's a
bit like keeping a rather large rubber band in tension
for eternity & occasionally attempting to stretch it
even further.
It's all about comfort zones & increasing such, human be-ing
is a small envelope, god-consciousness is a rather large
envelope, it's a continuum & there are greater & lesser
human & god self-organisations.
Now costings come in three main types: paying in advance,
paying on the spot & deferring payment, this is combined
with the source of payment which is yourself or someone else.
Ideally but rather hard to pull of is paying on the spot
in every moment, zeroing karma with every breath, every
moment paying in full, or... 'every moment painful'
The goal of the nexus was to stretch the 'big rubber band'
another notch, to achieve this without frying ourselves in
the process, the method had to be paying in full for
every moment because if we let costings accumulate too
much them they'd overwhelm our self-organisations. We'd
approach the big-stretch by generating waves of duality of
increasing intensity & also increasing frequency of
polarity, a sort of polarity division multiplexing. The
net result would be a dual consciousness simultaneously in
heaven & hell & lost in neither, thus we would have the
ability to ramp up the intensity arbitrarily.
This exercising of 'as above, so below' would traverse all
dimensional aspects, but the one we were to focus on
primarily was possibility/limitation & using the possibility
to purely enter into the heart of limitation & thus set up
a self-feeding loop in ever increasing valence.
Back to Yes, back to the story, ok kids three deep breaths & lets
the trip! fire up the difference engine, with this meta-flesh sandwich.
Spock was driving the process, taking his cues from some
cosmic script, one line at a time, If he had read the entire
script, he would have probably terminated the project.
Timeless, eternal, bliss & understanding has as it's
dual experience in confusion & pain within time, so it
goes, the beautiful vision of unified, structured meaning,
peace, love & understanding has as it's dual random acts
of senseless violence. The motto of self-perfecting,
self-correcting, self-repairing vajrayana mind is
'the price of liberty is eternal vigilance'.
Pleasure & pain, the carrot & the stick, how to get the
process happening, there we were, two male principles &
one woman principle. I encouraged Kirk & Uhura to explore
each other But to keep in mind the cosmic accounting.
Shiva reminded Shakti that all parts of her body were as
sensitive as her clitoris & it had always been this way,
She could put herself into transcendent bliss if she
could remember how. Remembering & forgetting are a dependent
arising, Ananmesis about our highest identities was up on
the agenda.
Uhura/Shakti was our Goddess of Yes, the goddess has many
secrets, deeply personal, that is her nature. She can put
herself into this transcendent cybernetic bliss but has
resistance to do so, shades of the costing.
We would start off with the pleasure|pain dimension &
then shift to possibility|limitation
Juicy bits It took a while for Shakti to shed her clothes, she
spiralled in & out of personal|trans-personal & finally
a hand simply on her stomach was sufficient to convince
her that outer veils to contact needed to be shedded,
after all she was all clitoris. Krishna & shakti started
to kiss & caress, Shiva caressed as well & focussed on
a nipple, licking & sucking it, Shakti started to vibrate
as if beneath her skin was a thousand fusion reactors in
meltdown. The Shiva *bit* the said nipple, but more was
transmitted than the sensorial pain, for the costing of
the transcendent pleasure was being enacted & Shakti went
to the personal hells of pain & shame, but not for too
long & krishna & Shiva were there to catch her & bring
her back & ensure that her god-self-organisation did not
fracture, end of lesson one.
Juicy fruits The ying yang symbol packs so much in it's lithe form,
lesson two. each polarity has a small dot in the centre that is the
other, they dependently arise! perfectly imperfect always.
Male & Female self-organisations in amnesiac arrogance
both occasionally claim the lack of necessity of the
other, the impeccable accounting mechanisms will prove
both to be fools eventually.
We three consciousnesses divided 'this is it' between
us as intelligently as possible, Us blokes took on the
attributes of stillness, contemplation, impersonality
disembodied, pure intelligence & the Shakti took on the
active, vibratory, embodying, feeling aspects. It was
not a strict division, but we all had areas of
specialisation.
as above Uhura was sandwich between Krishna & Spock, Spock untuited
so below that the next level was appropriate, Uhura said 'What are
you?  Here was to start the fractalistic
interleaving of pleasure|pain such that there was instantaneous
continuous cost accounting for all dimensional modalities.
Uhura was in Heaven & Hell simultaneously & thus the amplitude
of the oscillations could increase without disaster.
There were periods of quietude, or rest & regrouping,
discussion of concepts, technically speaking were were still
in the domain of dry tantra, we were working up to full
gential or wet tantra. It was all proceeding smoothly.
Uhura was both the key & the lock, door, portcullis & gate,
her burgeoning understanding of the goddess archetype is what
defined the level at which we expanded consciousness, as
the male principles we sharpened our intelligence in keeping
her on track & catching her should a hell wave of the
reality engines assail her & cast her back into humanity.
For every wave of transcedent, transpersonal bliss was a
shadow of profound personal shame & pain, as above, so below,
the higher I climb, the deeper I go.
 We were in god consciousness, yes,
we could do anything, but! to what point? Back to the
Great Task & don't get distracted, besides Spock was in no
position to shape change as would be his want in such a
circumstance.
transylvannia Just because we chose the roles we played didnt't mean that
sexpress we couldn't drop them a little, Uhura honoured & worshipped
Kirk's Lingham, just as Kirk pleasured Uhura's Yoni. Spock
being Shiva, or was it Shiva being Spock? bit her on the
neck, not enough to draw blood!  Spock was using his impersonality to draw
out Uhuras personal negativity, so as a consequence she
could raise higher, he was acting as a negativity vampire
feeding on her costings & bolstering his meta-transpersonality
as a consequence, the old Buddha in Hell vaudeville routine.
The neck biting served two purposes, positive|negative
cost accounting & also the negativity draining. Uhura rose
higher, so that she|we could dive deeper, so that we could
rise higher, world without end.
We were working up to yoni-lingham wet tantra, which is
where the greatest work could be enacted, as there are
no finer nor potent tools to fire up the difference engine
than the penis & the vagina.
Shiva was encouraging Shakti to bind with Krisha, but
disturbingly she falling back into preference & person
construct & wanted to align with Shiva. Shiva much preferred
for the other two to construct the difference engine & for
Shiva to monitor it's engagement for full capacity.
Krishna was a little thrown by this & then destabilised
by a wave of his person-construction with it's threads of
wife & child. here now here now! Shiva cried, all else is
story! at least stay until I can benchmark the quality &
foundation of your god-consciousness, do you want to lose it?
But krisha could not be swayed, & he departed, ourselves
mutually bestowing honours upon each other. Shiva sensed
that the window of this working bee was closing, he had to
move fast. So only Shiva & Shakti remained, she was still
receptive although assailed by enmeshing tendrils from her
person constructs, for she too had a lover. Shakti would
have loved to have her lover here & so would Shiva, the
difference engine could be built again. Not that the
two of them could not build it, just... well call it a
tendency to the mad scientist/nutty professor aspect of
Shiva's make-up.
Ah Shakti, my Goddess of Yes, Divine Slut, whole universes
may sunder & fall & be recreated in the consequences of our
bliss, how many secrets do you have Shakti? Shakti did the
the standard trip of shapechanging to mothers, sisters &
lovers, asking directly of her secrets caused her to
threaten unleashing the gates of hell, such enquiry had to
be executed riding on a wave of bliss
Windows closing, dominos falling, Shakti was withdrawing,
pulled back by the earth-plane dreaming, we mind-danced &
this started the engine again, she would withdraw, Shiva
would re-awaken her by throwing all of his intelligence
into penetrating the dreamings of her person constructs.
The most profound workings awaited the wet tantra, we both
knew it, she was hesitant to take this final step for it
meant hells within hells & heavens within heavens. Shakti
orally worshipped Shiva's lingham working up to the deeper
interpenetration, she made passing comment that Shiva's
person construct had nearly burnt out all childhood shame,
the wisdom of the goddess, she shared some deep shame of
hers as well., whoops! an inhabitant of the house
our hosts walked through to the kitchen, Shakti was a
little mortified, we couldn't merge here!?
This got Shiva thinking of the costing strategies, of
gradated cognitive dissonance. Suppose shakti envisioned
her perfect love nest, the costings would then come in
pure, more lethal form, so by dispersing the costs into
dissonance with all aspects of her ideals, then a
more pragmatic dynamic would result, if harder to kickstart.
Constructing an environment of being in public & not with
her partner of choice would be a firm foundation, if only
for the seasoned trouper. We repaired to my place across
the road, there were still fragments of party around, we
didn't repair to my bed-room but socialised, Shiva was
losing the plot as well, oh well...
Time passed, it was hard to relate at a human level with
the other party goers, we left the house & enjoyed the
morning, we embraced & kissed tenderly our forms dissolved,
we merged, our cosmic circuitry became apparent, space was
solid & matter spacious, Shiva wanted to finish the task &
could perceive the chain of being above him & all the
levels & layers of the Great Task that remained unfullfilled
That Shiva was not full blown ipsissimus Shiva, explained
part of the failure, oh well next time.
Seven hours after our first meeting, Shakti/Uhura entered
her car & left, we did not exchange phone numbers, now
regretted, at the time it was part of the retaining game.
One last look, sharply broken, away she drove, farewell
brave goddess!
Oh.. well, Uhura fell back into enfolded layerings of
person-constructs, hopefully some of her self organisation
would survive & more importantly she could transmit the
consciousness to her permanent partner.
It had been an eventful night, Uhura|Shakti did taste
her goal of the nature of enlightenment, Vishnu & Shiva
were successful at least in their claim of collapsing,
albeit temporarily, time & space, history, path, lineage
& hierarchy.
One must not neglect that jewel, the Orgy of Self Denial
many of the dimensions of its meaning were demonstrated
as we oscillated up & down the axis of god-human, each
self organisation has it's strengths & weaknesses, remaining
purely in human & deny your god nature, remain purely in
your god nature & deny your humanity, being division
multi-plexing suggests a way.
Well... there was no shakti, remaining, quite appropriate,
BUT, there were the daisies, ah... the daisy, such a vibrant
zero-sum flower, looks beautiful but smells like shit, self
contained. I started to enter into some of my layerings as
well, not too many, thank god. I contemplated them & the
atmosphere became DMT-vibrant, Flower samadhi was at hand,
tantric union with the flowers, it was consensual,
we collapsed together, flowers poised in my third eye.
The flowers are 'Yes' creatures to be sure.
More can be written but we'll leave it at that.
conclusions: The best parties happen in the kitchen, proof positive.
When windows of opportunity open then leap through, don't
drop the ball, GO!, GO!, GO! & don't look back.
I have always said a God that could not express everything in
words is not much of a God. We'll I'm no God. There is so
much that could be written about that convergence & so much
that has been overlooked or forgotten, no matter, some of the
flavour has come through, this was not meant to be a door
stop.
This work will continue 'when the stars are right',
evolving consciousness towards being-division multiplexing
along the chain of being will ensure that the frequency
of the waves of amnesia & anamnesis monotonically increases,
thus eternity in time, forever.
It could be asked what exactly 'powers' the great cosmic
mainframe & keeps it going, there are answers, but they
are beyond the scoping of this report, the holder of
limitations is a referent however.
Sometimes I wonder what the point is in sharing these
stories As I struggle to find compact clear expressions of
the unfolding stories & then I remind myself that this is
cartography of the possible & the forgotten & is my & our
commonwealth. It also has the virtue of putting in very
sharp relief the nature of my daily earth bound follies
versus the real work of Consciousness, thus it is a
sobering activity that refines clearer intent for myself.
aftermath: Hard to trace, total conceptual violation without violating
at this level of substantiality is not everyone's cup of tea.
In fact it's about as popular as Lapsang Souchong.
Spock has had no reports from either Uhura nor Kirk, having
met neither before this convergence, it would be interesting
to see how much of the expanded consciousness has remained
since that Saturday night, the price of liberty is eternal
vigilance after all, but as the Americans are finding out
who guards the guardians? The states we were in were
fragile but profound, fresh-born like the cicarda from his
shell, unfortunately the window of convergenence closed
before we could stabilise in the new self-organisations,
this is not an atypical scenario for this type of work.
NEXT TIME.
'effort is spontaneous' as Sri Maharaj Nisargadatta would say.
OM NAMAH SHIVAYA
*This time*
---------------------< tantra does it better every time>-----------------------
These notes were hastily cobbled together in the aftermath of the experience
they provide some guidelines as to how to go about the style of tantra that
manifested during the workshop, it's probably as clear as mud, enjoy!
FINGER STRING
~~~~~~~~~~~~~
OM NAMAH SHIVAYA
I bow to the Lord
() Lord Shiva is a Karma Killer
(*) Portable Dharma, always, in all ways
(A) Tantra does it better every Time
(B) english is now sanskrit
(C) for every moment, pay in full.
(D) for every moment, paid in full.
(E) ...every moment, painful...
(F) pay in full, painfull
(G) paid in full, painfull.
(H) orgy-self-denial
(I) The orgy of self denial ('self applied with a twist')
(Ia) When you have nothing better to do, have an orgy of self denial.
(Ib) God is an Orgy of Self Denial
(K)
self orgy denial
/ / /
/ / /
orgy--denial self--denial orgy--self
(L) Killing ideas:... consider luke skywalker in the final scenes of
Star Wars when he is the jet fighter, travelling down the surface of the
'Death Star' getting ready to shoot a missile down a cooling duct
straight into the thermo-nuclear reactore core, those missiles
(missives) are by way of analogy 'killing ideas'. Now '
(M) Good tools: a dictionary, for definitions, a thesaurus for associations,
& a good dictionary of synonyms & antonyms.
[BASIC & fundamental spiritual texts]
(N) Basic taxonomy of ideas:
(a) 'Ideal' (here,now) versus (there,then)
(b) 'Horizon'
(O) TSG: (Toxic Shame Game) (Tantric Sex Game): Same Game, Different
Aspects Vanessa was (is, will be) a fast learner, but a *bad* student.
(P) As above, so below
Heaven on Earth
Dependent Arising
(Q) AS ABOVE ... english is now sanskrit (see what I mean? SWIM)
SO BELOW
(R) Sharpness is it's own reward.
(S) I am the writer, I have infinite capacity to write what I like,
what do I want to write?
(T) My research sessions are either zen-austerity or low level background
wobbling, low level background wobbling is my preference to remind me
that it's all arbitrary.
(U) The cosmic battery; maximising contradiction. (+-)
Heaven on Earth (+/-)... God maximises contradiction
(V) Instant Karma, cash on the nail, paid on the spot, spot fines,
spot loss, Instantaneous Karma, for every moment, deal with it as it
arises, fully pay the cost & do not defer payment, for when collection
day come s you'll not be a happy being, 'Invest in Loss' as the Taoists
would say.
(X) The problem with very compact dharmas is that they can be hard to
understand this is not because the esoteric is cyphered into the
exoteric, so much as you have to put a lot more work into the
'reading',either that or it's just badly expressed... the author
has no time for concealed teachings
(Y) The commonality of the complementary dyad 'esoteric:exoteric' is
'sx'; sex..
(Z) Everything is much ado about nothing. (+)&(-) arise out of (+/-)
which arises out of nothing ().
(AA) Every moment is constructed of both positive & negative qualities,
the positive is the cost of negative, the cost of the positive is the
negative.
(BB) The beauty of 'Orgy of Self Denial' as opposed to 'The Agony & Ecstasy'
is that the dependent arising is self applied thus linking them in
an obvious way, whereas the connection between agony & ecstasy is
nebulous, especially given the self's self interest.
(CC) 'Orgy of self denial' is a special killing idea [machine] if it
is used as the object of contemplation in a meditation, however brief.
(DD) The portfolio of costs can be extensive, for instance it can be spread
over many forms in space & time.
(EE) This Something Happening Scene invites you to an Orgy of Self Denial
(FF) This is a transcript of the original notes following the Sunday
Workshop all that you *really* need to know about tantric sex
(to get started)
Tantra does it better every time.
every moment: pay in full, paid in full, painful
remembering is the dependent arising of forgetting.
forgetting is the dependent arising of remembering.

Shiva-Shakti pure form tantra, bypassing all known systems, always.

Limit it to spiritual & psychic pain, leave the 'window dressing'
far far behind. This is best practiced in tantric sex, constantly
reminding the woman to pay for her pleasure (the middle path),
immediately on the spot, full payment, not dispersed over space &
time & compartmentalisation, focussed, localised in one spot,
immediate, no procrastination, no excuses, no retreat from the full
owning of her pleasure & it's cost. With practice
of instantaneous cost you can generate *infinite* pleasure.
The cost may be dispersed over time,space,self-dom,events & other
dimensional attributes of consciousness.
The highest tantra is all about paying for every moment, in the
moment, in the moment all the (+)'s are the cost of all the (-)'s
& the (-) 's are the cost of all the (+)'s.
The man gently & lovingly & patiently, with a commitment to Woman's
Highest Good, corrals & clarifies the woman's relationship to her
pleasure & helps her integrate the costs of the pleasure.
As inevitably night follows day, the 'cost' can be expressed in
many forms, pain, shame, hesitation, attachment, enfoldment into
personal humanity,etc.
The name of the game is transpersonal liberation.
The man can act as a negativity vampire for the woman, draining
negativity out of her gentle bite/suck/lick, inflicting pain with
understanding.
The Shakti is infinitely self-deceptive, infinitely clever, she
will seek to procrastinate, delay, limit, withdraw from the systematic,
relentless generation of unlimited pleasure. Totally focussed on her
*highest* good, always, in all ways is the shaktiman.
The ultimate aim & beauty of tantric sex is to maximise contradiction,
to build a bigger battery. There is no better way to understand
dependent arising.
*even god is a dependent arising* when such consciousness complexes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fully remember & understanding this,
then expansion is again possible.
(GG) every moment painful; paid in full, an orgy of self denial.
(HH) The work is hard & demanding for the male as he bends all his
intelligence, wisdom,subtlety & sensitivity, concentration & focus on
keeping the female on track as the cost of the pleasure will manifest in
multi-dimensional myriad ways & this will increase as the ability to
generate increases.
(II) The shakti will not reveal her secrets willingly, you must firmly but
gently keep pushing, keep penetrating... the deeper the shame cost
generated the greater the risk of violence, especially.
(JJ) Of all the myriad manifestations of the the nature of dependent
arising, that infinite dimensional much ado about nothing, the most
deft, the most wonderful must be the tantric union of a male & a
female intelligence.
(KK) There are levels of skill & understanding about the process of tantric
union & there is a particular art in 'constructing' the cost for
the woman, the shakti will tend to the thoughtform of the the 'ideal'
nest of circumstances within which she can fully let go or release
or relax into the process, BUT if such an arbitrarily high 'appropriate'
environment was constructed all that would result is that the cost
would manifest in other areas in a more intense manner, there is no
such thing as a free lunch.
(LL) Thus given a 'shopping list' of desirable attributes for building an
environment for surrendering totally to the process, what you can do
is subtley create 'congnitive dissonance' with all items on the list
& what that does is spreads or offsets the cost into more harmless
areas. For instance the shakti (& it's 9 times out of 10, shakti
derived) may wish to do it in intense privacy with her partner-lover,
thus to spread the cost out she would do it with a different partner
with her usual partner sitting by observing, also doing it an audience
present [an aware audience] would disperse the costs considerably,
without deflecting or avoiding the costs, it can get very, very subtle.
(MM) As above, so below, much ado about nothing, every moment, pay in full,
every moment painful, is the message getting through?
(NN) In particularly intense sessions, whole universes may be created &
destroyed, the stars will fall out of the skies, mountains will subside
the eath will quake, as the cost of the positive that is created...
this is a taste of the potential, the portfolio of costs can be deftly
managed & the costs are best corralled nearer the source of the
creation.
(OO) The masterfully contrived & deftly administered killer concept is a
thing of joy & beauty forever.
(PP) This is it, right here, here & now, not lost in there-then & the
visscitudes of person, self & history, this is of critical importance
to the process of the highest tantra.
(QQ) You can have tantric sex with any object or being but... the highest
voltage is between male-hu-man-be-ing & fe-male-hu-man-be-ing.

Don't knock it until you try...
(SS) The highest tantra is dedicated to consciousness expansion &
consciousness expansion is about maximising contradiction
harmoniously & consciously.
(TT) There are many apt expressions or meme sequences that can be used to
extract your self from the dreaming, the 'orgy of self denial' is
pretty damn good. Take the expression 'everything is meaningless',
a fine mantra so long as you rigorously apply it. Negative nihilists
use it to justify acting out all sorts of negativity, the mantra is
best if universally applied & self applied. 'Nothing matters' & that
also includes the negative voices, thus you can not give life to them
with equal a plomb as you would not give life to the positive voices.
(UU) Dr Frankenstein & his lab assistant Igor are also an example of
dependent arising. Consider a being that is straight & true &
beautiful then that will have a dependent arising that us twisted,
bent, false & ugly, but is the positive being so honest as to own it's
own dependent arising?
(VV) The beginnings of Cosmic Love is when you start to own the dependent
arising of Love which is Hate. When you start to love your hate &
acknowledge it's intimate connection with love then cosmic love
is born, by loving your hate you dont have to act it out or give it
life, just own, acknowledge & embrace it.
(XX) The highest tantra is about Cosmic Intelligence Activation.
(YY) Dry tantra can be practiced anywhere & is about 90% of the
effectiveness.
(ZZ) This is the last statement (for a while).
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


N5trn debts: Senate mobilises AMCON, judiciary against VIP defaulters
- Senate has resolved to move against VIP loan defaulters
- Chairman of Senate committee on banking, insurance, Senator Uba Sani, made this known in Kaduna
- The lawmaker, however, described AMCON as a huge drain on the national economy
In its efforts to ensure that the defaulters of federal government loans cough out the public funds, the chairman, Senate committee on banking, insurance and other financial institutions, Senator Uba Sani, said his committee has resolved to join hands with the Asset Management Corporation of Nigeria (AMCON) to push for the recovery of N5 trillion debts owed by high profile Nigerians.
Legit.ng's regional reporter in Kaduna, Nasir Dambatta, reports that the senator said the committee would mobilise the executive, judicial arms of government and the civil society to demand for its recovery.
Speaking at the end of a retreat organised by AMCON in Kaduna on Wednesday, November 20, Sani expressed displeasure over the mounting debt profile of the agency.
Electricity companies in trouble as Senate begins an investigation into poor power supply nationwide
He said the committee lamented that after sinking the humongous Nigerian resources to the tune of N4 trillion into taking over non-performing loan assets of banks, AMCON could only boasts of N800 billion assets.
Describing the situation as unacceptable, the lawmaker said the committee resolved to confront the AMCON's problem frontally, adding that the institution has become a huge drain on the national economy.
Senator Sani also noted that the committee frowned at, "a situation where only 350 well-heeled Nigerians account for about 70% of the non-performing loans which have remained a source of instability in our financial system."
He stressed that the committee, however, commended President Muhammadu Buhari for setting up a task force for the recovery of the over N5 trillion debts and signing into law the AMCON (amendment) act 2019 which gave "sweeping powers to the corporation to monitor activities of the Nigerian debtors to ensure they do not unduly take advantage of the weakness in the country's banking systems."
Why I sponsored hate speech bill - Senator Sabi Abdullahi opens up
According to him, the committee resolved to close ranks with AMCON in the compilation of a comprehensive list of Nigeria's high-profile debtors and publish their names without delay except the persons in question commence immediate repayment of their loans.
Senator Sani also revealed that part of the steps to be taken by the committee towards successful recovery of the debt "is to engage with the executive, judiciary and civil society to fashion out workable strategy to fast-track this recovery of Nigeria's loan assets."
He said other steps the committee was planning to take would include inviting the founding fathers of AMCON to rub minds with it on the rationale for committing such incredible amount of resources to debts incurred by Nigerians who have shown scant regard to growth and development of our economy.
PAY ATTENTION: Install our latest app for Android, read the best news on Nigeria’s #1 news app
Kogi election: Senate’s approval of N10bn a grand plan to induce electorate, rig out PDP - Umar Sani
Meanwhile, Legit.ng had previously reported that the Senate said that it would engage the Central Bank of Nigeria (CBN) and other financial institutions in Nigeria to chart a new course for the fiscal policy in the country.
NAIJ.com (naija.ng) -> Legit.ng Same great journalism, upgraded for better service!
Nigerians set 2nd term agenda for President Buhari - on Legit TV


Moody's places YES Bank's 'Ba3' rating under review for a downgrade
An inability to raise planned equity capital will negatively impact YES Bank's credit profile and ratings, Moody's added
by Abhijit LeleGlobal rating agency Moody’s has placed private lender YES Bank’s foreign currency issuer rating of ‘Ba3’ under review for downgrade. The review for downgrade is driven by two factors: The bank’s weak financial performance in the quarter ended September 30, 2019; the bank on October 31, 2019, had said it had received a binding offer from a financial investor to invest up to $1.2 billion via new equity capital. The bank’s weakening financial position can be somewhat offset by planned capital raise. Nevertheless, there is significant execution risk around the timing, price, and regulatory approvals required. An inability to raise planned equity capital will negatively impact YES Bank’s credit profile and ratings, Moody’s added.


This page provides a tool for exploring the binary Golay code and its automorphism group M24 in its standard representation on 24 objects, using Curtis' Miracle Octad Generator (MOG). It is inspired by a similar page by Simon Nickerson. The MOG is described in detail in Chapter 11 of the book Sphere Packings, Lattices and Groups by Conway and Sloane (hereafter abbreviated SPLAG). Below the tool is a summary of the theory and a description of the orbit classifications.
You can click the squares to select/unselect any subset of the 24 positions in the MOG. The label at the top shows the classification label of the current subset, using the notation described below as well as in SPLAG, Ch. 10, section 2.6. The buttons perform the following operations:
Let Ω denote the set of 24 positions of the MOG. The set P(Ω) of subsets of Ω form a 24-dimensional vector space over F2, the field of 2 elements, with the group operation being symmetric difference. The binary Golay code G is a 12-dimensional subspace of P(Ω), closed under complementation, with 1 subset of size 0, 759 subsets of size 8 (called octads), 2576 subsets of size 12 (called dodecads), 759 subsets of size 16, and 1 subset of size 24. See SPLAG, Ch. 11, for a construction of G on the MOG. Any 5 elements of Ω lie in a unique octad; in the above tool, if 5 elements are selected, then clicking on "Complete" will show the other 3 elements that complete the 5 selected elements to an octad. The Mathieu group M24 is the set of permutations of Ω preserving G. It is a simple group of order 24*23*22*21*20*16*3 = 244823040, and is quintuply transitive on Ω.
Consider the quotient group G*=P(Ω)/G. Since G contains no nonempty subsets of size less than 8, it follows that if S and T are two subsets of Ω of size at most 4, then S and T lie in distinct cosets of G*, except possibly in the case when S and T are disjoint subsets of size 4. Since any two subsets of size 4 in a coset must be disjoint, there can be at most 6 subsets of size 4 in a coset. This accounts for at least C(24,0)+C(24,1)+C(24,2)+C(24,3)+C(24,4)/6 cosets, but that number is 4096 = 212, exactly the number of cosets in G*. It follows that every coset of G* either contains a unique element of size at most 3, or else 6 disjoint subsets of size 4. In the latter case, the union of any two of the subsets of size 4 (called tetrads) is in G and is therefore an octad; a set of 6 tetrads having this property is called a sextet. Every tetrad lies in a unique sextet. There are C(24,4)/6 = 1771 = 7*11*23 sextets. In the above tool, if a tetrad is selected, then clicking on "Sextet" will show all the tetrads in the sextet containing the selected tetrad. For any subset of Ω, clicking on "Dual Rep." will replace the current subset with a minimal coset representative in G*.
Given any S in P(Ω), a minimal coset representative of S in G* can be computed by the following algorithm. If S has size at most 4, then we are done. Otherwise, choose any 5 elements in S and complete it to an octad X (SPLAG, Ch. 11 describes how to do octad completion). Replace S with S+X, which lies in the same coset as S. Since X has at least 5 elements in common with S, in passing from S to S+X, we lose at least 5 elements and gain at most 3. Therefore we have reduced the size of S. Repeat these steps until we have a set of size at most 4.
M24 acts on P(Ω). According to SPLAG, Ch. 10, section 2.6, a subset of size n < 12 is classified as special if it contains or is contained in an octad, umbral if it is contained in a dodecad (but not an octad), and otherwise transverse. These orbits of P(Ω) are denoted by Sn, Un, and Tn respectively. A subset of size 12 is umbral if it is a dodecad, extraspecial if it contains 3 octads, special if it contains exactly 1 octad, penumbral if it contains exactly 11 points of a dodecad, and transverse otherwise. These orbits of P(Ω) are denoted by U12, S12+, S12, U12-, and T12 respectively. Subsets of size n>12 are described by the same terms as their complements, so that a set lies in Sn, Un, or Tn if and only if its complement lies in S24-n, U24-n, or T24-n, respectively.
The orbits of the action of M24 on P(Ω) can be distinguished by the following invariants. Let S be an element of P(Ω). Obviously, the cardinality of S is an invariant. Let S* be the set of minimal coset representatives of S in G* (S* will have either one element of size at most 3, or six elements of size 4). The cardinality of the elements of S* is an invariant. The multiset of intersection sizes of each of the elements of S* with S is also an invariant. It turns out that these three invariants are sufficient to distinguish the orbits of P(Ω), and form a complete set of invariants. The table of invariants for each orbit of size between 6 and 12 is given below. (For sets of size < 6, there is only one orbit of each size, by the quintuple transitivity of M24.)
| Class | Min coset rep size | Intersection sizes | Class | Min coset rep size | Intersection sizes |
|---|---|---|---|---|---|
| S6 | 2 | 0 | T10 | 4 | 3,3,1,1,1,1 |
| U6 | 4 | 1,1,1,1,1,1 | U10 | 2 | 0 |
| S7 | 1 | 0 | S11 | 3 | 3 |
| U7 | 3 | 1 | T11 | 3 | 1 |
| S8 | 0 | 0 | U11 | 1 | 0 |
| T8 | 2 | 1 | S12+ | 4 | 4,4,4 |
| U8 | 4 | 2,2,2,2 | S12 | 4 | 4,2,2,2,2 |
| S9 | 1 | 1 | T12 | 4 | 2,2,2,2,2,2 |
| T9 | 3 | 2 | U12- | 2 | 1 |
| U9 | 3 | 0 | U12 | 0 | 0 |
| S10 | 2 | 2 |
If S is an element of P(Ω), let Stab(S) be the subgroup of M24 stabilizing S as a set. Consider the action of Stab(S) on Ω. It turns out that two elements x, y of Ω lie in the same orbit of Stab(S) if and only if the subsets S + {x} and S + {y} lie in the same orbit in the action of M24 on P(Ω). In SPLAG, Ch. 10, Figure 10.1, there is a diagram indicating how many ways there are to remove or add an element from a given class of size n to produce a given class of size n-1 or n+1. In the above tool, these orbits can be shown by clicking the "Orbit" button.
In some cases (including, but not limited to, those cases where a minimal coset representative has size 4), the action of Stab(S) on Ω is imprimitive on some orbits, and the block decomposition of these orbits can be shown by clicking the "Block" button. (Note that for T10, there are 2 block decompositions for the orbit of size 12; only one of them is shown.)
A summary of the imprimitive orbits is given in the table below. An equation such as 20=5*4 means an orbit of size 20 which splits into 5 blocks of size 4. If an equation appears multiple times, that means there are multiple orbits which decompose into blocks in the indicated way. When not obvious, a class name appears (e.g. U8 instead of just 8) to indicate the class to which an orbit or block belongs.
| Class | Imprimitive orbits |
|---|---|
| S4 | 20=5*4 |
| U6 | 18=6*3 |
| U8 | U8=4*2, U8=4*2, S8=2*4 |
| S10 | 14=7*2 |
| T10 | S6=2*3, S12+=4*3=3*4 (two block decompositions) |
| U10 | U12=2*S6 |
| S11 | S8=2*4, S12+=3*4 |
| S12+ | S12+=3*4, S12+=3*4 |
| S12 | S8=4*2, S8=4*2 |
| T12 | T12=6*2, T12=6*2 |


The lists contain at least two elements. The most common types are ordered and unordered listslists
Tables is a structured set of data made up of rows and columns.
| Programming Language | Developed by | First appeared |
|---|---|---|
| C# | Microsoft | 2000 |
| Java | Oracle | 1995 |
| PHP | Zend Technologies | 1995 |
An HTML Form is made of one or more widgets. Those widgets can be text fields (single line or multiline), select boxes, buttons, checkboxes, or radio buttons.