3,465 Matching Annotations
  1. Oct 2021
  2. Sep 2021
    1. Fix the URLs with this snippet (you can enter this directly into the JS console):

      [ ...document.querySelectorAll("link") ].forEach((x) => {
        const good = "http://jonudell.net";
        const bad = "http://weblog.infoworld.com";
        if (x.textContent.startsWith(bad)) {
          if (x.parentNode.nodeName == "item") {
            let enclosure = x.parentNode.querySelector("enclosure");
            let url = enclosure.getAttribute("url");
            let fixed = fix(url);
            enclosure.setAttribute("url", fixed);
            let details = x.parentNode.querySelector("description");
            details.textContent = details.textContent.replace(url, fixed);
      
            let slugEnd = x.parentNode.querySelector("title").textContent.
              toLowerCase().
              replace(/[ /]/g, "-").
              replace(/[^a-z0-9-]/g, "");
            x.textContent = fix(x.textContent).
              replace(/\.html$/, "-" + slugEnd + ".html");
          } else {
            x.textContent = fix(x.textContent);
          }
      
          function fix(url) {
            return url.replace(bad, good);
          }
        }
      })
      

      In Firefox you can copy the result to your clipboard by following these steps:

      1. From the page context menu, Select All
      2. From the selection context menu, View Selection Source
      3. In the source viewer, deselect the partial selection
      4. Use Select All again to select the entire output
      5. Copy the new selection

      You should be able to dump this into a text file, copy it to a web server somewhere, and point your podcast app at its URL.

      (The snippet itself should also work in Chrome but figuring out how to get the result into a file is an exercise left up to the reader.)

    1. ViperCard, a modern re-implementation of HyperCard for the web

      Vipercard as I understand it is more like a loose clone of HyperCard than a re-implementation. I think this page confuses Vipercard with HyperCard in multiple places.

      The Internet Archive has done a lot of good work preserving HyperCard stacks, so you can experience them in your browser.

    1. this.ontokencontent = this.ontokencontent.call(this, result)

      The implicitness that this "protocol" pushes into the implementing methods (seemingly odd return values) is undesirable. Make it explicit. The implementing methods should be able to do something like Validator.changeExpectation(this, this.onresource) (which in turn changes the target's ontokencontent handler).

    Tags

    Annotators

    1. Around 1:45:50

      "Code is open source, but who cares? Nobody can understand it."


      Yeah, and it's useful. Like: people do stuff with it, but as soon as you run into problems with a library, it's just like... looking into the code is a mess... There's just a huge number of problems with it.

    1. My latest thinking, in fact, is just I've come full circle back to thinking, "You know what? I'm just going to go with naïve side effects." What I realized is that, basically, the programming experience just is much more natural, it seems. It just works much simpler in simple cases if you just let there be naïve side effects, right? There's a state and you're mutating it, because that's what you're doing
    1. Well-meaning engineers have adopted best practices and methodologies which benefit large corporations and applied them to small teams

      Compare this to algorithmic complexity; if a fancy algorithm is great for really large input sizes but comes at a cost of being somewhat worse for small input sizes, then it is a good idea to use the fancy algorithm when you might be dealing with large inputs. But if you are not dealing with large inputs, then using the fancy algorithm is a positively bad idea. It's a bad idea in the sense that it's not just a matter of YAGNI, but the fact that its characteristics for small inputs means that it actually makes the situation worse.

    1. Some legacy JavaScript component libraries such as React have struggled to fully embrace and encorporate web components. That’s on them, not a knock against the web components spec.

      Same thing with NodeJS modules vs TC-39's native modules.

      It bears repeating: NodeJS is a "vendor" for an incompatible fork of JS.

    1. playing house

      This is how I feel about most people's personal websites. Few people have homepages these days, but even for people who do, even fewer of those homes have anyone really living there. All their interesting stuff is going on on Twitter, GitHub, comments on message boards...

      Really weird when this manifests as a bunch of people having really strong opinions about static site tech stacks and justifications for frontend tech that in practice they never use, because the content from any one of their profiles on the mainstream social networks outstrips their "home" page 100x to 1.

    1. Here's what RG Arns, Crawford's advisor had to say about this topic wrt to Crawford's work in Arns's later article "The other transistor: early history of the metal-oxide-semiconductor field-effect transistor" for Engineering Science & Education Journal in 1998:

      In 1991 Bret Crawford, in his physics MS thesis reported an experimental reconstruction of Lilienfeld's US Patent No. 1,900,018 using technology that was available in 1928, when the patent application was filed, and known to Lilienfeld. The basic idea of the device is shown in Fig. 3. Following the prescriptions in the patent, he produced working devices, but they were unstable and the results were difficult to reproduce. That was not surprising since the semiconductor, cuprous sulphide, is no match for modern single-crystal silicon. Crawford also found signs that Lilienfeld had actually built the devices he patented—and not merely thought about them—in the form of close agreement between phenomena described in the patent and his own observations.

      Arns goes on to say:

      In 1995 Joel Ross replicated the prescriptions of the same Lilienfeld patent. He was able to produce devices that remained stable for months. Although these devices showed the field effect, the transconductance was poor, apparently due to surface states. The power gains, however, were significant.

      https://doi.org/10.1049/ESEJ%3A19980509

    1. If there were more low hanging fruit to do more on this land they would be doing these opportunities by now

      This commenter is committing what I call "the timeless fallacy". It's not that far off from people who don't "get" evolution by natural selection—which is odd, because most of the people who commit the timeless fallacy in venues like this almost certainly do understand it.

    1. End Users now are different from the End Users in 1980 or even in 1990

      This comment in 2010 highlights a difference between the world at large at that time (what I've called "the Shirky era") versus the behavior of users today

    1. An interesting, dated, broken, promising archive of “Tools for Thought”

      Why "broken"? (And why "dated" or "promising"? Tools for Thought is the name of a book. This is an online copy.)

    1. Hypothesis should highlight this as one of its killer features: private "replies". More permanent than a draft.

      (Unfortunately, a bug in the Hypothesis server means that this page is a 404 even for me—the person who wrote the reply, trying to view it while logged in...)

    Tags

    Annotators

  3. Aug 2021
    1. Let’s change the header so that it imports these two classes

      Opportunity here to make things more "literate"; the transformation (with the representation of the result shown immediately following the place where this annotation is anchored) should be describable in language.

    1. making it impossiblewhile editing a method to glance at a related onewithout using a separate browser.

      See also: the decision by every Web browser vendor's devtools team to make their viewers modal (in the 21st century!) and then add injury to injury making the monolithic implementation a "UI singleton"—so you don't even have the choice to open another instance!

    1. Github Pages' Jekyll

      Jekyll is an independent project from GitHub. GitHub by default supports Jekyll static sites because Jekyll was a popular static site generator in the Ruby community, and the GitHub people were Rubyists.

    1. Agreed, but you can do even better by first making it available from your org's website. If there's any kind of fanbase at all, you can alert them to this development, so they can take make copies for safekeeping, taking a page from the LOCKSS strategy.

      The Archive is great and doing a great service, but one should be wary of any assumption that they are an unlimited resource that will be around forever merely due to their best efforts, not to mention concentrating so much dependency on a single point of failure.

    Tags

    Annotators

    1. pp 17–18:

      M. Van Swinden is the only person who has placed on record the observation of the dark lines, or threads, which connect the borders of the sun and moon, at the formation and dissolution of the annulus. His account is inserted in the first volume of the Memoirs of this Society (page 146), accompanied with drawings, which coincide almost exactly with those given by Mr. Baily.

      It's tricky enough† to get a hold of Memoirs volume 1, but even after finding a copy, the only thing I can see in the vicinity of page 146 is Van Swinden's account, not the drawings.

      † I couldn't find a full copy last time I tried in 2017, even though I spent a few hours reasoning at the time that surely I'd be able to turn something up...

    1. �Yes, but how will we ever keep track of such a large project?�

      Unsure of the text encoding here. I'm forcing them to be interpreted as Unicode here, hence the appearance of the replacement character. My browser's default is to treat this document as "Central European (Windows)", but in that case, they appear as majuscule and miniscule S-cedilla characters (e.g. Şhypertextş).

      By a reasonable guess, these are supposed to be open and close quotes. I've seen these appear in other TBL-authored documents from the same era.

  4. citeseerx.ist.psu.edu citeseerx.ist.psu.edu
    1. (1) that such a new copy or adaptation is created as an essential step in the utilization of the computer program in conjunction with a machine and that it is used in no other manner, or

      Not only is this terribly drafted because it doesn't address the root issue of what was wrong with the MAI v. Peak decision, but it inadvertently ends up legalizing much of what would have otherwise been infringement for a class of traditional software piracy.

      It doesn't specify for whom or limit the number of copies or relevant machines. So whereas before, you might be required to buy N copies of Microsoft Foobar, you are now permitted, legally, to purchase one copy, and then make another copy "as an essential step in the utilization of the computer program in conjunction with a machine", and then another, and then another...

      In other words, if you needed 200 licenses before, for every CPU in your business, you can now get by spending 0.5% of your previous costs.

    1. There's a lot of cruft here. Consider that while a project might have a prominently named file like "README" that is meant to be the first thing a wanderer encounters, the true first encounter is the file listing in the project source tree:

      • build/
      • config/
      • src/
      • .babelrc
      • .dockerignore
      • .editorconfig
      • .gitignore
      • .stylelintrc
      • .travis.yml
      • Dockerfile
      • Gruntfile.js
      • LICENSE
      • Procfile
      • README.md
      • aldine.sublime-project
      • aldine.sublime-workspace
      • circle.yml
      • package.json
      • tsconfig.json
      • tslint.json
      • yarn.lock

      Imagine a commit (or a pull request) with the summary "Remove cruft". Why might it be rejected? Let's get more specific.

      There's a Dockerfile here. There's also a package.json. We can ask of each of these, "Why is this here?" The answer is, "Because someone found them useful." Consider, then, that here's a strong case for a contrib/ directory† for this project and where these things should be kept, ill-conceived tooling conventions notwithstanding.

      † This link points to a particular blog post that explains the purpose of a contrib/ directory, but this is not an endorsement of Mr DeVault's other positions or demeanor. Ignore any stridence, arrogance, or other obnoxiousness that you might encounter in your pursuit to pull at any threads from that corner of the Web.

    1. Librarians have a well-founded confidence in their ability to provide their readers with access to material published on paper, even if it is centuries old. Preservation is a by-product of the need to scatter copies around to provide access. Librarians have an equally well-founded skepticism about their ability to do the same for material published in electronic form. Preservation is totally at the whim of the publisher. A subscription to a paper journal provides the library with an archival copy of the content. Subscribing to a Web journal rents access to the publisher's copy. The publisher may promise "perpetual access", but there is no business model to support the promise. Recent events have demonstrated that major journals may vanish from the Web at a few months notice.

      Referenced in DSHR blog post responding to Zittrain on Internet Rot

    1. Grötschel, an expert in optimization, observes that a benchmark production planning model solved using linear programming would have taken 82 years to solve in 1988, using the computers and the linear programming algorithms of the day. Fifteen years later – in 2003 – this same model could be solved in roughly 1 minute, an improvement by a factor of roughly 43 million. Of this, a factor of roughly 1,000 was due to increased processor speed, whereas a factor of roughly 43,000 was due to improvements in algo-rithms
    1. Data which is accessible through the web relies on upkeep of paying for domain names and server costs. Data which is contained in a widely shareable, open format, such as PDF, on the same level as the ‘contents’ and which connects using the citation method of specifying the bibliographic details of a source so that it can be located and used from any location (like a traditional printed journal) rather than only from a web addressed repository, makes for a robust, long term solution

      Really, this is an argument for self-containedness and not an argument against HTML and HTTP.

      Granted, the Web doesn't handle compound documents very well (embedded graphics, unless they're SVG—and even then...). See https://blog.jonudell.net/2016/10/15/from-pdf-to-pwp-a-vision-for-compound-web-documents/.

    1. on the topic of interoperability one idea that I'm excited about is thinking about better ways to synchronize across existing cloud applications. I think there's a way in which if you're using one app and I'm using a different app and if we can establish a bridge between them, where let's say I'm editing a doc in google docs and your using Dropbox Paper or your preferred editor[...] that starts to create this more flexible feeling where the data's not locked in any individual app and it more kind of lives between the apps. And so one new project that I'm sort of embarking on now is trying to create tools that mediate that kind of synchronization across tools.

      What if we used... files?

    1. In software development itself, if you unleash a bunch of programmers on a problem and allow them to pursue their whims, you will observe that code tends toward bloat. This is not necessarily widely recognized. More broadly understood is the corollary to this that goes by the name Wirth's law, which states that software gets slower faster than hardware gets faster.

      Outside of computer programming, there is a general awareness that organizations become less efficient with size. For the same reason that this happens, procedural bloat afflicts SOP just like code bloat happens with programmers.

      There's a widespread belief that capitalism seeks out efficiency. With most organizations being capitalist enterprises, so the belief continues, they are an extension of this. You can see this show up in arguments about the gender pay gap. If we could cut costs just by hiring women to do the same job, they say, then we would. The veracity of the claims about the size of the pay gap notwithstanding, the claim that corporations would seize the opportunity to cut costs like this doesn't jibe with reality. Corporations are not observed to be a perfect extension of the law of capitalist efficiency. A corporation as an entity is not a perfectly rational actor operating in its own self interest, following both from the irrationality of the people who make it up and from instances of where they do behave rationally operating in their own individual self interests, counter to the organization's.

      There is hardly ever a Taylor-like figure assigned to the problem of wrangling inefficiency.

    1. It is passed as the second parameter to the 'request' event.

      How do we keep people from falling into the kind of rut that results in documentation like this?

      I think it comes from an imposed milestone to document everything, so people end up phoning it in like this. In Graham Nelson's Narrascope talk (the one that was a followup to his broken promise that Inform 7 would be open sourced), you can see in his screenshots various passages filled with similar kinds of (frankly unhelpful) "prose".

  5. astralcodexten.substack.com astralcodexten.substack.com
    1. The institutions through which Americans build have become biased against action rather than toward it. They’ve become, in political scientist Francis Fukuyama’s term, “vetocracies,” in which too many actors have veto rights over what gets built. That’s true in the federal government. It’s true in state and local governments. It’s even true in the private sector.

      Antidotes:

      • Carefully entrusting veto power to those who know the distinction between thoughtful caution as in the case of Chesterton's fence versus the kneejerk antidisestablishment response—similar to the case of the case of Rhesus ladders
      • teaching the value of yes-anding over no-don'ting.
    1. However, "scientific management" came to national attention in 1910 when crusading attorney Louis Brandeis (then not yet Supreme Court justice) popularized the term.[3] Brandeis had sought a consensus term for the approach with the help of practitioners like Henry L. Gantt and Frank B. Gilbreth.
    1. I have to say that now I regret that the syntax is so clumsy. I would like http://www.example.com/foo/bar/baz to be just written http:com/example/foo/bar/baz

      Agree with the sentiment, disagree with the "remedy". (I realize it's not actually being proposed as such.)

      colon-slash-slash was great in hindsight because there's sufficient entropy that if you want to do URL sniffing, you can get by with writing a really naive implementation that just looks for that sequence—you don't even have to worry about the "http" or "https" parts. In fact, I think it would be great if user agents came to grips with the dominance of HTTP and allowed links of the form starting with "://"—where the scheme name can be omitted entirely, and it is just presumed to be HTTP/HTTPS. (Use the same discovery method that browser address bars already use for working out whether "http" or "https" is the correct to go with.)

    1. This is really just making a strong case for the Web's notion of content negotiation, which receives pitifully little attention. The idea is that there should be some nugget comprising a cruft-free version of the resource's content itself, and it should be possible for you to specify, e.g., "No really, just elide all the JS and other accoutrements of the modern Web from the representation that you send me; basically, just give me the meat of it."

    1. A thought by way of the Nelsonian school of hypertext:

      Tim is quoted several times in this piece, which is to say that there is a larger body of content (say a recording of the interview, whether audio or a full transcript) from which this piece is borrowing snippets. Within the WWW worldview, that full record comprises a resource. Within the Nelsonian worldview of visible connections, at every place in the document where Tim is quoted, there should be an edge which the reader can traverse to reveal the unabridged record.

    1. If believing that people shouldn't live in fear of their tech betraying them is ideological, I'll take it.

      Not exactly an if-by-whisky, but (unrelated to the content of this article) worth serving as the launch pad for a series of examinations about why people feel compelled to couch their messages in this way—usually because the other "side" is using an appeal to emotion or appeal to reflex.

    1. One thing I'd like forward-looking hypertext toolmakers to keep in mind is the ability for the tools to help people answer questions like "What led to legalanthology.ch hosting a copy of this document? Given a URL from one organization, is it possible to look at the graph of internal backlinks (let me focus narrowly on incoming edges originating from the same host)?"

    1. If we find ourselves needing this pattern in more than one places in our codebase, we could abstract it into a helper

      This is where people with a tendency to participate in JS development frequently start to go off the rails. Exercise some restraint and tell that voice in your head that has been influenced by years in the community "no".

      (PS: typeof checks need not and should not be written to use triple equals. Again, this is an example of where the dominant culture of modern JS development is a bad influence—pushing people towards doing things poorly. It's like radio and TV announcers who go out of their way to say "backslash" in URLs—"stop! you're going through extra effort just to get it wrong.")

    Annotators

    1. I joined Caldera in November of 1995, and we certainly used "open source" broadly at that time. We were building software. I can't imagine a world where we did not use the specific phrase "open source software". And we were not alone. The term "Open Source" was used broadly by Linus Torvalds (who at the time was a student...I had dinner with Linus and his then-girlfriend Ute in Germany while he was still a student)

      From Linus Torvalds Remembers the Days Before ‘Open Source’:

      Torvalds counters that “I wouldn’t trust Lyle Ball’s recollection 100% about me… since my girlfriend-at-the-time (now wife) name was Tove, not Ute.”

    1. All 2 versions

      Actually just 1 version here; the two are the same, with one URL available over plain HTTP and the other over HTTPS.

      I have found reference, however, to "udi1.ps" and "udi2.ps". Unclear at this point what the difference is between them.

    1. millions of people that “using it wrong”

      Dubious claim. It doesn't even appear that those using it wrong are a substantial minority — as much as those with a commercial interest in manufacturing alternative facts would like for people to believe there are.

    Tags

    Annotators

    1. Funnily enough, I've been on an intellectual bent in the other direction: that we've poisoned our thinking in terms of systems, for the worse. This shows up when trying to communicate about the Web, for example.

      It's surprisingly difficult to get anyone to conceive of the Web as a medium suited for anything except the "live" behavior exhibited by the systems typically encountered today. (Essentially, thin clients in the form of single-page apps that are useless without a host on the other end for servicing data and computation requests.) The belief/expectation that content providers should be given a pass for producing brittle collections of content that should be considered merely transitory in nature just leads to even more abuse of the medium.

      Even actual programs get put into a ruddy state by this sort of thinking. Often, I don't even care about the program itself, so much as I care about the process it's applying, but maintainers make this effectively inextricable from the implementation details of the program itself (what OS version by which vendor does it target, etc.)

    1. you interpret the past as "the present, but cruder"

      Like people who can't wrap their head around the idea that evolution has nothing to do with any kind of purpose to produce humans. (Even starting from the position that humans are the "end result" is fundamentally flawed.)

  6. Jul 2021
    1. We didn’t watch a few seconds of a TV show and then click a remote and watch a few seconds of another.

      This is overall a good piece, although it does contain some errors, but this claim is probably the weirdest and wrongest.

    1. It also typically goes hand in hand with another concept known as scratching your own itch. Building a product or service or website that you yourself would like to see in the world.

      Lots of punctuation mistakes in these two "sentences"—one being that this isn't really two sentences, since the second is a fragment, but it could be fixed by swapping the period for a colon or em dash.

    1. 1'-"'+,..._:h'v~ ...-·~/...-1..-.f ... ;~ ~ fS f.v(. .;.. bt ~t-tno..;..,· .... ) ~ tv fA. '"""V"o-..1 t,..;-{_ ea.... ~# ;.r ,.; ~ !vl ., ue......~ 1 ~;lk...) g~~t. "\ '""'"~""<

      Actually reads:

      I like the browsing style this should make possible. Intuitively right and potentially user-friendly. But it could be frustrating—how do we know we can get it right? Demo of existing systems? Invaluable tool for services

    1. In the end, nobody came.

      Makes sense. As I've said before, you should not fool yourself—"you have to create a compelling product before you can ever realistically even start thinking about selling people on a general platform".

      The thing that most of these projects' fans think that these projects have going for them is the technology, but that's not really interesting to anyone except enthusiasts who spend all their time talking amongst themselves.

    1. “But how can I automate updates to my site’s look and feel?!”

      Perversely, the author starts off getting this part wrong!

      The correct answer here is to adopt the same mindset used for print, which is to say, "just don't worry about it; the value of doing so is oversold". If a print org changed their layout sometime between 1995 and 2005, did they issue a recall for all extant copies and then run around trying to replace them with ones consistent with the new "visual refresh"? If an error is noticed in print, it's handled by correcting it and issuing another edition.

      As Tschichold says of the form of the book (in The Form of the Book):

      The work of a book designer differs essentially from that of a graphic artist. While the latter is constantly searching for new means of expression, driven at the very least by his desire for a "personal style", a book designer has to be the loyal and tactful servant of the written word. It is his job to create a manner of presentation whose form neither overshadows nor patronizes the content [... whereas] work of the graphic artist must correspond to the needs of the day

      The fact that people publishing to the web regularly do otherwise—and are expected to do otherwise—is a social problem that has nothing to do with the Web standards themselves. In fact, it has been widely lamented for a long time that with the figurative death of HTML frames, you can no longer update something in one place and have it spread to the entire experience using plain ol' HTML without resorting to a templating engine. It's only recently (with Web Components, etc.) that this has begun to change. (You can update the style and achieve consistency on a static site without the use of a static site generator—where every asset can be handcrafted, without a templating engine.) But it shouldn't need to change; the fixity is a strength.

      As Tschichold goes on to say of the "perfect" design of the book, "methods and rules upon which it is impossible to improve have been developed over centuries". Creators publishing on the web would do well to observe, understand, and work similarly.

    1. [Huh? Pass-by-reference ALWAYS requires passing a reference by value. That's how it works. The question is whether the referenced object is a COPY of the caller's object, or an ALIAS for the user's value. Most modern languages pass by reference for non-primitive types.]

      This person is confused, though it's obvious and understandable to those who've been down the road before how it happens. Most mainstream languages that are taught to be "pass by reference" are actually of the "pass by reference value" sort. Lack of exposure to languages that actually implement pass by reference is the culprit. Of course if your experience is limited to C, C++, Java, and others that use the "pass by reference value" approach, then you'll come away thinking that "pass by reference value" is what "pass by reference" means and this is what any and every language "ALWAYS requires" when setting out to implement "pass by reference"—you just don't have the appropriate frame of reference to see how it could be otherwise.

    1. body script, body style {

      This doesn't work well with scripts (and style elements) injected by the Hypothesis bookmarklet or the Wayback Machine's toolbar. On that note, it's pretty poor hygiene on their part to (a) inject this stuff in the body to begin with, and (b) not include at the very least a class attribute clearly defining the origin/role of the injected content. As I described elsewhere:

      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. * Monospace fonts always render at 80% of normal body text for some * reason that I don't understand but is still annoying all the same.

      Dealing with it this way is a mistake. The only reasonable thing to do is to tell the user to adjust their browser's default font settings or deal with it. (This seems to only affect Firefox's default UA stylesheet/preferences, not Chrome.)

      Check out how the most recent iteration of the w2g streamline "client" https://graph.5apps.com/LP/streamline approaches styling.

    1. It comes down to "what is the work?"Take one of Ray Charles' records..Is it just the music itself? Does it include the physical media and its condition?

      This is important. See for example, the recent revelation that even with all the book digitization efforts, archive.org does not necessarily have imagery for a given volume's spine, even if the front cover and back cover were photographed!

  7. greggman.github.io greggman.github.io