3,420 Matching Annotations
  1. Feb 2021
    1. <:https://via.hypothes.is/https://www.colbyrussell.com/LP/debut/plain.txt.htm>

      If you do view this document on via.hypothes.is as suggested and you notice some extra script cruft here near the "bottom" of the text, know this: this is in fact not part of the original document, but instead part of the support code that gets inserted by Hypothesis. This could be avoided by more care on the part of Hypothesis. Refer to a series of posts by me from last week (motivated by this case):

      If you're writing bookmarklets or Web extensions or you run a tool like the Wayback machine that requires you for some reason to inject "invisible" elements into the page, then don't just assume they aren't going to show up (especially if adding them to the body and not the head).

      Always include a style attribute on the injected element to mark it "display: none". Always—even if it's a "script", "style", "link", "meta", or whatever other element that makes you think you don't "need" to.

      If you really want to be a pal, also set the class on the injected element to an abbreviated address like <style class="example.org/sidebar/2.4/injected-content/">. And then drop a page there explaining the purpose and requirements (read: assumptions) of your injected element. This is virtually guaranteed not to conflict with any other class use (e.g. CSS rules in applied style sheets), and it makes it easier for other add-ons (or the page author or end user) to avoid conflicts with you.

    2. c0 0000 00

      The "size", defined by the expression `varsize + strx + comsize + (pc + nofimps + nofent + nofptrs + 1)4; (varsize includes type descriptors*), where these names match those used by the code generator ORG.Mod. Used by the module loader for determining how big of a hole needs to be used to accommodate the module in main memory when imported by another module or invoked to service a user command.

    3. b765 6d6c

      The module "key"—a signature computed by the Oberon compiler, used for verification by the linker.

      Note that this is stored as a little-endian 32-bit word. This is the native byte order. (Signed integers use two's complement arithmetic.)

    4. <:http://projectoberon.com>

      This syntax has been adapted as a variation of the <URL:[...]> convention from RFC 1738 (refer to its Appendix).

      The form appearing here is a more general derivation, which (a) allows the omission of the "role" atom† ("URL" in RFC 1738), with clients instructed to intepret the omission to mean that "URL" is implied; (b) better accommodates more recent conventions that omits both this atom and the colon separator entirely, encoding instead just the URL, as in <https://example.com>; (c) doesn't lead to interference with the HTML5 parsing algorithm. The latter is crucial for compatibility with mainstream browsers--the leading colon prevents the the bracketed plain text from being interpreted as HTML.

      Maybe if we were to spec this out, we'd allow an alternative for plain links of the form <@https://example.com/> (which permits no "role"--and is therefore only used where "URL" can be inferred)?

      We also want there to be a way to denote links not meant for direct navigation, but rather things that you would otherwise use the Link HTTP header or the link HTML element for. Some candidates:

      † NB: '"role" atom" is terminology of my own choosing. The RFC's authors only ever refer to it as a "prefix".

    1. In this case, is recommended that URLs be preceeded with a prefix consisting of the characters "URL:"

      It's not clear that this ever became common--most use in the wild seems to omit the "prefix" entirely.

      At https://www.colbyrussell.com/LP/debut/plain.txt.htm, I adopt an alternative "concise" form that permits the "URL" atom to be omitted, while still allowing for the colon to be left in, for reasons explained in an annotation left there:

      doesn't lead to interference with the HTML5 parsing algorithm [...] crucial for compatibility with mainstream browsers--the leading colon prevents the the bracketed plain text from being interpreted as HTML

      The idea is that the form with the leading colon should be treated equivalent to the form that omits the prefix entirely, except it may be used in contexts sensitive to parsing constraints as described above.

  2. Jan 2021
    1. WHILE n > 0 DO Files.Read(R, ch); SYSTEM.PUT(p, ch); INC(p); DEC(n) END ; (*strings*)

      This reads string data one character at a time into the module's "address space". So why is the on-disk format for RSC string data aligned by word? The cost of instructions executed by the CPU for a call to Files.Read for a single extra NUL byte is going to be more expensive than padding up to the nearest word boundary here, in the module loader, instead of in laying them down that way by the compiler's ORG module--and that's without even considering the additional cost for disk IO!

  3. flak.tedunangst.com flak.tedunangst.com
    1. What's really inexcusable (hello, from anagram year 2021) is that a "proper server or test environment" should even be required. There's no inherent virtue in this. We should have the appropriate infrastructure by now that allows this to be handled using nothing more than a commodity document viewer—i.e. a web browser. The notion that you should need to drop down and run a daemon—and that this is the "proper" way it should be done—is totally backwards.

    1. It’s easier to stumble into building your resume in React with GraphQL than it is to type some HTML in Notepad.

      Unfortunately true! Daniel Kehoe has been working on an antidote to this at yax.com, which he refers to as the "stackless" way of development.

    1. belief in the Rule of Least Power, a principle that choosing the simplest and least powerful language for a given purpose allows you to do more with the data stored in that language

      Hell, yeah!

  4. Dec 2020
    1. A bad literate program is worse than no literate program at all.

      Definitely. The way I wrote this in my own notes once upon a time was:

      Conjecture:¶ Attempting to write a literate program and landing somewhere off the mark produces a program that is worse than if it were written in the ordinary tradition.

    1. If step one had been "learn the GCC or LLVM toolchains well enough to add segmented stacks", I'm not sure we'd have gotten to step two.

      This is great and a restatement of the laconic truth that the slowest build toolchain is the one that the user is never able to coax to successful completion.

    1. (Reproduced from the inaugural note to the Hypothesis group for triplescripts.org)

      Hello, triplescripts.org!

      Hypothesis is the official channel for feedback and community discussions related to triplescripts.org. And don't forget that we have a wiki at wiki.triplescripts.org (but please avoid using the Mediawiki "Talk" pages—use Hypothesis instead).

      To use Hypothesis for feedback, create an account at https://hypothes.is if you haven't already, get the browser extension or bookmarklet, and join the triplescripts.org group. (The last step is critical; make sure you're sending your annotations to the correct group and not the hypothes.is's default "Public" stream.) This is a semi-private group in the sense that you need to use the invitation link, but it's open to almost everyone willing to abide by the community rules. For more info, refer to the page on community values on the triplescripts.org wiki. Feel free to use the invitation link to invite others.

      As we progress in settling on a set of community processes and practices, they will gradually be documented both on the wiki and the official pages here on triplescripts.org.

      Our thanks to those at 5apps, Hypothesis, and Miraheze for hosting the services essential our project and many others.