HN user

notriddle

2,413 karma

https://www.accountkiller.com/

Posts16
Comments907
View on HN

Horses are much more expensive to own than cars. You can't just leave them sitting in a lot for 20 out of 24 hours a day, they only feed themselves if you're living out in the middle of the prairie, and you can't just replace a broken leg.

If horses are more "pro-social" than cars, it's because the only people who could afford them are the very wealthy and people who made their living riding horses like cowboys and taxi drivers. Cars are "worse" than horses because they're too superior, which means the middle class all own personal cars and have stopped financing public transit and pedestrian-friendly city layout that the lower classes would coincidentally benefit from.

More importantly, email has become extremely consolidated. It has most of the disadvantages of being federated, and not very many of the advantages (Google sees most of the emails I send and receive even though I don't use them).

Of course it's related to the format. Many formats, like PNG and Gemtext, are inherently self-contained, while other formats, like HTML and SVG, are not.

Annoyingly, EPUB isn't inherently self-contained [1], but external access is explicitly optional [2], and it does make self-containment easier, because you can reuse resources across multiple pages, whereas HTML requires you to either duplicate the resources across multiple pages, or you have to build your thing as a single massive HTML page.

[1] https://www.w3.org/TR/epub/#sec-resource-locations

[2] https://www.w3.org/TR/epub-rs/#sec-epub-rs-network-access

I've seen a few people on here recommending everything from "just use HTML" (which misses the point) to "just use Gemini" (which misses the point even more).

Why not HTML? Why not Markdown? They aren't self-contained.

* A web page written in either format can leak your IP address to external bad actors because of the way inline images work.

* Loading resources from more than one server is a reliability and security problem, and it performs bad on initial load (it's great for subsequent loads, since external resources can be cached, but initial load time is bad and tech designers should really spend more time thinking about worst-case perf than about average-case).

* Downloading a web page is overly complicated. I should be able to download a page to my computer and never have to worry about the origin server going away, and that's not possible on the HTML5 web. This is one of the main reasons for the enduring popularity of PDF. IPFS, in particular, would benefit from a self-contained document format, because it needs to know the full set of dependencies in order to pin a page as a whole, and ensure that you don't accidentally pin an HTML file without pinning its images and wind up with a broken site.

Sure, you can make HTML pages that are self-contained, but because they aren't always, people don't build workflows around them.

Why not Gemtext/Gemini?

* Nobody but nostalgic nerds cares about simplicity of implementation. I mean, come on, Markdown is even harder to parse than HTML is! Nostalgic nerds might be a worthwhile demographic to appeal to, but I think IPFS wants a wider audience than that.

* Inline images are not optional. Too many great creators with a lot of worthwhile things to say are either creative artists or technical artists. In the BBS era before inline images were practical, it didn't stop people from drawing; they just relied in ANSI and ASCII art, and "let's go back to typewriter art" only appeals to nostalgic nerds.

* And once you have inline images, you have to offer rich text layout features like tables, otherwise people will start posting pictures of text to work around your missing features (which sucks for either accessibility, because blind people can't read them, or it sucks for simplicity, because deploying OCR is even more complicated than just offering decent text layout).

If I had to pick something? https://en.wikipedia.org/wiki/EPUB

* You can download an EPUB, and when the original host goes away, it still works! Pinning an EPUB in something like IPFS can work without requiring the CDN to know anything about the file format, since EPUBs are self-contained.

* Tooling already exists. It's just XHTML in a ZIP file anyway, but there's also EPUB-specific tooling (for example, the Texinfo release announcement a few days ago mentioned that you can export EPUBs from GNU info manuals).

* It supports text and image layouts that writers demand.

* There is one standard.

The ballot I filled out a few weeks ago had several such things on it. They are called "ballot measures," or "referenda," and the overall ideology for them is called "Direct Democracy."

Obviously, they are subject to all the typical "push polling" weaknesses, where people can be coaxed into voting a certain way using manipulative wording.

Taste vs. Skills 4 years ago

I think you might have a point, but it's not applicable to this situation. Software architecture isn't like architecture. It's more like mathematics, or maybe poetry. There's a language to it, and if you don't speak it, you're not going to get it.

Imagine presenting the original version of King Lear to someone who doesn't know English. It's beautify poetry, I won't argue that, and our hypothetical listener might even be able to detect the rhythm of its iambic pentameter buried under the seemingly-gibberish words, but they won't appreciate it on the same level as someone who actually speaks the language. And while they'd be able to get the story if it was translated, it would lose the rhythm unless the translator recreated it, at which point you've got a new work of art.

Similarly, nobody's going to be able to appreciate the Git data model unless they've already got a solid sense of algorithmic thinking, and preferably the background knowledge of filesystems to know what problem it's actually trying to solve. Or the Quicksort algorithm to someone who doesn't even know what a recursion is.

(Some anal-retentive postmodernist would probably argue that there is, in fact, a language to physical architecture, and that if you don't speak it, you won't get it. The problem is that the only way I know of to test that would be to find someone with zero experience with human-made structures, which seems impossible. I see no real purpose in arguing this point, because when it comes to algorithmic beauty, there is definitely a skill floor below which you just won't get it.)

Bringing back XUL extensions won't rescue Firefox, because removing XUL extensions is not what caused Firefox to lose marketshare in the first place.

https://cdn.fosstodon.org/media_attachments/files/108/556/56...

Source for the "XUL Deprecated in August 2015" date: https://blog.mozilla.org/addons/2015/08/21/the-future-of-dev...

Source for the browser stats over time: https://commons.wikimedia.org/wiki/File:BrowserUsageShare.pn...

If you just want to have your language throw up an error whenever it sees an unrecognized element, then you’ll probably be able to simplify it a lot. It’s probably fine, since

* as long as you use a build tool the errors will be seen by the author (who will know how to fix them) and not the reader

* graceful degradation and format extensions are a crapshoot due to Hyrum’s Law [1]

[1] https://news.ycombinator.com/item?id=30726668

If `class` was instead a kind of child, initially limited to a single instance per element, extending to multiple instances in a backward-compatible manner would not require introducing the DSL. It would be natural. Just allow many `class` children.

That's not the operative difference between children and attributes in HTML.

In HTML, if an element is unsupported, its contents are shown, while its attributes are ignored. This means, if a browser saw something like this:

    <p>
        <class>literature</class>
        <class>english</class>
        Billions of years ago, the Universe was created. This made a lot of people very angry, and has been widely considered a bad idea.
    </p>
In browsers that don't support, or even predate classes, you would want them to be ignored. This only works if they're attributes.

No, you're thinking of clickjacking.

The "attack" I'm thinking of is hijacking the back button, but done using iframes instead of history.pushState. It doesn't involve any third-party origins, so x-frame-options doesn't matter, because a domain owner that wants to launch this attack has control of all the HTTP headers.

As much fun as it is seeing everybody reiterate the "SPAs are stupid and we should all go back to native apps" argument for the thousandth time with exactly the same arguments again...

It's all a moot point, because you can reproduce this particular attach using nothing but 2001-era DHTML. Start with a page that has a hidden iframe, a link that targets it, and a timer that polls the contents of the iframe. When the page first loads, use JS to click the link to add a new item to the back stack. If clicking the link with JavaScript doesn't add a back stack item, make the link visible, but also attach an onclick event handler to it so that the link can simultaneously do what you want and also do what the victim wants.

After you've poisoned the back stack, you can detect that the user clicked "back" when the iframe gets reset back to its initial page. Once this is done, use `document.body.innerHTML = whatever` to set up your fake SERP.

The article literally says it's probably not going to happen.

He said that it was unlikely that Covid-19 outbreak would shape our immune system in a similar way — largely because the disease predominantly kills people after their reproductive age, meaning it's unlikely genes that confer protection would be passed on to the next generation.

FOSS is useful, and may be a part of the solution, but it is not the solution in and of itself the way Free Software advocates portray it as.

Most people aren't programmers, people who are programmers don't read the source code of everything they run even if they're allowed to, and even people who try to read the source code for everything they run won't necessarily be able to catch every potential nefarious act. The ingredients list on the back of the box is not the only form of consumer protection in place for food. It shouldn't be the only consumer protection in place for software, either.

That kinda feels like saying Linux is too crazy because new apps get made for Linux frequently.

Apps are okay, but other parts of userland that roll out breaking changes on a regular basis are definitely a problem [1] [2] [3]. Even if they aren't technically part of the kernel, they are usually used with it to provide a complete working system, and they break stuff all the time.

[1] https://lwn.net/Articles/904892/

[2] https://lwn.net/Articles/840430/

[3] https://lwn.net/Articles/777595/

I doubt it, and also hope not. The Republican party has reinvented itself before, and the internal Democratic Party governance structure would probably not do a very good job of reflecting the will of the people without the outside forcing function that the Republicans provide sometimes.

Evolution of HTTP 4 years ago

It mostly only solves problems on the consumer side. Only one of these downsides directly affects publishers.

* If you don't want JS, don't use it.

* If you don't want trackers or ads, don't put them in.

* This is the only publisher-touching downside, and LetsEncrypt is an effective mitigation.

* If you want to make a site Lynx-compatible, test it in Lynx.

* The downsides of this are too diffuse to immediately drive demand. Nobody is directly impacted by it.

Ranked voting isn't vulnerable to bullet voting.

"Vulnerable to bullet voting" is the same thing as "violating the later-no-harm principle," which means that some forms of ranked voting are vulnerable, while others aren't.

- Borda Count is vulnerable to bullet voting, for the same reason as Score (giving points to anyone other than your first choice makes it less likely that your first choice wins, because it increases the score of your second and third choice).

- Condorcet systems are vulnerable to bullet voting, because the ordering of your second and third choices can potentially change who the Condorcet winner is.

- Instant Runoff is "immune" to bullet voting because the ranking of choices beyond the highest non-eliminated choice are ignored. This is also directly responsible for it being vulnerable to the spoiler effect, which makes non-bullet-voting pointless (your top choice must also be the choice most likely to win the 1-1 fight at the end, which means the remainder of your choices are highly unlikely to win, so why bother?).

even with sorting it is possible to be censorship free. You just need to include every matching result eventually

Do you honestly think that the people who complain about their favorite website being censored by Google would be satisfied with showing up on page 200*? I wouldn't.

It's only "not censorship" in the same sense that having your emails sent to the Spam folder isn't censorship. The spam folder, and low-scoring SERP results, are so full of items that every reasonable person acknowledges to be crap that getting banished to that area is pretty much equivalent to having someone blast your roadside protest with strobe lights and a sonic cannon. Surrounding you with so much garbage data that nobody can see or hear you any more is only "not censorship" on the dumbest technicality.

* Ignore, for sake of argument, the fact that page 200 won't even load in our universe. I'm imagining a parallel world where Google pretends to be censorship-free because they only push things far down in the results instead of removing them entirely.

This isn't the revelation you act like it is. Because of course Google hides results. They don't pretend not to, and they even inform webmasters when it happens. The Search Console calls it a "Manual action" when they do so.

More importantly, the people asking for a "censorship-free search engine" are expressing an incoherent desire. The whole point of a search engine is to take the zillions of web pages that have matching keywords, push the crap to the bottom, and leave the gold on top. A system that does this is inherently censorious. We're just quibbling over what the criteria should be.

What our world lacks is a reasonably-quick way to hold Google accountable when they fail to represent the interests of the public who searches with them. The real-world consenquences of their filtering decisions need to filter back to the people making these decisions. Because "just don't make any filtering decisions" isn't going to result in a usable information retrieval system.