Nah - Doom (DOS): and Doom Eternal are on there, as are Baldur’s Gates 2 and 3.
Nah - Doom (DOS): and Doom Eternal are on there, as are Baldur’s Gates 2 and 3.
“Register bit twiddling.” Setting all the modes that all their various cards can operate in, with the associated code for sending the bit updates over the connection bus. Tedious stuff that’s very prone to copy-paste errors if written by hand.
At some point you have to take AMDs word for it that these codes = this functionality, but if the right graphics come out then it can’t be so wrong.
Fake mews, surely? And yeah, this looks better than my Monday.
Because if you disable browser autocomplete, what’s obviously going to happen is that everyone will have a text file open with every single one of their passwords in so that they can copy-paste them in. So prevent that. But what happens if you prevent that is that everyone will choose terrible, weak passwords instead. Something like September2025!
probably meets the ‘complexity’ requirement…
A bit like when we renamed all the master/slave terminology using different phrasing that’s frankly more useful a lot of the time, I think it’s about time we got rid of this “child” task nonsense. I suggest “subtask”. Then we can reword these books into something that no-one can make stupid jokes about any more, like “how to keep your subs in line” and “how to punish your subs when they’ve misbehaved”.
Well now. When we’ve been enforcing password requirements at work, we’ve had to enforce a bizarre combination of “you must have a certain level of complexity”, but also, “you must be slightly vague about what the requirements actually are, because otherwise it lets an attacker tune a dictionary attack against you”. Which just strikes me as a way to piss off our users, but security team say it’s a requirement, therefore, it’s a requirement, no arguing.
“One” special character is crazy; I’d have guessed that was a catch-all for the other strange password requirements:
We’ve had customers’ own security teams asking us if we can enforce “no right click” / “no autocomplete” to stop their users in-house doing such things; I’ve been trying to push back on that as a security misfeature, but you can’t question the cult thinking.
Presumably Kecessa is alluding to the fact that, unlike GOG, Steam games open however the developers / publishers want them to. Which is sometimes just a plain exe, sometimes it’s an exe that starts Steam so that it can use its API / DRM, sometimes it opens the publisher’s launcher, and so on. Bit irritating on Linux when you want to pass some options in to the command, and a bit irritating generally when you never want to see the launcher again, but it’s no disaster.
It’s in Unity, isn’t it? So rather than multiplying the speeds by Time.deltaTime
when you’re doing frame updates, you just don’t do that. Easy peasy. They’ve got that real “Japanese game devs from twenty years ago” vibe going.
It’s a simple alphabet for computing because most of the early developers of computing developed using it and therefore it’s supported everywhere. If the Vikings had developed early computers then we could use the 24 futhark runes, wouldn’t have upper and lower case to worry about, and you wouldn’t need to render curves in fonts because it’s all straight lines.
But yeah, agreed. Very widely spoken. But don’t translate programming languages automatically; VBA does that for keywords and it’s an utter nightmare.
If you move past the ‘brute force’ method of solving into the ‘constraints’ level, it’s fairly easy to check whether there are multiple possible valid solutions. Using a programming language with a good sets implementation (Python!) makes this easy - for each cell, generate a set of all the values that could possibly go there. If there’s only one, fill it in and remove that value from all the sets in the same row/column/block. If there’s no cells left that only take a unique value, choose the cell with the fewest possibilities and evaluate all of them, recursively. Even a fairly dumb implementation will do the whole problem space in milliseconds. This is a very easy problem to parallelize, too, but it’s hardly worth it for 9x9 sodokus - maybe if you’re generating 16x16 or 25x25 ‘alphabet’ puzzles, but you’ll quickly generate problems beyond the ability of humans to solve.
The method in the article for generating ‘difficult’ puzzles seems mighty inefficient to me - generate a valid solution, and then randomly remove numbers until the puzzle is no longer ‘unique’. That’s a very calculation-heavy way of doing it, need to evaluate the whole puzzle at every step. It must be the case that a ‘unique’ sodoku has at least 8 unique numbers in the starting puzzle, because otherwise there will be at least two solutions, with the missing numbers swapped over. Preferring to remove numbers equal to values that you’ve already removed ought to get you to a hard puzzle faster?
As an example of a language that many people are familiar with, which is likely to be in long-term use where maintainability is most important, and which can almost read like pseudocode anyway, sure - probably the best ‘real language’ choice.
You can write an unmaintainable fucking mess in any language. Rust won’t save you from cryptic variable naming, copy-paste code, a complete absence of design patterns, dreadful algorithms, large classes of security issues, unfathomable UX, or a hundred other things. “Clean code” is (mostly) a separate issue from choice of language.
Don’t get me wrong - I don’t like this book. It manages to be both long-winded and facile at the same time. A lot of people seem to read it and take the exact wrong lessons about maintainability from it. I think that it would mostly benefit from being written in pseudocode - concentrating on any particular language might distract from the message. But having a few examples of what a shitfest looks like in a few specific languages might help
That is a good read, thank you. Didn’t have procedures, had two different brokersge systems running at once because they’d no procedures to follow, lost a fortune.
I’m thinking it’s the "most expensive bug in history so far - haven’t seen an accurate total for CrowdStrike’s little faux pas, yet.
My old job had a lot of embedded programming - hard real-time Z80 programming, for processors like Z800s and eZ80s to control industrial devices. Actually quite pleasant languages to do bit-twiddling in, and it’s great to be able to step through the debugger and see that what the CPU is running is literally your source code, opcode by opcode.
Back when a computers were very simple things - I’m thinking a ZX Spectrum, where you can read directly from the input ports and write directly into the framebuffer, no OS in your way just code, then assembly made a lot of sense, was even fun. On modem computers, it is not so fun:
x64 is just a fucking mess
you cannot just read and write what you want, the kernel won’t let you. So you’re going to be spending a lot of your time calling system routines.
99% of your code will just be arranging data to suit the calling convention of your OS, and doing pointless busywork like stack pointer alignment. Writing some macros to do it for you makes your code look like C. Might as well just use C, in that case.
Writing assembly makes some sense sometimes - required for embedded, you might be writing something very security conscious where timing is essential, or you might be lining up some data for vectorisation where higher-level languages don’t have the constructs to get it right - but these are very small bits of code. You would be mad to consider “making the whole apple pie” in assembly.
Genesis is a different style of game tho, isn’t it? Diablo-like rather than third-person hack and slash?
Love the series. Personally prefer 3 due to its more limited scope; the other two are great, but to on for a very long time, and I really can’t be bothered playing through the Portal-like bits again. Happy if 4 is the same length as 3.
Yeah. Unless they’ve some ulterior motive for porting their RE engine to iOS, then this is insane. That kind of cash will barely fund a senior engineer for a month once you’ve paid out overheads as well.
If they’re planning to have some kind of phone tie-in to the next Resi game, then maybe it might have made sense to work the compatibility issues out. An app that runs on your phone that makes it “your phone in game”, so you can receive texts from the president’s daughter while shooting some definitely-not-Spaniards on your Playstation, bit of an augmented-reality thing. Could be a laugh to have your phone be in control of a drone so that you can see round corners, while juggling the other things you’re doing? But probably mostly so that you can get dinged for microtransactions.
There’s three regions missing here - region 0 is “worldwide”, region 7 is “special purpose”, Oscar screening DVDs and the like, and region 8 is “international waters” for cruise ships and things. You can set several regions on the same disk, to make a 2/4/5 and the like. Set each region as a bit, and you can store that in a single byte - that makes it very easy to flash the firmware on DVD players to decide which disks they can play. Aus/NZ will want content in English and Latin America will want Spanish or Portuguese, so the DVD consortium can still get up to their often-illegal, certainly immoral, price fixing and bullshit.
Really, fuck DVDs. So much potential in the increased capacity, and then it was mired in crap like this and “disabled user operations” so that you can’t skip trailers. Time to raise the black flag and set sail for prosperous waters, me hearties.
Agreed. JSON solves:
For saving games, JSON+gzip is such a good combination that I’d probably never consider anything else.
One of the things that got me to change my gaming desktop from Mint to Arch was the fact that you get the cutting-edge version of everything; kernel and amdgpu being the most important, but also getting the latest version of Lutris and things is nice too. Brought me from “usually about 50 fps outdoors in Elden Ring” to “usually about 60 fps” on the same machine.
Makes sense for a gaming machine to only include the services you actually want, which Arch enables. Supports my hardware better too - my audio gear works perfectly in Pipewire but is ropey in ALSA, so rather than “install Mint -> install Pipewire -> remove ALSA -> hope ALSA is gone”, the sequence is “install Arch -> install Pipewire”, which make more sense.
Other cutting-edge rolling release distros are available, of course, but once you learn Arch, it makes a lot of sense for gaming.
Why buttplug for tachyons?