3,004 Matching Annotations
  1. Nov 2021
    1. an issue tracker

      Please, no. This is a big reason why the relevant problems here exist in the first place.

    2. Gamified indicators tell a simple story

      It's almost like the way that GitHub is typically used is an example of how things shouldn't be done!

    3. Why is reporting a bug so hard that it justifies so many words?

      Because with the rise of GitHub, the behavior of most other bug reporters makes for a plethora of bad role models and a dearth of good ones.

    4. in certain job roles, there are expectations about another person's emotions and tone. In America, baristas are usually expected to be bright and cheerful.

      Yeah, and that could certainly use fixing. I'm getting a dreadful sense of foreshadowing here that making contact with this observation has led the author to an entirely different conclusion—e.g., that this is an argument by analogy where what follows is going to be a bunch of suggestions that ultimately make other things worse.

    1. Having a giant, flat namespace also seems wrong - Wikipedia seems especially strange in this regard, having Thingy_(Star_Wars) where Thingy is both a real thing and also present in some specific context; I frequently think it should be Star_Wars/Thingy

      Strong disagree. The tendency to the latter is awful. developer.mozilla.org committed this sin in the early days and then never shook it, despite many opportunities to do so and the many problems it caused.

      Guessable URLs for stuff like reference works especially are an amazing affordance on the user end but also a much more economical use of resources on the implementor's end, because it eliminates both the fixed upfront creation cost as well as the recurring cost associated with waffling or bikeshedding about the hierarchy.

      Probably one of the best things that any single person or organization can do is to identify stuff that looks like it's productive work but isn't, and then eliminate both it and the conditions that allowed it to occur, made it seem like a good idea, etc.

    1. Memex began and remained as an ambiguous an not too original concept

      I think memex is valued as a touchstone rather than an invention, and that's how it should be treated.

    Annotators

    1. Suddenly we’d come full circle. The fastest way to launch programs was to type their name into a box, only a box that looked a bit more stylish than the terminal of old.
    1. "Oh, Joe is taking feature X? He never ships anything reasonable. Looks like we can't depend on it because that's never going to work. Let's do Y instead of Z since that won't require X to actually work". The roadmap creation and review process maintains the polite fiction that people are interchangeable, but everyone knows this isn't true and teams that are effective and want to ship on time can't play along when the rubber hits the road even if they play along with the managers, directors, and VPs, who create roadmaps as if people can be generically abstracted over.

      The movie "Moneyball" is a good example of how this can go wrong. People like Philip Seymour Hoffman's character create self-fulfilling prophecies of failure.

    2. Let's go further than this: details matter. It's weird how many people don't get this, despite the fact that we have an aphorism ("the devil is in the details") baked into our language.

    1. Download the file (eg, PDF) that you want to add to your local computer, and calculate the SHA-1 hash of the file using a tool like sha1sum on the command line. If you aren't familiar with command line tools, you can upload to a free online service.

      Instead of mentioning sha1sum(1) or linking to some seedy third-party service, dding a button right here to do calculate the SHA-1 for a given file would be trivial...

    1. input type="email" placeholder="user@domain.tdl..."

      Should be "tld", not "tdl". (But really should be something RFC 2606-compliant like "you@mailhost.example".)

    Tags

    Annotators

    1. This is a port of Michael Schierl's OberonXref from Java. Instead of requiring a JVM, you can run it directly in the browser.

    1. And what happens to that bytecode? First thing that happens is they build a tree out of it, because the bytecode verifier has to go in and make sure you're not doing anything [illegal].

      Lars Bak makes this point in a Channel 9 interview. I think it was this one (can't tell; dead link): http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Erik-Meijer-and-Lars-Bak-Inside-V8-A-Javascript-Virtual-Machine

      One of his interlocutors can't wrap his head around it. He makes a "but C# and Java are compiled languages"-type of argument comes off like Limmy's confused protest that "steel is heavier than feathers...".

    2. Instead, [Peter was saying] they do it all probablistically.

      The rise of non-algorithmic "algorithms".

    1. A question of ontology: Does battling the build system and the various tools mentioned count as "debugging"?

    1. Where the Action Is and Was in Information Science

      Wrong. Licklider is not an author on this. No one is except for Cawkell. Cawkell mentions the others in his letter.

    2. Missing:

      • "An On-Line Information Network" (1965) [from the Project Intrex report]
    1. Y. Bar-Hillel, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorR. Carnap, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorE. C. Cherry, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorE. Garfield, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorD. W. King, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorF. W. Lancaster, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorJ. C. R. Licklider, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorD. M. Mackay, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorJ. W. Perry, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorD. J. De S. Price, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorG. Salton, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorC. Shannon, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorM. Taube, Director of Research Institute for Scientific Information 132 High Street Uxbridge, Middlesex England UB8 1DDSearch for more papers by this authorB. C. Vickery,

      These are all wrong. Cawkwell is the only author for this. The other names come from a list of others appearing in Cawkwell's letter (a list of the most cited authors, excluding self citations).

    2. Teh

      Should be "The".

    1. Modern JS development is rampant with this, with the profligate misuse of triple equals (===) almost everywhere where double equals would be appropriate as one example.

    1. As John Dickerson recently put it on Slate, describing his attempt to annotate books on an iPad: “It’s like eating candy through a wrapper.”

      The metaphor itself is pretty interesting considering that the premise already involves using an iPad. I remember when in the first few years after (capacitive) touchscreen devices became available to the mainstream, someone quipped that tablets are convenient and all until they're not—that trying to get real work done, especially when it requires typing, is like being forced to "think through a straw".

    1. CONTINUED ON P. 103

      wat. We're starting on page 104! This is running backwards.

    Annotators

    1. "It was impossible to explain to people what the Web would be like then, and now when you talk to millennials they can't understand what the problem was."

      The state of the world is worse than what is implied here. The implication, as I understand it, is that it's so difficult to conceive of a world that works any differently from the way Tim considers that it works today—that someone could live in a world without the Web and not know what's missing, and just as easy to exist in a world with the Web and not see it as anything other than obvious—because why would it ever have worked any differently, right? But I know empirically (and painfully) that people (whether millennial types of people or not) exist in a world where we do have this stuff and don't even understand what we have. I've had firsthand dealings with knowledge workers who still have the "I don't get it; so what?" reaction, to an exasperating degree. We are way, way short of Engelbart's vision.

    1. Librari Networks: Should TheyDear With Containersor Contents of Knowledge

      "Library Networks: Should They Deal With Containers or Contents of Knowledge?"

      Searching around, it doesn't seem like the outside world (e.g. Google Scholar, bibliographers) are aware that this piece Licklider wrote even exists, despite it being digitized and sitting here in the open.

      This piece presages the Internet Archive and, given the juxtaposition of its lofty goals with the piece's own obscurity, there's a perverse irony here.

      Licklider writes in section 2:

      It is high time that librarians reach out into computer networks to create order and functionality out of what is now chaos. (The author would- estimate that 90 per cent of the computerized information in EDUCOM universities "trickles down" to back-up or dead storage tapes within two years and that less than one per cent ever "perks up" again.)

      "Perking up" is more than what I'm talking about here—again, I can't find evidence that this piece is even catalogued anywhere.

    1. Is that failure or is that a bad zip file? The APPNOTE.TXT does not say. I think it should be explicit here and I think it's one of those unstated assumptions.

      Pretty sure it's because the ZIP files were expected to be written to multiple disks (floppies), and as alluded to earlier, if you wanted to delete a file, you could just insert the last disk containing the directory and "delete" it, therefore not requiring you to insert the disk(s) containing the actual file record to null it out (or overwrite with some other file record, potentially requiring 3 disk swaps). Thus, the ZIP format constitutes something like a filesystem implemented in userspace. 30 years ago, this was "obvious" and that's why you were expected to know this. There was no assumption that tradition and path dependencies would lead to ZIP still being widespread for cross-platform data interchange among machines capable of fast writes to local disks that have terabytes (although sometimes "merely" gigabytes) available.

    1. Lots of weird reactions to this post.

      In How to Stop Endless Discussion https://candost.blog/how-to-stop-endless-discussions/, the author explains the NABC model—"The model starts with defining the Need, followed by Approach, Benefits, and lastly, Competitors. Separating the Need from the Approach is very smart."

      Commenting in support, Simon Willison writes:

      We implemented a RFC-style process at a previous employer. [...] One thing that was particularly valuable was ensuring every proposal came with a "alternatives" section (called "competitors" in the NABC model). We also made sure that every proposal included "do nothing" as one of the alternatives

      https://news.ycombinator.com/item?id=25623388

      I scarcely think that the majority of people who are behaving as if React and/or the NPM-heavy workflow are things that simply must be dealt with have ever done on honest NABC and evaluated the foregone conclusions biased towards their preferred workflow against the do-nothing alternative of just not bringing all the heavyweight NodeJS-centric tooling into the picture.

    1. Until last week, I found this completely mystifying – I had no idea what import was doing and I didn’t understand how to use libraries in that way.

      The build tools are irrelevant (or rather, a red herring).

      JS has import statements. The build tools are (or at least should be) approximating what you get without the build tools interposing themselves into the development process, but doing it in a way that reinforces The Iron Law of Bureaucracy.

    1. The difference between tryingto imagine it working and having it do so is roughly like the difference between abearskin rug and a bear.

      See also: Knuth on Dijkstra in "Coders at Work".

    2. "You have tosubmit out of technical necessity"
    3. The computer, its accessories, and terminology, can givethe semblance of validity to all sorts of procedures or statistics
    4. This is the cybercrud problem: advice and creation of systems, supposedlybased on technical requirements, whose categories and rigidities are unnecessary.In the worst cases they are not only unnecessary but wrong.

      Still a problem.

    5. After the conference dinner, Theodor Nelson of The Nelson Organization, Inc.,described a vision of what the computer's use in instruction might become, if onlywe could see beyond the "trivial horizons" of most computer peop:.e

      Still a problem.

    1. Missing:

      • "We Are In Danger Of Building A Tower Of Babel" (1953)
    2. Missing:

      • Science Is Not Enough (1967)
    1. Once we learn how to create abstractions, it is tempting to get high on that ability, and pull abstractions out of thin air whenever we see repetitive code.

      DRY (Don't Repeat Yourself) < TRY (Try Repeating Yourself)

    2. I was aghast. The old code was a mess, and mine was clean!
    1. Engelbart has said he did not actually thinkabout Bush’s article before he started writing in1959 about the augmentation system.
    2. it is important to noteEngelbart’s further statement that, after read-ing theLifearticle in the Philippines, thearticle’s impact gradually receded in Engelbart’smemory
    3. ; http://www.e-papyrus.com/hypertext_review/chapter1.html

      This is a porn site today...

    4. As a matter of fact,Bush had written a preliminary version of anarticle describing the system as early as 1939;moreover, he had a sketch of it as early as1933.

    Tags

    Annotators

    1. missing: BURKE, COLIN B. 1994. Information and Secrecy: Vannevar Bush, Ultra, and the Other Memex. Metuchen, NJ: Scarecrow Press; 1994. 466p. ISBN: 0-8108-2783-2.

    1. "Over the past few years I've come to appreciate that freedom of [mental] movement is the key," he said, highlighting the nature of liquidity in putting thoughts to the page. "When you look about the freedom of your own hands moving, you have such incredible freedom of movement."'
    1. It was the introduction of the “like” button

      I think the early 2000s transition to actor-based indexing from topic-based indexing should be examined in depth. I think stronger identitarianism is at the root of polarization, and actor-based indexing laid the foundation for it. Likes were the fuel.

    2. FIRE

      Foundation for Individual Rights in Education http://www.thefire.org/

    1. A lot less nice, that example, isn't it?

      No idea what point Troy thinks he's making here, but he certainly sounds very satisfied with it.

    1. Stuff that’s already in standard Markdown works the way it should.

      Except, notably, for GitHub Flavored Markdown's terrible handling of ASCII CR and LF.

    2. GitHub’s implementation for code blocks, for example, looks like something a group of programmers would want to have; it looks more like code than text.
    1. Readability, however, is emphasized above all else. A Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions.

      Most Markdown that gets published to GitHub is clearly written by people who have no problem grinding their muddy shoes all over this design principle.

      (Vanilla Markdown's syntax for inline links doesn't do a particularly good job upholding this principle itself.)

    1. the meta information is at the same level in the document as the content itself so that even if the document is printed and scanned back (with OCR), reader software will still be able to use it
    2. my word processor Author could already see extra metainformation on the macOS Clipboard when text copied from the Apple Safari web browser, that the text came from a specific web address etc
    3. the use
    1. When I was about 10 there was nothing I wanted more than to have a program that took minutes to build into an .EXE. In my mind that implied complexity and 'real' programming.
    1. On finding a potential improvement, they are not slowed by the speed bump of switching from a document viewer to a document editor because they work from the editor at the start.

      Alternatively: wikis. (The document editor is trivially reachable from the document viewer.)

    1. connection

      Unused. Caller can/should be passing this in so we can handle the quota check internally.

    Tags

    Annotators

    1. The various designs such a WebDav's propfind which use HTTP methods apart from GET to retreive information suffer from this same problem. the information does not have a URI: it is not on the web.

      Should the content of an HTTP "transcript" itself be addressable?

      Consider https://hypothes.is/a/WCrtIjv9EeyPLa-hEwFgRg.

    2. anything should be able to have a URI
    1. runbook

      See https://en.wikipedia.org/wiki/Runbook:

      In a computer system or network, a runbook is a compilation of routine procedures and operations that the system administrator or operator carries out. System administrators in IT departments and NOCs use runbooks as a reference.

      (Great sounding word, by the way.)

  2. Oct 2021
    1. Unfortunately, if the location to which you wish to move the text is off-screen, you may have to use some other mechanism to find the target location
    1. almost all tutorials assume that you already know the writer’s previous programming language, and new concepts are explained in terms of that language

      I've noticed that Python programmers are particularly bad about this, believing their language to be some sort of lingua franca, unable to see the dark corners, and unaware that the times that the program meanders into those corners can't be understood on first sight.

    2. None of this is necessary. It is merely customary.

      Excellent turn of phrase.

    3. In my method, program segments are embedded in the midst of a word processor document--like raisins in cake--so that the emphasis is on the explanation rather than the code.
    1. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up.

      We have a word for this: "sophomoric".

    1. Any language or system that does not allow full flowing and arbitrarily long comments is seriously behind the times. That we use escape characters to “escape” from code to comment is backwards. Ideally, comment should be the default, with a way to signal the occasional lines of code.

      Sounds like literate programming.

    1. if you don’t write about an idea, you’ll never have a three-dimensional perspective on it

      One of several recurring claims that make me feel like an alien. Do so many people really think this? It sure does end up getting said a lot.

      I'm comfortable using text to communicate, but I hardly ever write in the sense people mean when they speak of it.

    1. At Stanford University - Doug's lab notebooks, correspondence, reports, memos, papers - available at the MouseSite Archive page, Stanford Libraries Special Collections, with links to their Annotated Table of Contents

      broken links

    1. I re-discovered your article about three years ago, and was rather startled to realize how much I had aligned my sights along the vector you had described. I wouldn't be surprised at all if the reading of this article sixteen and a half years ago hadn't had a real influence upon the course of my thoughts and actions.

      This passage and blurbs earlier in the letter goes against the common narrative that Engelbart's happening upon the article was life-altering as a result of being made into an instant convert to Bush's vision.

    1. Doug's got a story and he told the story many times and you know when he tells story many times it becomes realer and realer to you

      I don't know if Howard is trying to give us a nudge and wink here, but if so then the subsequent retelling that Doug was "by his own story very influenced by Vannevar Bush's As We May Think article" is certainly relevant to what Howard is suggesting, given that in Doug's own letter to Bush in 1962, he claims not to have even had Bush's ideas on his radar (no pun intended) until having rediscovered the Atlantic article after already having his own serious pursuits underway at SRI (and getting on at SRI was no small feat according to Howard's telling in Tools For Thought).

      See https://web.stanford.edu/dept/HPS/sloanconference/papers/lenoir/STIMPresentations/Presentation/LetterToVBush.html

    2. the accusation of Taylorism

      Taylorism gets a bum rap. Taylor's fans know it and seem to be at work on Wikipedia. See scientific management.

    3. the institutions for the production of knowledge rewards specialization
    1. DTIC’s public technical reports have migrated to a new cloud environment. The link you used is outdated.

      Fuck off.

    1. Almost any time you interpret the past as "the present, but cruder", you end up missing the point. But in the case of Engelbart, you miss the point in spectacular fashion.

      See also Ted Nelson's opening line from Xanalogical Structures, Needed Now More Than Ever:

      Project Xanadu, the original hypertext project, is often misunderstood as an attempt to create the World Wide Web.

    1. you couldn't get an undergraduate degree in computing back then it was so good you had to learn something
    1. a way to transparently discover related blogs that avoids hidden algorithms

      Bristly pop cultural misuse of the term "algorithm" notwithstanding, a better solution that I haven't come across anyone else mention: make them explicit, not hidden.

      When it look like Dat might've had enough steam to take off (ca. 2017–2018), I wrote a draft straw proposal for how to solve the "discovery problem" with e.g. Fritter—i.e. the problem that because you only "receive" replies and other messages by checking the feeds of the people you're following, you'll be unable to reply engage with strangers who appear (or have a stranger engage with you in their thread) unless something happens like a mutual acquaintance alerting you out of band ("hey, did you see @foo's reply dat://foo.example.net/posts/ukifxdgbh.json?").

      The idea is that there is a special kind of feed operated by some service provider that specializes in doing exactly that. If you find Facebook valuable, for example, then you are free to opt in and subscribe to the Facebook analog that pays attention to all feeds and works to surface interesting content for you. Under this model, unlike the Facebook regime, "leaving" is as simple as unsubscribing to that feed (and going with a different provider if you want).

    1. Around @0:25:52

      Krouse: Another subset of "shit just works" would be—

      Leung:"No installation required"?

      Krouse: Yeah. "No installation required". [...] as I was just telling you, I spent the last, like... I spent 5 hours over the last two days installing... trying to install software to get something to run. And it's just ridiculous to have to spend hours and hours. If you want to get Xcode to run, it takes— first of all you need a Mac, which is crazy, and then second of all it takes, depending on your internet connection, it could take you a whole day just to get up and running. Why isn't it xcode.com/create?

    1. overly-educated

      Is "overly-educated" the right thing here? As a substitute for the traditional euphemism "well-heeled", I think something like "highly credentialed" fits better.

    1. When logged in, the page in question requests (using XHR) the URL https://www.pbs.org/watchlist/page/1/, which returns something with a shape that looks like this:

      {"currentPage": 1, "videos": [{"slug": "american-experience-abolitionists-promo", "title": "The Abolitionists", "title_sortable": "The Abolitionists", "url": "/video/american-experience-abolitionists-promo/", "duration": "30s", "description_short": "Premiering January 8 2013. Turning a fringe movement into a force that changed the nation.", "description_long": "The story of how abolitionist allies William Lloyd Garrison, Frederick Douglass, Harriet Beecher Stowe, John Brown and Angelina Grimke turned a despised fringe movement against chattel slavery into a force that literally changed the nation.", "video_type": "Preview", "encore_date": "2013-01-08T00:00:00-05:00", "expire_date": "", "availability": "available", "images": {"asset-mezzanine-16x9": "https://image.pbs.org/video-assets/pbs/american-experience/42958/images/Mezzanine_222.jpg"}, "flags": {"is_new": false, "is_mvod": false, "has_captions": false, "is_expiring_soon": false, "is_fully_watched": false}, "item_type": "video", "parent_type": "episode", "show": {"slug": "american-experience", "title": "American Experience", "season": 25, "episode": 12, "seasons_count": 31, "display_episode_number": true, "url": "/show/american-experience/"}, "summary": "Preview: S25 Ep12 | 30s", "ancestor_title": "American Experience", "ancestor_slug": "american-experience", "ancestor_type": "show", "image": "https://image.pbs.org/video-assets/pbs/american-experience/42958/images/Mezzanine_222.jpg", "legacy_tp_media_id": 2274405136, "cid": "2af4a426-df86-4e2e-ae84-858b737fbd5c", "air_date": "2013-01-08T00:00:00-05:00", "percent_complete": 0, "description": "Premiering January 8 2013. Turning a fringe movement into a force that changed the nation.", "timecode": ""}, {"slug": "american-experience-rise-and-fall-penn-station-preview", "title": "The Rise and Fall of Penn Station Preview", "title_sortable": "Rise and Fall of Penn Station Preview", "url": "/video/american-experience-rise-and-fall-penn-station-preview/", "duration": "30s", "description_short": "The engineering feat would last, the architectural masterpiece did not. Premiering Feb 18.", "description_long": "The Pennsylvania Railroad built tunnels under New York City's Hudson and East Rivers, connecting New York with New England, and terminating in one of the greatest architectural achievements of its time, Pennsylvania Station. It covered nearly eight acres, extended two city blocks, and housed one of the largest public spaces in the world. But 53 years later, the monumental building was destroyed.", "video_type": "Preview", "encore_date": "2014-02-18T00:00:00-05:00", "expire_date": "", "availability": "available", "images": {"asset-mezzanine-16x9": "https://image.pbs.org/video-assets/pbs/american-experience/113257/images/mezzanine_388.jpeg"}, "flags": {"is_new": false, "is_mvod": false, "has_captions": false, "is_expiring_soon": false, "is_fully_watched": false}, "item_type": "video", "parent_type": "episode", "show": {"slug": "american-experience", "title": "American Experience", "season": 26, "episode": 5, "seasons_count": 31, "display_episode_number": true, "url": "/show/american-experience/"}, "summary": "Preview: S26 Ep5 | 30s", "ancestor_title": "American Experience", "ancestor_slug": "american-experience", "ancestor_type": "show", "image": "https://image.pbs.org/video-assets/pbs/american-experience/113257/images/mezzanine_388.jpeg", "legacy_tp_media_id": 2365164811, "cid": "5052e26b-2fbd-4b63-af12-711a1b8d28ea", "air_date": "2014-02-18T00:00:00-05:00", "percent_complete": 0, "description": "The engineering feat would last, the architectural masterpiece did not. Premiering Feb 18.", "timecode": ""}, {"slug": "american-experience-forgotten-plague-preview", "title": "The Forgotten Plague Preview ", "title_sortable": "The Forgotten Plague Preview ", "url": "/video/american-experience-forgotten-plague-preview/", "duration": "30s", "description_short": "The battle against TB had a lasting impact on America. Premieres February 10 on PBS. ", "description_long": "By the dawn of the 19th century tuberculosis had killed one in seven of all the people who had ever lived. The battle against the deadly bacteria had a profound and lasting impact on the US, shaping medical and scientific pursuits, social habits, economic development, western expansion, and government policy. Premieres February 10 on PBS American Experience.", "video_type": "Preview", "encore_date": "2015-02-10T00:00:00-05:00", "expire_date": "", "availability": "available", "images": {"asset-mezzanine-16x9": "https://image.pbs.org/video-assets/pbs/american-experience/158684/images/mezzanine_700.jpg"}, "flags": {"is_new": false, "is_mvod": false, "has_captions": false, "is_expiring_soon": false, "is_fully_watched": false}, "item_type": "video", "parent_type": "episode", "show": {"slug": "american-experience", "title": "American Experience", "season": 27, "episode": 5, "seasons_count": 31, "display_episode_number": true, "url": "/show/american-experience/"}, "summary": "Preview: S27 Ep5 | 30s", "ancestor_title": "American Experience", "ancestor_slug": "american-experience", "ancestor_type": "show", "image": "https://image.pbs.org/video-assets/pbs/american-experience/158684/images/mezzanine_700.jpg", "legacy_tp_media_id": 2365409222, "cid": "452b093e-8d4e-48be-8a6e-211f837e2160", "air_date": "2015-02-10T00:00:00-05:00", "percent_complete": 0, "description": "The battle against TB had a lasting impact on America. Premieres February 10 on PBS. ", "timecode": ""}, {"slug": "american-experience-blackout-preview", "title": "Blackout Preview", "title_sortable": "Blackout Preview", "url": "/video/american-experience-blackout-preview/", "duration": "30s", "description_short": "What happened when the lights went out in New York in 1977? Premieres 7/14 at 9/8c on PBS.", "description_long": "On the night of July 13, 1977, lightning strikes took out several critical power lines, causing a catastrophic power failure and plunging some 8 million people into darkness in the New York City area. First responders, journalists, shop owners, Con Edison employees, and other New Yorkers tell about what happened when the lights went out. Premieres 7/14 at 9/8c on PBS American Experience.", "video_type": "Preview", "encore_date": "2015-07-14T00:00:00-04:00", "expire_date": "", "availability": "available", "images": {"asset-mezzanine-16x9": "https://image.pbs.org/video-assets/pbs/american-experience/177488/images/mezzanine_254.jpg"}, "flags": {"is_new": false, "is_mvod": false, "has_captions": false, "is_expiring_soon": false, "is_fully_watched": false}, "item_type": "video", "parent_type": "episode", "show": {"slug": "american-experience", "title": "American Experience", "season": 27, "episode": 7, "seasons_count": 31, "display_episode_number": true, "url": "/show/american-experience/"}, "summary": "Preview: S27 Ep7 | 30s", "ancestor_title": "American Experience", "ancestor_slug": "american-experience", "ancestor_type": "show", "image": "https://image.pbs.org/video-assets/pbs/american-experience/177488/images/mezzanine_254.jpg", "legacy_tp_media_id": 2365511610, "cid": "669efdf1-55bf-47b2-96f8-c21b05627a9a", "air_date": "2015-07-14T00:00:00-04:00", "percent_complete": 0, "description": "What happened when the lights went out in New York in 1977? Premieres 7/14 at 9/8c on PBS.", "timecode": ""}, {"slug": "american-experience-edison-preview", "title": "Edison Preview", "title_sortable": "Edison Preview", "url": "/video/american-experience-edison-preview/", "duration": "30s", "description_short": "The story of the Father of Invention. Premieres January 27, 2015 on PBS. ", "description_long": "Premiering January 27, 2015 on PBS American Experience. Thomas Edison achieved glory as the genius behind such revolutionary inventions as sound recording, motion pictures, and electric light. The holder of more patents than any other inventor in history, \"The Wizard of Menlo Park\" was also intensely competitive and was often neglectful in his private life.", "video_type": "Preview", "encore_date": "2015-01-27T00:00:00-05:00", "expire_date": "", "availability": "available", "images": {"asset-mezzanine-16x9": "https://image.pbs.org/video-assets/pbs/american-experience/149280/images/mezzanine_664.jpg"}, "flags": {"is_new": false, "is_mvod": false, "has_captions": false, "is_expiring_soon": false, "is_fully_watched": false}, "item_type": "video", "parent_type": "episode", "show": {"slug": "american-experience", "title": "American Experience", "season": 27, "episode": 3, "seasons_count": 31, "display_episode_number": true, "url": "/show/american-experience/"}, "summary": "Preview: S27 Ep3 | 30s", "ancestor_title": "American Experience", "ancestor_slug": "american-experience", "ancestor_type": "show", "image": "https://image.pbs.org/video-assets/pbs/american-experience/149280/images/mezzanine_664.jpg", "legacy_tp_media_id": 2365357999, "cid": "4a4ebbfd-ca64-4217-97c9-3c7f33b8f075", "air_date": "2015-01-27T00:00:00-05:00", "percent_complete": 0, "description": "The story of the Father of Invention. Premieres January 27, 2015 on PBS. ", "timecode": ""}, {"slug": "american-experience-mine-wars-20jkwo", "title": "American Experience: The Mine Wars", "title_sortable": "American Experience: The Mine Wars", "url": "/video/american-experience-mine-wars-20jkwo/", "duration": "30s", "description_short": "Monday, September 9 at 8PM", "description_long": "This show tells the overlooked story of the miners in the mountains of southern West Virginia \u2013 native mountaineers, African American migrants, and European immigrants \u2013 who came together in a protracted struggle for their rights.", "video_type": "Preview", "encore_date": "2019-09-09T00:00:00-04:00", "expire_date": "", "availability": "available", "images": {"asset-mezzanine-16x9": "https://image.pbs.org/video-assets/DY9f0vQ-asset-mezzanine-16x9-2fR2YaZ.png"}, "flags": {"is_new": false, "is_mvod": false, "has_captions": false, "is_expiring_soon": false, "is_fully_watched": false}, "item_type": "video", "parent_type": "special", "show": {"slug": "wxel-presents", "title": "WXEL Presents", "season": null, "episode": "", "seasons_count": 0, "display_episode_number": true, "url": "/show/wxel-presents/"}, "summary": "Preview: Special | 30s", "ancestor_title": "WXEL Presents", "ancestor_slug": "wxel-presents", "ancestor_type": "show", "image": "https://image.pbs.org/video-assets/DY9f0vQ-asset-mezzanine-16x9-2fR2YaZ.png", "legacy_tp_media_id": 3032488536, "cid": "588ffe4d-b626-43c1-8cae-61555fa89b4a", "air_date": "2019-09-09T00:00:00-04:00", "percent_complete": 0, "description": "Monday, September 9 at 8PM", "timecode": ""}, {"slug": "part-1-our-game-c6e5nn", "title": "Our Game", "title_sortable": "Our Game", "url": "/video/part-1-our-game-c6e5nn/", "duration": "1h 54m 53s", "description_short": "Inning One: Our Game looks at the origins of baseball in the 1840s and up to 1900.", "description_long": "In New York City, in the 1840s, people need a diversion from the \"railroad pace\" at which they work and live. They find it in a game of questionable origins. Inning One, Our Game, looks at the origins of baseball in the 1840s and takes the story up to 1900. Burns refutes the myth that Abner Doubleday invented baseball in Cooperstown and traces its roots instead to the earliest days of the nation.", "video_type": "Episode", "encore_date": "2020-03-13T00:00:00-04:00", "expire_date": "12/31/23", "availability": "available", "images": {"asset-mezzanine-16x9": "https://image.pbs.org/video-assets/ymkNEJ4-asset-mezzanine-16x9-IgUM0b6.jpg"}, "flags": {"is_new": false, "is_mvod": true, "has_captions": true, "is_expiring_soon": false, "is_fully_watched": false}, "item_type": "video", "parent_type": "episode", "show": {"slug": "baseball", "title": "Baseball", "season": 1, "episode": 1, "seasons_count": 1, "display_episode_number": true, "url": "/show/baseball/"}, "summary": "Ep1 | 1h 54m 53s", "franchise": {"title": "Ken Burns", "slug": "ken-burns", "logo": null, "logo_cropped": null, "logo_cropped_white": null, "image": null}, "ancestor_title": "Baseball", "ancestor_slug": "baseball", "ancestor_type": "show", "image": "https://image.pbs.org/video-assets/ymkNEJ4-asset-mezzanine-16x9-IgUM0b6.jpg", "legacy_tp_media_id": 3040088774, "cid": "0f1a8715-8b7f-4f07-9093-6eca06a57cfd", "air_date": "2020-03-13T00:00:00-04:00", "percent_complete": 0, "description": "Inning One: Our Game looks at the origins of baseball in the 1840s and up to 1900.", "timecode": ""}, {"slug": "growing-up-poor-in-america-z4g8k5", "title": "Growing Up Poor in America", "title_sortable": "Growing Up Poor in America", "url": "/video/growing-up-poor-in-america-z4g8k5/", "duration": "54m 22s", "description_short": "The experience of childhood poverty against the backdrop of the pandemic.", "description_long": "The experience of childhood poverty against the backdrop of a pandemic and a national reckoning with racism. Set in Ohio, the film follows children and their families navigating issues of poverty, homelessness, race and new challenges due to COVID-19.", "video_type": "Episode", "encore_date": "2020-09-08T00:00:00-04:00", "expire_date": "", "availability": "available", "images": {"asset-mezzanine-16x9": "https://image.pbs.org/video-assets/CvLWNfw-asset-mezzanine-16x9-nxEEDak.jpg"}, "flags": {"is_new": false, "is_mvod": false, "has_captions": true, "is_expiring_soon": false, "is_fully_watched": false}, "item_type": "video", "parent_type": "episode", "show": {"slug": "frontline", "title": "FRONTLINE", "season": 2020, "episode": 18, "seasons_count": 29, "display_episode_number": true, "url": "/show/frontline/"}, "summary": "S2020 Ep18 | 54m 22s", "ancestor_title": "FRONTLINE", "ancestor_slug": "frontline", "ancestor_type": "show", "image": "https://image.pbs.org/video-assets/CvLWNfw-asset-mezzanine-16x9-nxEEDak.jpg", "legacy_tp_media_id": 3046413469, "cid": "b8a389ef-97bb-412a-879c-0b4efbfd5380", "air_date": "2020-09-08T00:00:00-04:00", "percent_complete": 0, "description": "The experience of childhood poverty against the backdrop of the pandemic.", "timecode": ""}]}

      There are four JS resources referenced:

      The watchlist script is minified, but production has a sourceMappingURL pointing to the watchlist.js.map. I have taken extra steps to make sure that the Wayback Machine has archived this as well. The Firefox devtools are able to use the map to reproduce the original (pre-bundled, unminified) sources for inspection.

    1. First Archive

      Lots of stuff to dig through here. (35 items that the Wayback Machine is describing with class iconochive-First.)

    1. How OpenVSCode Server turns VS Code into a web IDE

      This news item was submitted only 17 days ago, and yet it's already returning a 404. This is a casualty of the "our code host's presentation of our repo is our website".

      As of this writing (i.e. commit fb662ab0), the working link is https://github.com/gitpod-io/openvscode-server/blob/docs/sourcedive.snb.md.

    1. Ungar, around @1:00:00:

      I try to explain to people that the notion of compiler is broken. Of course I learned this from Smalltalk, but what we want to build is experiences--artificial realities that convince you that your source code is real. It's directly executed. There's no lag between editing and running[...] The environment stresses things in your program, not tools--which is another rant I have. It's this whole idea that we want to put you in an artificial reality--I got that from Randy [Smith]--in which it's easy and natural and low-cognitive-burden to get the computer to do what you want it to do, rather than running language translators that turn weird strings of text into bits the machine can run

    1. I no longer know how it works. I don't care to maintain it. It needs big changes to handle something like embedding a Jupyter notebook. And it depends on Python 2.6(!).With hundreds of pages, and its own custom URL layout that I don't want to break, I dread migrating
    1. Make your projects' metatooling accessible

      This should be full black.

    1. it's a rare project which carries those notifications within the source files themselves

      That doesn't affect whether there is merit to the claim.

    1. More directly about this gilded path through the tool. So, in an initial version of Sketch-n-Sketch and the version that we demoed at Strange Loop, there were many requirements about the syntactic structure of the program that if they weren’t satisfied certain interactions in the output would no longer be available. So a simple example is in that initial milestone, the main expression, the main definition of the program essentially had to be a list literal of shapes. And each of those shapes had to be a top level definition in your program and only then could certain interactions be available to users.
    1. I, as your employer, don't actually know what you will or won't do

      This can be totally true and still be a problem completely with you.

    2. I suspect dealing with this type of person would become a huge issue. This work request hints at overblown entitlement.

      Working for $5 an hour with the only condition being that you demonstrate some diligence by making sure that the work you're asking for is actually meaningful? This is "entitlement"? Yeah, okay. Look into a reality check, shithead, and in the meantime, go fuck yourself.

    1. Private links One must be able to add one's own private links to and from public information. One must also be able to annotate links, as well as nodes, privately.
    1. The reason is CORS.

      A user on HN asks

      So does this automatically fetch every feed URL at intervals in the background as long as you have the browser open?

      Two things to observe: people are willing to keep tabs open (esp. for dashboards), and the unreliability of Twitter's website tells us that users will put up with a lot of brokenness.

      Here's a thought: use this polling strategy combined with a dashboard combined with a "FCSCORS" (forced client-side CORS). The idea is to embed an iframe from an origin associated with the site to poll, and then use S4/postMessage to communicate with it.

      From a neutral, bookmarklet-controlled page (e.g. with about:blank's origin), embed an iframe pointing to some page with the same origin. Force the iframe to open a secondary window (tab) with window.open. A window.opener link now exists between the iframe and the secondayr tab. Set the iframe's location to a page from the desired origin, and then do the same with the secondary tab. A second invocation of the bookmarklet in the secondary tab should be able to use window.opener to get unrestricted access the iframe-loaded document. Use this to install a message handler. The secondary tab can now be destroyed, and the embedding document (dashboard) can merrily communicate with desired origin, with no cooperation necessary (e.g. to enable CORS) by the site operator, and no need for the user to install an add-on.

      The question now is, "How common is it for a website operator to set x-frame-options: deny?"

    1. Hover over your username at the top left

      Discoverability/accessibility issue, as noted in https://discuss.write.as/t/how-do-i-back-up-my-site/3296/5

    2. Would be cool if you could export it as a static site

      Dump out a ZIP with a viewer similar to the Google Takeout archive browser.

    1. You have 3 posts that aren't synced to your account yet. Sync them now.

      What does this mean?

    1. I’ll put that on our roadmap.

      Where?

    2. The JSON / “prettified” JSON is mostly meant for people who need their posts in a format that’s more easily read by computers. If you’re just creating a backup, the normal “JSON” format should be fine for this.

      Polish the UI on this to eliminate the confusion. Communicate that the JSON option is for people who know what JSON is. If you don't know what JSON is, it's not the option you want.

    1. Something related to this would actually work as a good springboard for the convolutions involved with the New Post Emails Not Being Sent to Email Subscribers problem.

      Direct manipulation via manual overrides and explicit feedback, etc.

    1. I know I would love the ability to add plausible analytics. They’re a great ethical choice for site analytics.

      Looks like it's AGPL, so it would not be possible to use on write.as...

    1. I’ll open a bug report for this

      Where?

    2. this is an issue with our Markdown parser

      Let's rev it. Let's port Bob Nystrom's Dart package.

    3. pasting in the Markdown directly won’t work – instead, you’ll want to use the “Insert Image” feature

      This is an opportunity to delight the user by intercepting their "bad" behavior and steering them in the right direction.

    1. Good user support case study.

      Topics:

      • premium versus gratis support
      • rude, abusive, or demanding users
      • Discourse as a medium for handling support requests
      • asking bad questions versus how to ask good questions
  3. 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. all his javascript is unminified so you can see how he implemented the dynamic examples in his essays

      As it should be. (This should be the default. The NodeJS/NPM's Webpack addiction needs to be curbed—or confronted with a reality check.)

    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. Need to add Newspeak and Hopscotch (Bracha, Bykov) to the catalog.

    2. Need to add browser devtools (including sepsis and the original DOM Inspector) to the catalog.

    3. Snapsnots

      should be "Snapshots"

    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).

    2. Expected Host header

      No

    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.

    2. Alan Kay Wiki

      "Not a valid community"

    3. Near the end (@1:50:32):

      My website is glench.com, and that's kind of my repository of everything I've ever made

    4. Around 1:48:00

      What if every library that you use had, like, some interactive documentation or interactive representation? [...] The author could maybe add annotations.

    1. Use node.js v10.2.1 (there are specific bugs in each of v8.x, v9.x, v10.0, and v10.3 that each cause telebit to crash)
    1. the ghcjs compiler. But it was a real pain, I Haskell but it's just getting it to install and run and compile, it's just kind of a nightmare
    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. the “Modern” Web

      A casualty of the "consultant effect": under the guise of solving (existing) problems, generating even more complexity to justify the consultant–client relationship.

    2. 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. I don’t even minify page assets

      Good. Don't. The number of people who think this is a virtue is frightening. The rationale is usually not well-reasoned and whatever values they pretend to hold can almost always be shown to be hollow.

    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. when I'm doing interesting work, the boilerplate is a rounding error and I don't mind using a boring language like Java

      See also Lawrence Kesteloot's Java for Everything.

    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...)

    1. use similar words but lead to very different priorities and actions

      From Barack Obama's Dreams From My Father:

      With our eyes closed, we muttered the same words, but in our hearts we each prayed to our own masters

    1. while (Tokenizer.isLetter(glider.tip))

      Both module names and procedures are allowed to have non-leading digits.

    2. bites

      bites? bytes

    3. value

      This should also be a null check, instead of falsy, else we can't read a hex-encoded NUL byte.

    4. readHex

      Tokenizer.readHex expects a 32-bit hex literal padded to 8 chars.

    5. 0xFFFF000

      Should be 0xFFFF0000.

    6. || minted == hinted

      Unnecessary check.

    7. this._scanner = null;

      Unused; this should be _glider.

    8. "Hello"

      From https://hypothes.is/a/Drc_4AtsEey4b3PQ82E8hQ:

      The indentation here is supposed to be a tab, to match the output of ORTool. Same for the strings section.

    9. Texts 0B9E9984

      The indentation here is supposed to be a tab, to match the output of ORTool. Same for the strings section.

    1. Note: This paper is based on a keynote paper delivered by the authors at the WILUconference held in Guelph, Canada, in May 2005 (http://dis.shef.ac.uk/literacy/adelaide-webber-johnston.pdf)

    Tags

    Annotators

    1. people have failed to appreciate the promise of literate programming because the early examples are just not that good
  4. Aug 2021
    1. "index.html" is the default home page file name for websites in general

      Only by convention, for some server software.

    1. (here’s how to declare a nested class)

      Nope.

    2. 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!