174 karma · joined May 30, 2019
I don't think I'm suddenly going to accept that the data presented to my function is valid and fit for purposes just because it goes through someone's JSON schema library. That's just passing the responsibility on to a third party, which feels lazy and dangerous to me.
Do you also distrust that third parties can implement HTTP, generate SQL, enforce the constraints in your DDL, do arithmetic operations, etc. correctly ?Of course there is still a lot of semantic validation you have to do manually (e.g. for an order: does the referenced product exist, is the seller allowed to sell it, at this time, for this price, for this currency, taxes, do the line prices add up to the order price, contingents, etc., etc.).
Expressing these constraints in your interface definition is just another declarative validation layer like your implementation language's type system, database schema/constraints, generic validation libraries[0].
Also, as the server author you are usually also the author of the interface definition containing all these constraints.
[0] E.g. https://beanvalidation.org . The OpenAPI to Java generator will express constraints using BV annotations. BV also integrates with the Hibernate ORM to validate data before you send it to the DB, or you can manually annotate your DTOs/domain model and programmatically trigger the validation at any time, so you only have to know one set of annotations and rely on a single library for validation in any layer of your application.
Having this as part of your interface definition, along with generated representations of the possible data in the language your choice[0] and automatic (so you can't forget it) validation that rejects invalid input with HTTP 400 bad request instead of 500 internal server error when the DB constraint fails (or even worse, you persist invalid data and something breaks later) is definitively useful.
That said, OpenAPI fails at this somewhat as the people writing the spec don't consider the (de)serialization and validation libraries. Thus, OpenAPI keeps adding features/constraints that are not supported by the libraries and are thus cannot be automatically validated or even produce nonsense output on generation (e.g. in Java you might end up with raw Map or even Object fields)
Servers will be able to check that you are running a popular walled-garden operating system that does not allow sideloading before delivering content to you. That way they can know that you are not running an ad blocker, you aren't able store the video stream, etc. Something similar already exists with Widevine certification levels[2].
It won't matter that you have open source hardware and OS that can run any code, you won't be able to access most mainstream content with it. Devices allowing general computation will be useless to most people and thus be relegated to a small enthusiast niche.
I am disappointed by how little skepticism there is on this and how all tech media I've seen simply regurgitate the "TPM == 60% less malware, nothing nefarious going on here" claim.
[1] https://tools.ietf.org/wg/rats/
[2] https://technicaljayendra.com/widevine/#Widevine_Certificati...
If you look at the data, there does not appear to be a decrease in infection numbers relative to their neighbors after the switch to FFP2[3].
[0] https://orf.at/stories/3197782/
[1] https://www.focus.de/finanzen/recht/verschaerfte-massnahmen-...
[2] https://www.npr.org/sections/coronavirus-live-updates/2021/0...
[3] https://ourworldindata.org/explorers/coronavirus-data-explor...
It's a custom motherboard but not a custom chipset. The chipset comes from AMD.
> I'd also be keen to swap the Ryzen 3700 for the newer series chip .. but have no clue whether that is possible on that motherboard
If the chipset is A520, B550 or X570, you have Ryzen 5000 / Zen 3 support, though it probably requires a BIOS update. You might also have Zen 3 support on B450, B550A, X470 [0]. Check the BIOS release notes for your machine.
> I made the mistake of not getting the system watercooled
Most water cooled systems only water cool the CPU, which in your case (a 65W TDP CPU) is absurd. Good air coolers match the performance of twice as expensive AIOs [1] and have far less potential for breakage.
> Also, can I say AMDs numbering makes no sense to me personally.
The first digit is the generation. 1000 series -> Zen 1 architecture, 2000 series -> Zen+, 3000 series -> Zen 2, 5000 series -> zen 3. The higher the number after that, the better the CPU is within the generation (more cores/cache, higher frequency).
[0] https://www.anandtech.com/show/15807/amd-to-support-zen-3-an...
I reported the issue at the time but they said the won't fix it since they were moving away from brave-laptop. They still had issues[1] clearing forms of local storage year later. They are not taking privacy seriously.
They also took crypto from users under the false pretense of taking payment on behalf of content creators[2].
[1] https://github.com/brave/brave-browser/issues/9929
[2] https://en.wikipedia.org/w/index.php?title=Brave_(web_browse...
If the comment were demanding that substack remove the article, or if the commenter was trying to get the author fired from his job for this article, I would consider it against the idea of free speech. Note that this does not equate to a demand for any legislative change or government action.
The view expressed in XKCD 1357 is that there would be no free speech issue since it isn't the government trying to prevent the author from making his article available to those who wish to read it (again, no one is asking for a right to an audience or right to be protected from disagreement) or threatening his livelihood as retaliation for publishing the article.
* declaring JSON (or similar format, but why reinvent the wheel) variables
* rendering the values of these variables
* interacting with the variables with controls (inputs, check boxes, selects, etc)
* conditional rendering based on those variables
* iteration over them
* submitting a form as a JSON object
* saving a JSON response from the server into a variable
* re-rendering the effects of a variable change without a full page reload
I think a major reason for why we ended up here[2] is because browsers did not add these features to HTML and thus devs resorted to AJAX and small JS snippets at first and then kept expanding the use of JS.
[1] as a Java dev who used to do front-end before the ascendance of client side SPA frameworks I'm thinking of JSP, JSF, Thymeleaf, etc. Maybe the client side stuff used nowadays is similar, I'm just not familiar with it.
[2] being forced to run a turing-complete programming language just to display a fully static document, leaving one exposed to security risks (yes, the browser guys are doing a much better job sandboxing than Flash, Java Applets, etc) and tracking.
<complexType name="MyMethodResponse">
<sequence>
<element name="A" type="string" />
<element name="B" type="string" />
</sequence>
</complexType>
and you later add a "C", existing clients will fail, so you will have to create a new method along side the old one to remain compatible.> that bug would have bitten you on ESR as well
Sorry, I didn't word that clearly. ESR was affected, but the signature check could be disabled from about:config. The release channel had that flag listed, but it had no effect.
Using IceCat thus seems to a bad idea security-wise.
I use upstream ESR ever since FF disabled add-ons since they let their cert expire [5] and the release channel version ignores the 'xpinstall.signatures.required' flag.
[1] http://ftp.gnu.org/gnu/gnuzilla/60.3.0/
[2] https://ftp.mozilla.org/pub/firefox/releases/60.3.0esr/
[3] https://ftp.mozilla.org/pub/firefox/releases/60.7.0esr/
[4] https://www.waterfox.net/blog/waterfox-56.2.10-release-downl...
[5] https://arstechnica.com/information-technology/2019/05/firef...