notes on improving the computing-web

an assessment of micromanaging global information processing

[See also computer processor theory history notes]

E-MAIL:

  • Separable attachments and messages, that keep connected while in separate folders....

    HTML, General Mark-Up Language: (plus 1978-79 notes revised to work with HTML)

    SIMPLER MARKUP
    <­span="idea"> (element=title/idea)
    <­span ="idea"> (implicit class=idea not idea attribute)
    <­a=http://www.website.dom/user/folder/file.html> (element=purpose e.g. redirect)
    u&uml; ~ &uuml;
    &NBSP; ~ &nbsp; (but NBSP may be sized distinctively e.g. to better fit all-caps)
    
    TABLE, is a rectangle of self-aligning anythings, rows, columns, borders: a 2-D precedence-interpretation blocking text and elements: Example:--
    table
    tr
    tctctc
    tr
    tr
    table
    <­table>...text and sub-table, default 100%-width of the enclosing space...
    <­tr>...row of text, 100%-width of the enclosing table...<­/tr>
    <­tc>...column of text below the tr, 100%-height of the remaining space...
    <­tc>...second column of text, to the right and fitted-with...
    <­tr>...specific row of text within this column...<­/tr>
    <­tc>...third column of text to the right, 100%-height of the space...<­/tc>
    <­tr>...row of text clearing to below the preceding rows and columns...<­/tr>
    ...additional text in the table, below the rows and columns...<­/table>
    

    locate=left, right, center, justify ... is outer alignment, cf table (N.B. "align" is w3-revisional)
    text-align=left, right, center, justify ... is inner alignment, cf "text"
    text-padding=[px] ... inline-flow within container, around objects, blocks, border-margins

    e.g. <­table width=50% locate=right text-align=left> --places a half-width table on the right, its inner text left.

    Note that TR here facilitates without rebuilding the array with multiple TR's and TC-rowspan=2's; (cf HR, BR-with-border).

    Note also here that unclosed-TR,TC-elements pack sequentially, until a specified closing (else TR,TC go inside TC,TR).

    SLANT TABLES:

    Because user-data can be locally-relative comparative statistics over a sliding range where vertical columns would runoff absolute-page-right, slanting columns keeps them on-page.

    e.g. <­table slant> or <­table style=slant;>

    SHINGLED TABLE HEAD: (tilted/slanted)

    For column head title/abbreviations longer than 2em while their column data is only flag-letters/symbols, a 40° tilt-up {skew, rotate, matrix} has a footprint, depending on font family and text, roughly two-letters horizontal width ample-but-not-excessive for such data, but contemporary css-text-line-tilting does-not compact column width. [remedy: TH width:2em DIV position:absolute transform:skew() or :rotate(), and transform-origin]

    (Row-sidebar-TH and TFOOT TH might also be tilted to match-all-table-heads)

    ADDITIONAL TABLE PROPERTIES:

    Footer data element TF distinct from TH, TD, TC,

    'Natural language' automatic colgroup/col allocation/assignment/association by style/attribute/class on (or placement of col/colgroup before/around) associated TH, or TD, TC, TF, (better than html4/5 'sub-assembler-level-efficiency-col-identification-by-col-spanning-raw-numbers...')

    Events on col/colgroup contents, e.g. TR TH/TH COLGROUP onclick=... TH/TH TH/TH /COLGROUP TH/TH /TR

    Table row break BR after /TD etc., or its own TRBR, to restart placement of row subelements at the left-next without a new TR, e.g. same TR nth-child color (more-consistent with individual rowspan; see also DITTO next)

    'Natural language' automatic rowspan-from-above by attribute rowspan=-1 or style=display:DITTO/ASSUME/ELIDE to effect none-by-this-but-add +1 to column-prior rowspan on TD, TH, TF... default no text unless specified by style before/after content: e.g. dittomark... (Alternate method, style=visibility:DEFER/ELIDE possibly more consistent with html structure as column-prior subelement does not specify its own rowspan+=1)

    Alternatively, CSS selector specification-same/not-as-prior id, attribute, value,...
    (And then, new, exor color spec with #variant, alternate style selection, add to nth-child-span,...)

    FULLY INTEGRATED HTML-CLASS

    Object/element tagNames and nameSpaces are essentially classNames in angle-brackets:
    
    <­[nameSpace|tagName|.className][:nameSpace*|:tagName*|.className*]>
    
    * (multiple instances possible)
    
    E.g. <­div:b:i:classic:redlined style=...>...<­/div>
    E.g. <­.classic style=...>...<­/.classic>
    N.B. <­div.classic:redlined style=...>...<­/div> uses div-defined .classic else general
    N.B. <­p:b style=...>...<­/p> is a p-block paragraph with b-style inline adjustments
    N.B. <­b:p style=...>...<­/b> is a b-style inline-block p-paragraph
    
    nameSpace = HTML:, MYML:, nameSpace:stylePrefixTagName:,
    tagName = HTML, BODY, nameSpace:tagName, tagName:className,
    className = :MYSTYLE,
    
    EXAMPLE
    <­HTML> opens HTML nameSpace use
    <­DL> is, in HTML nameSpace
    <­DL:DL> is <­DL> in the DL-DL-styleSheet, in HTML nameSpace
    <­MYML> opens MYML nameSpace use
    <­DL> is, in MYML nameSpace
    <­DL:HTML> is <­DL> in HTML nameSpace, despite MYML
    <­DL.MYSTYLE> is with CLASS=MYSTYLE in MYML nameSpace
    <­/MYML> closes MYML nameSpace use
    <­DL.MYSTYLE> is with CLASS=MYSTYLE in HTML nameSpace
    <­/HTML> closes HTML nameSpace use, and global closure on MYML
    
    N.B. <­DL:HTML> closes with /DL or its-enclosure closure, or by full /DL:HTML
    N.B. <­HTML:DL> closes with /HTML or its-enclosure closure
    

    USER-READY EXTENSIBLE HTML

    A reserved set of HTML 'stem-object/elements', user-programmable, enclosure-closable,
     severally sibling-closable; Specification of parent-child family, child auto-closure assumed;
     e.g. <­XA>, <­XB>, <­XC>,,,<­/XA> (rather than commandeer DL, DT, DD, /DL, or others that work);
     e.g. <­XA>, <­XB>, <­XC>,,,<­/XB> closes XB, XC,,, but not XA (by alphabetic precedence)
    

    DOCUMENT SPECIFICATION, HTML5+

    <­!DOCTYPE html> is extraneous (and should need closure or "/>"),
    The declaration protocol should be <­HTML HTML5> (a class-attribute of HTML);
    

    FRAME (depr.) VS. IFRAME

    HTML5 should ignore the FRAMESET, FRAME, NOFRAMES tags
    HTML5-capable should preferentially-implement IFRAME inside NOFRAMES
    ergo: NOFRAMES innerHTML should (always was-to) be the BODY IFRAME document
    IFRAME innerHTML should render as its first-document, not its 'alt' text...
     (Note that this latter is a whole-concept-shift: onevent works on the innerHTML only.)
    

    PASSING DOCUMENT PARAMETERS

    Forward: '?' should auto-find on the arriving ordinary-document, (scripting will do otherwise)
    Backward: Some way to pass parameters back from a called webpage
    [remedy but recheck reliability: ongoback=history(-2);replace with referringURL?returnmessage]
    

    FULLY INTEGRATED HTML ATTRIBUTES

    e.g. SELECT VALUE="optionLabel" should auto-SELECT that OPTION labeled "optionLabel"
    (There would of-course be precedence rules for this, e.g. SELECT MULTIPLE VALUE="B,C,D")
    (e.g. this could be used in php-downloading-html from a database of selections)
    ((N.B. {label, text, innerText} overlap in meaning in this case contemporarily))
    

    OBJECT EVENTS, INPUTS

    ONLOAD= is bookkeeping that should work on all elements (e.g. prep a table)
    
    Elements should be able to invoke button/key parameters
    e.g. <­INPUT> NumLock the Numberpad
    e.g. pop-up the {Ctrl-F} Find Dialog
    e.g. pop-up the Find Dialog with more capability {e.g. multiword find-after}
    

    SCRIPT, half-better than Script was -supposed- to become:

    Turns out that javascript is not the natural-like language promised in the 1970's,-- not only does it not 'know-what-I-mean' when my program refers to associated values of a process, e.g. textrange.move('character',1) returns the distance moved ~1, but should also be capable of returning the new position of the textrange so-moved ..., but it also lacks the basic logic expression IF...THEN, explicitly, the negative-logic-action of ELSE which it does have, where several chained IF...ELSE's ready to consider the next-ELSE would then be capable of considering-not and doing something more for the already-satisfied-IF's cumulative, before the next ELSE:--

    N.B. THEN, explicit, does not terminate the IF...ELSE chain;
    N.B. THEN, may appear after ELSE; but redoubled THEN...ELSE...THEN is extraneous;
    N.B. 'NELSE', I've also-suggested, is the same as THEN-explicit, (if it's not too 'space-alien'ish).

    E.g.
    IF (A) [then] {X}
    ELSE IF (B) [then] {Y}
    THEN {XY}
    ELSE IF (C) [then] {Z}
    THEN {XYZ}
    ELSE {W}
    
    Ie. IF A then X, or-ELSE IF B then Y, and if-either A or B THEN XY too (XY after either X or Y), or-ELSE IF C then Z, and if-any A, B, C THEN XYZ too, or-ELSE if none A nor B nor C, (X or Y or Z) then W; and thereafter logically general-free again....

    It's important because the ELSE {W} can also belong to an outer-IF...[not]...

    N.B. This might also implement natural-language BUT-FIRST: e.g. IF(A){X} ELSE IF(B){Y} BUT-FIRST{XY-ANTE} THEN{XY-POST}.

    Also, Fix IF(A)IF(B)x;ELSE y; z ... because--

  • the semicolon ";" before ELSE should also ELSE-y on IF(A), as well as on IF(B);
  • the IF(B) needs a way to SKIP the z (without quipping FOR(i in i)...CONTINUE/BREAK...).

    SIMILARLY, The For... and For...In loops need a grand-Then-or-Else post-conclusion distinguished on whether the loop finished-all or broke-out-on-internal-if...Break: The loop exhausting all cases, would invoke the grand-Else: For...Else, is comparable to If...Else...Else.

    ALSO, For...Of should apply to attributes, and For...In to Array values.

    Also, Text and HTML need an intermediate HTxt that acts like Text alphabetically but retains its HTML as unrendered nulls, so that in-line FONT, B, BR, &c, are not lost in the final text-of-HTML-edition .... HTxt becomes a security-concern, and so is a third-type.

    '&NBSP;', the .toUppercase() of '&nbsp;' needs be an nb-space too .... Lots of HTML entities are in that dingy: Uppercase &delta; δ is &DELTA; and should be equivalent to &Delta; Δ at-least (but Math-entities should not re-case).

    IFNOT()/IF¬()-statements that handle object-extancy [temporal property exi-stance, not just program existence] properly ... equiv. to IF( !(extancy-and-logic) )

    At-least-one contemporary version among SCRIPT's, appears to not-implement constructors for methods with arguments: e.g. Construct Array.methods.item = Function(item) {for(i in this) if(this[i]==item) return this[i] ; ELSE return this.push(null)} ... cf Object.attribute and Array.item(attribute.name). (The .methods method is an intrinsic non-enumerated .prototype method).

    (N.B. this[i]==item, means value-equality distinct from identically this[i]===item.)

    Better-choice logic-negation mark (cf ¬), as "!" really means "Do it!" not 'does-not' nor 'you're-not-doing-it...'

    SCRIPT FUNCTIONS: Caller-ID, argument persistence behavior:

    Each time a function is called, it should remember -by itself- the prior value/values of the argument/arguments ... It should-not have to rely on the calling scripts to each setup persistence variables and unique names, complexifying the simplicity:

    Ie.
    i. persistence of argument(s) prior value(s);
    ii. identification, and persistence thereto, of calling-scripts, caller-and-message;
    iii. eliminate old-style name-coding for multiple instances of the same call.
    
    It is the responsibility of certain types of functions to adjust for repeat calls from repeat-caller scripts ...

    E.g. A popup warning any time a peculiar segment of script is invoked, should-not require display-timing variable name-declarations in each calling script, to augment an otherwise-constant display-time ... A popup script should take that responsibility and recognize the caller and its message, and adjust display parameters (e.g. shorten time, shorten text) on repeat occurrences.

    This can be implemented by 'modifiable-constant' argument-- A function called with a constant, remembers the argument instance, the argument adjusted whether constant or variable, e.g. repeated warn("actor name missing",2000) calls be gradually reduced to 500ms.

    Conceptually, It does-not require caller-reprogramming name-generations, to do simple tasks for the program-user: It is a function's responsibility to know who-called and what-was-said ... like Caller-ID on a telephone-- yet contemporary script is too old-fashioned-fortran-esque, to handle that call....

    The old 'MOO' needs recognize functions and program-users as viable objects themselves.

    (N.B. HTML5 upgrades scripting to include HTMLElement, HTMLDivElement, etc. for prototyping methods etc.)

    REGULAR EXPRESSION:

    CONDITIONAL OUTPUTS:

    ?N, !N, e.g. ?0,?1-?9,!0,!1-!9

    Output conditions:
    ?N 'if-$N',
    !N 'if-not-$N',
    ?0 'else',
    !0 'always';
    \?,\! are plaintext;

    Logical compounds:
    ?N1?N2 'if-$N1-and-$N2';
    ?N2?N1 'if-$N2-or-$N1' in implicit natural order;
    ?0 reverts from a condition string to non-conditional, (as does any of the !N),
    N.B. !0 can be used to break an AND-string into OR-strings, (Ordinarily a countdown does this, but in instances of process-speed it may be preferred to choose which condition is tested first, e.g. ?1?2?0?3?4 is ?1-AND-?2-OR-?3-AND-?4.)
    !0 means ELSE, a convenience, e.g. ?1?2first!0second is simpler than ?1?2first!1!2second.

    Enable on /c .

    e.g. "?1?2?2?3!1!3xxx" = (if ($1 and $2) or ($2 and $3) or ((not $1) and not $3) then) xxx

    e.g. html-to-rtf conversion, .replace(/&(:(lt)|(gt));/gic,"?1<?2>")

    SKIPLOCK/SKIPAHEAD: (cf 'Lookbehind')

    /(??exception)/

    Skip-when-found, the local-match-pointer is advanced to the end of the match, i.e. ignore the match-to-its-end without trying inside;
    (Skiplock is a Lookahead-option, equal (?=), not-equal (?!), pass over (??), like a forward-implementation of backward Lookbehind).

    N.B. This is an interim pointer that collapses-right upon match, without match-loss, within its ()-grouping, and locks-out until the front pointer passes ... the ??-doublet is a 'once-or-not-option' operator, but may be group-quantified /(??exception-rule)*/gic.

    e.g. Split an HTML string on free-/;/ not bound in HTML-entities, skipping such entities; The /;/-character being the tail of HTML-entities requires lookbehind... Skiplock /(??&[\w\d#]+;);/ will find a general HTML-entity and lockout-ignore it past its end, then find the free-/;/ ... Note the outer-subsequent /;/-semicolon is a reduplication as happens after lookahead.

    (cf Perl-style fixed-stare-lookbehind would require several |-alternations to check every possible length of HTML-&-entities.)
      Open-development questions:
    1. Should Skiplock update along the way and advance its release-pointer?
    2. Should multiple Skiplocks start from the inside-left-pointer, or inside-right-pointer?
    3. Should Skiplock be resettable, as when enclosed in a lookahead, and until stepped-on?
    Cf for replace(), a simplistic 'positive-lookbehind' might then be implemented by:
    /(??preface(?=(match)))\1/ where match is found by Lookahead, preface is Skiplocked, and match is refound by captured \1.

    COMPLETIONS:

    ^ should match also the current-beginning new after each match, 'dragging the anchor'.
    ^^ would then be the absolute once-only beginning.
    N.B. 'Lookbehind' would need to drag and match $ likewise, with $$ the absolute ending.

    CORRECTIONS:

    \s should match \240 rendered &nbsp; (Major contemporary implementations do not)
    N.B. RegExp/Regex no longer recognizes /[]>]/ (use verbatim-literal /[\]>]/) so that /[^]/ works equally consistently for 'everything'

    STYLES:

    VARIANTS AND UNITS, ARITHMETIC

    #FC3 = #FFCC33 = 0xFFCC33
    100px = 100 (default unit)
    100% = 1.00 (default unit)
    100em + 50em = 150em; 100% + 50% = 150%
    100em + 100en ≈ 145em (mixed arithmetic, default/preference; approx. ratio en ≈ ex)
    (HTML5 has some of this with css calc(a ± b) n.b. necessary spacing)
    

    COLOR NAMES:

    2-6 letters; 7-8-letter only if shortest single word desirable not abbreviable, (cf 'mint, livid, lavend, lavender');
    Recognizable color-names common unto stereotypical:

    COLOR PATTERNS:

    Special colors, modifiers, 2:4:1-pixel-spaced, regular, irregular, swirls:

    CHARACTER 'ENTITY' NAMES:

    Names that can be read and correctly-interpreted in plaintext or preferentially-converted-to their corresponding font-set characters

    PLAINTEXT FONT-VARIATIONS: (direct controls+keys, utf-x, iso-all)

    Special-code character-modifiers to effect sup/sub/over/under/invert/flip(rotate,turn)/sideways/tilt/bold/allcaps/... single/multiple; full set; (uniform, unlike contemporary special-entities, jumbly, gathered from other applications)

    EQUALITY AND IDENTITY

    Barely recognizable in contemporary scripting:
     Two objects may be--
    0. the same object (under differing reference names)
    1. defined the same (by-at-from-since the same original definition)
    2. set to the same definition (passed by others from the original definition)
    3. unchanged duplicates (by-at-from-since the same original definition)
    4. the same specification as the definition (the same parameters and values)
    5. similar specification as the definition (the corresponding parameters are the same)
    6. the same unrendered source value (cf htmlText)
    7. the same rendered value (cf text)
    8. the same renderable/hover value (cf alt/title e.g. img src=[icon] alt=[icon-as-text])
    9. the same transcription value (æ ö ü vs. ae oe ue)
    10. the same trimmed verbal value (e.g. " spacy " vs. "spacy")
    11. the same alphabetic spelling value (e.g. "Capital" vs. "capital")
    12. the same reduced numeric value (e.g. "seven" "7" 7 6+1 17-mod-10 #7 7em)
    (Contemporary technology is a smattering mix-mess of operators and methods, spotty spotting.)
    

    ROVOT/BUTTON/KEY CONTROL:

    Right-button-down grabs the document page for yanking, (whatever became of Scroll Lock).

    (N.B. HTML5 distinguishes touch-down grabbing-vs.-data-entry)

    Touch-screens should also have two-touch range-specification.

    A DITTY

    The Number Pad in-Num-Lock, does Cursor Control upon Shift, but not upon Ctrl:
     This is "utterly laughable" ... a qua-dribble fault:--
    1. The shiftKey is inaccessible by the right-thumb... "ngyuck ngyuck ngyuck"
     (unless pressing the ctrlKey with it... "ngyuck ngyuck ngyuck")
    2. The Cursor Controls are be-low the big, Number Pad Numbers... "har har har"
     (unless the Number Pad is read upside-down like a telephone... "har har har")
    3. The Number "1" always-was typewriter-Letter "l", so, uppercase "1"--
     always-was typewriter-Letter "L"-- not a Cursor Control... "Ha, Ha, Ha"
    4. And, Really-- the whole concept of Cursor "Control", is,-- Ctrl...!
    In total-- a misnomer, misnom[b]er;-- The question remaining,
     should Num-Lock be Ctrl-Lock too...?
    (I also suggest the "End" be on the lower-right key: not lower-left.)
    (And Number Pad "5" might be a finger-wiggle-Rovot-'mouse'-Control.)
    

    INTERNET SECURITY HIERARCHY: "HYRARX"

    ARCHITECTURE LEVELS
     general user (typ. 10M×100 styles),
     uncertified application (typ. 1M×1K users),
     certified application (typ. 10K×100K users),
     certified browser (typ. 10×100M users),
     certified operating kernal (typ. 10×100M users),
     certified computation engine (typ. 10×100M users)
    

    Several premise discoveries under the title,

    Grand-Admiral Petry
    'Majestic Service in a Solar System'
    Nuclear Emergency Management

    © [1978-79 co-ARPAnet rev.], 2005-2017 GrandAdmiralPetry@Lanthus.net