My old 1080 Ti now sits inside a 4U rackmount server. It's an EVGA SC2 HYBRID version and I am still amazed that the AIO cooler hasn't failed yet or leaked everywhere. One of the best things I've purchased in retrospect since it was my main GPU up until the middle of 2025, even though at the time in 2017 I felt the price of 1.5k NZD was extreme.
HN user
RavSS
I agree. I've played Arma 3 for more than a whole decade now. Most of it comes down to the open large scale combined arms experience not being available in any other recent video game from a first/third person perspective. There's now Arma Reforger, but it understandably lacks content.
I've used it in my personal hobby projects for several years now, Ada/SPARK is a favourite language of mine. It's not a legacy language and it has features which I wish mainstream languages would have, particularly regarding the formal verification utilities of SPARK. It's also great for bare metal development.
I've not managed to convince anyone else to use it, as most are discouraged by either its Pascal-style "verbose" syntax on first glance or its general lack of third-party libraries (relative to something like Rust's ecosystem). Anyone who can get past those aspects should really give it a try.
I replaced my 1080 Ti recently too (early 2025). I had kept it as my daily GPU since 2017. It was still viable and not in urgent need of a replacement, even though my 1080 Ti is an AIO liquid cooled model from EVGA, so I'm surprised it hasn't leaked yet. It's been put through a lot of stress from overclocking too, and now it lives on inside a homelab server.
The 5090 I replaced it with has not been entirely worth it. Expensive GPUs for gaming have had more diminishing returns on improving the gaming experience than ever before, at least in my lifetime.
Termux can access the full file system if you have root access, which is how I play around with it; however, running a VM is a safer and easier route, especially as smartphone manufacturers are making it tougher to root the device you own.
SPARK is practically just a restricted version of Ada with a few added features for formal verification. You can write a program primarily in SPARK but disable said restrictions based on circumstance by setting the `SPARK_Mode` pragma/aspect to `off` on a package, procedure, function, etc. Mixing Ada and SPARK is trivial.
I guess it is similar to Rust code that uses `unsafe {}` as the other poster mentioned (maybe `unsafe fn` for a closer analogy). My knowledge of Ada/SPARK is much greater than what I know about Rust, so I might be guessing wrong.
You don't have to use AdaCore's GNAT Studio. You can quickly get going with Ada/SPARK using Visual Studio Code, as there is an LSP extension for it published by AdaCore themselves.
I'd suggest `-Oz` instead, as it optimises for size above all else at the cost of performance, unlike `-Os` which is less aggressive (but likely produces similar code anyway). `-Oz` is somewhat new if I remember correctly, so it depends on the GCC version.
That is the general nature of reverse engineering efforts, but this one has been documented enough that you don't need to blindly trust completely random executables or code from strange places.
You can manually recreate the process of building a patch for the embedded controller instead of just following instructions: https://github.com/hamishcoleman/thinkpad-ec. Here's the presentation by the author himself at linux.conf.au (what used to be the biggest local Linux conference for those of us in Australia and NZ): https://www.youtube.com/watch?v=Fzmm87oVQ6c. This is of course not supported by Lenovo.
Unlocking the BIOS is definitely more like what you described. It's the price to pay for freely playing around with processor power limits, getting AES-NI instruction set support, etc. I have not checked since 2019, so there might be a clearer way.
You can use the T420/T520's keyboard in a T430/T530 with modifications to the firmware, some plastic around the keyboard part itself, and the ribbon cable (just pin isolation with tape). It lets you go with Ivy Bridge over Sandy Bridge.
I have a T430 with the T420's keyboard and it lasted me 7 years of daily use before battery life became too big of an issue for me (even with a single DDR3L RAM module and a slice battery), so I put it aside. The typing experience was really excellent.
Upgrading the CPU to a quad-core model (ideally one that consumes 35W over 45W) is one of the best upgrades to make for anyone still using these machines.
Would it be any less safe than a Molex connector? They sometimes still come with brand new PSUs for compatibility. They have 12 volt pins too (yellow wire) if I remember correctly that can be very loose. Back when they were more standard, I'd seen sparks go off after they touched a case's chassis, as a cable to the PSU could have multiple unused/unplugged Molex connectors on it just hanging somewhere. The older PSUs I've used never came with full covers for them, so wrapping them in electrical tape was the "fix".
I think one of the reasons why someone might think it's hard to write code in Ada is its Pascal-style syntax and verbosity, which might give the false impression that it's an "outdated legacy language". I've written a few hobbyist projects in Ada (SPARK to be specific) during my spare time and now I greatly enjoy the language, but my very first impression of it wasn't enthusiastic (coming from a C background). I don't fully understand why Ada lacks popularity compared to Rust, outside of Rust having a more vibrant community.
ISO C89
Not that it matters, but isn't that technically ANSI C(89)? If I remember correctly, the first ISO C standard is instead C90, which is basically identical to C89.
There are also 1 GiB pages in long mode, but support depends on the processor and CPUID's output. Almost all modern x86 processors in the last several years should have it, I think.
IPv4 has a fixed header size (period)
Unless I'm mistaken, I would not say it's fixed due to the rarely used IP options field that varies depending on the IHL field. It has a variable size within a range. There might be a way to get "jumbo addresses" but it would have to be terribly hacked onto the design of the header as it is, which is one reason for IPv6's existence.
https://en.wikipedia.org/wiki/Internet_Protocol_version_4#He...