• 0 Posts
  • 144 Comments
Joined 3 years ago
cake
Cake day: July 5th, 2023

help-circle
  • In both cases the trading value of the currency has almost nothing to do with who originated it, and almost everything to do with how the general public feels about it.

    Just like crypto, most “government” currencies are worth what they’re worth only because everyone agrees that they are. That’s called “fiat” currency. And that’s why fiat currency exchange markets exist. The US Dollar hasn’t been “convertible” (redeemable for a fixed amount of precious metal) since 1971, and many other world currencies were already backed in some way by the US Dollar at that time.

    The real difference is in the supply.

    Government fiat currency is difficult to counterfeit, although the government (or reserve bank) can always make more whenever they want. We trust them not to print more money, increasing the money supply and devaluing the currency. However, this is exactly what has happened sometimes in the past, and no doubt will happen again in the future.

    Crypto currency is virtually impossible to counterfeit, and IIRC there’s a finite (but not precisely known) amount of it that can be made, no matter who you are.

    Personally, I still use physical fiat currency and no crypto. I’d like to use crypto, but regulation in my country makes it very difficult to use without registering your details with a central authority. And although everyone’s pushing e-money options which are similarly tracked, thankfully I still have the option of using anonymous cash.

    I don’t do anything bad or illegal. I just believe that government and big business don’t deserve to know everything I do in my life simply because they want to.





  • I presume that the code was tested for various cases where there was at least one previous password on record, but everyone forgot about new users with no previous passwords. However I’m having trouble imagining what the code could actually be doing.

    I can only imagine a dynamically typed language, and a “checkedPasswords” variable being declared but uninitialized, then a loop incrementing that variable for each non-similar password pulled from the records, and finally a check to see if checkedPasswords equals the number of stored previous passwords.

    The execution environment could type and initialize the variable by default after the first increment, but in the case of the user having no previous passwords on record that wouldn’t happen, and the final equivalency check would be comparing an integer to some internal “NaN” state, thus failing.




  • I know it’s a really picky take, but I resent the implication that I should want to keep my personal files mixed in at the same level of the file hierarchy as all my applications’ random settings, cached data, and temporary garbage. Documents, Music, Videos, Projects, .config, .cache, SelfishAppName, OtherSelfishAppName…

    It bothered me when Microsoft started doing it in Win95, and it still bothers me in Linux. Especially when software acts surprised (or occasionally indignant) that I don’t keep all my files in those directories. I have lost small bits of my own work over the years by forgetting to back up things that recalcitrant software refused to store anywhere else.

    But I am amused that this is the same name that I use at the top of my own storage hierarchy for self-made things.



  • Initialization in C++ is so simple that somebody wrote a nearly 300-page book on the subject

    There’s a book about 101 ways to cut potatoes. Perhaps that could be a real mike-drop bit of evidence that we shouldn’t be cooking potatoes.

    Here’s a 249-page book “just” about atomics and locks in Rust. Does a book this large about only one aspect of Rust prove that it’s a terrible language? No, because as with the C++ book, if we look at the summary of contents we can see that it actually covers a great deal more, simply with a focus on those topics.

    Luckily we don’t have to be compete masters of every aspect of a language in order to use it.

    Honestly, I think that modern C++ is a very piecemeal language with no clear direction, and it has many issues because of that. But the title and page count of a single book is not a convincing argument of anything.


  • I’m all for humourous roasts of things, but does anyone really find this funny? Was the author possibly being serious? I don’t know. What I do know is that I stopped watching after the first four examples because they were all deliberately incorrect or misleading, but also didn’t seem funny to me.

    1. Crazy initialization
      That sure is a lot of ways to initialize a variable! Even though some of these variables are quite different and would be initialized differently from each other in many other languages, even only counting the initializations that are functionally equivalent, there are a bunch of abuses of syntax that I’ve never seen used in the wild.

    At this point I had hope that this was meant to be amusing.

    1. Printing to the console
      C++ has had a version of C’s printf function from the very beginning. That weird stream syntax has some hardcore fans but many people ignore it. I did my CS degree close to 30 years ago, and the only time I used stream syntax was for one lab class exercise in which we had to show that we understood how to use stream syntax.

    They still could be going for a comedy roast, I guess.

    1. Getting a random number
      Much like the printf statement for number 2 above, C++ had its own version of C’s rand function from the start. I’ve never even heard of the stuff that’s being shown in this part of the video.

    OK that was virtually the same fake point as the previous one, and still no punchlines in sight.

    1. Having to type “static_cast” every time you recast a variable
      Nope, you don’t. You’re free to ask the compiler to automagically recast your variables to another type without giving any further detail just like you can in C. In fact, they’re often called “C-style casts”. There are even implicit casts, where you literally don’t add anything, and just cross your fingers that the compiler does what you think it should do. It’s like a little bit of the thrill of dynamic typing brought into C++! By using the static_cast keyword, you can tell the compiler that you understand that there’s a potential issue with this recast, but that you expect that the standard way of handling it will be fine. There are other keywords for more unusual situations; it’s not just a random bit of busywork added for no reason.





  • Years ago I used to have Lakka on a bootable USB drive to turn an old, low-powered laptop into a dedicated emulation machine.

    The specs are hard to read, but I believe the main processor is an AMD A6-1450 APU, designed for tablets and released some time in or after 2013. Not a powerful chip by modern standards, but IMO still useable depending on your expectations. It’s definitely capable of emulating SNES without breaking a sweat. Even PS1 shouldn’t be a problem at native resolution. N64, Saturn, and Dreamcast are probably where you’ll start seeing slowdown in some games, and anything more, like PS2 or GCN, is unlikely to be playable.


  • I have no expertise in this field and this is what I got just from reading the article without doing any further research.

    It seems that a consortium of giant tech companies got together to make a royalty-free video codec called AV1. This included getting legal agreements from a bunch of relevant patent holders that they wouldn’t pursue legal action against anyone implementing AV1.

    However, due to the U.S. patent office’s current policy of issuing patents left and right and letting applicants sort out whether or not their patents are actually unique in court later, lawyers representing Dolby and a couple of other companies that hold some separate video-related patents have smelled money in the water and are trying to sort out whether or not their patents are unique in court.




  • I sympathize with the point of the article, but if someone’s seriously citing Flash, which had widespread success for a run of about 15 years before being overtaken by later developments (driven in part by a billionaire with an axe to grind), as a short-lived “dead end” that was best avoided, then how long do they think is a sensible amount of time to wait to see if something’s worth spending time and effort? Nothing remains on top forever.