It was a fluke because the US was unscathed by a war that destroyed much of the industrial and productive capacity in the rest of the world, at the same time vast strides in technology were being made. The US worker had a worldwide monopoly on labor and innovation for 30 years.
This is not accurate. Safari had webRequestBlocking functionality from 2010 to 2019 and indeed a version of uBlock Origin for Safari. What is true is that Safari was the first browser to ditch webRequestBlocking, replaced by its Apple-specific static rule content blocker API.
Otherwise, though, Safari still supports MV2. Everyone seems to think webRequestBlocking is the only relevant change in MV3, but it's not. Equally important IMO is arbitrary JavaScript injection into web pages, which MV2 allows but MV3 does not.
MV3 is so locked down that you can't even use String.replace() with a constructed JavaScript function. It's really a nightmare.
Google's excuse is that all JavaScript needs to be statically declared in the extension so that the Chrome Web Store can review it. But then the Chrome Web Store allows a bunch of malware to be published anyway!
After dragging their feet for literally years, Google finally implemented a specific userscripts API. However, the implementation was initially just statically declared rules like DeclarativeNetRequest, which sucked, and it also required that the user enable developer mode.
In Chrome 135, which is very recent—the public is currently on Chrome 138—Google added an execute() method to run an individual script. However, the API is not available from the extension content script, so if it needs to be triggered from the content script, you have to make an async call to the background script (or more accurately, the background service worker, which is a whole other nightmare of MV3). Moreover, the API accepts only a string for JS code or a filename; you still can't use a Function() constructor for example.
In Chrome 138, the current version, Google switched from developer mode to a dedicated userscripts permission toggle in the extension details, which is disabled by default. I think Google is still working on but has not finished a permissions request API. Remember this is almost SEVEN YEARS after Google first announced Manifest V3. The entire time, Google has been stalling, foot dragging, practically getting dragged kicking and screaming into doing the least possible work here.
Iv been following https://github.com/Tampermonkey/tampermonkey/issues/644 since 2020. I remember a moment in 2021 where Google came out with this ridiculous notion of User code stored on User computer and executed by User Agent being "remote" because it wasnt under Google control, but somewhere around 2022 things started clearing up and Jan Biniok managed to get a working mv3 version a year ago in May.
Surprisingly this async serialize/deserialize nature of the API (https://github.com/Tampermonkey/tampermonkey/blob/cdfc253c07... ?) somehow still manages to inject and execute scripts fast enough to make them act like content scripts at document_start. The only problem is no arbitration between extensions, cant force Tampermonkey inject before uBO (tons of adblock filters disable functions required for Tampermonkey and effectively kill Tampermonkey in the process).
At least 50% of time on every software team I've ever been on was spent on maintenance and fixing bugs.
You can expense such time as opex, but it has to be justified, and that's often difficult to do. Did you fix a bug by refactoring some code to avoid the problem? Is that capex or opex? Can you convince the IRS of such?
The old (and now new) rules eliminated this accounting game and uncertainty.
Sure. I get that having to facilitate accounting takes away from programming, and that nothing is cut in dry with the IRS. I'm not even a fan of the general idea of mandatory depreciation schedules, seeing depreciation as more of an artifact that fell out from double entry book keeping's proliferation of different types of accounts. My only point was that this is just the same regime that everything else has to deal with.
For example if you pay someone to fix a leaky roof and they replace a section of a given size, can you call it a repair/maintenance expense or should you be depreciating it as an improvement to the building? Can you convince the IRS of such? The only reason this has more straightforward answers is that accountants have been answering this question longer.
> If you algorithmically denoise an image and then subtract the result from the original to get only the grain, you can easily see “ghost” patterns in the grain that reflect the original image. This represents lost image data that cannot be recovered by adding synthetic grain.
The synthesized grain is dependent on the brightness. If you were to just replace the frames with the synthesized grain described in the OP post instead of adding it, you would see something very similar.
> They got 17 year sentences and Biden let them out nearly immediately.
This is grossly incorrect. Conahan was incarcerated in 2011, and sent to home confinement in 2020 (panedemic), and the remainder of his sentence was commuted in 2024. He served 13 years of a 17.5 year sentence.
Ciavarella was not pardoned and is scheduled to be released in 2034.
> Length of 6.2 m times 5 tonnes per cubic meter gives a sectional density of 31 tonnes per square meter, which is about 15 meters of dirt. So Newton's impact depth approximation would predict a penetration depth one fourth of the reported 60-meter depth.
This seems to assume that the weapon would penetrate until it displaced an equal amount of dirt by mass, which seems like nonsense. Why would that be the case?
They had pinpoint accurate information about a lot of senior leaders, that seems a lot harder to know than a stationary facility's location and layout.
Tracking a person actually seems pretty easy to do. Hack their phone, launch ze missiles. Obviously not trivial, but it is pretty easy to imagine a chain of events involving a little social engineering and a little spycraft involving the major tech companies. The Iranians thought they were mid-negotiations and assassinating their leadership seems counterproductive even in hindsight, I doubt they were using heightened opsec.
Getting the layout of an underground facility, on the other hand, is quite hard to do even on purpose. They'd really want the engineering plans I suppose - which should be quite secure even on a bad day. I wouldn't assume it was secure but it'd be harder than finding senior leadership who often go out in public or to their kids school plays in a regular year.
When you design software for N customers, where N is very small, and you expect to hold each customers' hand individually, the software is basically guaranteed to be hot garbage that doesn't generalize or actually work except in exactly the use cases you supported (there are exceptions to this, but it requires having exceptional software engineers and leaders that care about doing things correctly and not just closing the next ticket, and in my experience, they are extremely rare).
If you design software for N00000 customers, it can't be shit, because you can't hold the hands of that many people, it's just not possible. By intending to design software for a wide variety of users, it forces you to make your software not suck, or you'll drown in support requests that you cannot possibly handle.
Honestly, if they "don't have the resources to satisfy N00000 customers", they better get them. That will teach them in the hard way to work differently.
reply