HNHacker News
TopNewBestAskShowJobs

66fm472tjy7

174 karma · joined May 30, 2019

submissionscomments
66fm472tjy7··on Geizhals – Tech Product Price Comparison and Tracking
One of their most impressive features is how many product attributes they track and allow you to filter for. E.g. for mainboards you can filter for support for all generations of Ryzen CPU + at least M.2 slots + BIOS flashback (allows you to do BIOS updates without a CPU or RAM) + at least one USB-C + built in IO shield + at least 12 VRM phases + WiFi 6 + in stock: https://geizhals.eu/?cat=mbam4&v=k&hloc=at&hloc=de&hloc=pl&h...
66fm472tjy7··on JSON Schema bundling formalised

  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.

66fm472tjy7··on JSON Schema bundling formalised
There are things you cannot accept. What do you do if an order has a negative quantity, if you get a string instead of a number, if a value does not fit in your DB column, etc ?

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)

[0] https://openapi.tools/#sdk

66fm472tjy7··on The Reason for Windows 11
I expect this will end with a web API for remote attestation. Several standards for remote attestation are in the works[1].

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...

66fm472tjy7··on A Misleading CDC Number
Austria[0] and Germany[1, edit: this seems to only be true for Bavaria and Berlin, see comments below] have mandated the use of FFP2 masks since the end of January. Their neighboring countries didn't[2].

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...

66fm472tjy7··on Alienware Doesn’t Want You to Buy an AMD Ryzen PC
> The motherboard is also their custom chipset

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...

[1] https://youtu.be/23vjWtUpItk?t=482

66fm472tjy7··on How Microsoft crushed Slack
The main reason we switched to Teams (besides the bundling) is that Slack calls are limited to 15 participants.
66fm472tjy7··on Cover Your Tracks
I tried out Brave a few years ago and soon noticed it did not completely clear history on close when configured to do so. While the history was not shown in the UI, you could see it was retained because URLs visited in previous sessions were shown in :visited style (links were purple instead of blue with default CSS. Note that this can also be queried via JS and thus allows sites to extract your browsing history).

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...

66fm472tjy7··on Against Xkcd 1357
You are putting words in the author's mouth. What you are describing is a kind of "right to an audience", where in the article is there a demand for this?

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.

66fm472tjy7··on A Clean Start for the Web
I think the document web markup language would have to be more like server-side HTML templating languages[1] with the added ability to talk to REST endpoints than markdown. That means declarative support for

* 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.

66fm472tjy7··on The Rise and Rise of JSON (2017)
One reason in favor of using JSON over XML for web services I don't see mentioned often is that many XML schema based deserializers will by default fail if they get an unexpected element whereas JSON deserializers will ignore it, making it easier to remain backwards-compatible. Example: If you have the following defined in your .xsd

  <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.
66fm472tjy7··on Waterfox Browser
Looking at their SCM, they updated to the newest upstream less than two days ago [1]. However, the change appears trivial, so it might be feasible to track upstream if building from source as long as their customization scripts 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.

[1] http://git.savannah.gnu.org/cgit/gnuzilla.git/log/

66fm472tjy7··on Waterfox Browser
The most recent version of IceCat at this time is 60.3.0, published on 2018-11-09 [1], 18 days after upstream [2]. Upstream is currently at 60.7.0, published on 2019-05-20 [3]. This puts IceCat more than half a year behind upstream. Waterfox published their version merging upstream 60.7.0 security fixes before upstream [4].

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...

← PreviousPage 2 of 2