@aral that's a fine distinction. As a developer, you're in a better position than I am to know. But you'll need to convince me. Because it seems to me that outsourcing processing work to the user's PC - via JS black boxes - is exactly how #SurveillanceCapitalism achieves massive scale, while claiming that #ThereIsNoAlternative to centralized server infrastructure. A myth they've propagated so effectively that even many developers have started believing it:
Not to consider the fact that browsers' development is by far more centralized than server side computation!
We can count the browsers' owner on the fingers or one hand!
The "Peer Web" shouldn't rely on such #spyware. It should teach people to install better tools.
People can learn. 😉
@strypey See the “inverting the web” section: https://ar.al/2019/02/13/on-the-general-architecture-of-the-peer-web/
@buoyantair @aral @strypey What some still call the "open web" is still there, it's just that those farm houses have been covered up by skyscrapers. And from my perspective those skyscrapers look awefully shaky.
I actually get very interested in the question of how to discover and search for those independant websites. There's a heap of great stuff if you can find it.
> effectively open source, even if it's not licensed as such.
Please don't misuse the term #OpenSource this way. It has a widely accepted definition (https://opensource.org/osd) , and unlicensed or proprietary JS does not fit that definition. If there is no existing term to describe code that is visible but not freely reusable, feel free to coin one :)
@danjones fair points. But privacy is only a subset of a much larger concern, which is about *control*. Putting aside the argument we could have over the "black box" part of my post, the fact remains that:
> outsourcing processing work to the user's PC - via JS - is exactly how #SurveillanceCapitalism achieves massive scale, while claiming that #ThereIsNoAlternative to centralized server infrastructure.
@danjones There are many possible strategies for redecentralizing, and resolving the *many* problems with JS, some of which are described here:
@strypey @danjones @alcinnz Maybe the FSF should worry more about its logo appearing next to Google’s as they sponsor the same events than some ridiculous and ill-informed stance against a programming language that spreads FUD about potential alternatives. Remember that an AGPLv3 licensed app specifically built for drones to send hellfire missiles to little children would get the FSF seal of approval. Free Software is just a component of ethical tech but doesn’t care about ethics of use cases.
@aral I share your concerns about open source events being sponsored by Google, as do FSF, but they can't control this. As for approving of child-killing drone software, that's FUD worthy of Microsoft. FSF have often spoken out about the use of freely-licensed code to do much less anti-social things than that:
> ridiculous and ill-informed stance against a programming language
I note that they're far from alone in seeing JS as a problem. Plenty of experienced engineers have serious problems with it too. A quick selection off the top of my head:
@aral I'm aware of the holy wars that constantly rage for and against programming languages. But AFAIK JS is the only one that results in code being downloaded and run on the users computer on-the-fly. As onPon's article points out, that makes proprietary JS code effectively impossible to replace at the user end with free code. These are not trivial issues, and implying that they are suggests a failure to understand the scope of the problem.
@strypey @danjones @alcinnz Right and what happens exactly when you have automatic updates on and a native app gets updated? Now what happens when you’ve allowed say Apple to use bitcode? Instead of vilifying JS when some of us are trying to build systems using it, let’s understand that the real issue is business logic on the server, proprietary/closed source code, and lack of reproducible builds. Spreading FUD about in-browser JS could jeopardise what I’m working on with https://ar.al/2019/02/13/on-the-general-architecture-of-the-peer-web/
> the real issue is business logic on the server, proprietary/closed source code, and lack of reproducible builds.
Sure, these are all problems, and I get that JS isn't the only vector for them. But the way it's deployed makes it particularly vulnerable.You've left out the major architectural weaknesses of JS (eg the security audit nightmare created by dependance on hundreds of third-party modules). As for Apple, the FSF criticize their practices harshly elsewhere, as I'm sure you know.
> could jeopardise what I’m working on
This is neither here nor there, but it does suggest you're getting too emotionally close to the issues to be totally objective in your analysis. For the discussion to continue productively, it's probably best to look at it from 50,000 ft, and purely from a user POV, pretending for the sake of argument that you have no skin in the game as a technology creator.
@strypey You bet I’m emotionally invested in it – I’m not sitting in an ivory tower perpetuating some bs notion of neutrality in the matter while enjoying my tenure. I’m building what I’m building because I care about the issues not the other way around :) (And I’d further argue that objectivity is impossible for any being with self interests – even base ones like a need for food or shelter. The best we can be is transparent about our biases and subjectivity.)
@aral make no mistake, I believe you really do care about protecting users from surveillance capitalism, as I do, which is why I regularly signal boost your stuff. All I'm saying is that folks who really like their hammers have a tendency to start seeing every problem as a nail. It's important not to let a sunk cost fallacy prevent you from considering other options that might also work, and corner you into interpreting any suggestion along those lines as a demand to ban hammers ;)
@aral, just like @strypey
I appreciate your work, but I agree that you are scared by something that isn't going to affect your work.
This is not #FUD, but a real attack from the #Russian gov (mostly) to their citizens: https://bugzilla.mozilla.org/show_bug.cgi?id=1487081#c16
@aral I finished reading this article today, after starting it yesterday, and reposting it so anyone following my account on the birdsite gets it, as well as those on the fediverse. It's a good overview. I didn't say JS is the enemy, I argued that it ought to be opt-in, so that:
a) users can protect themselves from the harms it is already known to do
b) web designers are incentivized to use it only when it's really needed, not use it to add trackers etc to what ought to be static pages
@aral if JS was opt-in, people would opt-in when that made sense in their use case, or use a native app when that made sense. Much less bad JS would be written because it can't be slid in under the door and run in someone's browser without their informed consent. It would be good for users, good for native apps, and good for JS.
If you're afraid of lack of JS hurting you, I encourage you to write good <noscript> messages promoting the native apps.
P.S. As you should well know from Better there's plenty of Fear, Uncertainty, and Doubt to be had around what JS is doing.
P.P.S. I have read your blogpost.
@jamey case in point. Even a logged out user with JS turned off ought to be able to see text, images, and some level of layout sanity, using pure HTML/CSS. Maybe file that as a bug on the Pleroma issue tracker? Same with any other fediverse platform that doesn't have a sane fallback for non-JS visitors.
> let's not forget it killed off better alternatives at the behest of Google
To what alternatives are you referring?
Also, Google didn't exist yet.
@danjones @strypey @aral @alcinnz Google's existed since 1996. at that time you could run Tk/Tcl scripts in Netscape navigator,with a plugin. you could run perl scripts too, which was big at the time because perl/CGI was the main way to make a web site dynamic back then. Java applets, which made an effort to be secure, were also starting to appear
Because of that limitation, I wouldn't consider them as serious contenders.
And Java applets were an awful user experience.
And Google certainly didn't have the clout to kill any of those off at the time.
@walruslifestyle @aral @alcinnz
@strypey @danjones @aral @alcinnz agree, and it's also dangerous because all it takes is a monopoly or duopoly among browser makers for the entire industry to consolidate around a technology that benefits their business interests. instead of having a healthy ecosystem of alternatives so that developer's can choose what works best for them
> The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.
@aral @strypey I don't begrudge you for using the expedient tools of today, but I must request stand in the way of developments that NEED to happen to ensure all the software we run is libre. So we can do better than the whack-a-mole efforts like your Better (which I really appreciate, btw, thank you!).
Apple and Microsoft already learnt their lesson about auto-executing CD software, but that vulnerability only moved to The Web.
I disagree that The Web is a good tool for that. It has it's place, but we really need to pushing for libre native apps following open standards.
And browsers should assist with that be pointing people towards the apps they need to use those standards securely. I've implemented that for Odysseus.
@alcinnz @strypey Agree. But we need untrusted relay nodes to guarantee findability and availability to match expectations of the levels possible in centralised systems if we want to build a bridge from here to there. We can shed those training wheels once there are enough nodes. But without them we won’t get adoption.
@aral @strypey I do not see how these untrusted relay nodes (which yes, we do need), but I do not see how that relates to the argument we are having. Why can't we be distributing native apps for each platform?
> We can just turn to P2P networking and destroy the idea of "servers"
I like this idea politically. But after 20 years of waiting, I've yet to see a single piece of network software that can work entirely #P2P, without supernodes of any kind for bootstrapping, relay, ID mapping etc. Can you think of one? #BitTorrent needs both trackers and search sites to be useful. Even #BlockChains need "miners", which are supernodes, not pure P2P.
@buoyantair @aral @alcinnz
Having said that, I agree that supernodes don't have to be as centralized as servers. The #fediverse takes this one step, by connecting standard servers. The next step might be to disaggregate server functions, with some specializing in authentication, or media storage, or search, and so on. But we can't get rid of the concept of servers entirely without giving every device a persistent IP address (#IP6), and creating a decentralized replacement for #DNS.
@VeintePesos @buoyantair @aral @alcinnz
@buoyantair I don't know enough about the network topology of #Scuttlebutt to be sure, but from what I've learnt so far, it seems unlikely to be able to work on a large scale without a much greater use of "pubs" and other such supernodes. I don't see that as a problem (see the second post). To me, it just means that server/client and P2P are two ends of a spectrum, rather than a hard dichotomy, and that successful future network tech will involve hybrids of the two.
@alcinnz @aral @VeintePesos
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!