From 6346f7b851d27ba9c9b6d2a0ccc54757f396e396 Mon Sep 17 00:00:00 2001 From: Willem Date: Sun, 8 Dec 2024 17:08:33 +0100 Subject: [PATCH] Added some rfc docs --- src/site/wigiti/rfc/rfc-bimbamboo.md | 233 ++++++++++++++++++++++ src/site/wigiti/rfc/rfc-hinari.md | 34 ++++ src/site/wigiti/rfc/rfc-java-manifest.md | 117 +++++++++++ src/site/wigiti/rfc/rfc-java.md | 158 +++++++++++++++ src/site/wigiti/rfc/rfc-maven.md | 241 +++++++++++++++++++++++ src/site/wigiti/rfc/rfc-nostr.md | 21 ++ src/site/wigiti/rfc/rfc-one-owner.md | 32 +++ 7 files changed, 836 insertions(+) create mode 100644 src/site/wigiti/rfc/rfc-bimbamboo.md create mode 100644 src/site/wigiti/rfc/rfc-hinari.md create mode 100644 src/site/wigiti/rfc/rfc-java-manifest.md create mode 100644 src/site/wigiti/rfc/rfc-java.md create mode 100644 src/site/wigiti/rfc/rfc-maven.md create mode 100644 src/site/wigiti/rfc/rfc-nostr.md create mode 100644 src/site/wigiti/rfc/rfc-one-owner.md diff --git a/src/site/wigiti/rfc/rfc-bimbamboo.md b/src/site/wigiti/rfc/rfc-bimbamboo.md new file mode 100644 index 0000000..0c7e27e --- /dev/null +++ b/src/site/wigiti/rfc/rfc-bimbamboo.md @@ -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 = + CYCLE_LUNICN_CNC_FORMAT = + CYCLE_LUNIHE_CNN_FORMAT = 仙 + CYCLE_LUNIHE_CNC_FORMAT = 仙 + CYCLE_ZODIAC_CNN_FORMAT = 〇 + CYCLE_ZODIAC_CNC_FORMAT = 〇 + + 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; + + love.distributedrebirth.bassboon + bassboon + 〇一。壬寅。一〄-SNAPSHOT + pom + BãßBȍőn + +### 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("꜒꜖","癸亥"), + ; diff --git a/src/site/wigiti/rfc/rfc-hinari.md b/src/site/wigiti/rfc/rfc-hinari.md new file mode 100644 index 0000000..0f92299 --- /dev/null +++ b/src/site/wigiti/rfc/rfc-hinari.md @@ -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()); + } + } + diff --git a/src/site/wigiti/rfc/rfc-java-manifest.md b/src/site/wigiti/rfc/rfc-java-manifest.md new file mode 100644 index 0000000..8dff251 --- /dev/null +++ b/src/site/wigiti/rfc/rfc-java-manifest.md @@ -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 + diff --git a/src/site/wigiti/rfc/rfc-java.md b/src/site/wigiti/rfc/rfc-java.md new file mode 100644 index 0000000..cd265e7 --- /dev/null +++ b/src/site/wigiti/rfc/rfc-java.md @@ -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> + suggerized; + public interface ᒢObjectTBone + +## 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> 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. diff --git a/src/site/wigiti/rfc/rfc-maven.md b/src/site/wigiti/rfc/rfc-maven.md new file mode 100644 index 0000000..f478b9b --- /dev/null +++ b/src/site/wigiti/rfc/rfc-maven.md @@ -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; + + + 愛.分散式重生.低音骨豆 + बास-हड्डी + 〇一。壬寅。一〄-SNAPSHOT + + +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 + + + mvn help:help -qs + + +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.=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.=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; + + true + + Finalize what ??? + + true + + Or maybe "freezing" sounds like final and has vulcan logic relevance in the context domain of the problem suggested here; + + true + true + true + true + +## Maven4 ID and version in hinari + +First remove splitting magic (latin) split chars and add limit the dept bill; + + + OneIsMantadory + SecondIsNice + ThirdIsMostUsed + AndFourIsTheMax + + OneIsMantadory + SecondIsNice + ThirdIsMostUsed + AndFourIsTheMax + + + 〇一 + 壬寅 + + + + + cvefix + toilet3 + flush6 + shit9 + SNAPSHOT + + +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; + + + + װֽדֶױֶײְ֘דֳװֽײֳװַרֲדֻוֻ֟ + וֳיְרֻרְ֘וֶײֽױֲזֶװֵיֲױֶ֝ + װְוֳדֲיֳ֘ױְרֽײֲוֲױְזֻיֲ֝ + דֶדֲוֳױֻ֩יֵדֲױֳדֶרֳרַרֻ֔ + + + רֲרֵװַװֶ֞רַװֳײְױֵזֵױֵױֶ֠ + ױַוֻדֻוַ֝רֻװַדֳיֳװְזְװֲ֕ + װֵױֵיֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔רֻ֕ײֻ֔יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔רֽ֕יֶײֻרֽ֕ + װֽרֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔וַ֝זַ֟װֻ֔יֽ֔זֲװֳײֻ֔רֽ֕יֽ֔זַ֩רֶ֔וַ֝זַ֟װֻ֔װֽרֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔וַ֝זַ֟װֻ֔יֽ֔יֽ֔יֽ֔וַ֝וַ֝וֵדֳדְיְ֟ + + + 〇一 + 壬寅 + + + + + יֽ֔יֽ֔וַ֝יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔וַ֝זַ֟װֻ֔רֻ֕יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔ + יֽ֔יֽ֔וַ֝יֽ֔יֽ֔וַ֝וַ֝יֽ֔זַ֩רֶ֔וַ֝זַ֟װֻ֔יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔רֻ֕ײֻ֔יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔רֽ֕יֽ֔זַ֩רֶ֔ + יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔יֽ֔וַ֝וַ֝יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔יֽ֔זַ֩רֶ֔רֽ֕יֽ֔זַ֩רֶ֔ + זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕יֽ֔יֽ֔וַ֝וַ֝יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕ײֻ֔רֽ֕יֽ֔יֽ֔וַ֝וַ֝זַ֟װֻ֔רֻ֕זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕ײֻ֔רֽ֕יֽ֔זַ֩רֶ֔יֽ֔זַ֩רֶ֔זַ֟װֻ֔רֻ֕ײֻ֔רֽ֕vיֽ֔זַ֩רֶ֔ + SNAPSHOT + + +WIP + +## Maven4 Use an xml namespace per plugin + +TODO diff --git a/src/site/wigiti/rfc/rfc-nostr.md b/src/site/wigiti/rfc/rfc-nostr.md new file mode 100644 index 0000000..c573f6f --- /dev/null +++ b/src/site/wigiti/rfc/rfc-nostr.md @@ -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) diff --git a/src/site/wigiti/rfc/rfc-one-owner.md b/src/site/wigiti/rfc/rfc-one-owner.md new file mode 100644 index 0000000..c3d0e98 --- /dev/null +++ b/src/site/wigiti/rfc/rfc-one-owner.md @@ -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. +