Yeah. Putting my old man crankiness aside, for a moment, I adore goLang. GoLang is like having a youngest grandchild. It can do whatever it wants and I’ll praise it.
I literally learned it over a one week vacation. The only other language that comes close to being that easy to learn is Python. I often tell folks, if C and Python had a baby, it would be GoLang.
Rust is heresy. Everything should be mutable, the way that God intended it to be!
Seriously though as someone who has mainly done embedded work for decades and got used to constrained environments, the everything is immutable paradigm seems clunky and inelegant. I don’t want to copy everything all the time.
Now if you’ll excuse me, these null pointers aren’t going to dereference themselves
I would even go so far that Rust is making mutability fashionable again.
More modern languages had generally kind of ousted mutability, but as you say, that means tons of copying, which was a no-go for Rust’s performance goals.
So, they looked for ways to allow for mutability without it being a footgun. As such, Rust’s mutability handling differs from many other languages in that:
It’s practically always explicit when something is mutable.
Whether something is mutable is associated with the variable binding rather than the data type. This means you can temporarily opt into mutability (if you have ownership of that variable).
I was more referring to the fact that everything is immutable by default. As someone who’s just starting to get old (40) and literally grew up with C, it’s just ingrained in me that a variable is… Variable.
If I want a variable to be immutable I would declare it const, and I’m just not used to the opposite. So when playing with Rust, the tutorial said that “most people find themselves fighting with the borrow checker” and sure enough, that’s what I ended up doing!
I like the concepts behind it, it really encourages writing safe code, and I feel like it’s not just going to be a fad language but will likely end up underlying secure systems of the future. Linux kernel rewrite in Rust when?
It’s just that personally I don’t have the flow of writing code like I would in C/++, just not used to it. The scoping, the way you pass variables and can sort of “use up a reference” so it’s not available anymore just feels cumbersome compared to just passing &memory_location and getting on with it, lol
Good riddance, spent several years hooked to League. That being said, the fragmentation argument is bullshit, they could ship a read-only container in a flatpak and it’d run everywhere.
Kernel level is a huge risk and it doesn’t guarantee anything, especially in the age of Ai cheats and network mitm cheats
That’s the point. A read only container to keep low hanging fruit at bay, and flatpak to distribute without having to repackage to every distro under the sun.
I don’t fuck with the game, the game doesn’t fuck with my system.
If you’re not using tz_database or equivalents for literally all date-time logic, if 24 or 60*60 are constants defined in your project… you’re doing it fucking wrong. I don’t know how many times we need to break out the idiot club, but date, time and timezones are extremely complicated - unless your business is primarily concerned with them you must use a library or service.
From my very basic understanding, yeah that’s basically what it does. However it accounts for a whole lot more into adding or subtracting from UTC. Timezones aren’t absolute, they’re political. Timezones have weird rules, and history that needs to be somehow expressed in the code to get the right time. That’s what’s sets tz_database apart from just looking at a map and saying it’s +7 UTC.
“linux does not allow us a good enough ability to confirm boot state”
Skill issue, L for riot games.
Realistically, if this is true, it’s because of security. Shocker on that one really. Also, there are probably only 800 players on linux because the anti cheat doesnt fucking work. But that doesnt count apparently
I’m no expert here, but couldn’t they rely on SEV/SME or similar? My understanding is those features encrypt RAM, which would make it a lot more difficult for an attacker to do memory-based attacks when the game is running within a VM. I expect “physical attacks” would include attacking a VM’s memory, but again, I’m not an expert.
I also wonder if this could work in a containerized environment instead of a VM, so players could just run a lightweight container and preserve direct access to resources like the GPU. I don’t know if GPU access can be required to be encrypted as well, but surely this is a massive step forward.
i have no clue myself frankly. Realistically, doing literally anything is probably going to be better than what riot claims is possible. I think a fundamental part of the problem is stuff outside the control of the game, the OS already has segmented ram for instance, it’s all supposed to be virtually privatized, that way you don’t get these kinds of problems On the fly encryption would probably help, though they would probably just use shitty encryption anyway. Regardless, if you get something to hook into the game code itself, rather than just abusing memory values, it wouldn’t matter. Because at that point it’s going to be running inside the game.
There’s no “computer icon”. Dragging the System disk to trash ejects it on a classic Mac. If you burrow down into System, you can try deleting system files… which are locked and can’t be deleted.
i mean, this story sounds like it’s from pre-release testing, or maybe a trade show demo showing a pre-release build. it not working this way in the release version just makes sense, and doesn’t mean this is a fake story.
No such demo happened. They unveiled the 128K with that System 1.0 on stage at a special event. The Lisa has a different UI, but also can’t do what’s described.
The story seems to be referencing the first time apple had regular people try it which may have been in a focus group or at some kind of publicity event. If this did happen I’m sure they made safeguards against it before selling it
I have to agree. The Macintosh 128k didn’t even have an internal HDD. Everything was run on 3.5" floppies. Heck they may have invented the 3.5" floppy, idk. As you said, dragging the system dick icon to the trash on a 128k was literally the easiest way to eject the disk.
My father still owns on, that may actually work. He also got 2 extra external floppy drives for the thing. He also has an Apple ]|[
Unless this story is from preproduction software and they got rid of the computer icon. Or maybe that detail was misremembered and it was actually a disc icon.
How would the new time zones work in practice? Wenche Pedersen, the mayor of Vadsø who authored the letter, is unsure.
“We haven’t thought a lot about that” she said. “The clock will go from 12 to 13… and we have to see how this will go. I don’t think they’re going to say yes so we haven’t thought about all the details.”
Make a proposal without a plan or a feasibility study is peak management. Starting to understand how I end up with projects with very firm deadlines that are only vaguely defined and no one is sure if we have the resources on hand.
In this case I suspect this mayor simply made this proposition to get their town some free publicity. I am more sympathetic to these performative actions if they’re just for the media attention.
When every decision is made by people alienated from every material or functional concern by like ten layers of abstraction, all decisions smell of recent severe skull deforming head trauma.
I feel the same way about Haskell. Every program I’ve used is either a “Look at what else Haskell can do!” example, or an endorsement of universal packages whenever I have to update 200 haskell modules.
↑ This. Haskell makes it super easy to get good CLI filters. All you need to do is interact and process the string it gives you. You’ll automatically get streaming behavior because of laziness without lifting a finger.
interact is (String → String) → IO (), a function that takes a String → String (a function that takes a string and returns a string) and returns an I/O operation (which is a separate type since Haskell doesn’t have side-effects). The function you give it will receive all of stdin as a string and its output will be stdout. The magic comes because Haskell uses cons-lists that are lazy in their spine — the list doesn’t actually exist until you look at it. This means that, from your perspective (probably not how this is actually implemented), the list you return is iterated character-by-character, and each character that gets printed only waits for the characters it needs, allowing the rest of the stdin list to remain unevaluated.
lemmy.ml
Active