They do this by adding a ton of useless markup and splitting words like "ad" into single-letter spans with random class names and 8-layer deep nests of `<div>` so it's very hard to write selectors against. One has to wonder how that div soup affects accessibility as I find it very unlikely that this content is presented nicely to assistive tools. I hope they get all the ADA suits they deserve for this.
I recently found this out the hard way. Instagram’s web app has a super annoying popup. To click the comments button for a post, your cursor has to pass over the username, which just happens to launch a profile preview with the “follow” button exactly where the comments button was, causing you to unintentionally follow the account.
I tried to block this popup with uBlock Origin to no avail. No matter what element I selected, it was still there. Finally fixed the problem by deleting my Instagram account.
A counter example: I got caught out by the deprecation/sunsetting of anonymous "old.reddit.com" yesterday but it turns out uBlock can filter out the ads, boilerplate, sidebars, join/login buttons etc on the main site. It's actually faster and more usable than the old site now.
Reading the claim that they're requiring login to old.reddit.com "for safety" made me laugh out loud.
When are they going to admit that the redesign sucks and there's a reason everyone keeps loading the old reddit interface? Who has the ego that can't handle the truth, that their UI/UX design is garbage and loathed?
The random phrases turned into links that are never helpful means I can't trust any link in comments now, there's that stupid AI box that never has useful or helpful info, conversations are a nightmare to try and read through.
I will never understand how it is that a site which exists almost entirely for conversations, made a new UI that severely fucks with "read the conversation."
It's using an algorithm to determine whether or not to allow anonymous access. It looks like it's considering origin IP, browser useragent, among other things. I've had login prompts show up once or twice, but when I'm using my regular browser in incognito mode and not connecting through a third-party VPN, it continues to allow logged-out access.
Never delete your account. That account has a bunch of associated signals that scream "real user". Therefore you should sell it on an account marketplace to a spammer, if you really hate the platform.
Last I tried writing custom rules for Facebook was years ago, but they did have proper aria attributes, and uBlock origin does have selectors for text content. These are from 2020:
facebook.com##span:has-text(Suggested for You):xpath(../../../../../../../../../../../../../../../../../..)
facebook.com##div[aria-label="Sponsored"] span[aria-label="Sponsored"]:xpath(../../../../../../../../../../../../../../../../../../../../..)
facebook.com##div[aria-label="Sponsored"]:xpath(../../../../../../../../../../../../../../../../../../../..)
Going from memory, but that's how many elements are in the tree between what I wanted to be hidden and where the matching text/elements actually lived.
But can't they just use an xpath expression to test the computed text content of a node, like `/path/to/ad/div[contains(., 'sponsored')]`? In that expression, there could be any number of nested elements inside the terminal `<div>` and it wouldn't matter. (And you'd probably have to use a regex test to account for tricky white space.)
Worth a white paper to see which costs less energy, using Apple's built in LLM, or downloading and displaying all the FB ads using radio, playback, and screen animation energy.
If the computational requirement is within the realm of another normal day to day task, and if it cannot generally achieved with another cheaper approach, it would be contradictory to say it is staggering.
I would agree if this was an easily solvable problem with classical approaches. Clearly it is not, since even uBlock is giving up.
At any rate, "staggering" is relative. White-labeled web browsers becoming the most common GUI engine would have made an engineer's eyes water 20 years ago.
Even the data-center-grade models are less intensive than people think. We recently installed a heavy-duty AI server (Gaudi2 cluster with 768GB VRAM) to run larger models up to 400B parameters on, and at full load, its power draw is about equivalent to a consumer stove or clothes dryer.
If you're running thousands of those concentrated into a single data center, your aggregate power draw is going to be huge, but a single server is entirely reasonable for a small business, or even a home user, to operate.
The giant ones in data centers are models that broadly encompass a variety of data for general purpose applications. You can certainly train models specifically for processing DOM content, making them smaller and more efficient.
Apple Intelligence? I mean, you're only processing for the time your "AI|browser|agent" is acting as a firewall between you and Meta. Cache locally after processing and filtering. Use alongside the accessibility API. LLMs can, in many cases, reliably solve CAPTCHAs. I find it difficult to imagine they cannot defeat Meta ad blocking countermeasures.
Not really, no. LLMs get more computationally efficient and hardware gets more power efficient with each passing day. We're already at the point where reasonably competent models can be run a laptop GPU off of battery power. NPUs are even more power efficient, (though a bit slower).
It keeps changing all of the time, so it might be easier to have Facebook load up in a headless browser, that takes a screenshot and sends it to an LLM and uses that to convert into a standard JSON document that can be rendered nicely. Or something like that.
In a few years, I don't think we'll be navigating to Facebook.com. We'll be asking our LLM: "what are my friends up to?" And it will provide a nice UI to browse interesting updates, collated from any open source, including Facebook. No ads, no influencers, no dark patterns, just what the user asks. And it won't require APIs. It will just browse the site itself as an agent and pick out the parts the user cares about.
I really think the new internet is going to be a radically different experience soon.
> No ads, no influencers, no dark patterns, just what the user asks.
For a while now, I've seen blogposts from marketers desperate to do to AI what SEO did to search engines.
I hope they fail to enshitify the LLM experience the way they enshitified search, but I wouldn't count on it in the absence of AI messing with production so hard that nobody even wants to market stuff in the first place.
The risk vector shifts from Facebook to the LLM provider. This is why I'm a big fan of the open weights models. They're not immune to attack, but it's much easier to identify censorship, propaganda, and advertising. They're getting really good, really fast.
> I hope they get all the ADA suits they deserve for this.
So what you're saying is: you want Facebook to pay out something like $200M which is such a small amount it won't even realize, $170M will go to lawyers, everybody else gets $1.30.
Or an unauthorised access / exceeds access to a computer system prosecution in at least one jurisdiction somewhere around the world.
If the owner of the system has a 'no ads' policy and a security mechanism to prevent ad servers from accessing their display without their authorisation, it is one thing if a company accidentally circumvents that by changing their page in a way that breaks detection (and unless there are records it was deliberate) they probably get the benefit of doubt from authorities.
But if they are blatantly going to quite great effort to circumvent the adblock security system to exceed their unauthorised access without the consent of and against the wishes of the owner of the client system, surely that's a clear-cut criminal case?
Of course, prosecutions of these types of things in many countries unfortunately tend to go after individuals who target big companies, but almost never the other way around.