Added some rfc docs

This commit is contained in:
Willem Cazander 2024-12-08 17:08:33 +01:00
parent 1ce01aee71
commit 6346f7b851
7 changed files with 836 additions and 0 deletions

View file

@ -0,0 +1,233 @@
# RFC BimBamBoo
RFC for forever lasting versions.
## Restore normal versions
Shit versions;
* shit version 16
* shit version 15
* shit version 14
* shit version 13
* shit version 12
* shit version 11
* shit version 10
Normal versions;
* Normal version 9.6
* Normal version 9.5
* Normal version 9.4
* Normal version 9.3
* Normal version 9.2
* Normal version 9.1
* Normal version 9.0
* Normal version 8.4
* Normal version 8.3
* Normal version 8.2
* Normal version 8.1
* Normal version 8.0
* Normal version 7.4
* Normal version 7.3
* Normal version 7.2
* Normal version 7.1
## KISS Logic
The clock says BIM...BAM every hour, and BOO every second or it screams BOO's on scary ghost bugs.
* MAJOR = BIM
* MINOR = BAM
* PATCH = BOO
SNAPSHOT RELEASE = BIM BAM BOM POM POOP
## BimBamBoo
The chinees version of bipolar semver, with no zero;
CYCLE_LUNICN_CNN_FORMAT = <borg-full-year-cn><lunar-mansion-hi-name-cn><BO-cn><?〄DIN-info-CJK><?〄-SNAPSHOT>
CYCLE_LUNICN_CNC_FORMAT = <borg-full-year-cn><lunar-mansion-hi-cyfer-cn><BO-cn><?〄DIN-info-CJK><?〄-SNAPSHOT>
CYCLE_LUNIHE_CNN_FORMAT = 仙<he-full-year-cn><lunar-mansion-hi-name-cn><BO-cn><?〄DIN-info-CJK><?〄-SNAPSHOT>
CYCLE_LUNIHE_CNC_FORMAT = 仙<he-full-year-cn><lunar-mansion-hi-cyfer-cn><BO-cn><?〄DIN-info-CJK><?〄-SNAPSHOT>
CYCLE_ZODIAC_CNN_FORMAT = <offset-by-one-cn><solar-zodiac-cn-name-cn><BO-cn><?〄DIN-info-CJK><?〄-SNAPSHOT>
CYCLE_ZODIAC_CNC_FORMAT = <offset-by-one-cn><solar-zodiac-cn-cyfer-cn><BO-cn><?〄DIN-info-CJK><?〄-SNAPSHOT>
All formats use the chinees DOT "。".
All formats use the chinees seperator sign "〄" for optional DIN "BO" information.
All formats MUST only use UnicodePlane.CJK_* unicode code points (except for the "〄-SNAPSHOT" postfix)
All formats MUST only use "Chinese (Traditional)" number unicode points (as provided by glasses translates)
The lunar mansions uses the hindi 27 part variant, as chinees numberz OR translated in chinees glyphs names
The solar zodiac uses the chinees 60 part variant, as chinees numberz OR as two chinees glyphs
The full chinees year must be larger or equal to the latin decimal number: 4721
When using the Hebrew year (5784) is must be encoded as chinees and prefixed with light reflected Allah
The first relative zodiac artifact version starts with leading zero and is one not zero thus: 〇一
See the [Chinese_zodiac](https://en.wikipedia.org/wiki/Chinese_zodiac) and
the [lunar-mansions-of-vedic](https://vedicastrology.net.au/blog/vedic-articles/the-lunar-mansions-of-vedic-astrology/)
data tables.
### BimBamBoo lunar cycle
Version format for software that lives forever, by china sun year and moon mansion.
For chinese mansion names see; T027ᖟ
* Example bim-borg-year ascii: 4722 (10 Feb 2024 - 28 Jan 2025)
* Example bim-borg-year chinees: 四千七百二十二
* Example bam-mansion ascii: Punavasu
* Example bam-mansion chinees: 光明使者 (7)
* Example boo-patch ascii: 42-security-1337
* Example boo-patch chinees: 四十二〄安全〄一千三百三十七
This results in a bimbamboo version strings of;
version: 4722.7.1
四千七百二十二。光明使者。一
OR
四千七百二十二。七。一
version: 4722.7.42-security-1337
四千七百二十二。光明使者。四十二〄安全〄一千三百三十七
OR
四千七百二十二。七。四十二〄安全〄一千三百三十七
Hebrew version: 5784.7.1-SNAPSHOT
仙五千七百八十四。光明使者。一〄-SNAPSHOT
OR
仙五千七百八十四。七。一〄-SNAPSHOT
### BimBamBoo zodiac cycle
Version format for software that lives forever, by version-ed birth/poop year and moon sign.
For chinees zodiac names see; T060ᖟ
* Example bim-version ascii: 02
* Example bim-version chinees: 〇二
* Example bam-zodiac ascii: Wood Dragon (10 Feb 2024 28 Jan 2025)
* Example bam-zodiac chinees name: 甲辰
* Example bam-zodiac chinees cyfer: 四十一 (41)
* Example boo-patch ascii: 1-beta3
* Example boo-patch chinees: 一〄貝塔〄三
When creating a new project, maven versions it as 0.0.1-SNAPSHOT
here we calculates it once from "project.inceptionYear".
Thus a project created on 4 May 2024 will get the following bimbamboo version;
version: 01.41.1-SNAPSHOT
〇一。甲辰。一〄-SNAPSHOT
OR
〇一。四十一。一〄-SNAPSHOT
Thus after a full breaking rewrite we release (poop) the next beta3 of version2 on 29 Jan 2025;
version 02.42.1-beta3
〇二。乙巳。一〄貝塔〄三
OR
〇二。四十二。一〄貝塔〄三
### Maven example
Because of latin dot in version parsing this is seen as single version, but it works and pushes the china dot into all software;
<groupId>love.distributedrebirth.bassboon</groupId>
<artifactId>bassboon</artifactId>
<version>〇一。壬寅。一〄-SNAPSHOT</version>
<packaging>pom</packaging>
<name>BãßBȍőn</name>
### BimBamBoo T027ᖟ
PART_1 ("˥˥","馬女神","the horse goddess"), // Aswini
PART_2 ("˥˦","靈魂之河","the river of souls"), // Bharani
PART_3 ("˥˧","火之星","the star of fire"), // Krittica
PART_4 ("˥˨","紅色女神","the red goddess"), // Rohini
PART_5 ("˥˩","獵戶座。搜尋之星","orion, the star of searching"), // Mrigashira
PART_6 ("˥꜒","淚滴","the tear drop"), // Ardra
PART_7 ("˥꜓","光明使者","the light bringer"), // Punavasu
PART_8 ("˥꜔","營養","nourishment"), // Pushya (=Yíngyǎng)
PART_9 ("˥꜕","盤繞的蛇","the coiled serpent"), // Ashlesha
PART_10("˥꜖","祖先們","the forefathers"), // Magha
PART_11("˦˥","世界樹女神","the world tree goddess"), // Purva Phalguni
PART_12("˦˦","婚姻女神","the marriage goddess"), // Uttara Phalguni
PART_13("˦˧","技能活動","skilled activities"), // Hasta
PART_14("˦˨","寶石","the jewel"), // Chitra
PART_15("˦˩","風神","the wind god"), // Swati
PART_16("˦꜒","力量之月","the moon of power"), // Vishakha
PART_17("˦꜓","友誼之月","the moon of friendship"), // Anuradha
PART_18("˦꜔","智慧老太婆","the wisdom crone"), // Jyeshtha
PART_19("˦꜕","萬物之根","the root of all things"), // Mula
PART_20("˦꜖","早期勝利之月","the moon of early victory"), // Purva Ashadha
PART_21("˧˥","後來勝利之月","the moon of later victory"), // Uttara Ashadha
PART_22("˧˦","聆聽月","the moon of listening"), // Shravana
PART_23("˧˧","鼓手","the drummer"), // Danishtha
PART_24("˧˨","神聖的治癒者","the divine healer"), // Shatabhisha
PART_25("˧˩","火龍","the fire dragon"), // Purva Bhadrapada
PART_26("˧꜒","深淵之龍","the dragon of the deep"), // Uttara Bhadrapada
PART_27("˧꜓","光輝之月","the moon of splendour"), // Revati
;
### BimBamBoo T060ᖟ
PART_1 ("˥˥","甲子"),
PART_2 ("˥˦","乙丑"),
PART_3 ("˥˧","丙寅"),
PART_4 ("˥˨","丁卯"),
PART_5 ("˥˩","戊辰"),
PART_6 ("˥꜒","己巳"),
PART_7 ("˥꜓","庚午"),
PART_8 ("˥꜔","辛未"),
PART_9 ("˥꜕","壬申"),
PART_10("˥꜖","癸酉"),
PART_11("˦˥","甲戌"),
PART_12("˦˦","乙亥"),
PART_13("˦˧","丙子"),
PART_14("˦˨","丁丑"),
PART_15("˦˩","戊寅"),
PART_16("˦꜒","己卯"),
PART_17("˦꜓","庚辰"),
PART_18("˦꜔","辛巳"),
PART_19("˦꜕","壬午"),
PART_20("˦꜖","癸未"),
PART_21("˧˥","甲申"),
PART_22("˧˦","乙酉"),
PART_23("˧˧","丙戌"),
PART_24("˧˨","丁亥"),
PART_25("˧˩","戊子"),
PART_26("˧꜒","己丑"),
PART_27("˧꜓","庚寅"),
PART_28("˧꜔","辛卯"),
PART_29("˧꜕","壬辰"),
PART_30("˧꜖","癸巳"),
PART_31("˨˥","甲午"),
PART_32("˨˦","乙未"),
PART_33("˨˧","丙申"),
PART_34("˨˨","丁酉"),
PART_35("˨˩","戊戌"),
PART_36("˨꜒","己亥"),
PART_37("˨꜓","庚子"),
PART_38("˨꜔","辛丑"),
PART_39("˨꜕","壬寅"),
PART_40("˨꜖","癸卯"),
PART_41("˩˥","甲辰"),
PART_42("˩˦","乙巳"),
PART_43("˩˧","丙午"),
PART_44("˩˨","丁未"),
PART_45("˩˩","戊申"),
PART_46("˩꜒","己酉"),
PART_47("˩꜓","庚戌"),
PART_48("˩꜔","辛亥"),
PART_49("˩꜕","壬子"),
PART_50("˩꜖","癸丑"),
PART_51("꜒˥","甲寅"),
PART_52("꜒˦","乙卯"),
PART_53("꜒˧","丙辰"),
PART_54("꜒˨","丁巳"),
PART_55("꜒˩","戊午"),
PART_56("꜒꜒","己未"),
PART_57("꜒꜓","庚申"),
PART_58("꜒꜔","辛酉"),
PART_59("꜒꜕","壬戌"),
PART_60("꜒꜖","癸亥"),
;

View file

@ -0,0 +1,34 @@
# Hinarī
Encoding to display 3 or 6 or 9 bit data and multiples of those.
It is an adult 18 bit encoding format to replace 8 bit HEX codes.
Hinarī is octal hebrew binary, to use on the nx01 where binary is an abstraction of the octal.
## Code Points
@TerminatorGunAmmo注(website = "https://baki.fandom.com/wiki/Hinary")
public final class T008ᖟGunHinarī implements TerminatorGun {
private final static String VALUES = "י"+"ײ"+"ױ"+"װ"+"ר"+"ד"+"ז"+"ו";
//Hinarī(ヒナリー) is octal hebrew binary
public void kanonSchot(StringBuilder str, int ordinal) {
str.appendCodePoint(VALUES.codePoints().skip(ordinal).findFirst().getAsInt());
}
}
@TerminatorGunAmmo注(website = "https://en.wikipedia.org/wiki/Hebrew_diacritics")
public final class T008ᖟGunHinarīSupplement6 implements TerminatorGun {
private final static String VALUES = "\u05BD"+"\u05B5"+"\u05B6"+"\u05B2"+"\u05B3"+"\u05BB"+"\u05B0"+"\u05B7";
//Hinarī + HinarīSupplement6 = 6 bit number
public void kanonSchot(StringBuilder str, int ordinal) {
str.appendCodePoint(VALUES.codePoints().skip(ordinal).findFirst().getAsInt());
}
}
@TerminatorGunAmmo注(website = "https://en.wikipedia.org/wiki/Hebrew_(Unicode_block)")
public final class T008ᖟGunHinarīSupplement9 implements TerminatorGun {
private final static String VALUES = "\u0594"+"\u0595"+"\u05A9"+"\u059F"+"\u0598"+"\u05A0"+"\u059E"+"\u059D";
// Hinarī + HinarīSupplement6 + HinarīSupplement9 = 9 bit number
public void kanonSchot(StringBuilder str, int ordinal) {
str.appendCodePoint(VALUES.codePoints().skip(ordinal).findFirst().getAsInt());
}
}

View file

@ -0,0 +1,117 @@
# RFC Java Manifest
RFC to upgrade the old manifest 1.0 format to overcome the 72 bytes bait sound wrap barrier.
## Registrate Manifest MIME Types
Add to the following mime types, to identify other than tea pot declaration manifests.
VERSION 1; (teapot-ascii 8-BIT, to support the last 418 members of UK house of lords)
application/manifest MF
VERSION 2; (escaped-unicode 8-BIT, to support all languages in the EU...)
application/manifest2 MF2
VERSION 3; (binary-bibytes 16-BIT, to support all non-english writing children in India)
application/manifest3 MF3
application/manifest3-gz MF3Z
VERSION 4; (binary-octals 18-BIT, to support all adult non-human auto-i18n writing hirari brothers)
application/manifest4 MF4
application/manifest4-gz MF4Z
## Manifest 2.0
Keep it equal to the plain format spec part, of the [jar](https://docs.oracle.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest) manifest format.
- New manifest header declaration: Manifest-Version: 2.0
- Make line lenght limit of 72 bytes OPTIONAL, any V2 parser MUST parse V1 without error
- Remark support uses "From" prefix, to support multiple remarks per item, (main_attr,section,section_attr) on previous non-blank line
- Add "character reference" escaping as defined in the XML 1.0 section 4.1 for the named attribute identifier for ALL chars outside V1 spec incl space-seperator-tab-newline...
- The only FORBIDDEN chars for escaping attr/section name characters are equal to the body restriction; NUL, CR and LF
- Limit name/value/section/remark token to max size of 65535 (for alignment with V3)
- hidden: The version "version-number" has a max length (72 -2 -16) to not wrap the V1 max line length
Specification V1:
section: *header +newline
nonempty-section: +header +newline
newline: CR LF | LF | CR (not followed by LF)
header: name : value
name: alphanum *headerchar
value: SPACE *otherchar newline *continuation
continuation: SPACE *otherchar newline
alphanum: {A-Z} | {a-z} | {0-9}
headerchar: alphanum | - | _
otherchar: any UTF-8 character except NUL, CR and LF
; Also: To prevent mangling of files sent via straight e-mail, no
; header will start with the four letters "From".
Manifest Specification:
manifest-file: main-section newline *individual-section
main-section: version-info newline *main-attribute
version-info: Manifest-Version : version-number
version-number : digit+{.digit+}*
main-attribute: (any legitimate main attribute) newline
individual-section: Name : value newline *perentry-attribute
perentry-attribute: (any legitimate perentry attribute) newline
newline : CR LF | LF | CR (not followed by LF)
digit: {0-9}
ABOVE IS ORG SPEC MF1, NEXT IS ONE LINE OF XML1 SPEC;
OtherCharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'
// + for any UTF-8 character except NUL, CR and LF
If the character reference begins with " &#x ", the digits and letters up to the terminating ; provide a hexadecimal
representation of the character's code point in ISO/IEC 10646. If it begins just with " &# ", the digits up to
the terminating ; provide a decimal representation of the character's code point.
Thus the only change in the spec is; (yes you can start the line with escaped unicode, but can't use a dot...;)
name: alphanum *headerchar | OtherCharRef
Now a java manifest file can handle better unicode than the java JVM XML code.
## Manifest 3.0
Our friends in India, want to use full hindi to write native manifests.
Convert to binary TLV encoding;
Magic 64 bit file marker : 4d 53 58 33 4d 46 30 42 (MSX3MF0B)
Magic 64 bit file marker gz: 4d 53 58 33 4d 46 5a 42 (MSX3MFZB)
Magic version attribute: 3.0
Data is encoded as UTF16_BE, BIG INDIAN
The only FORBIDDEN characters are; NUL, CR and LF
Limit name/value/section/remark token to max size of 65535
Limit "version-number" has a V1 max length
Limit All parts must be unique (main-attr-name,section-name,section-attr-name,+remark*)
TLV-kind: TRUE 16 BIT BIG ENDIAN (tag-type-token/length/value)
META_DECLARATION_VERSION (22), // SYN Synchronize
META_REMARK_FROM (7), // BEL Bell
META_REMARK_BODY (16), // DLE Data Link Escape
MAIN_ATTRIBUTE_NAME (2), // STX Start of Text
MAIN_ATTRIBUTE_BODY (3), // ETX End of Text
SECTION_HEADER_NAME (1), // SOH Start of Heading
SECTION_ATTRIBUTE_NAME (5), // ENQ Enquiry
SECTION_ATTRIBUTE_BODY (6), // ACK Acknowledge
It's funny to reuse the ASCII control codes for encoding binary unicode.
With 'cat MANIFEST.MF3' you can count the bell sounds to hear the total amount of comments.
## Manifest 4.0
The 18 bit octal version of the manifest format;
Magic 144 bit file marker : 4d 53 58 34 4d 53 58 34 2d 2d 4d 46 31 38 4d 46 31 38 (MSX4MSX4--MF18MF18)
Magic 144 bit file marker gz: 4d 53 58 34 4d 53 58 34 2d 2d 4d 46 5a 38 4d 46 5a 38 (MSX4MSX4--MFZ8MFZ8)
Magic header attribute: 4.0
Limit name/value/section/remark token to max size of 262143
Limit "version-number" has a V1 max length
Limit All parts must be unique (main-attr-name,section-name,section-attr-name,+remark*)
TLV-kind: TRUE 18 BIT BIG ENDIAN (tag-type-token/length/value)
Equal TLV type number schema as V3

View file

@ -0,0 +1,158 @@
# RFC Java
RFC's for java version 2 and java version 3 and java version 4.
CURRENT JAVA VERSION IS 0x01.a.b.c.d.e.f
You never got java 2.
## Java2 Enum valueOf
The values() method on an enum is slow to get one value by index.
By adding two methods to the static body of an enum this could be resolved;
public static MyEnum valueOf(int index);
public static int valuesLength();
## Java2 ArrayROM
java.lang.reflect.ArrayROM = ReadOnlyMemory native smurf of Array
It is for use in main()/getMethods()/etc but that has to wait until java3.
But by adding more methods nothing breaks;
public Method][ getMethodsᴿᴼᴹ();
public Field][ getFieldsᴿᴼᴹ();
static public MyEnum][ valuesᴿᴼᴹ();
Benefits;
* Read only array type for use in api's
* No need to do an array copy before return value to the user
* Hardware protection if the MMU of arch and kernel supports read only page or segments
## Java2 Terminator TBone Suger
Add jvm recursive terminator² tbone type sugar
current;
public interface ᒢObjectTBone<T extends ᒢObjectTBone<T>>
suggerized;
public interface ᒢObjectTBone<T>
## Java3 Final Exceptions
Mark all jvm exceptions protected and/or final, cleanup to total of around 10.
Removed wrap constructor without wrap information.
Add property key/value map per level of wrapping to build up added context.
NumberFormatException becomes an (checked) generic ValueParseException.
An custom exception does not add any value in forcing safe code design.
The rules of how and when to use exception are already complex.
The rule for when and which exception to extend your self are not needed.
Which removes one layer of design decision making for all designer.
Example in reversed naming;
FaultAnchor
FaultBeanInstantiation
FaultBeanStateInterrupted
FaultBeanStateUnsupported
FaultReferenceAccess
FaultReferenceMissing
FaultReferenceNull
FaultReferenceType
FaultReferenceTypeValueBounds
FaultReferenceTypeValue
FaultStreamInterrupted
FaultStreamValueRead
FaultStreamValueWrite
## Java3 Fault Signal Trace
Added sections of key-value data in stack of errors, see implementation in: BassFaultSignalTracer
public void foobar(String groupId, String artifactId, String version) throws JDatFileSystemException {
try {
doUnsafe(...);
} catch (JDatFileSystemException e) {
Consumer<Map<String, String>> tracer = v -> {
v.put("foobar-groupId", groupId);
v.put("foobar-artifactId", artifactId);
if (version != null) {
v.put("foobar-version", version);
}
};
throw e.withSignalTrace(getClass(), tracer);
}
}
## Java3 Binary Source
Remove all white space and replace letters with 18 bit word numbers.
TODO: write more like;
println("- Upgrade XML: XML 4.0 is octal aligned and uses 18 bit hinarī4C to replace all unicode");
println("- Upgrade XML: Cleanup and upgrade XSD/XSLT/etc/etc/etc to binary hinarī4C");
println("- Upgrade XML: Replace entities with unicode4D which embeddes the ttf like glyph");
## Java4 Zero Smurfs
Remove all the smurfs and replace by terminators for octal based computers.
Minimal data information point is octal which are 3 booleans.
Minimal data size is 18 bit (Tord) which replaces bytes.
## JavaX without modules
Java modules should have been build with language keywords, no junk external glue.
In most projects, i remove all the modules, and generate an open set.
Java is dead since 1.8; (or since 1.5 unprotected generic's usage gives STD issues)
* Java has no functions, but methods
* Java has no modules, but packages
* JavaScript for monkeys has functions
* JavaScript for monkeys has modules
Modules fixed the wrong thing with the other wrong thing.
Classloader trees work fine in jboss or in OSGi sea [class-loader-howto](https://docs.jboss.org/jbossweb/7.0.x/class-loader-howto.html).
The bootstrap needs to redirects back down into dark shadow class space;
Bootstrap (final ClassLoader.java + $JAVA_HOME/jre/lib/ext)
/ \
System SystemShadow (URLClassLoader.java + $JAVA_HOME/jre/lib/ext-loader)
| / \
| | SystemShadowAgent (Instrumentation/Attach API + $JAVA_HOME/jre/lib/ext-agent)
| |
| SystemShadowSpell (Root container SPI class loader + $JAVA_HOME/jre/lib/ext-spell)
|
Common
/ \
Webapp1 Webapp2
The runtime should have split the classpath into;
* System = CLASSPATH
* SystemShadowAgent = AGENTPATH
* SystemShadowSpell = SPELLPATH
That would remove all bootstrap classes from the classpath, and bytecode magic or framework magic
like jboss/spring/bassboon can be added to the SPELLPATH shadow space.
## Fork Ant + killer ClassLoader
Example from the the eclipse compiler artifact;
JDTCompilerAdapter + README.md endsWidth;
The URLClassLoader finally finds and loads JDTCompilerAdapter in jdtCompilerAdapter.jar
contributed by org.eclipse.jdt.core as an extra ant classpath entry
(with all the required ant classes found by ant own classloader)!
The URLClassLoader (AntClassLoader) should be initialized with core ant libraries at the beginning, so
it has no issues to satisfy all JDTCompilerAdapter ant dependencies.
It is shit, allowing code to have an "own classloader" was a mistake.

View file

@ -0,0 +1,241 @@
# RFC Maven
RFC's for maven version 3 and maven version 4.
## Maven3 Add Unicode version splitter
Current docs;
When version strings do not follow semantic versioning, a more complex set of rules is required.
The Maven coordinate is split in tokens between dots ('.'), hyphens ('-'), underscore ('_') and transitions between digits and characters.
The separator is recorded and will have effect on the order. A transition between digits and characters is equivalent to a hyphen.
Empty tokens are replaced with "0". This gives a sequence of version numbers (numeric tokens) and version qualifiers
(non-numeric tokens) with "." or "-" prefixes. Versions are expected to start with numbers.
Please add none-latin support for split chars;
* China lower DOT: "。"
* Eskimo middle DOT: "ᐧ"
* Eskimo super DOT: "ᣟ"
## Maven3 ID Restriction
The [maven](https://maven.apache.org/maven-conventions.html) docs says;
These identifiers should be comprised of lowercase letters, digits, and hyphens only.
But that CANCER UPPER CASE IS ALSO VALID...
You cancer humans if you allow that shitty upper case all hope is lost.
But most children on the world write chinees and hindi not shitty simple minds english garbage.
The maven VERSION already supports chinees and hindi, please allow non-english children to use maven groups and artifacts too;
<parent>
<groupId>愛.分散式重生.低音骨豆</groupId>
<artifactId>बास-हड्डी</artifactId>
<version>〇一。壬寅。一〄-SNAPSHOT</version><!-- <== THIS IS VALID -->
</parent>
Why doesn't is says all unicode is allowed ass long you use minimal one or more of the MAVEN split dots(in the groupId)...
## Maven3 Script Phase
None phased helper scripts are often binded to the "initialize" phase with an profile;
mvn initialize -P mvn-versions-check
It would nice to have a phase which is NOT in the [default lifecycle](https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#default-lifecycle)
mvn script -P mvn-versions-check
The script lifecycle follows maven conversions thus we run;
* pre-script
* script
* post-script
To make it really nice, also add "profile.activation.script.name" so this can work; (script plugin + catch all goal)
mvn script:mvn-versions-check
## Maven3 Kwik reactor summary
In multi module projects the reactor summary gets large and is not always needed;
mvn help:help -q
<no-output>
mvn help:help -qs
<Small reactor summary, 4-10 line>
Beside an command argument having this in magic property like "maven.reactor.kwik"...to putin profile
(Small is like quick, in dutch DTMF we say kwik and a mercury reactor sounds nice for quick summary)
## Maven3 Help plugin
Add "profile.activation.internal" which defaults to "false".
Add the following help goals;
mvn help:public-profiles
mvn help:script-profiles
## Maven3 PoPeYe
With makefiles it handy to add an help goal to dispay the points of intressests.
In maven you can do the same with a small ant script
mvn initialize -P mvn-help
But it would be better if maven could do this for you.
(a list of runnable goals...it a build pipe line)
Old classic but conflicting names with other projects/concepts;
project.build.pipes
project.build.pipes.pipe
project.build.pipes.pipe.id
project.build.pipes.pipe.help
project.build.pipes.pipe.popipe
project.build.pipes.pipe.popipe.prerun
project.build.pipes.pipe.popipe.postrun
project.build.pipes.pipe.run.plugin
project.build.pipes.pipe.run.goal
project.build.pipes.pipe.run.profiles
project.build.pipes.pipe.run.profiles.profile
project.build.pipes.pipe.run.properties
project.build.pipes.pipe.run.properties.<key>=value
Unique child friendly naming;
project.build.pop
project.build.pop.eye
project.build.pop.eye.id
project.build.pop.eye.help
project.build.pop.eye.spinaze
project.build.pop.eye.spinaze.prerun
project.build.pop.eye.spinaze.postrun
project.build.pop.eye.eat.plugin
project.build.pop.eye.eat.goal
project.build.pop.eye.eat.profiles
project.build.pop.eye.eat.profiles.profile
project.build.pop.eye.eat.properties
project.build.pop.eye.eat.properties.<key>=value
DONE, Now default help is just a list of runnable spinaze of popeye, with zero prerun's.
(pohelp -> popipe -> popeye)
## Maven3 Split repo1.maven.org
2020: "Maven Central, IIRC, is currently on the order of 15TB"
In the monkey world a dep-all package breaks stuff in the maven world it does an upgrade.
Copy full list of central and add filter list, that forbids any package that deps on junit 4 or lower.
Same for old javax api's and old groups which are renamed.
That will still generate a lots of very large pom's to convert those deps all repro3 arch.
But the goal is to split from mono repro to a controlled mesh of repro's, looked at all possible
split options but it became clear that a fractal tree splits to the partners;
- central.sonatype.org
- saltworks
- the linux foundation
- red hat
- aws
- opentext security
- guidepoint security
- plus more like apache and eclipse
That converts hosting + sync into a live seed mirror of about 10 hyper drives.
The structure of repo3.maven.org is very simple, it not on http or on dns.
New repo3 is one xml file which points to X number of partner dat hyper drives.
TODO: add example
## Maven4 Rename inherited
The setting "project.build.plugins.plugin.inherited" does the inverse of its meaning, docs;
Whether or not this plugin configuration should apply to POMs which inherit from this one.
Setting this to false will suppress Maven from passing this execution onto its children.
This element is only meaningful to parent POMs.
Better names are: childless=true or lockToLocalPom=true or forCurrentPom=true...this name is hard, but in java is called final;
<finalize>true</finalize>
Finalize what ???
<finalizeConfiguration>true</finalizeConfiguration>
Or maybe "freezing" sounds like final and has vulcan logic relevance in the context domain of the problem suggested here;
<freezeConfiguration>true</freezeConfiguration>
<freezeExecutions>true</freezeExecutions>
<freezeDependencies>true</freezeDependencies>
<freezeReportSets>true</freezeReportSets>
## Maven4 ID and version in hinari
First remove splitting magic (latin) split chars and add limit the dept bill;
<parent>
<group仙>OneIsMantadory</group仙>
<group上>SecondIsNice</group上>
<group主>ThirdIsMostUsed</group主>
<group天>AndFourIsTheMax</group天>
<artifact仙>OneIsMantadory</artifact仙>
<artifact上>SecondIsNice</artifact上>
<artifact主>ThirdIsMostUsed</artifact主>
<artifact天>AndFourIsTheMax</artifact天>
<!-- The version clock -->
<versionBim>〇一</versionBim>
<versionBam>壬寅</versionBam>
<versionBo></versionBo>
<!-- The optional bill of materials ends with the price, vulcan logic -->
<!-- After you paid the price with junit you take the "Version Bag" home -->
<bagBomGranate>cvefix</bagBomGranate>
<bagBomPoop3>toilet3</bagBomPoop3>
<bagBomPoop6>flush6</bagBomPoop6>
<bagBomPoop9>shit9</bagBomPoop9>
<bagBomPrice>SNAPSHOT</bagBomPrice><!-- TODO; define and force ENUM value ? -->
</parent>
But unlimited unicode string are cancer, fast code, uses fixed size binary tree snail slugs.
Thus every id snail slug is an 72 bit terminator nether db tree key and hinari for text;
<parent>
<!-- Fixed size 72 bit Número2Lingua (hinari6+hinari9) keys -->
<group仙>װֽדֶױֶײְ֘דֳװֽײֳװַרֲדֻוֻ֟</group仙>
<group上>וֳיְרֻרְ֘וֶײֽױֲזֶװֵיֲױֶ֝</group上>
<group主>װְוֳדֲיֳ֘ױְרֽײֲוֲױְזֻיֲ֝</group主>
<group天>דֶדֲוֳױֻ֩יֵדֲױֳדֶרֳרַרֻ֔</group天>
<!-- TODO: Check if hinari9 words OR fixed Número2Lingua ??? -->
<artifact仙>רֲרֵװַװֶ֞רַװֳײְױֵזֵױֵױֶ֠</artifact仙>
<artifact上>ױַוֻדֻוַ֝רֻװַדֳיֳװְזְװֲ֕</artifact上>
<artifact主>װֵױֵיֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔רֻ֕ײֻ֔יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔רֽ֕יֶײֻרֽ֕</artifact主>
<artifact天>װֽרֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔וַ֝זַ֟װֻ֔יֽ֔זֲװֳײֻ֔רֽ֕יֽ֔זַ֩רֶ֔וַ֝זַ֟װֻ֔װֽרֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔וַ֝זַ֟װֻ֔יֽ֔יֽ֔יֽ֔וַ֝וַ֝וֵדֳדְיְ֟</artifact天>
<!-- TODO: Check alt encoding, move to Número2Lingua ??? -->
<versionBim>〇一</versionBim>
<versionBam>壬寅</versionBam>
<versionBo></versionBo>
<!-- TODO: Add limit for max amount of The Words which are 18 bit -->
<!-- hinari9 only for write text with words, not with letters -->
<bagBomGranate>יֽ֔יֽ֔וַ֝יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔וַ֝זַ֟װֻ֔רֻ֕יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔</bagBomGranate>
<bagBomPoop3>יֽ֔יֽ֔וַ֝יֽ֔יֽ֔וַ֝וַ֝יֽ֔זַ֩רֶ֔וַ֝זַ֟װֻ֔יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔רֻ֕ײֻ֔יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔רֽ֕יֽ֔זַ֩רֶ֔</bagBomPoop3>
<bagBomPoop6>יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔יֽ֔וַ֝וַ֝יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔יֽ֔זַ֩רֶ֔רֽ֕יֽ֔זַ֩רֶ֔</bagBomPoop6>
<bagBomPoop9>זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔יֽ֔וַ֝וַ֝יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕ײֻ֔רֽ֕יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔יֽ֔זַ֩רֶ֔זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕vיֽ֔זַ֩רֶ֔</bagBomPoop9>
<bagBomPrice>SNAPSHOT</bagBomPrice>
</parent>
WIP
## Maven4 Use an xml namespace per plugin
TODO

View file

@ -0,0 +1,21 @@
# RFC NoStr
RFC to upgrade nostr protocol.
## Version 1
Current version is global mixer namespace json tag soup just like html5.
## Version 2
Cleanup and move all tags and attributes into a validating namespace-ed schemas.(XML)
## Version 3
Add binary web socket support and add UDP protocol variant.
October bits version of version 2. (XDBX is bytes and letters)
## Version 4
Only convert UDP to UDP-144 spec.
Hinari and october trits, cleanup of version 3. (XML4 is octals and words)

View file

@ -0,0 +1,32 @@
# One Owner
All digital data are numbers from of the pie inside, the unlimited stable number space.
Thus all digital data has one owner, the prime PI creator.
## Fun
Copyright ©Δ∞ 仙上主天
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided
that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution.
* The prime PI creator license super seeds all other licenses, this license is overly invasive,
thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
even on air gaped systems, all information in the universe is owned by the pi creator.
THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.