• 0 Posts
  • 9 Comments
Joined 1 year ago
cake
Cake day: June 30th, 2023

help-circle
  • Complete nothingburger of a study, which itself is locked behind a $25 paywall to access it. And the author of the article obviously didn’t cause there’s 0 mention in the article itself about the methodology used to determine the 20% revenue lost (nice round number might I add). The only thing that even alludes to the methodology used in the abstract is

    When Denuvo is cracked very early on, piracy leads to an estimated 20 percent fall in total revenue on average relative to an uncracked counterfactual

    Which really doesn’t tell us much, how are these counterfactuals selected in the first place? What is the cirteria? How are you determining that the differences between revenue of a game that was cracked and that went uncracked are due to one game being cracked? How can anyone even confidently claim that they’ve normalazied the data set enoguh that these differences in revenue are mainly caused by a game being cracked, especially with how rare early denuvo cracks have been in the past few years. Statistically this sounds dubious at best, especially when we have fully open studies (like the one funded by the EU a few years back) that have found no statistical proof that piracy has any impact on revenue ( with the exception of box office revenue of big new movies being leaked and pirated while still in theaters). Surely they wouldn’t have missed a 20% meadian difference in revenue.

    Lastly you have major tech news outlets all reporting on a study less than a month after it was made available online. For context the journal containing this study will only be published in jan of 2025.


  • Because you would be using std::shared_ptr<> rather than a raw pointer, which will automatically deallocate the memory when a shared point leaves the scope in the last place that it’s used in. Along with std::atmoic<shared_ptr> implements static functions that can let you acquire locks and behave like having a mutex.

    Now this isn’t enforced at the compiler level, mostly due to backwards compatibility reasons, but if you’re writing modern c++ properly you wouldn’t run into memory safety issues. If you consider that stretching the definition then I guess I am.

    Granted rust does a much better job of enforcing these things as it’s unburdened by decades of history and backwards compatibility.







  • At the (SQL) database level, if you are using null in any sane way, it means “this value exists but is unknown”.

    Null at the SQL means that the value isn’t there, idk where you’re getting that from. SQL doesn’t have anything like JS’s undefined, there’s no other way to represent a missing value in sql other than null (you could technically decide on certain values for certain types, like an empty string, but that’s not something SQL defines).