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

help-circle

  • I mean… DX 9, 10, and 11 were all released prior to Nadella being CEO/chairman.

    But in software, it’s very commonplace for library versions not to be backwards compatible without recompiling the software. This isn’t the same thing as being able to open a word doc last saved on a floppy disk in 1997 on Word 365 2024 version, this is about loading executable code. Even core libraries in Linux (like OpenSSL and ncurses) respect this same schema, and more strongly than MS.

    Using OpenSSL as an example, RHEL 7 provides an interface to OpenSSL 1.0. But 1.1 is not available in the core OS, you’d have to install it separately. 1.1 was introduced to the core in RHEL 8, with a compatibility library on a separate package to support 1.0 packages that hadn’t been recompiled against 1.1 yet. In RHEL 9, the same was true of OpenSSL 3 - a compatibility library for 1.1, and 1.0 support fully dropped from core. So no matter which version you use, you still have to install the right library package. That library package will then also have to work on your version of libc - which is often reasonably wide, but it has it limits just the same.

    Edit because I forgot a sentence in the last paragraph - like DirectX, VC++, and OpenGL, you have to match the version of ncurses, OpenSSL, etc exactly to the major (and often the minor) version or else the executable won’t load up and will generate a linking error. Even if you did mangle the binary code to link it, you’d still end up with data corruption or crashes because the library versions are too different to operate.



  • DirectX, OpenGL, Visual C++ Redist and many other support libraries in software programs typically require the same major version of the support libraries that they were shipped with.

    For DirectX, that major version is 9, 10, 11, 12. Any major library change has to be recompiled into the game by the original developer. (Or a very VERY dedicated modder with solid low level knowledge)

    Same goes for OpenGL, except I think they draw the line at the second number as well - 2.0, 3.0, 4.0, 4.1, 4.2, 4.3, 4.4.

    For VC++, these versions come in years - typically you’ll see 2008, 2010, 2013, and the last version 2015-2022 is special. Programs written in the 2013 version or lower only require the latest version of that year to run. For the 2015-2022 library, they didn’t change the major version spec so any program requiring 2015+ can (usually) just use the latest version installed.

    The one library that does weird things to this rule is DXVK and Intel’s older DX9-on-12. These are translation shim libraries that allow the application to speak DX9 etc and translate it on the fly to the commands of a much more modern library - Vulkan in the case of DXVK or DX12 in Intel’s case.

    Edited to remove a reference to 9-on-12 that I think I had backwards.







  • As a former League player i felt kind of like that back then - a lot of people were just not nice people. I think some of that comes down to how certain PVP players are motivated insofar as personal agency - they want to be the high carry, they want to be why things won the way they did.

    I saw that too in Overwatch 2 when that first came out with the rebalance to 5v5: suddenly everything was about personal agency and Blizzard decided that the game balance should favor that over strong teamwork (IMHO).

    For me, that’s why I got out of those two games and only play when I have nearly a full team of preexisting friends. I was always more focused on trying to get the team to the finish as a whole (maybe that comes from ending up as a support main).

    Ended up finding my vibe in FF14 PvE, where everyone tends to work together better. That’s not to say there aren’t bad apples and problem children in a game that has minimal anticheat, but on average I feel like I see it a lot less - and fewer people who swear you out for just learning something new, where the general populace will often take time out of their own schedule just to help people along or explain something tough.

    Sportsmanship isn’t dead, it may just not be where you’re looking.


  • Yup. My background is computer science transitioned to IT Infra.

    My sister sent me a screenshot of a Spotify one-liner error, white text on black background, captioned “they wrote a lazy error”. I immediately recognized that the actual problem was the load balancer in the front end trying and failing to connect to the backend/middleware in the first error, then in the second it recognized a failed health check and reporting that no back ends were available. Root cause is probably networking issue or actual server crash.

    I also have a bonus that in high school I had watched a ton of videos on VFX/SFX and knew a rough way around After Effects and compositing (before I jumped into CS I had considered this as a career path), so now when I watch TV and movies I can also see some of the “layers” they use to compile the on screen effect.




  • Others have some good information here - all I’d like to add to the root is that Windows and Mac have a built-in DNS cache and it’s pretty straightforward to add a DNS cache to systemd distros (if it’s not already installed or in use) using systemd-resolved or dnsmasq if you really dislike systemd. Some distros enable this from install time.

    Systems that utilize a DNS cache will keep copies of DNS query results for a period of time, making the application-level name lookup speed essentially 0ms for a cached result. Cold results obviously incur the latency of the DNS server itself.





  • If a big MMO closes that’d be rough, but those types of games tend to form communities anyways like Minecraft. You don’t have to pay Microsoft a monthly rate to host a Java server for you and a few friends, you just have to have a little bit of IT knowledge and maybe a helper package to get you and your friends going. It’s still a single binary, even if it doesn’t run on a laptop well for larger settings.

    With a big MMO, there will form support groups and turnkey scripts to get stuff working as well as it can be, and forums online for finding existing open community servers by people who have the hardware and knowledge to host a few dozen to a few hundred of their closest friends online.

    Life finds a way.

    If it’s a complicated multi-node package where you need stuff to be split up better as gateway/world/area/instance, the community servers that will form may tend towards larger player groups, since the knowledge and resource to do that is more specific.