]> lifelog.hopto.org Git - dev_notes.git/commitdiff
Added dev_current all.
authorWill Budic <redacted>
Wed, 18 Dec 2024 05:57:18 +0000 (16:57 +1100)
committerWill Budic <redacted>
Wed, 18 Dec 2024 05:57:18 +0000 (16:57 +1100)
16 files changed:
dev_current/docs/About.md [new file with mode: 0644]
dev_current/docs/EContactHashSpecs.md [new file with mode: 0644]
dev_current/docs/LogTagsHelp.md [new file with mode: 0644]
dev_current/docs/PerlCNF/AdoptedPerlProgrammingPractices.md [new file with mode: 0644]
dev_current/docs/PerlCNF/Mermaid_Diagrams.md [new file with mode: 0644]
dev_current/docs/PerlCNF/PerlCNFConstantAnonExplained.md [new file with mode: 0644]
dev_current/docs/PerlCNF/README.md [new file with mode: 0644]
dev_current/docs/PerlCNF/Specifications_For_CNF_Data_Tables.md [new file with mode: 0644]
dev_current/docs/PerlCNF/Specifications_For_CNF_ReadMe.md [new file with mode: 0644]
dev_current/docs/Squeezed In Between Poetry/pix/arrDbl_left.gif [new file with mode: 0644]
dev_current/docs/Squeezed In Between Poetry/pix/arrDbl_right.gif [new file with mode: 0644]
dev_current/docs/Squeezed In Between Poetry/pix/arrDbl_top.gif [new file with mode: 0644]
dev_current/docs/Squeezed In Between Poetry/pix/thournwhaul_logo.jpg [new file with mode: 0644]
dev_current/docs/Squeezed In Between Poetry/vol1.html [new file with mode: 0644]
dev_current/docs/Squeezed In Between Poetry/vol2.html [new file with mode: 0644]
dev_current/docs/notes/dev_journal.md [new file with mode: 0644]

diff --git a/dev_current/docs/About.md b/dev_current/docs/About.md
new file mode 100644 (file)
index 0000000..2c2428c
--- /dev/null
@@ -0,0 +1,10 @@
+# About Life Log
+
+* Life Log is an full database implementation, web journal of categorized logs and events in time.
+* It is meant to be limitless, fully searchable and viewed as mostly desired. 
+* Can be used and expanded, as it is also fully configurable.
+
+![Example Page](images/VS-on-METABOX-42.png)
+
+
+
diff --git a/dev_current/docs/EContactHashSpecs.md b/dev_current/docs/EContactHashSpecs.md
new file mode 100644 (file)
index 0000000..7965e90
--- /dev/null
@@ -0,0 +1,22 @@
+# Electronic Contact Hash Message Specifications
+
+    ECMessage is an alternative to E-Mail postboxes, utilizing a webservice to provide
+    fast and secure one way contact messages for a website. To the website owner or admin.
+
+    With this system in place, website scanners or email ants
+    have no way of accessing emails for illegal purposes.
+
+
+## ECHMessage Provides
+
+    * No Email server/client requirements.
+    * Secure service to service channel, if required.
+    * Spam prevention mechanism and message size limitation.
+    * ECHMessage to real email proxy, if setup.
+    * One Message store for multiple aliases, for easier management.
+    * Cross internetwork messaging closed away from the cloud.
+    * Strict private and public info store and presentation.
+        * private is email, real, name and address.
+        * public is alias and the hash.
+    * Hash is not global or domain centralized at all.
+
diff --git a/dev_current/docs/LogTagsHelp.md b/dev_current/docs/LogTagsHelp.md
new file mode 100644 (file)
index 0000000..2f31547
--- /dev/null
@@ -0,0 +1,43 @@
+# LifeLog Post Tags
+
+```CNF
+<<B<{Text To Bold}>>
+<<I<{Text To Italic}>>
+<<TITLE<{Title Text}>>
+<<LIST<{List of items delimited by new line to terminate item or with '~' otherwise.}>>
+<<IMG<{url to image}>>
+<<FRM<{file name}_frm.png}>>
+```
+
+* frm.png images file pairs are located in the ./images folder of the cgi-bin directory. These are manually resized by the user. Next to the original. Otherwise, considered as standalone icons.
+* _frm.png Image is resized to -> width="210" height="120"
+
+Examples:
+
+```sh
+  ../cgi-bin/images/
+                       my_cat_simon_frm.png
+      my_cat_simon.jpg
+
+  For log entry, place:
+  &nbsp;<<FRM<my_cat_simon_frm.png> <<TITLE<Simon The Cat>>
+  This is my pet, can you hold him for a week while I am on holiday?
+
+  Explicitly tag an URL in the log entry. Required if using in log IMG or FRM tags. 
+  Otherwise link appears as plain text:
+  &nbsp;<<LNK<{url to image}>>
+
+```
+
+* YouTube embed script is automatically parsed.
+
+Example:
+
+```pre
+
+<iframe width="560" height="315" 
+src="https://www.youtube.com/embed/xxxxxx" 
+title="YouTube video player" frameborder="0" allowfullscreen>
+</iframe>
+
+```
diff --git a/dev_current/docs/PerlCNF/AdoptedPerlProgrammingPractices.md b/dev_current/docs/PerlCNF/AdoptedPerlProgrammingPractices.md
new file mode 100644 (file)
index 0000000..8793478
--- /dev/null
@@ -0,0 +1,270 @@
+# Adopted Best Perl Programming Practices
+
+APPP, Similar to the jargon of Internet Marketings strategy of 3 P's:
+
+
+1. **Permission** – to increase your response rate, get permission from people first before you send them email marketing messages.
+1. **Personality** – let your personality shine through in all your marketing communications to better connect with your ideal clients.
+1. **Personalization** – narrow your service offerings to a very specialized niche market to make it easier for potential clients to find you.
+
+This document highlights my personal adopted practices to efficiently and uniformly use the Perl language, through to all the code and future revisions.
+As the number of projects mount, and experience and the encountered other best practices come to light. Hopefully and possibly, this document will be updated and worked on to reflect, give answers or remind. Why something is implemented in a particular way, and to some readers for god sake, also why?
+
+## Perl Objects
+
+Perl objects start with **variables** progress to **blocks** where variables are used in a expression context as encountered from one statement to next.
+Grouped and reused operations are called **subroutines**. Subroutines choice of use is, is incredibly in many ways flexible further. Where they can be void, functions and even method like, when used in a **package** object. Beside packaging your variables and subroutines for reuse into a single object. It is worth mentioning, that packages can be placed into modules, for further better organization, however modules are not objects.
+
+### Variables
+
+* Global variables are package variables, the most primitive and default package is called ```main::```. Your script runs in it, I can bet on it.
+* Lexical variables are part of a block, their life starts in it and ends, declared by **my**, **local** or **state**, and are initialized by the type of data they represent.
+  * Basic Variable Data Types are:
+    * `$` Scalars
+    * `@` Arrays/Lists (Arrays -> [] are immutable and don't use with list functions.)
+    * `%` Hashes
+  * Use of **my** is the preferred declaration. As **local** will not create a private variable, contained to the subroutine.
+    * **local** variables are dynamic variables, and are available to other blocks and visible to other called subroutines within the block where declared.
+* Special variables, inbuilt, reserved, magical, these are part also of the Perl language, and are suggested reading about.
+  * These are not covered in this document, and if not familiar with, not a required further reading.
+   * Or if still curious here -> [https://perldoc.perl.org/perlvar]
+* The main benefit of Perl is actually that it isn't strictly typed, and scalars will automatically best can convert, outcome for your expressions, declarations.
+  * Remember it is designed to be an fast interpreted on the fly language, providing you an flexible way to interact and work in a script with behind the scene libraries that are not high level. Making it an excellent candidate for prototyping, testing, implementing algorithm logistics without to be constrained to any needed structures, levels of complex what an external framework implementation requirements is? And where?
+  * Has garbage collection, mutability, and one of the actual first kind of functional languages is Perl. It functions, without having to do much setup, configuration or tooling. If you do, it is most likely that you are reinventing the wheel.
+  * Good practice is to keep to adopted version of Perl, provided features. And not use experimental features in your scripts, not available to an existing old installation on your network. Rest is its long history. Old code has to be compatible with newer version of the Perl interpreter.
+
+### Subroutines
+
+Subroutines can also be in nature anonymous, clojure. They are fastest accessed without parenthesis.
+
+* Instead of an empty argument list, use the pod signifier **&** that is for subroutines, as this passes the current running block argument list (@_) to them.
+  * >i.e.: use ```&foo;``` instead of calling with ``` foo(); ``` is faster and preferred.  
+* Arguments to a subroutines are a flat list copy of variables passed. Don't pass globals, and avoid local variables, if you expect them to change by the subroutine.
+### Methods
+
+Object methods return encapsulate different variable values but structured by same the name. Those variable names must not change, and some times also the variable value is not to be changed form the initialized one, as it is to stay private.
+
+* Package variables are to be private, otherwise forget about it.
+* Package objects are to be created by default with an fixed list of names of the variable, in form of a hashtable that is blessed to an instance.
+  * Example:
+  
+    ```Perl
+    package Example{
+        sub create{
+                my ($pck,$args) = @_;
+                        
+                        bless { 
+                                    name => $args->{name}, 
+                                    value => $args->{value}?$args->{value}:0,
+                        }, $pck;
+        }
+    }
+    my $example = Example->create({name=>"ticket", value=>2.50});
+
+    ```
+
+* Variables of an package object is to have ONE subroutine to deal with setting or getting the value.
+  * Unlike in OOP get/set methods, Perl doesn't need two methods. Why make the object bigger? Even if it is only in its initial state.
+  * Example:
+  
+    ```Perl
+    package Example{
+        ...
+        sub name  {shift->{cnt}}
+        sub value {my($this, $set)=@_;if($set){$this->{value} = $set};$this->{value}}
+    }
+
+    ```
+
+    * In example above the **name** object variable is read only. While **value** is both an true get/setter method rolled into one.
+
+* The parent container to package objects, is to be a separate entity, to which its children don't have access.
+* Containers or composites lists of particular type of object should use ```ref(.)``` method, and not function prototypes, that is the function signature approach.
+  * Example:
+  
+    ```Perl
+    package Container {
+        
+        sub create {
+            my ($this) = @_;
+            bless {items=>()},$this;
+        }
+        sub add {        
+            my ($this,$item) = @_;
+            my $r = ;
+            if(ref($item) eq 'Example'){
+                push (@{$this->{items}}, $item);
+
+            }else{
+                die "put $item, not of package type -> Example"
+            }        
+        }
+        sub iterate {
+            my ($this,$with) = @_;
+            foreach(@{$this->{items}}){
+                do $this->$with($_);
+            }
+        }
+    }
+
+    ```
+
+    * Example above creates a flat list or array that can contain only items of a certain package type object.
+      * Some might say; seeing this, *oh life is not easy in the Perl suburbs of code*, put it can get more complicated.The container can be hashref type of list, where each item is a unique property, searchable and nested further.
+      * Good saying is also keep it short smart, when bloated is stupid. Iteration method can be passed an anonymous subroutine, that out of scope of the container, performs individual action on items in the container. The container contains, and by purpose restricts or allows, what ever implementation you fit as appropriate with it.
+      *
+
+    ```Perl
+       
+        my $container = Container->create(); 
+        ...
+        $container->iterate(sub {print "Reached Property -> ".$_->name(),"\n"});
+
+    ```
+
+## Expressions and Logic
+
+* Use **references** for passing lists, arrays and hashes if knowing they are further being read only not changed.
+  * In your ``main::`` package you have all in front, and know what are you doing, don't you?
+  * However, not using references is secure way, to pass to an module a copy of an extremely huge list. With which it can modify and do what ever its munchkins wants. You are right.
+* **IF** statements should and can be tested to for the scalar default exclusively.
+  * ``if($v){..do something}``
+    * It is not needed to test for null, or in Perls parlang which is the value of ``nothing`` or ``0``.
+  * Post declaration testing and setting of variables as one liners are encouraged, don't know why someone sees them as an eye sore?
+    * The motto is, the less lines of code the better.
+    * Example:
+
+     ```perl
+      my $flag = 0; $flag = 1 if scalar(@args)>1;
+     ```
+
+  * Following is not a **scalar**, so must not to be coded at all as:
+
+     ```perl
+      my @arr;
+        print "@arr is not declared!" if !@arr;
+        @arr=(1 2 3 "check", this, "out", "some elements here are not comma separated but is valid!");
+        print "@arr is declared!" if @arr;
+     ```
+
+    * Surprisingly to some coders out there, where this fails is on the last ``if`` statement. Which should be written as:
+     ```perl
+        ...
+        print "\@arr is declared an empty list!" if scalar @arr == 0;
+     ```
+
+* **IF** statements with further curly brace clauses, should be expression based normal logical statements.
+  
+     ```perl
+        if(!@arr){
+            print "\@arr is not declared!";
+        }
+        elsif (scalar @arr == 0){
+            print "\@arr is declared but an empty list!"
+        }
+        else{
+            return hollySmokeHereWeGo(\@arr); #We are passing an reference to our @arr.
+        }
+     ```
+
+## References
+
+* References are only alike with pointers in C, all variable assignments create copies, same is for lists or hashes.
+* Dereferencing outside a scope will create a copy for the purpose of the packages scope. To purposely share a packages hash, return it as a hash reference (**\\%**).
+  
+  ```perl
+  package A;
+  our $S_ =""; 
+  our %HOUSEHOLD = (
+      pets => {dogs=>2, cats=>1}
+      furniture => {pianos=>1, tables=>3, chairs=>12}
+  )sub household {$S_=shift;\%{$HOUSEHOLD{$S_}}};  
+  ```
+
+* ``` sub household ``` is known like this as an method of package A. Opening access to the %HOUSEHOLD hash.
+* Following examples use static access package directive A::, an object instance i.e. A->new(), will have own copy of all variables and lists, private to the package.
+* ``` my $pets1 = A::household(pets); ``` Scalar $pets1 has an hash reference to the inner hash property of the household hash.
+* ``` my %pets2 = ${A::household(pets)}; ``` Hash %pets2 is here dereferencing the other packages owning hash, however this creates an copy. Something not possibly wanted.
+* ``` $pets1 -> {'pigeons'} = 140 ``` Scalar here adds to referenced  in package A::%{HOUSEHOLD}->%{pets}, a new entry pigeons and the number of them.
+* ``` $pets2{'pigeons'} = 180 ``` We can add to the hash copy similar the same, like this, the usual way, things are added to an hash. But A::%{HOUSEHOLD}->%{pets}, would not about it be any more wiser. It will retain its value. And/Or if to copy we added any new entries, would not have a clue about it.
+* ``` my %pets3 = %$pets1 ``` is misleading, it creates the current snapshot copy of $pets1, so similar but not same to assigning ``` my %pets3 = ${A::household(pets)}; ```. The later which you most probably want, a shared and packaged nested anonymous hash.
+
+```text
+pets => {dogs=>2, cats=>1} <- This is called an anonymous hash when in curly braces. 
+As the 'pets' entry is a key, not a variable.
+
+```
+
+```perl
+my %hsh  = (a=>'shared'); <-Normal named and declared hash. Allowed to be declared wrongly
+ also with curly braces instead of brackets.
+my $ref_hsh  = \%std1; 
+$ref_hsh -> {a} = 'changed'; <- Magically we changed the value of a via perls inbuilt autovification process.
+print (($ref_hsh->{a} eq $hsh{a}) ?"true":"false"); <- prints true.
+
+```
+
+* We pass to subroutines references to an obj, array or hash, when the same is to transform. Example: ``` my @transformed = process(\@myArray); ```.
+  * Variable @transformed is quite an obsolete declaration. As it will contain a copy of @myArray if sub process is returning an array.
+  * Subroutines that receive and return a list from its scope, will create new ones on the receiving end. This can be avoided. By changing via array reference (**@$**).
+
+```perl
+
+package A{
+    sub process {
+      my $into_ref_array = shift;
+      push @$into_ref_array, "Aaaaa, real good!"
+    }
+}
+
+my @this_song = ('Push it!'); <-- Notice list type with brackets declaration, it is mistake 
+                                  to declare as a protected fixed array 
+                                  i.e. with my @this_song = ['Push it!'];
+A::process(\@this_song);
+say join ' ', @this_song;
+
+Push it! Aaaaa, real good! <- Prints. See -> Salt-N-Pepa - Push It (Official Music Video)
+
+```
+
+* That all said, this is all is happening from script to initial state of default existence of an program flow. To preserve changed states and dynamic data or even objects. This will require persistance and most likely dynamic object creation.
+
+## Bad Programming Practices Section
+
+* The following example has been taken from the following blog, Cheese Louise! How some people wrongly code and should not be programmers or stop writing critiques, like this guy --> [HFT - A Developer From London](https://thehftguy.com/2019/10/07/perl-is-dying-quick-could-be-extinct-by-2023/)
+
+  ```perl
+  #!/usr/bin/perl
+  use strict;
+  use warnings;
+  use CGI;
+  
+  my $cgi = CGI->new;
+  my %param = map { $_ => scalar $cgi->param($_) } $cgi->param() ;
+  print $cgi->header( -type => 'text/plain' );
+  print qq{PARAM:\N};
+  for my $k ( sort keys %param ) {
+      print join ": ", $k, $param{$k};
+      print "\n";
+  }
+  # PARAM:
+  # foo: bar
+  ```
+
+* Here is what is wrong?   
+  * By printing the```perl print $cgi->header``` he already got the output format ready to be sent to the client, has the CGI object been properly initialized? So he is saying fibs in his critique.
+  * With ```perl print join ": ", $k, $param{$k};```, the join statement is redundant, Perl has fantastic string interpolation that even modern Python doesn't match. But Python took routines and what deemed working from being available in Perl for decades.
+  * At the beginning, he is remapping with $cgi to a hash map the CGI is already designed with subroutine params to provide them all, this isn't efficient.
+  * Being ignorant to distinguish between interpreted script language from a binary producing strict type script is very common. And is only a product of not having experience with possible both cases.
+  * OOP, and threading is already here for Perl too. In form of modules to be enabled. But main goal of Modules and Perl is and was not to reinvent the wheel when it comes to algorithms and how to most efficiently also implement them. That is for what the CPAN repository is for. I agree it can be bad when it comes approachable documentation, but also some of the best IT books out there are written for the topic Perl. The Authors are quite amazing writers, and should be supported.
+
+***
+
+### Released: v.1.2 Date:20210629 (v.1.1 Date:20210610)
+
+>This document has been written by ***Will Budic*** and is from the [PerlCNF](https://github.com/wbudic/PerlCNF) project.
+>
+>Any disclaim, ideas and statements encountered are of personal opinion and facts. Acquired from personal study and experience. Author, removes him self from any responsibility for any third party accepting or implementing the aforementioned document into practice. Amendments and critique are welcomed, as this is an open public letter document.
+>However, No permission has been given, for publishing, or copying parts of this document, the only permission been given by the author, is to remove this document from after acquiring any other project code or files, which are open source.
diff --git a/dev_current/docs/PerlCNF/Mermaid_Diagrams.md b/dev_current/docs/PerlCNF/Mermaid_Diagrams.md
new file mode 100644 (file)
index 0000000..1b81087
--- /dev/null
@@ -0,0 +1,13 @@
+# Example 1 - CNF Usage Flow
+
+```mermaid
+graph TD;
+    CNF<-->Application
+    Application-->Database
+    Application-->WebService
+    WebService<-->CNF
+    WebService<-->Database
+
+    Database <--> CNF
+
+```
diff --git a/dev_current/docs/PerlCNF/PerlCNFConstantAnonExplained.md b/dev_current/docs/PerlCNF/PerlCNFConstantAnonExplained.md
new file mode 100644 (file)
index 0000000..7cdce0a
--- /dev/null
@@ -0,0 +1,160 @@
+# PerlCNF Constant, Anon, Values and Data Types Explained
+
+    CNF has so called instructional property name value pairs.
+    This document delves a little bit further into explaining them, how and why are as such implemented.
+
+## Instructual Types
+
+    1. Data type of values is determined and implemented by computer language doing the interpretation.
+    2. These data types must cover maximums, like 64 bit Integer for numbers, and String of UTF 8 unicode base as the minimum.
+    3. The following are instructional value types CNF must cover.
+        1. Constant
+        2. Anon
+        3. Collections
+        5. Data
+
+## Constant
+
+A CNF Constant is as the name suggests, can't be changed once declared in the configuration.
+There are additional rules with these constants.
+
+    * They are private settings to every instance of the Parser, hence not global.
+    * They can be declared only once.
+        - Subsequent parsing of scripts and includes, by the same Parser will issue warnings or exceptions.
+    * They must be present in the configuration, otherwise an Application can't function.
+        - The Application might provide itself inbuilt defaults, but that is now considered bad practice.
+    * Constant is preferred and recommended setting requirement for further CNF properties settings like, special instructions or plugins.
+    * Can be shortened to **CONST**.
+
+Accessed best is via method:
+
+        ```PERL
+        $parser->const('ThreadPoolSize');
+        ```
+
+Or directly with:
+
+        ```PERL
+        $parser->{'ThreadPoolSize'};
+        ```
+
+### CNF Basic Format
+
+    ```CNF
+
+    #This is the number of threads to make available as workers.
+    <<ThreadPoolSize<CONSTANT>10>>
+    ```
+
+### CNF Multiline Format
+
+Quotes are not necessary in CNF, they get trimmed if present.
+Constants can't be further instructional, as the reserved word CONSTANT or CONST is the instruction.
+
+
+```CNF
+
+<<<CONSTANT
+    TreadPoolSize = 10
+    TreadWaitTime = 3000
+    DEBUG         = yes
+>>>
+```
+
+## Anon
+
+    A CNF anon is the variable version of a property and value.
+    They are in nature of no concern to the Parser and can be overwritten or omitted from a script.
+    Hence their name.
+
+    * They are a composite to the parser and considered global and public by default.
+    * Setting parser to ANONS_ARE_PUBLIC => 0, will make them private.
+        - Private or the Parser instance will have only its own Anon's assigned.
+    * Anon instructional type is also considered also to be the basic form of an CNF property.
+
+Accessed for value only via method:
+
+```Perl
+$parser->anon('CurrentDate');
+```
+
+### Basic Format
+
+```CNF
+#Check is logs need trimming.
+<<CheckLogsOnStartup<1>>>
+#Assign current date the Parse has parsed this script.
+<<CurrentDate<DATE>now>>
+<<ReleaseDate<DATE>2023-09-21 10:57:44>>
+```
+
+### Multiline Format
+
+Since version 2.8, multiline format can also be used with the VAR or VARIABLE instruction.
+But only for simple property value pairs.
+Anons which are instructional must be scripted standalone.
+
+```CNF
+<<<VARIABLE
+    CheckLogsOnStartup = 1
+    AppName = "  Application ACME Removals PTY LTD   "
+    AppLabel =   This line of text will be trimmed but not at the end.
+    ...
+>>>
+```
+
+## CNF Property
+
+    A CNF property is in simplest form a anon, but also is a complex instruction value, like a collection.
+    Or a processed data value, will come from a property.
+    Collections will be processed in form of a property to.
+
+
+## Format
+
+```CNF
+<<MyProperty<SOME_INSTRUCTION>
+    ...The Property Body...
+>>
+```
+
+## Type Of Collections
+
+    There is three type of collections.
+    Convention is to prefix collection property name with the instruction signifier of either **@** or **%**.
+
+    The list signifier is a **$$** postfix to the name.
+
+1. Array type.
+    ```CNF
+        <<@SomeList<@>
+            Blue,
+            Red,
+            Green
+        >>
+    ```
+
+2. Hash Type.
+    ```CNF
+        <<%SomeHash<%>
+           Blue  = #0000FF
+           Red   = #FF0000
+           Green = #008000
+        >
+    ```
+
+    ```PERL
+       my @list = $parser->collection('@SomeList');
+       my %hash = %{$parser->collection('%SomeHash')};
+    ```
+
+3. List Type (experimental)
+    1. Collections as a named list so can be scripted into multiple properties or files (includes).
+        ```CNF
+        <<MyList$$<@>1,3,5,9,13>>
+        <<MyList$$<@>19,23,
+        113>>
+        ```
+    ```PERL
+       my @list = $parser->list('MyList');
+    ```
diff --git a/dev_current/docs/PerlCNF/README.md b/dev_current/docs/PerlCNF/README.md
new file mode 100644 (file)
index 0000000..64f0aae
--- /dev/null
@@ -0,0 +1,109 @@
+
+# PerlCNF
+
+Perl based Configuration Network File Format Parser and Specifications.
+CNF file format supports used format extraction from any text file.
+Useful for templates and providing initial properties and values for an application settings.
+Has own textual data format. Therefore, can also be useful for database data batch processing.
+
+This project also contains a custom build TestManager module for general and all test driven development.
+It is at current v.2.9, and specification implemented.
+
+[You can find the original up-to-date specification here.](https://github.com/wbudic/PerlCNF/Specifications_For_CNF_ReadMe.md)
+
+---
+## Status
+(2023-14-6) - v.2.9, new meta flags and priority can be set via these pre-evaluation settings for instructions.
+              Node processing on demand and JSON translation on demand of CNFNode's (TREE instruction) is now available.  
+              Online demo made available.
+(2023-5-13) - v.2.8, has new instructions VARIABLE, to streamline under one tag like CONST, but for anons.
+Has better tag mauling algorithm. PLUGIN code has been improved, particularly the synchronizing and the linking of properties.
+
+(2022-11-18) - PerlCNF now provides custom test manager and test cases. 
+That will in future be used for all projects as an copy from this project.
+This is all available in the ./test directory and is not a Perl module.
+
+---
+
+## Installation Of This Perl GitHub Project
+
+* Installation is standard.
+
+```sh
+    mkdir ~/dev; cd ~/dev
+    git clone https://github.com/wbudic/PerlCNF.git
+    cd PerlCNF
+```
+
+* To install required modules locally to home, do not run following with sudo in front.
+    * cd ~/dev/PerlCNF; #Perl tests and project directory is required to be the starting location.
+```sh
+    ./install_cpan_modules_required.pl    
+```
+
+
+## Usage
+
+* Copy the system/modules/CNFParser.pm module into your project.
+* From your project you can modify and adopt, access it.
+* You can also make an perl bash script. 
+
+    ```perl
+    use lib "system/modules";
+    use lib $ENV{'PWD'}.'/htdocs/cgi-bin/system/modules';
+    require CNFParser;
+
+    my $cnf1 = new CNFParser('sample.cnf');
+    #Load config with enabled evaluation on the fly, of perl code embedded in config file.
+    my $cnf2 = new CNFParser('sample.cnf',{DO_enabled=>1, duplicates_overwrite=0});
+
+    ```
+
+## Sample CNF File
+
+```CNF
+<<<CONST
+$APP_NAME       = "Test Application"
+$APP_VERSION    = v.1.0
+>>>
+<<$APP_DESCRIPTION<CONST>
+This application presents just
+a nice multi-line template.
+>>
+
+<<@<@LIST_OF_COUNTRIES>
+Australia, USA, "Great Britain", 'Ireland', "Germany", Austria
+Spain,     Serbia
+Russia
+Thailand, Greece
+>>
+
+Note this text here, is like a comment, not affecting and simply ignored.
+
+<p>Other tags like this paragraph, is better to put into a CNF property to be captured.</p>
+
+```
+
+```perl
+
+my $cnf = new CNFParser('sample.cnf');
+my @LIST_OF_COUNTRIES = @{$cnf -> collection('@LIST_OF_COUNTRIES')};
+print "[".join(',', sort @LIST_OF_COUNTRIES )."]";
+#prints -> [Australia,Austria,Germany,Great Britain,Greece,Ireland,Russia,Serbia,Spain,Thailand,USA]
+print "App Name: ".$cnf->constant('$APP_NAME')."]";
+#prints -> App Name: Test Application
+
+```
+
+## Run Test Cases
+
+* Tests are located in the projects **./test directory.
+* Example how to run them:
+
+```sh
+    perl ./tests/testAll.pl
+```
+
+* Check also the latest Perl CNF [example.cnf](https://github.com/wbudic/PerlCNF/blob/master/tests/example.cnf) scripted also as a tutorial.
+  * Yes! That is an actual valid configuration file.
+  * To only just run it or check use ``` perl ./tests/testExample.pl  ```
diff --git a/dev_current/docs/PerlCNF/Specifications_For_CNF_Data_Tables.md b/dev_current/docs/PerlCNF/Specifications_For_CNF_Data_Tables.md
new file mode 100644 (file)
index 0000000..0e4e08f
--- /dev/null
@@ -0,0 +1,163 @@
+# CNF Specifications - Data and SQL Document Section
+
+
+<span id="content" class="span-content">This section is part of the main ⇾ [CNF specifications](docs/PerlCNF/Specifications_For_CNF_ReadMe.md)</span>
+
+
+## CNF Data and SQL Document Section
+
+CNF scripted delimited data property, having uniform table data rows.
+The data is converted by default into arrays as rows. If it contains a header (recommended) these becomes the header of the data. A table header will be produced that contains the row's column's information, like name and type specs.
+The table header contains the actual data reference.
+
+This table is and specs are used to access, map and translate the data.
+There is a basic header being created by the parser and placed into its data hash.
+
+Example on how to access the data table of a property.
+
+```Perl
+my $table  = CNFParser->new(...)->data(){'MyDataProperty'};
+my $header = $$table->{header};
+my $lbls   = CNFMeta::_deRefArray(@$$header[0]);
+my $spec   = CNFMeta::_deRefArray(@$$header[3]);
+my $data   = CNFMeta::_deRefArray($$table->{data});
+```
+
+## SQL Based CNF Instruction
+>
+> The following reserved words or instructions are data and SQL related.
+<style>
+    .CNF_md_table{
+        background-color: beige;
+        td{
+            border-right: solid black 1px;
+            border-bottom: solid #ab0433 1px;
+        }
+    }
+</style>
+<table class="CNF_md_table">
+ <thead>
+  <tr>
+   <th>Instruction</th>
+   <th>Description</th>
+  </tr>
+ </thead>
+ <tbody>
+  <tr>
+   <td>DATA</td>
+   <td>CNF scripted delimited data property, expected to have uniform table data rows, where very first is the table header if provided.</td>
+  </tr>
+  <tr>
+   <td>FILE</td>
+   <td>CNF scripted delimited data property is in a separate data file location, from the current script.</td>
+  </tr>
+    <tr>
+   <td>TABLE</td>
+   <td> SQL create Table body statement part. These can unfortunately differ from one database system to another.</td>
+  </tr>
+    <tr>
+   <td>INDEX</td>
+   <td>SQL create Index body. Indexes provide faster and more efficient data searches and updates.</td>
+  </tr>
+    <tr>
+   <td>VIEW</td>
+   <td>SQL create View body. Views provide a faster and narrower snapshot of what can be a lot of data.</td>
+  </tr>
+      <tr>
+   <td>SQL</td>
+   <td>Direct SQL statement without any variable unknowns.</td>
+  </tr>
+    <tr>
+   <td>MIGRATE</td>
+   <td>Same as SQL instruction, but migrations related towards tables and the application version.</td>
+  </tr>
+ </tbody>
+</table>
+
+## CNFMeta SQL Related
+>
+>Meta tags in use are DATA instruction related.
+
+1. Meta for what actions on data and table is required.
+   1. <code>_SQL_PostgreSQL_</code>
+      - Data is to be linked or related to a Postgres SQL Database, default is SQLite.
+      - In cases where the SQL underlining driver is something different from SQLite or Postgres this should be set to true and hope for the best.
+   2. <code>_SQL_TABLE_</code>
+      - Create or link to an SQL Table equivalent.
+   3. <code>AUTO_NUMBERED</code>
+      - ID column is auto numbered from 1-* if an '#' is found as the value.
+   4. <code>_HAS_HEADER_</code>
+      - Specifically instruct first record is the header labels and specs for the columns.
+   5. Column CNF type is optionally placed next to header label, default column type is TEXT.
+      - i.e. <code> `ID _INT_`Name _TEXT_`Entered _DATE_`Active _BOOL_~ </code>
+
+### Table Column CNF Data Types
+
+1. Column Data type are geared towards the CNF data type provision.
+   1. See %CNFMeta::CNF_DATA_TYPES global.
+      - BOOL INT NUMBER DATE TEXT
+   2. The date type is specific in CNF set to an universal date and time stamp of <code>YYY-MM-DD hh:mm:ss</code>.
+   3. Global $CNFMeta::SQL_CNF_VAR_LENGTH = 2024; can be changed to provide for the __TEXT__ limit translation of specified columns for a database. You can expect database errors if inserting texts that is larger than this variable limit
+
+### CNSQL Package
+
+- Accessed as a global instance of CNFParser, it is the SQL based utility for external database interactions.
+- Its actual use is expected to be via a PLUGIN instructed CNF property, to provide driver to be used, credentials and other details.
+- Example method to use it: `my $sql = CNFParser->new()->SQL();`
+- Required method when using tables with a database based storage:`$sql->initDatabase($db, $do_not_auto_synch, $map)`
+- The __DataProcessingPlugin__ provides the concept of processing the scripted data to to CNF table column type conversion.
+  - The parser provided header gets updated by this plugin.
+  - The parsers natural processing mechanism will require all SQL properties in raw form before a plugin is called to process further.
+
+>The following is extract from the original ⇾ <span id="content"> [specifications](docs/PerlCNF/Specifications_For_CNF_ReadMe.md)</span>.
+
+### CNF DATA Instruction
+
+CNF Instructions are parallel with the reserved words. Which means, you can't use these reserved words to replace with your own instruction. This section explains in more detail, what these are, and how are implemented.
+
+1. DATA
+    1. Data is specifically parsed, not requiring quoted strings and isn't delimited by new lines alone.
+    2. Data rows are ended with the __"~"__ delimiter. In the tag body.
+    3. Data columns are delimited with the invert quote __"`"__ (back tick) making the row.
+    4. First column can be taken as the unique and record identity column (UID).
+        1. If no UID is set, or specified with # or, 0, ID is considered to be auto-numbered based on data position plus 1, so not to have zero IDs.
+        2. When UID is specified, an existing previous assigned UID cannot be overridden, therefore can cause duplicates.
+        3. Data processing plugins can be installed to cater and change behavior on this whole concept.
+    5. Data is to be updated in storage if any column other than the UID, has its contents changed in the file.
+       1. This behavior can be controlled by disabling something like an auto file storage update. i.e. during application upgrades. To prevent user set settings to reset to factory defaults.
+       2. The result would then be that database already stored data remains, and only new ones are added. This exercise is out of scope of this specification.
+    6. First row labels the columns and is prefixed to PerlCNF datatype.
+       1. Generic data rows, do not require, but processors and plugins would definitely need it.
+       2. Current known types are, __@__{label} as CNFDateTime, __#__ for number or if in row autonumbering to be applied. Text is default without signifier.
+
+    ```CNF
+        <<MyAliasTable<DATA
+        01`admin`admin@inc.com`Super User~
+        02`chef`chef@inc.com`Bruno Allinoise~
+        03`juicy`sfox@inc.com`Samantha Fox~
+        >>
+    ```
+
+2. FILE
+   1. Expects a file name assigned value, file containing actual further CNF DATA rows instructions, separately.
+   2. The file is expected to be located next to the config file.
+   3. File is to be sequentially buffer read and processed instead as a whole in one go.
+   4. The same principles apply in the file as to the DATA instruction CNF tag format, that is expected to be contained in it.
+
+    ```CNF
+        <<MyItemsTbl<FILE data_my_app.cnf>
+    ```
+
+## CNF Meta Instructions
+
+> Various Meta instructions are available to aid processing and decision-making
+
+***
+
+   Document is from project ⇾ <https://lifelog.hopto.org/gitweb/>
+
+   An open source application.
+
+   Please refer to this specifications header and item or section points, on any desired clarifications or research/troubleshooting inquires.
+
+<center>Sun Stage - v.1.0 2024</center>
diff --git a/dev_current/docs/PerlCNF/Specifications_For_CNF_ReadMe.md b/dev_current/docs/PerlCNF/Specifications_For_CNF_ReadMe.md
new file mode 100644 (file)
index 0000000..77fa77c
--- /dev/null
@@ -0,0 +1,587 @@
+# Configuration Network File Format Specifications
+
+## Introduction
+
+This is a simple and fast file format. That allows setting up of network and database applications with initial configuration values.
+These are usually standard, property name and value pairs. Containing possible also SQL database structures statements with basic data.
+It is designed to accommodate a parser to read and provide for CNF property tags.
+
+These can be of four types, using all a textual similar presentation.
+In general are recognized as constants, anons, collections or lists, that are either arrays or hashes.
+
+Operating system environmental settings or variables are considered only as the last resort to provide for a property value.
+As these can hide and hold the unexpected value for a setting.
+
+With the CNF type of application configuration system. Global settings can also be individual scripted with a meaningful description.
+Which is pretty much welcomed and encouraged. As the number of them can be quite large, and meanings and requirements, scattered around code comments or various documentation. Why not keep this information next to; where you also can set it.
+
+CNF type tags are script based, parsed tags of text, everything else is ignored. DOM based parsed tags, require definitions and are hierarchy specific, path based. Even comments, have specified format. A complete different thing. However, in a CNF file you, can nest and tag, DOM based scripts. But not the other way. DOM based scripts are like HTML, XML. They might scream errors if you place in them CNF stuff.
+
+
+
+*Quick Jump* :[
+  *[CNF Tag Formats](#cnf-tag-formats)* |
+  *[CNF Collections Formatting](#cnf-collections-formatting)* |
+  *[Instructions & Reserved Words](#instructions-and-reserved-words)* |
+  *[Scripted Data Related Instructions](#scripted-data-related-instructions)* ]
+  <span id="content" class="span-content">[CNF Data Tables](docs/PerlCNF/Specifications_For_CNF_Data_Tables.md).</span>
+]
+
+## General CNF Formatting Rules
+
+1. Text that isn't CNF tagged is ignored in the file and can be used as comments.
+2. CNF tag begins with an **<<** or **<<<** and ends with an **>>>** or **>>**.
+3. If instruction is contained the tag begins with **<<** and ends with a **>>**.
+4. Multi line values are tag ended on a separate line with an **>>>**.
+5. CNF tag value can post processed by placing macros making it a template.
+6. Standard markup of a macro is to enclose the property name or number with a triple dollar signifier **\$\$\$**{macro}**\$\$\$**.
+    1. Precedence of resolving the property name/value is by first passed macros, then config anons and finally the looking up in constants.
+    2. Nested macros resolving from linked in other properties is currently not supported.
+7. CNF full tag syntax format: ```<<{$|@|%}NAME{<INSTRUCTION>}{<any type of value>}>>```, the name and instruction parts, sure open but don't have to be closed with **>** on a multiple line value.
+8. CNF instructions and constants are uppercase.
+    1. Example 1 format with instruction: ```<<<CONST\n{name=value\n..}\n>>>``` autonomous const, with inner properties.
+    2. Example 2 format with instruction: ```<<{$sig}{NAME}<CONST {multi line value}>>>``` A single const property with a multi line value.
+    3. Example 3 format with instruction: ```<<CONST<{$sig}{NAME}\n {multi line value}>>>``` A single const property with a multi line value.
+    4. Example 4 format with instruction: ```<<{NAME}<{INSTRUCTION}<{value}>>>``` A anon.
+    5. Example 5 format with instruction: ```<<{$sig}{NAME}<{INSTRUCTION}\n{value}\n>>>```.
+9. CNF instructions are all uppercase and unique, to the processor.
+10. A CNF constant in its property name is prefixed with an '**$**' signifier.
+11. Constants are usually scripted at the beginning of the file, or parsed first in a separate file.
+12. The instruction processor can use them if signifier $ surrounds the constant name. Therefore, replacing it with the constants value if further found in the file.
+
+    ```CNF
+     <<<CONST $APP_PATH=~/MyApplication>>>
+     <<app_path<$APP_PATH$/module/main>>>
+    ```
+
+13. Property names, Constant, Anon refer to the programmatically assigned variable name.
+14. *CNF Constant* values are store specific.
+15. Constants can't be changed for the life of the application or service issued.
+16. Storage of CNF constants declared can be preceded to the file based one.
+17. A Constant CNF value is not synchronized, unlike an anon from script to storage configuration. It has to be created from the scripted if missing in storage.
+18. i.e. If stored in a database or on a network node. After the file declaration fact.
+19. Missing file based storage settings can be next queried from the environmental one.
+    1. This is to be avoided if possible.
+20. File storage encountered constants override system environmental ones.
+    1. i.e. System administrator has set them.
+21. Database storage encountered constants override file set ones.
+    1. i.e. User of application has set them.
+22. CNF Constant values can be changed in the script file.
+    1. If not present in script file, then an application setting must proceed with its default.
+    2. CNF Constants can be declared only once during initial parsing of script files.
+    3. Rule of thumb is that Constants are synchronized with an applications release version.
+    4. Static constants, are script or code only assigned values.
+    5. CNF Anons can override in contrast previously assigned value.
+23. A CNF Anon is similar to constants but a simpler property and value only pair.
+    1. Anons are so called because they are unknown or unexpected by the configuration framework, store to object intermediate.
+    2. Constants that turn up in the anon list, are a good indicator that they are not handled from script. Forgotten become anons.
+    3. Anons similar to constants, once in the database, overtake the scripted or application default settings value.
+    4. Static anons, are those that are set in the database, and/or are not merged with application defaults.
+    5. Anons hashed are programmatically accessed separately to constants.
+       1. It is fine to have several applications, to share same storage, even if they have different implementation.
+       2. Constants will be specific to application, while anons can change in different purpose script files.
+24. *Anon* is not instruction processed. Hence, anonymous in nature for its value. Applications using this CNF system usually process and handles this type of entries.
+25. Anon has no signifier, and doesn't need to have an application default.
+26. Anon value is in best practice and in general synchronized, from script to a database configuration store. It is up to the implementation.
+27. Anon value is global to the application and its value can be modified.
+
+    ```CNF
+            <<USE_SWITCH<true>>>
+            <<DIALOG_TITLE_EN<MyApplication Title>>>
+    ```
+
+    1. Anon value can be scripted to contain template like but numbered parameters.
+    2. When querying for an anon value, replacement parameter array can be passed.
+    3. Numbering is from **$$$1$$$**..**$$$(n...)$$$** to be part of its value. Strategically placed.
+
+    ```CNF
+        <<GET_SUB_URL<https://www.$$$1$$$.acme.com/$$$2$$$>>>
+    ```
+
+    ```PERL
+       # Perl language
+       my $url = $cnf->anon('GET_SUB_URL',('tech','main.cgi'));
+       # $url now should be: https://www.tech.acme.com/main.cgi
+       eval ($url =~ m/https:\.*/)
+             or warn "Failed to obtain expected URL when querying anon -> GET_SUB_URL"
+    ```
+
+28. Listing is a reappearing same name tag postfixed with an **\$\$**.
+
+    ```CNF Example 1:
+                <<INS$$>ls -la>>
+                <<INS$$>uname -a>>
+    ```
+
+29. Listing is usually a named list of instructions, items grouped and available as individual entries of the listing value.
+
+    ```CNF Example 2:
+                <<Animals$$>Cat>>
+                <<Animals$$>Dog>>
+                <<Animals$$>Eagle>>
+    ```
+
+30. Anon used as an **reserve** format is some applications internal meta property.
+    1. These are prefixed with an **^** to the anon property name.
+    2. They are not expected or in any specially part of the CNF processing, but have here an special mention.
+    3. It is not recommended to use reserve anons as their value settings, that is; can be modified in scripts for their value.
+    4. Reserve anon if present is usually a placeholder, lookup setting, that in contrast if not found there, might rise exceptions from the application using CNF.
+
+    ```CNF Example 3:
+                Notice to Admin, following please don't modify in any way!
+                Start --> {
+                <<^RELEASE>2.3>>
+                <<^REVISION>5>>
+                <<META><DATA>^INIT=1`^RUN=1`^STAGES_EXPECTED=5>> } <-- End
+    ```
+
+
+## CNF Tag Formats
+
+*Quick Jump* :[
+    [Introduction](#introduction) |
+    [CNF Collections Formatting](#cnf-collections-formatting) |
+    [Instructions & Reserved Words](#instructions-and-reserved-words) |
+    [Scripted Data Related Instructions](#scripted-data-related-instructions)
+]
+
+### Property Value Tag
+
+   ```CNF
+        <<{name}<{value}>>>
+   ```
+
+### Instruction Value Tag
+
+   ```CNF
+        <<<{INSTRUCTION}
+        {value\n...valuen\n}>>>
+   ```
+
+   ```CNF
+        <<{name}<{INSTRUCTION}
+        {value\n...valuen\n}>>>
+   ```
+
+### Full Tag
+
+```CNF
+    <<{$sig}{name}<{INSTRUCTION}>
+        {value\n...value\n}
+    >>
+```
+
+**Examples:**
+
+```CNF
+        <<$HELP<CONST
+            Sorry help is currently.
+            Not available.
+        >>
+        <<<CONST
+            $RELEASE_VER = 1.8
+            $SYS_1 =    10
+            $SYS_2 = 20
+            $SYS_3 =      "   Some Nice Text!   "
+        >>
+       <<PRINT_TO_HELP<true>>
+```
+
+## Mauling Explained
+
+1. Mauling refers to allowing for/or encountering inadequate possible script format of an CNF property.
+    1. These still should pass the parsers scrutiny and are not in most cases errors.
+    2. There are in general three parts expected for an CNF property.
+        1. Tag name.
+        2. Instruction.
+        3. Value
+    3. CNF property value tag turns the instruction the value, if the value is not separated from it.
+    4. CNF only instructed, will try to parse the whole value to make multiple property value pairs.
+        1. The newline is the separator for each on created.
+    5. Ver. 2.8 of PerlCNF is the third rewrite to boom and make this algorithm efficient.
+2. Example. Instruction is mauling value:
+
+    ```cnf
+        <<CNF_COUNTRY_OF_ORIGIN<Australia>>>
+    ```
+
+3. Example. Instruction mauls into multi-new line value:
+
+    ```cnf
+       <<APP_HELP_TXT<CONST
+       This is your applications help text in format of an constance.
+       All you see here can't be dynamically changed.
+       You might be able to change it in the script though.
+       And re-run your app.
+       >>
+    ```
+
+4. Example. Tag name mauled:
+
+    ```cnf
+       <<<CONST
+       $APP_HELP_TXT='This is your applications help text in format of an constance.'
+       >>
+    ```
+
+5. Example. Instruction mauled or being disabled for now:
+    1. This will fire warnings but isn't exactly an error.
+    2. Introduced with CNF release v.2.5.
+
+    ```cnf
+       <<PWD<>path/to/something>>
+    ```
+
+
+## CNF Collections Formatting
+*Quick Jump* : [
+    [Introduction](#introduction) |
+    [CNF Tag Formats](#cnf-tag-formats) |
+    [Instructions & Reserved Words](#instructions-and-reserved-words) |
+    [Scripted Data Related Instructions](#scripted-data-related-instructions)
+]
+
+1. CNF collections are named two list types.
+   1. Arrays
+   2. Hashtables
+2. Collection format.
+   1. {T} stands for type signifier. Which can only be either ''@'' for array type, or ''%'' for hash.
+   2. NAME is the name of the collection, required. Later this is searched for with signifier prefixed.
+   3. DATA is delimited list of items.
+      1. For hashes named as property value pairs and assigned with '=', for value.
+         1. Hash entries are delimited by a new line.
+      2. For arrays, values are delimited by new line or a comma.
+      3. White space is preserved if values are quoted, otherwise are trimmed.
+
+   ```cnf
+    Format:    <<@<{T}NAME{$$}>DATA>>>
+
+    Examples:
+    # Following provides an array of listed animal types. Notice how you don't need text to be quoted.
+    <<@<@animals<Cat,"Dog","Pigeon",Horse>>>
+    # Following provides an array with numbers from 0..8
+    <<@<@numbers<1,2,3,4,5
+    6
+    7
+    8
+    >>>
+
+    # Following is hashing properties. Notice the important % signifier for the hash name as %settings.
+    <<@<%settings<
+        AppName = "UDP Server"
+        port    = 3820
+        buffer_size = 1024
+        pool_capacity = 1000
+    >>
+   ```
+
+## Instructions And Reserved Words
+
+
+*Quick Jump* :[
+     [Introduction](#introduction) |
+     [CNF Tag Formats](#cnf-tag-formats) |
+     [CNF Collections Formatting](#cnf-collections-formatting) |
+     [Scripted Data Related Instructions](#scripted-data-related-instructions) |
+      <span id="content" class="span-content">[CNF Data Tables](docs/PerlCNF/Specifications_For_CNF_Data_Tables.md).</span>
+]
+
+   1. Reserved words relate to instructions, that are specially treated, and interpreted by the parser to perform extra or specifically processing on the current value.
+   2. Reserved instructions can't be used for future custom ones, and also not recommended tag or property names.
+   3. Current Reserved words list is.
+       - CONST    - Concentrated list of constances, or individually tagged name and its value.
+       - VARIABLE - Concentrated list of anons, or individually tagged name and its value.
+       - DATA     - CNF scripted delimited data property, having uniform table data rows.
+       - FILE     - CNF scripted delimited data property is in a separate file.
+       - %LOG     - Log settings property, i.e. enabled=1, console=1.
+       - TABLE    - SQL related.
+       - TREE     - Property is a CNFNode tree containing multiple depth nested children nodes.
+       - INCLUDE  - Include properties from another file to this repository.
+                    - Included files constances are ignored if are in parent file assigned.
+                    - Includes are processed last and not on the spot, so their anons encountered take over precedence.
+                    - Include instruction use is not recommended and is as same to as calling the parse method of the parser.
+       - INDEX    - SQL related.
+       - INSTRUCT - Provides custom new anonymous instruction.
+       - VIEW     - SQL related.
+       - PLUGIN   - Provides property type extension for the PerlCNF repository.
+       - SQL      - SQL related.
+       - MIGRATE  - SQL related.
+       - MACRO
+          1. Value is searched and replaced by a property value, outside the property scripted.
+          2. Parsing abruptly stops if this abstract property specified is not found.
+          3. Macro format specifications, have been aforementioned in this document. However, make sure that your macro a constant also including the *$* signifier if desired.
+
+## Database and SQL Instruction Formatting Rules
+
+<span id="content" class="span-content">This is a separate section of this specification, going more in details about the DATA instruction ⇾ [CNF Data Tables](docs/PerlCNF/Specifications_For_CNF_Data_Tables.md).</span>
+
+### About
+
+CNF supports basic SQL Database structure statement generation. This is done via instruction based CNF tags. Named **sqlites**.
+
+1. Supported is table, view, index and data creation statements.
+2. Database statements are generic text, that is not further processed.
+3. There is limited database interaction, handling or processing to be provided.
+   1. Mainly for storage transfer of CNF constants, from file to database.
+   2. File changes precede database storage only in newly assigned constants.
+4. Database generated is expected to have a system SYS_CNF_CONFIG table, containing the constants unique name value pairs, with optional description for each.
+   1. This is a reserved table and name.
+   2. This table must contain a **$RELEASE_VER** constants record at least.
+
+### SQLite Formatting
+
+* SQLites have the following reserved instructions:
+
+1. TABLE
+
+    ```CNF
+        <<MyAliasTable<TABLE
+                    ID INT PRIMARY KEY NOT NULL,
+                    ALIAS VCHAR(16) UNIQUE CONSTRAINT,
+                    EMAIL VCHAR(28),
+                    FULL_NAME VCHAR(128)
+        >>>
+    ```
+
+2. INDEX
+
+    ```CNF
+        <<MyAliasTable<INDEX<idx_alias on MyAliasTable (ALIAS);>>>
+    ```
+
+3. SQL
+     1. SQL statements are actual full SQL placed in the tag body value.
+
+    ```CNF
+        <<VW_ALIASES>SQL
+            CREATE VIEW VW_ALIASES AS SELECT ID,ALIAS ORDER BY ALIAS;
+        >>>
+    ```
+
+4. MIGRATE
+   1. Migration are brute SQL statements to be run based on currently installed previous version of the SQL database.
+   2. Migration is to be run from version upwards as stated and in the previous database encountered.
+      1. i.e. If encountered old v.1.5, it will be upgraded to v.1.6 first, then v.1.7...
+   3. Migration is not run on newly created databases. These create the expected latest data structure.
+   4. SQL Statements a separated by ';' terminator. To be executed one by one.
+
+    ```CNF
+        <<1.6<MIGRATE
+                ALTER TABLE LOG ADD STICKY BOOL DEFAULT 0;
+        >>
+        <<1.8<MIGRATE
+            CREATE TABLE notes_temp_table (LID INTEGER PRIMARY KEY NOT NULL, DOC TEXT);
+            INSERT INTO notes_temp_table SELECT `LID`,`DOC` FROM `NOTES`;
+            DROP TABLE `NOTES`;
+            ALTER TABLE `notes_temp_table` RENAME TO `NOTES`;
+        >>
+    ```
+
+### Scripted Data Related Instructions
+
+1. DATA
+    1. Data is specifically parsed, not requiring quoted strings and isn't delimited by new lines alone.
+    2. Data rows are ended with the **"~"** delimiter. In the tag body.
+    3. Data columns are delimited with the invert quote **"`"** (back tick) making the row.
+    4. First column can be taken as the unique and record identity column (UID).
+        1. If no UID is set, or specified with # or, 0, ID is considered to be auto-numbered based on data position plus 1, so not to have zero IDs.
+        2. When UID is specified, an existing previous assigned UID cannot be overridden, therefore can cause duplicates.
+        3. Data processing plugins can be installed to cater and change behavior on this whole concept.
+    5. Data is to be updated in storage if any column other than the UID, has its contents changed in the file.
+       1. This behavior can be controlled by disabling something like an auto file storage update. i.e. during application upgrades. To prevent user set settings to reset to factory defaults.
+       2. The result would then be that database already stored data remains, and only new ones are added. This exercise is out of scope of this specification.
+
+    ```CNF
+        <<MyAliasTable<DATA
+        01`admin`admin@inc.com`Super User~
+        02`chef`chef@inc.com`Bruno Allinoise~
+        03`juicy`sfox@inc.com`Samantha Fox~
+        >>
+    ```
+
+2. FILE
+   1. Expects a file name assigned value, file containing actual further CNF DATA rows instructions, separately.
+   2. The file is expected to be located next to the config file.
+   3. File is to be sequentially buffer read and processed instead as a whole in one go.
+   4. The same principles apply in the file as to the DATA instruction CNF tag format, that is expected to be contained in it.
+
+    ```CNF
+        <<MyItemsTbl<FILE data_my_app.cnf>>
+    ```
+
+3. PLUGIN
+    1. Plugin instruction is specific outside program that can be run for various configuration task, on post loading of all properties.
+        This can be special further.
+        1. Further, processing of data collections.
+        2. Issuing actions, revalues.
+        3. Checking structures, properties and values that are out of scope of the parser.
+    2. To a plugin parser itself will be passed to access.
+        1. Required attributes are:
+            1. package : Path or package name of plugin.
+            2. subroutine: Subroutine name to use to pass the parser, after plugin initialization.
+            3. property : property to be passed directly, if required, like with data processing.
+    3. Requirements are for plugins to work to have the DO_ENABLED=>1 config attribute set.
+        1. Plugins currently also will require be last specified in the file, to have access to previous anons that are instructed.
+
+    ```CNF
+       /**
+        * Plugin instructions are the last one setup and processed,
+        * by placing the actual result into the plugins tag name.
+        */
+        <<processor<PLUGIN>
+            package     : DataProcessorPlugin
+            subroutine  : process
+            property    : employees
+        >>
+    ```
+
+4. TREE (NEW FEATURE - 20221128)
+   1. Will create an CNF property having a CNF Node object, that contains further child nodes or attributes in a tree structure.
+        1. This is a hash of anons for attributes and a list of further nodes, all having their own one text value.
+        2. Property can have its value, contain attributes, and also other properties within.
+            1. The property markup in the tree script is called body, and follows the Perl CNF style.
+               The difference is that both ' **<,>** ' and ' **[,]** ' are signifiers for the property or multiline value, start and end tags.
+                1. All tags require to be on a line of their own.
+                2. Current algorithm uses sub buffering to parse each property's body.
+                    So deeply nesting a large property body is not recommended and also not suitable for encapsulating in there data.
+                3. An opening tag is opened being surrounded with the same signifier into the direction of the property body.
+                4. The closing tag is in the opposite direction same signifiers.
+                    - **[sesame[** I am an open and closed value now, nothing you can do about it (X|H)TML! **]sesame]**
+        3. The node characteristic is that each sub property is linked to its parent property
+           1. This is contained in the ' **@** ' attribute.
+           2. Node characteristic is also the tree can be searched via path.
+           3. Perl doesn't require type casting and conversion for node values, but for only few rare occasions.
+        4. All attributes and sub properties have to have unique names.
+            1. Emphasis of having uniquely named properties is to avoid having a tree to be used as a collection.
+            2. A property can have its contained collection however, which are multiple sub properties placed into an ' **@@** ' field or attribute.
+        5. However, deeply nested in. The contained attributes and other properties are assigned and accessed by a path statement.
+        6. Attributes can be either assigned with an ' **:** ' or ' **=** ' signifier, no quotes are needed; unless capturing space.
+            - Attributes must be specified on a single line.
+            - Future versions might provide for allowing to assign similar as property values, with the multiline value tag.
+   2. The TREE instruction will create an CNF Node object assigned to a unique anon.
+        1. The value of a property is delimited with an [ **#** ] tag as start, end [ **/#** ] as the ending.
+            1. Each property's start and end tag must stand and be on its own line, withing the body, except for the value or array attributes.
+            2. A value tagged property section is its text and can't contain further nested tree notes.
+                 Invalid: ```[#[<*<link/to/something>*>]#]```
+   3. Tree can contain links to other various properties, anons, that means also to other trees then the current one.
+        1. A link (pointer) to an outside anon or property is specified in form of ⇾ ```cnf [*[ {path/name} ]*]```.
+           1. The link can read only point to:
+              - A repository anon or constant value.
+              - A tree path value.
+              - A Perl package constant value,``` MyPackage::SOME_CONSTANCE ```.
+              - A Perl static subroutine accepting **this** CNF node and changing possible its value, ``` main::setNodeValue(.) ```.
+        2. It is not recommended to make circular links, or to prioritize properties themselves containing links.
+        3. To aid parsing priority a parse special instruction can be used if for example linking trees.
+            1. Specified the best just after the tree instruction as ⇾ ``` <<...<TREE> _HAS_PROCESSING_PRIORITY_ ```.
+            2. This is currently a TREE instruction only inbuilt option in Perl CNF, for the CNF Nodes individuals scripts order of processing.
+        4. Links in the root parent node of the tree are assigned as attributes or unique values. In subroperties they are set as own nodes.
+   4. Tree Format Example:
+    ```cnf
+    <<APP<My Nice Application by ACME Wolf PTY>>
+
+    <<doc<TREE>
+    <*<APP>*>
+    thread: 28
+    title = My Application
+        <client<
+            address: 192.168.1.64
+            [paths[
+                [#[
+                    ./dev
+                    ./sources
+                ]#]
+            ]paths]
+        >client>
+    >>
+    ```
+
+## Sample Perl Language Usage
+
+*Quick Jump* : [
+ [Introduction](#introduction) |
+ [CNF Collections Formatting](#cnf-collections-formatting) |
+ [Instructions & Reserved Words](#instructions-and-reserved-words) |
+ [Scripted Data Related Instructions](#scripted-data-related-instructions) |
+ [CNF Tag Formats](#cnf-tag-formats)
+]
+
+1. *DO*
+   1. CNF DO instruction is *experimental*, purely Perl programming language related.
+   2. It provides Perl code evaluation during parsing giving also access to parser and its variables as DO's further sequentially appear.
+   3. It is recommended to disable this feature, if not need Perl code snippets to be in the configuration file.
+   4. These, if named are assigned as anons, with the last processed value as the return. Making them evaluated and processed ever only once.
+
+```CNF
+<<<DO
+print "Hello form CNF, you have ".(scalar %anons) ." anons so far.\n"
+>>>
+```
+
+**~/my_application.pl** file contents:
+
+```PERL
+
+use lib "system/modules";
+use lib $ENV{'PWD'}.'/perl_dev/WB_CNF/system/modules';
+require CNFParser;
+require Settings;
+
+my @expected = ("$MY_APP_LIB_RELATIVE", "$MY_APP_DB_RELATIVE");
+my $path = $ENV{'PWD'}."/perl_dev/WB_CNF/db/configuration.cnf";
+# Loading twice config here with object constructor with and without path.
+# To show dual purpose use.
+my $cnf1  = CNFParser->new($path);
+# Nothing parsed yet construct.
+my $cnf2  = CNFParser->new();
+   # We relay that the OS environment has been set for CNF constant settings if missing
+   # in the configuration file. Adding after parse has no effect if found in file.
+   $cnf2 -> addENVList(@expected);
+   # Parse finally now. Parse can be called on multiple different files, if desired.
+   $cnf2 -> parse($path);
+my $LIB_PATH;
+
+print "List of constants in file: $path\n";
+foreach my $prp ($cnf->constants()){
+    print "$prp=", $cnf->constant($prp),"\n";
+}
+if(!$cnf->constant('$MY_APP_LIB_RELATIVE')){
+    warn 'Missing $MY_APP_LIB_RELATIVE setting.';
+    $LIB_PATH = $cnf2->constant('$MY_APP_LIB_RELATIVE');
+    die  'Unable to get required $MY_APP_LIB_RELATIVE setting!' if(not $LIB_PATH)
+}
+
+print "Welcome to ", $cnf->constant('$APP_NAME'), " version ", $cnf->constant('$RELEASE_VER'), ".\n";
+```
+
+**~//perl_dev/WB_CNF/db/configuration.cnf** file contents:
+
+```CNF
+
+# List command anon with the name of 'list'.
+<<list<ls -lh dev|sort>>>
+<<<CONST
+$RELEASE_VER = 1.0
+$APP_NAME="My Application Sample"
+>>>
+
+```
+
+***
+*Quick Jump* :[
+  *[Introduction](#intoduction)* |
+  *[CNF Tag Formats](#cnf-tag-formats)* |
+  *[CNF Collections Formatting](#cnf-collections-formatting)* |
+  *[Instructions & Reserved Words](#instructions-and-reserved-words)* |
+  *[Scripted Data Related Instructions](#scripted-data-related-instructions)* ] |
+  *[Sample Perl Language Usage](#sample-perl-language-usage)* ]
+  <span id="content" class="span-content">[CNF Data Tables](docs/PerlCNF/Specifications_For_CNF_Data_Tables.md).</span>
+]
+
+***
+
+   Document is from project ⇾ <https://lifelog.hopto.org/gitweb/><br>
+   The original project location  ⇾ <https://github.com/wbudic/PerlCNF/>
+
+   An open source application.
+
+<center>Sun Stage - PerlCNF v.3.2 2024</center>
diff --git a/dev_current/docs/Squeezed In Between Poetry/pix/arrDbl_left.gif b/dev_current/docs/Squeezed In Between Poetry/pix/arrDbl_left.gif
new file mode 100644 (file)
index 0000000..84ce312
Binary files /dev/null and b/dev_current/docs/Squeezed In Between Poetry/pix/arrDbl_left.gif differ
diff --git a/dev_current/docs/Squeezed In Between Poetry/pix/arrDbl_right.gif b/dev_current/docs/Squeezed In Between Poetry/pix/arrDbl_right.gif
new file mode 100644 (file)
index 0000000..28671f5
Binary files /dev/null and b/dev_current/docs/Squeezed In Between Poetry/pix/arrDbl_right.gif differ
diff --git a/dev_current/docs/Squeezed In Between Poetry/pix/arrDbl_top.gif b/dev_current/docs/Squeezed In Between Poetry/pix/arrDbl_top.gif
new file mode 100644 (file)
index 0000000..78780a9
Binary files /dev/null and b/dev_current/docs/Squeezed In Between Poetry/pix/arrDbl_top.gif differ
diff --git a/dev_current/docs/Squeezed In Between Poetry/pix/thournwhaul_logo.jpg b/dev_current/docs/Squeezed In Between Poetry/pix/thournwhaul_logo.jpg
new file mode 100644 (file)
index 0000000..14338bc
Binary files /dev/null and b/dev_current/docs/Squeezed In Between Poetry/pix/thournwhaul_logo.jpg differ
diff --git a/dev_current/docs/Squeezed In Between Poetry/vol1.html b/dev_current/docs/Squeezed In Between Poetry/vol1.html
new file mode 100644 (file)
index 0000000..64fc416
--- /dev/null
@@ -0,0 +1,1541 @@
+
+<!-- saved from url=(0070)./vol1.html#twhaul.27082002 -->
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Squeezed In Between Poetry - Vol I</title>
+<style type="text/css">
+<!--
+body{
+  background-color:#C57A75;
+  font-family: Tahoma, Helvetica, sans-serif;
+}
+p{  font-size: 12pt; }
+p.h1{  font-size: 20pt; font-weight: bold;}
+p.h2{  font-size: 14pt; font-weight: bold;}
+p.h3{  font-size: 12pt; font-weight: bold;}
+p.txt {  font-size: 10pt; font-weight: bold;}
+p.stxt{  font-size: 8pt; font-weight: bold; }
+p.wh {  font-size: 10pt; font-weight: bold; color: #ffffff}
+p.gr {  font-size: 10pt; font-weight: bold; color: #666666}
+p.gr8 {  font-size: 7pt; font-weight: bold; color: #666666}
+p.plink {  font-size: 10pt; font-weight: bold; color: #C57A75}
+p.pre{font-family:  Tahoma, Garamond, Helvetica; font-size: 13pt; font-weight: bold;}
+.poem{font-family:  Tahoma, Garamond, Helvetica; font-size: 13pt; background-color: #EDEFBB; padding: 10px}
+
+a  {
+       color : #666666;
+       text-decoration : none;
+}
+
+a:Visited  {
+       color : #666666;
+       font-style : normal;
+}
+
+a:Active  {
+       color : #666666;
+}
+
+a:Hover  {
+       color : #C57A75;
+       text-decoration : underline;
+       background-color : #EDEFBB;
+       font-style : bold;
+}
+-->
+</style>
+<script>
+function getBaseUrl() {
+    return window.location.href.match(/^.*\//);
+}
+</script>
+</head>
+<body leftmargin="0" topmargin="10" marginwidth="0" marginheight="0" onload="console.log(getBaseUrl())">
+
+
+<a name="head"></a>
+
+<table width="640" border="0" cellspacing="2" cellpadding="10" align="center" bgcolor="#000000">
+<tbody><tr> 
+<td bgcolor="#EDEFBB">
+<p class="h1" align="center">
+<img src="pix/thournwhaul_logo.jpg" border="0" alt="" align="middle">&nbsp;&nbsp;&nbsp;Squeezed In Between Poetry
+</p>
+
+
+<table align="center" cellpadding="10"><tbody><tr>
+<td><p class="h2">Volume I</p></td>
+<td><p class="h2" align="center"><a href="vol2.html">Volume II</a></p></td>
+</tr>
+</tbody></table>
+
+</td>
+</tr>
+<tr> 
+<td bgcolor="#EDEFBB" width="80%">
+<p class="gr">
+This is a private and sacred unpublished poetry collection. Born out of need and desperation by the author, to return any left sense of art, that has slowly begun to disappear from the Internet scene. The turn of the new century brought only continuums of wars (middle east). The west is experiencing floods, bad economy, retrenchments. Morale values in people are getting even more so degrading. Time has come to heal, save planet earth and follow in spirit (at least) non-monetary values.
+</p>
+<p class="gr">
+This collection is a study and a poetry practice, future published works will not be part of this collection. The strive of all this was to produce a generation less verse, play of words, trying to suit everyone. In hope it will entertain if not heal in this uncertain times of information overflow. Nothing here found is particularly political, gender or religion sided. The only protagonist is; and will continue to be, the right to freedom of speech, art and mutual respect of thought.
+<br>
+
+</p>            
+</td>
+</tr>
+</tbody></table>
+<br>
+
+<!-- Pages Start -->
+<table width="640" border="0" cellspacing="2" cellpadding="10" align="center" bgcolor="#000000">
+<!-- Pages Start -->
+
+
+
+<!-- For the Love of Syringa Start -->
+  <tbody><tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">10-Dec-2002<br><i>For the Love of Syringa</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><p class="gr"></p><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+</tr><tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.12112002"><p class="gr8">Facing The River Dream</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.05112002"><p class="gr8">Just Another Testament</p></a></td>
+</tr>
+<tr><td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_2"><p class="gr8">Dog Patrol</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_1"><p class="gr8">Abstained Melodrama</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.08092002"><p class="gr8">Cross Eyed</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.06092002"><p class="gr8">The Flock Trip</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.03092002"><p class="gr8">Coined System</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.30082002"><p class="gr8">Sun Stark</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.27082002"><p class="gr8">The Shaved Nun Tail Rap</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End-->
+       </td>
+    <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.10122002"></a><p class="pre">For the Love of Syringa</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>
+My village is burning feelings convulse
+home away on a trench bench rest
+Feelings don't take me away, avulse
+what was left behind in jest
+
+Is it my grandfathers house? but family aside
+the Syringa  bloom  has taken over mourn
+Occupied presence grasping left out pride
+seduced hope by facts of youth adjourn.
+You violate flower let your self go 
+from the roads that you follow so carefully stringed
+Through orchards full in fruit keep your self low
+Bring me the perfume of hair loosened, been tinged
+Childhood mists of woodlands chased, 
+and moments well discrete you witnessed, fringed
+Syringa release the visions of home
+bride moments and the children's play.
+Obscured  plight then in a phase of epitome
+only you can again seduce as such, but be belay.
+
+My land under plunder, arson, rape 
+scratching years, breathing smoke
+Digging hollows, when ditches undrape 
+Syringa roots a loyal subject to invoke
+as wishes march with this boots that follow
+many good men and their own turn of reasons
+A lilac now missed grew from a barrow
+rich, powerful, to sustain the seasons.
+
+
+</pre>
+        <p></p>
+</td></tr>
+<!-- For the Love of Syringa End -->
+
+
+
+
+<!-- Just Another Testament Start -->
+
+ <tr valign="top"> 
+    <td bgcolor="#EDEFBB"><p class="txt">Intro</p></td>
+    <td bgcolor="#FAFBD6" valign="top"> 
+       <p class="gr">
+       "Facing The River Dream" is one of my favourites. It is a "hook-on" poem to a famous Led Zeppelin song. It tries to be a riddle with how it approaches abstraction. Maybe its my odd personal taste, but it is a shame that this type of poems are not considered anymore to be of "style".  Hint - It is a riddle since it has nothing to do directly on what it preaches or is being hook-up on, but helps ;)
+       </p>
+       </td>
+  </tr>
+
+
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">12-Nov-2002<br><i>Facing The River Dream</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><p class="gr"></p><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.05112002"><p class="gr8">Just Another Testament</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_2"><p class="gr8">Dog Patrol</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_1"><p class="gr8">Abstained Melodrama</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.08092002"><p class="gr8">Cross Eyed</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.06092002"><p class="gr8">The Flock Trip</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.03092002"><p class="gr8">Coined System</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.30082002"><p class="gr8">Sun Stark</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.27082002"><p class="gr8">The Shaved Nun Tail Rap</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End-->
+       </td>
+    <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.12112002"></a><p class="pre">Facing The River Dream</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>Harsh peace a vision yet to face
+when confronted with distances revealed
+Wasted beauty this foreign place
+unfazed by mortals time over left to bleed.
+
+Tasting the river green was bitter
+it carried the foot pilgrims smell
+Embracing them as their desert sitter
+of opiates less visions daring to foretell.
+
+Disturbed was thought by the sight of a body
+floating, after taken from the stake
+Healing stretched turning ghoulie
+to return to life just before the lake.
+
+Time to go, dream is over 
+moment enough to let loose only a tear
+The becoming is bedding in clouds passover
+decision made, moving to Kashmir.
+</pre>
+        <p></p>
+</td></tr>
+<!-- Facing The River Dream End -->
+
+
+
+
+
+
+
+<!-- Just Another Testament Start -->
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">05-Nov-2002<br><i>Just Another Testament</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><p class="gr"></p><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_2"><p class="gr8">Dog Patrol</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_1"><p class="gr8">Abstained Melodrama</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.08092002"><p class="gr8">Cross Eyed</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.06092002"><p class="gr8">The Flock Trip</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.03092002"><p class="gr8">Coined System</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.30082002"><p class="gr8">Sun Stark</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.27082002"><p class="gr8">The Shaved Nun Tail Rap</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End-->
+       </td>
+    <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.05112002"></a><p class="pre">Just Another Testament</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>
+What have you done
+with the scent that walked by
+What have you stun
+with looks that freed my
+You just be there
+while we carry the burden mount
+You just be fare
+to the disease taking count.
+
+Whish this words could come any easy
+whish you new things you instinctively do
+So let me wonder into my thing
+that maligned decision came to sing.
+
+I do my job well as we fight what needs to expel
+In hope a revelation without fear
+that when gone from verses I'll reappear. 
+Then talk to me as a stranger
+Introduce your self as you whish.
+Find me coming along, find me happy in full song.
+Courage a revelation without fear
+when I am gone to you I'll become less dear.
+For no use to be in mourning
+For no time was spend or ever lost
+Your served and wise went days
+with this lover and his ways.
+
+</pre>
+        <p></p>
+</td></tr>
+<!-- Just Another Testament End -->
+
+
+
+
+
+<!-- Dog Patrol Start -->
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr">19/08/2002<br><i>Dog Patrol</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><p class="gr"></p><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_1"><p class="gr8">Abstained Melodrama</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.08092002"><p class="gr8">Cross Eyed</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.06092002"><p class="gr8">The Flock Trip</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.03092002"><p class="gr8">Coined System</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.30082002"><p class="gr8">Sun Stark</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.27082002"><p class="gr8">The Shaved Nun Tail Rap</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End-->                 
+       </td>
+    <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.19082002_2"></a><p class="pre">Dog Patrol</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>
+Pulled into place the angry hound
+by hands well groomed for the job.
+Enemy astound, surprised 
+another direction to go lob.
+
+Sleep in peace you mankind layer
+don't dog your best friend.
+Heard let it be in thy prayer
+then join healed by a noseband.
+
+A lonely setting is the dog patrol
+every day bringing much of the same.
+Drugged in the smell of carbinol
+reason enough not to feel any blame. 
+
+In the hardest hour, why do we search 
+for reasons of devour?
+Fruit taken, any, even sour.
+Forgotten next and the dearest,
+like that passing by flower.
+</pre>
+        <p></p>
+</td></tr>
+<!-- Dog Patrol End -->
+
+<!-- Abstained Melodrama -->
+
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB"><p class="txt">Intro</p></td>
+    <td bgcolor="#FAFBD6" valign="top"> 
+       <p class="gr">Theme food. One of those <a href="http://www.aapcsite.plus.com/research.html" target="_blank">[AAPC]</a> challenges (usenet).</p>
+       </td>
+  </tr>
+
+  <tr valign="top"> 
+<td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">19/08/2002<br><i>Abstained Melodrama</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><p class="gr"></p><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.08092002"><p class="gr8">Cross Eyed</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.06092002"><p class="gr8">The Flock Trip</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.03092002"><p class="gr8">Coined System</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.30082002"><p class="gr8">Sun Stark</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.27082002"><p class="gr8">The Shaved Nun Tail Rap</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End-->
+</td>
+<td bgcolor="#FAFBD6" valign="center"><a name="twhaul.19082002_1"></a><p class="pre">Abstained Melodrama</p></td>
+</tr>
+
+
+<tr valign="top"> 
+<td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>        
+To many weeks passed in abstention
+then finally it is time and a dash to the store.
+First I caressed the melon
+then peeled to suck on the core.
+
+Sticky fingers juices everywhere
+all divulged like an �clair.
+
+</pre>
+</td>
+</tr>
+<!-- Abstained Melodrama End-->
+
+
+<!-- Cross Eyed -->
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">08/09/2002<br><i>Cross Eyed</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><p class="gr"></p><hr size="2" color="#C57A75"></td>
+<td>
+</td></tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.06092002"><p class="gr8">The Flock Trip</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.03092002"><p class="gr8">Coined System</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.30082002"><p class="gr8">Sun Stark</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.27082002"><p class="gr8">The Shaved Nun Tail Rap</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End-->
+       </td>
+    <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.08092002"></a><p class="pre">Cross Eyed</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>
+Cross eyed images on what is yet to be known.
+When in a shuffle, cards change hands 
+and things over sudden, quickly turn;
+no longer a price years spend to learn.
+
+For the hunted is a prey confused.
+Smuggling looks when caught stalking gifts
+(You always stepped in front of me with a smile.)
+In fear is a chest signed on the sweetly abused.
+But gifts found more suiting, another.
+(I watch you in motion; 
+probing of how much you gain from about the same.)
+Time based shifts appeal confessing on the done, 
+then rather.
+Balancing inhibits with suggestions.
+Following rules like a spinning eagle pair.
+Taken into winds that grasp the inception.
+Minding not, time taken for the dare.
+
+Long searched but found is the refuge, to precious;
+leaving is out of question!
+So we pass each others territory;
+in good company, no thanks need a mention.
+</pre>
+  </td></tr>
+<!-- Cross Eyed End-->
+
+
+
+
+<!-- The Flock Trip -->
+
+ <tr valign="top"> 
+    <td bgcolor="#EDEFBB"><p class="txt">Intro</p></td>
+    <td bgcolor="#FAFBD6" valign="top"> 
+       <p class="gr">It has been said that Nostradamus and his quatrains, depict and predict like an oracle at first sight.</p>
+       </td>
+  </tr>
+
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">06/09/2002<br><i>The Flock Trip</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><p class="gr"></p><hr size="2" color="#C57A75"></td>
+<td>
+</td></tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.03092002"><p class="gr8">Coined System</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.30082002"><p class="gr8">Sun Stark</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.27082002"><p class="gr8">The Shaved Nun Tail Rap</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr> 
+</tbody></table>
+
+<!-- Index End-->
+       </td>
+    <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.06092002"></a><p class="pre">The Flock Trip</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>
+The flock has landed
+with no seed ever thrown.
+On a field green and mended.
+Full in pain, a new keeper has grown.
+
+People want times to be dear.
+No problem being a bit queer.
+Earth in shocking state.
+Past the river of blood, 2 and 8 will mate.
+(I am loosing inspiration, should I shutdown?)
+
+Cages clean as never seen.
+From all, only two saw eye to eye.
+</pre>
+  </td></tr>
+<!-- The Flock Trip End-->
+
+
+
+
+<!-- Coined System -->
+
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">03/08/2002<br><i>&nbsp;Coined System</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.30082002"><p class="gr8">Sun Stark</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.27082002"><p class="gr8">The Shaved Nun Tail Rap</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End-->
+
+
+       </td>
+    <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.03092002"></a><p class="pre">Coined System</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>
+Two sides of the coin
+Spin it my friend and watch it land.
+Short in decision, short in fall
+Careful now don't miss the hand.
+
+Taken by spin and magic turn, 
+Third side appears, the forgotten one
+Standing blank, late pockets burn
+To late now, the coin be gone.
+
+Third day of life has entered
+Just only confirming the aware
+Life as much as it is centred
+Then pluck what you can prepare.
+
+Found the circling birthmark
+Found third side of the coin
+Obscure images glowing stark
+What a joyous moment,
+a hit in the groin.
+Closing eyes from pain 
+and time come to clack.
+(Some would swear rather 
+ then clack; but I disagree;)  
+A ready tool is my scraper.
+in hurry seated down to notice,
+there is no toilet paper.
+</pre>
+  </td></tr>
+<!-- Coined System -->
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- Sun Stark -->
+
+ <tr valign="top"> 
+    <td bgcolor="#EDEFBB"><p class="txt">Intro</p></td>
+    <td bgcolor="#FAFBD6" valign="top"> 
+       <p class="gr">War kills in any form presented. 'Sun Stark' is dedicated to all innocent victims of September 11.
+       </p>
+       </td>
+  </tr>
+
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">30/08/2002<br><i>Sun Stark</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.27082002"><p class="gr8">The Shaved Nun Tail Rap</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End -->
+
+
+
+       </td>
+    <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.30082002"></a><p class="pre">Sun Stark</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>
+Two giants down long the suffer,
+And you follow best you can,
+in mourn molding a new 'him'.
+Abandoned made into a fin.
+No waves found to where we swim.
+
+Anaesthetic, a drag to deep,
+drowned pagers on a heap.
+Grasped direction to much care,
+Stifle rollbug gaining bare.
+
+Sun stark in oblivion,
+And you follow best you can.
+My love, lets try reach.
+The harden melody of behold,
+of loosen huff then unpluged leech.
+
+Soul was clasped out of skin.
+No waves found, to where we swim.
+</pre>
+
+  </td></tr>
+<!-- Sun Stark End-->
+
+
+
+
+
+
+<!-- The Shaved Nun Tail Rap -->
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">27/08/2002<br><i>The Shaved Nun Tail Rap</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End -->
+
+
+
+       </td>
+    <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.27082002"></a><p class="pre">The Shaved Nun Tail Rap</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>
+Across the street an old fell'a
+laundering his yellow stained underwear.
+Cotton reflects neon lights
+Words, 'No visitors after 23 PM'
+
+Don't ask now for prick pity. 
+You used up cotton resisting tear and wear.
+Old hands are patient,
+with titbits left to pick.
+Collected and saved, what for haven sake.
+
+Intaken is the stench of the collected,
+poor vapour of the sick.
+Fuelling a neon light,
+That flaps with pigeons in fright.
+
+A kicked bottle spins into corners
+Turning over a beggars tin
+Into the passage a nun, just arrived
+Tongue stapled eyelid,
+rocking beads between her teeth.
+What a pro!
+But was she worth waiting for?
+
+The shaved nun issues a warning:
+'If God is none, watch next of kin.'
+The beggar changed his sign next morning:
+'If the Devil is 1 and 0, how did I got in-between?'.
+
+Across the street an old fell'a
+Smiling back to his tail teller.
+Lifting now a female pair.
+Under armpit Amway bleach
+Whistling into evergreen,
+'life is all but what we teach'.
+</pre>
+
+  </td></tr>
+<!-- The Shaved Nun Tail Rap -->
+
+
+
+
+
+<!-- Disturbed Kitten -->
+
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">24/08/2002<br><i>Disturbed Kitten</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End -->
+
+
+
+       </td>
+    <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.24082002"></a><p class="pre">Disturbed Kitten</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>
+Defanged kitten, left barely alive.
+Such shared among convicts for pleasure's sake.
+Kitten's survival jerks, poor reason of vibe.
+An awful sight, to keep you awake.
+
+Proclaimed insane, villain is not.
+Destined master of his own wrought.
+
+She laid down late, next to having a man.
+Playing circles round and such.
+Man fast asleep, she opens her gown.
+Exited occasion, a solo touch.
+
+She whispers words learned by day.
+Mixing moan and the understood.
+Pushing beast out of hay.
+Pressing slowly enough to be wooed.
+
+Done without sweat, 
+she embraced the snored.
+Falling asleep contented and hot.
+Not minding to stay, restless and bored
+Pierced in trouble hawking snot.
+
+The same morning, rise and shine.
+Dreamy as if handed in a sham.
+Husband summons his concubine.
+Smelly thing in a day break come.
+
+Given into words,
+is the rest of the day.
+Ruled by hordes,
+makes a kitten pay.
+</pre>
+
+  </td></tr>
+<!-- Disturbed Kitten End -->
+
+
+
+
+
+
+
+
+<!-- Creation -->
+
+
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">22/08/2002<br><i>Creation</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+<p></p>
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End -->
+
+
+
+       </td>
+    <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.22082002"></a><p class="pre">Creation</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>
+Poetry is creation!
+A mightier sword then pen.
+That captures dust particles,
+sun ray dancing,
+in the whirlpool of your den.
+
+Capturing only, but not zooming in.
+To explore further the world within.
+
+Tossed in the corner, a rotting book.
+Written once, reprinted many times.
+Collecting and making dust.
+The critic bites the hook.
+Cut with the pen, bleeds in rimes.
+What a curious moment, missing meaning just.
+
+Captured and taken away, in a lunatic suit.
+A frozen computer screen has suddenly reset.
+What a laugh, this mad delight.
+Captives cannot know what hasn't been saved.
+It has been lost together with its guide.
+</pre>
+  </td></tr>
+<!-- Creation End -->
+
+
+
+
+
+
+
+
+
+
+<!-- Troll -->
+
+ <tr valign="top"> 
+    <td bgcolor="#EDEFBB"><p class="txt">Intro</p></td>
+    <td bgcolor="#FAFBD6" valign="top"> 
+       <p class="gr">
+I discovered one night, this tiny scary looking bug.
+It looks like a tick but is a bit bigger.
+It comes out at night, and feeds on sugar traces, from cups that collect them self on my computer desk.
+Didn't kill it, but will clean up my act from now.
+       </p>
+       </td>
+  </tr>
+
+
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">20/08/2002<br><i>Troll</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+<p></p>
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End -->
+
+
+
+       </td>
+    <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.20082002"></a><p class="pre">Troll</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>
+Since a while back, I got this Troll.
+Squatting there griming, on me left shoulder.
+It burrows thoughts, this unwanted maul.
+As time passes, becoming ever so bolder.
+
+The soul reason for all the blames.
+It itches my ear, and plays dirty games.
+Still only; from time to time.
+This gruesome and annoying,
+new found friend of mine.
+
+Pumpkin soup taken, it disappears for a while.
+Found out, it is much less there,
+when taken with wine.
+
+Learned to trick it, from day to day.
+Take some more wine, and it will go away.
+Then one day in hour of blissful merry.
+Shocked! I find out it turned into a fairy.
+</pre>
+
+  </td></tr>
+<!-- Troll End -->
+
+
+
+
+<!-- Remind Me What I am Not -->
+
+ <tr valign="top"> 
+    <td bgcolor="#EDEFBB"><p class="txt">Intro</p></td>
+    <td bgcolor="#FAFBD6" valign="top"> 
+       <p class="gr">
+Communism has been proven dead wrong. But how much did things changed with Capitalism.
+       </p>
+       </td>
+  </tr>
+
+
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre class='poem'>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+
+
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8">10/05/2002<br><i>Remind Me What I am Not</i></p></td>
+</tr>
+<tr>
+<td valign="top" colspan="2"><p class="gr"></p><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+</tr><tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.12112002"><p class="gr8">Facing The River Dream</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.05112002"><p class="gr8">Just Another Testament</p></a></td>
+</tr>
+<tr><td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_2"><p class="gr8">Dog Patrol</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_1"><p class="gr8">Abstained Melodrama</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.08092002"><p class="gr8">Cross Eyed</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.06092002"><p class="gr8">The Flock Trip</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.03092002"><p class="gr8">Coined System</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.30082002"><p class="gr8">Sun Stark</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.27082002"><p class="gr8">The Shaved Nun Tail Rap</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="./vol1.html#head">top</a>
+</p>     
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End-->
+
+       </td>
+   <td bgcolor="#FAFBD6" valign="center"><a name="twhaul.10052002"></a><p class="pre">Remind Me What I am Not</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre class='poem'>
+Somone from above likes me!
+And, I wish I was talking about God.
+In reality, the servant of his own success no one likes
+As servants make people think.
+
+So, loop back before you think.
+It is important who likes you!
+So, speek at times before you think
+It is important that people get to know you.
+
+The youtfull eye wants to see you dance
+And the old, only fight how mutch they want
+Not to forget, the fact how really late their are.
+
+Now, when we also realised the level of shame
+Don't be silenced, since its known, no one can jump their skin.
+Should we tattoo the moment where it fits appropriately?
+Sure not! As crap, eventually has to be wiped by someone.
+
+After all said, if still bound to things that don't work.
+Don't despair
+someone from above likes you.
+</pre>
+
+  </td></tr>
+<!-- Remind Me What I am Not -->
+
+
+<!-- Pages End -->
+   <tr valign="middle" align="center"> 
+    <td bgcolor="#EDBD49" colspan="2">
+       <p class="stxt"><b>Copyright � <a href="mailto:viw@nospam.to.excite.com">Thourn Whaul</a>  all rights reserved.</b><br>
+       </p>
+    </td>
+  </tr>
+
+
+</tbody></table>
+
+
+</body></html>
\ No newline at end of file
diff --git a/dev_current/docs/Squeezed In Between Poetry/vol2.html b/dev_current/docs/Squeezed In Between Poetry/vol2.html
new file mode 100644 (file)
index 0000000..97b8c48
--- /dev/null
@@ -0,0 +1,485 @@
+
+<!-- saved from url=(0055)index.html -->
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Squeezed In Between Poetry Vol II</title>
+<style type="text/css">
+<!--
+       body{
+  background-color:#C57A75;
+  font-family: Tahoma, Helvetica, sans-serif;
+}
+p{  font-size: 12pt; }
+p.h1{  font-size: 20pt; font-weight: bold;}
+p.h2{  font-size: 14pt; font-weight: bold;}
+p.h3{  font-size: 12pt; font-weight: bold;}
+p.txt {  font-size: 10pt; font-weight: bold;}
+p.stxt{  font-size: 8pt; font-weight: bold; }
+p.wh {  font-size: 10pt; font-weight: bold; color: #ffffff}
+p.gr {  font-size: 10pt; font-weight: bold; color: #666666}
+p.gr8 {  font-size: 7pt; font-weight: bold; color: #666666}
+p.plink {  font-size: 10pt; font-weight: bold; color: #C57A75}
+p.pre{font-family:  Tahoma, Garamond, Helvetica; font-size: 13pt; font-weight: bold;}
+.poem{font-family:  Tahoma, Garamond, Helvetica; font-size: 13pt; background-color: #EDEFBB; padding: 10px}
+
+a  {
+       color : #666666;
+       text-decoration : none;
+}
+
+a:Visited  {
+       color : #666666;
+       font-style : normal;
+}
+
+a:Active  {
+       color : #666666;
+}
+
+a:Hover  {
+       color : #C57A75;
+       text-decoration : underline;
+       background-color : #EDEFBB;
+       font-style : bold;
+}
+-->
+</style>
+</head>
+<body leftmargin="0" topmargin="10" marginwidth="0" marginheight="0">
+
+<a name="head"></a>
+
+<table width="610" border="0" cellspacing="2" cellpadding="10" align="center" bgcolor="#000000">
+<tbody><tr> 
+<td bgcolor="#EDEFBB">
+<p class="h1" align="center">
+<img src="pix/thournwhaul_logo.jpg" border="2" alt="" align="middle">&nbsp;&nbsp;&nbsp;Squeezed In Between Poetry
+</p>
+<table align="center" cellpadding="10"><tbody><tr>
+<td><p class="h2"><a href="vol1.html">Volume I</a></p></td>
+<td><p class="h2" align="center">Volume II</p></td>
+</tr>
+</tbody></table>
+</td>
+</tr>
+<tr> 
+<td bgcolor="#EDEFBB">
+<p class="gr">
+Following is a collection of poems in the genre of story telling.<br>
+Please wander of to <a href="./vol1.html"><font color="black"><b>Volume I</b></font></a> and find out what made this small website come into life.
+Also poems there, might breathe in more sense of what is being contained within here.<br>
+
+
+<br>("Those who dream by day are cognizant of many things which
+escape those who dream only by night" - Edgar Allen Poe)
+<br><br>
+(What you can do, or dream you can do, begin it; boldness has genius,<br> power and magic in it.
+- Johann von Goethe )
+ <br><br>
+ (
+<a href="http://www.upword.com/wilde/dorgray.html#3" target="_ex"> <font color="black">
+          <br>
+<b>
+The Picture of Dorian Gray     
+by                                                             
+Oscar Wilde
+</b></font>
+</a>
+
+         <br>
+CHAPTER 1 <br>
+The studio was filled with the rich odour of roses, and when the light summer wind stirred amidst the trees of the garden, there came through the open door the heavy scent of the lilac, or the more delicate perfume of the pink-flowering thorn... <br>
+)
+
+<br><br>
+<br><br>
+
+
+
+</p>            
+</td>
+</tr>
+</tbody></table>
+<br>
+
+<!-- Pages Start -->
+<table width="610" border="0" cellspacing="2" cellpadding="10" align="center" bgcolor="#000000">
+
+
+
+<!-- A Walk to Frame Sydney -->
+  <tbody><tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr">18-Aug-2003<br><i>A Walk to Frame Sydney</i></p></td>
+ </tr> 
+<tr>
+<td valign="top" colspan="2"><p class="gr"></p><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="vol1.html#twhaul.25062003"><p class="gr8">Swamp Rejoiced Cricket Drum Noise</p></a></td>
+</tr>
+
+<tr>
+<td valign="top" colspan="2" align="center"><p class="gr"> <b>- Volume I -</b></p></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.12112002"><p class="gr8">Facing The River Dream</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.05112002"><p class="gr8">Just Another Testament</p></a></td>
+</tr>
+<tr><td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_2"><p class="gr8">Dog Patrol</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_1"><p class="gr8">Abstained Melodrama</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.08092002"><p class="gr8">Cross Eyed</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.06092002"><p class="gr8">The Flock Trip</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.03092002"><p class="gr8">Coined System</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.30082002"><p class="gr8">Sun Stark</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.27082002"><p class="gr8">The Shaved Nun Tail Rap</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="#head">top</a>
+</p>
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr><tr>
+<td valign="top" colspan="2">
+<!--
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="arrDbl_left.gif" border=0 alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="arrDbl_top.gif" border=0 alt="" align="middle">
+<a href="#head">top</a>
+-->
+<p></p>
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End-->
+       </td>
+    <td width="80%" bgcolor="#FAFBD6" valign="center"><a name="twhaul.18082003"></a><p class="pre">A Walk to Frame Sydney</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre>Immunised equilibrium riddled the porosity we face
+all downhill now into a carrot grinding better health
+The dealers indeed only ware bravado penguin suites
+"Pick the best as any good book would tell you, Son"!
+But the real book is buried past all distractions
+It takes Dvorak guts and a staccato walk to frame
+To find some answers in the late Goya walls
+"Off you go, find your gay bar translator"
+
+She went, leaving the soup kitchen behind
+Found her book, but had no money left.
+No one saw her and no one knew him
+Till now!
+
+Pumpernickel abused by Rosamunde 
+a sweet-talk worth a waitress
+Everyone was smiling, enjoying 
+amber recall of ghost encounters
+Disfiguring sex of the local priest, 
+politician, decant &amp; moron
+Minding their own business 
+    imitated reads
+Winding pastoral tick-tocks or 
+jail house torments in showers
+Finding Art Deco placebo soup kitchens
+Here, no translator is needed but creed 
+"All for one and all for a jazzy lip job".
+The translator balances the dictaphone
+marching to Bach in a 3 buy 3 rented opera house
+And freedom is permanently parked outside of form 
+for a hobo sap walk saving up for book and cover.
+
+Still, no one wins over Maharaja pigeon dreams
+They keep on reminding those willing some read
+"Relax, look over here, my books make the box
+I'll give you one, but it will crash the nest".
+
+</pre>
+        <p></p>
+       <p>
+       <a href="zebra.mp3">Click here to get the song complimenting this poem</a>
+       </p>
+</td></tr>
+<!-- A Walk to Frame Sydney -->
+
+
+
+<!-- Swamp Rejoiced Cricket Drum Noise -->
+  <tr valign="top"> 
+    <td bgcolor="#EDEFBB" rowspan="2"> 
+<pre>SQUEEZED
+IN BETWEEN
+POETRY
+</pre>
+
+<!-- Index-->
+<hr size="2" color="#C57A75">
+<table>
+<tbody><tr>
+<td valign="top" colspan="2" align="center"><p class="gr">25-Jun-2003<br><i>Swamp Rejoiced Cricket Drum Noise</i></p></td>
+</tr> 
+<tr>
+<td valign="top" colspan="2"><p class="gr"></p><hr size="2" color="#C57A75"></td>
+</tr>
+<tr>
+</tr><tr>
+<td valign="top" colspan="2" align="center"><p class="gr8"> - Volume I -</p></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.12112002"><p class="gr8">Facing The River Dream</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.05112002"><p class="gr8">Just Another Testament</p></a></td>
+</tr>
+<tr><td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_2"><p class="gr8">Dog Patrol</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.19082002_1"><p class="gr8">Abstained Melodrama</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.08092002"><p class="gr8">Cross Eyed</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.06092002"><p class="gr8">The Flock Trip</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.03092002"><p class="gr8">Coined System</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.30082002"><p class="gr8">Sun Stark</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.27082002"><p class="gr8">The Shaved Nun Tail Rap</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.24082002"><p class="gr8">Disturbed Kitten</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.22082002"><p class="gr8">Creation</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.20082002"><p class="gr8">Troll</p></a></td>
+</tr>
+<tr>
+<td valign="top"><img src="pix/arrDbl_right.gif" border="0" alt="" align="middle"></td>
+<td><a href="./vol1.html#twhaul.10052002"><p class="gr8">Remind Me What I am Not</p></a></td>
+</tr>
+<tr>
+<td valign="top" colspan="2">
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="pix/arrDbl_left.gif" border="0" alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="pix/arrDbl_top.gif" border="0" alt="" align="middle">
+<a href="index.html#head">top</a>
+</p>
+<p class="gr8" align="center">Poetry of<br> Thourn Whaul<br>  </p> 
+</td>
+</tr><tr>
+<td valign="top" colspan="2">
+<!--
+<hr size="2" color="#C57A75">
+<p class="plink"><img src="arrDbl_left.gif" border=0 alt="" align="middle">
+<a href="javascript:history.back()">back</a>
+<img src="arrDbl_top.gif" border=0 alt="" align="middle">
+<a href="#head">top</a>
+-->
+<p></p>
+</td>
+</tr> 
+</tbody></table>
+<!-- Index End-->
+       </td>
+    <td width="80%" bgcolor="#FAFBD6" valign="center"><a name="twhaul.25062003"></a><p class="pre">Swamp Rejoiced Cricket Drum Noise</p></td>
+  </tr>
+  <tr valign="top"> 
+    <td bgcolor="#FAFBD6" valign="top"> 
+<pre>In first voice suddenly it takes away
+the cabbage cricket sounds pitch of tear
+a chanson soft it trembles in its play
+just making a hiss silent drums of fear
+
+Never wished to have to fight
+As jewels when once drawn
+pull a sparkle to be matched
+Turn the gravel out be grown
+stand for life's worth's again
+Telling this, out go and fancy 
+From afar recall don't refrain
+Brave in battle brave ardency
+of days past of no known pain
+Telling, brush away the swamps
+Dare go recall to sain sustain
+wishes thrown into hat of punts.
+
+The path was usual but what a finding
+of Solomon riches such unseen, untouched
+Weakness ever now passing to be blinding
+as if to mask protect the carriers might
+bringing spoils in skirtings patched.
+
+Voiceless sitting deep in foliage
+invisible witness, tired valiance
+Hidden behind fem growth of coilage
+watching the secret wild people dance
+Tribe brought some blessings in food
+I've waited for the end of the binge
+Watched for long, lost to horror glued
+near a shrine at the forest fringe. 
+Agenda was about youth coming into age
+for these folk of both gender sacred
+what unfolded edged on outrage
+The lot sung, women's breasts swagged
+calling spirits scaring the encircled
+Dig, dig or we will never end, dig
+with your hands, and most did
+Till a bamboo bundle large unveiled
+an old body placed aside in silence
+Then cries slammed rhythm continued
+as the elders on rot eagerly peeled
+Youth was forced with urine to awake
+a body dry and dirty "don't be thrilled"!
+Most obliged but some for no sake
+just couldn't do it; 'til morn' brake.
+
+A generations cast to the alimony
+left out, eight girls and two lads 
+Near the end of the ceremony 
+left out, to face nightmare alidades
+One of the boys and all the girls 
+succumbed finally to torment frills
+But desperate tribe men lifted spears
+as the last odd one wouldn't budge
+tips cut touching skin, just to smudge
+It would've been a terror gruesome end
+If a loud voice didn't break into echo 
+The whole tribe into silence 
+The whole tribe dropped to their knees.
+The forgotten dead body was now standing
+Risen and pointing making way to the boy
+A boy stubborn, shaking, holding tears
+rejecting reason of forced fait ploy.
+"He shall be the chosen one!"
+You are the next Shaman
+My Apprentice!
+He must marry the eight least girls
+The other boy will be his shadow 
+enemy and friend, successor if failed
+his nature wisdom's challenge coil.
+For good or for worse let us rejoice, 
+let them now be, let them serve
+This our God's wish, our voice
+against the evil peril perve"
+
+As the tribe left a weakness begun
+A bitten target of insect stung
+A body laying hiding from it all
+A body swarmed with reddish adore
+in flakes float of unnoticed spore
+Tried to scream, run out tall
+but to late, no voice, no accord
+poison melting start flesh to dung. 
+Painful, illusive was the effort
+of a ghost crawling out of growth 
+Thinking nothing, going forth
+fighting for survival for life's worth
+getting out, slow steady deport.
+
+Thankful reached the laid blessings
+took first drink on some sweet tea
+Days passed slow, getting better
+feeding on beetles half cooked pea.
+Such discovered
+by the rest of the expedition
+but trust lost at the moment 
+lost even to amend
+For no sake of company 
+No tale ambition, telling
+was a stashed giant diamond 
+wrapped in a Shaman's headband.
+
+</pre>
+<pre>...</pre>
+        <p></p>
+</td></tr>
+<!-- Swamp Rejoiced Cricket Drum Noise End -->
+
+
+
+<!-- Pages End -->
+  <tr valign="middle" align="center"> 
+    <td bgcolor="#EDBD49" colspan="2">
+       <p class="stxt"><b>Copyright � <a href="mailto:viw@nospam.to.excite.com">Thourn Whaul</a>  all rights reserved.</b><br>
+       Feel free to hyper link to this pages and content; however no permission has been given to copy,<br>
+       use or publish any content or style from this website.</p>
+    </td>
+  </tr>
+</tbody></table>
+
+
+</body></html>
\ No newline at end of file
diff --git a/dev_current/docs/notes/dev_journal.md b/dev_current/docs/notes/dev_journal.md
new file mode 100644 (file)
index 0000000..6a21fed
--- /dev/null
@@ -0,0 +1,23 @@
+# Development History Plans/Journal
+
+# PerlCNF
+
+Perl based Configuration Network File Format Parser and Specifications.
+CNF file format supports used format extraction from any text file.
+
+
+---
+## Status
+(2024-6-20) - v.3.2, SQLCNF package upgraded and enhanced. DATA instruction is now in a header reference
+              that contains spec and CNF row type.
+(2023-6-14) - v.2.9, new meta flags and priority can be set via these pre-evaluation settings for instructions.
+              Node processing on demand and JSON translation on demand of CNFNode's (TREE instruction) is now available.
+              Online demo made available.
+(2023-5-13) - v.2.8, has new instructions VARIABLE, to streamline under one tag like CONST, but for anons.
+Has better tag mauling algorithm. PLUGIN code has been improved, particularly the synchronizing and the linking of properties.
+
+(2022-11-18) - PerlCNF now provides custom test manager and test cases.
+That will in future be used for all projects as a copy from this project.
+This is all available in the ./test directory and is not a Perl module.
+
+---