Hacker News new | past | comments | ask | show | jobs | submit | matheusmoreira's comments login

Note that this is GNU C, not standard C. GNU has extended the normal C language with features such as forward parameter declarations and numeric ranges in switch cases. Lots of people don't know about these things.

Note that switch case ranges might be coming in C2y though.

Also forward parameter declarations, or is that proposal dead?

Basically dead. The main motivation would be to make it easier to use variably modified types in function parameters, where the (length) identifier is declared after the variably modified type, as in

  > void foo(int a[m][m], int m)
Currently you can only do:

  > void foo(int m, int a[m][m])
The holy grail is being able to update the prototypes of functions like snprintf to something like:

  > int snprintf(char buf[bufsiz], size_t bufsiz, const char *, ...);
However, array pointer decay means that foo above is actually:

  > void foo(int (*a)[m], int m)
Likewise, the snprintf example above would be little different than the current definition.

There's related syntax, like

  > foo (int m, int a[static m])
But a is still just a pointer, and while it can help some static analyzers to detect mismatched buffer size arguments at the call site, the extent of the analysis is very limited as decay semantics effectively prevent tracing the propagation of buffer sizes across call chains, even statically.

There's no active proposal at the moment to make it possible to pass VM arrays (or rather, array references) directly to functions--you can only pass pointers to VM array types. That actually works (sizeof *a == sizeof (int) * m when declaring int (*a)[m] in the prototype), but the code in the function body becomes very stilted with all the syntactical dereferencing--and it's just syntactical as the same code is generated for a function parameter of `int (*a)[m]` as for `int *a` (underneath it's the same pointer value rather than an extra level of memory indirection). There are older proposals but they all lost steam because there aren't any existing implementation examples in any major production C compilers. Without that ability, the value of forward declarations is greatly diminished. Because passing VM array types to functions already requires significant refactoring, most of the WG14 felt it wasn't worth the risk of adopting GCC's syntax when everybody could (and should?) just start declaring size parameters before their respective buffer parameters in new code.


I hope it is not "basically" dead. I just resubmitted it at the request of several people.

And yes, for new APIs you could just change the order, but it does help also with legacy APIs. It does even when not using pointers to arrays: https://godbolt.org/z/TM5Mn95qK (I agree that new APIs should pass a pointer to a VLA).

(edited because I am agreeing with most of what you said)


> everybody could (and should?) just start declaring size parameters before their respective buffer parameters in new code

I know that was a common opinion pre-C23, but it feels like the committee trying to reshape the world to their desires (and their designs). It's a longstanding convention that C APIs accept (address, length) pairs in that order. So changing that will already get you a score of -4 on the Hard to Misuse List[1], for "Follow common convention and you'll get it wrong". (The sole old exception in the standard is the signature of main(), but that's somewhat vindicated by the fact that nobody really needs to call main(); there is a new exception in the standard in the form of Meneide's conversion APIs[2], which I seriously dislike for that reason.)

The reason I was asking is that 'uecker said it was requested at the committee draft stage for C23 by some of the national standards orgs. That's already ancient history of course, but I hoped the idea itself was still alive, specifically because I don't want to end up in the world where half of C APIs are (address, length) and half are (length, address), when the former is one of the few C conventions most everyone agrees on currently.

[1] https://ozlabs.org/~rusty/index.cgi/tech/2008-04-01.html

[2] https://thephd.dev/_vendor/future_cxx/papers/C%20-%20Restart...


That's related to something I would like which is to be able to set the number of elements in an incomplete struct.

   struct foo
   {
     size_t elements;
     int data[];
   };

   foo foo123 = {.elements = array_size(data), .data = {1, 2, 3}};
or struct str { size_t sz; char str[]; };

   str s123 = {.sz = strlen(.str), .str = "123"};

Clang and GCC just got the [[counted_by()]] attribute to help protect such structs in the kernel. But yes, native syntax for this would be nice.

This is really informative. I wonder if there is a better solution for the reallocation problem, one that preserves pointers.

You can keep the raw pointers inside your manager object for a particular object type and only hand out some kind of handle that requires an indirection step, such as an array index.

I've seen that design before. Base and offset easily allows relocations of data in memory.

https://www.man7.org/linux/man-pages/man2/mremap.2.html

  If the mapping is relocated, then absolute
  pointers into the old mapping location become invalid
  (offsets relative to the starting address of the mapping
  should be employed).
I've always assumed that forcing an indirection causes a noticeable performance impact. I mean, everyone uses absolute pointers by default, right?

There are a lot of variations on it:

- Unix file descriptors are small-integer array indices into, normally‚ arrays in kernel space.

- Many Smalltalk implementations, especially on older machines, named objects in memory with small-integer indices into a global object table (typically shifted in some way to accommodate tagged SmallIntegers) which was implemented as an array of pointers to the real object locations.

- Functions exported from DLLs on Windows can be identified by "ordinals" that index a table of all exported functions instead of by name.

- PalmOS, Win16, and Pre-X MacOS identified allocations of memory from the operating system by "handles" which were, again, indices into a table of pointers, the master pointer block. To access the actual memory you would call HLock() (MacOS name) and index the table (yourself, on MacOS, or using the return value from the lock function on PalmOS or Win16) to get the physical address, which could change if the handle was unlocked.

- Forth maintained an in-memory buffer cache of 1024-byte disk blocks, which it identified by ordinal number rather than, say, cylinder/head/sector tuples or inode+offset tuples. To get the memory address of block 53, you would say 53 block (Forth for "block(53)") and freely index into those 1024 bytes, which were guaranteed to remain resident until the next call to block or until you yielded the CPU with another I/O operation. If you modified the data there, you would call update to tell Forth the buffer was modified. If block 53 was not currently in memory, Forth would pause your task until it had loaded it, running other tasks meanwhile. If there was no free block buffer, Forth would free one up, by writing out a modified buffer to disk if necessary. This provided a sort of virtual memory in about 100 lines of code without requiring memory-mapping hardware. (The "BLOCK I/O" part of F83's KERNEL86.FS is 8 16-line screens long, but a fair bit of that is actually dealing with MS-DOS's file I/O functions.)

- Because standard Pascal had no string type and no way to handle variable-length arrays of any kind, TeX uses indices into a string table as its string type. It inserts newly encountered strings in the string table.

- Symbols in some Lisps.

- Pretty much anything in any Fortran program. See http://www.the-adam.com/adam/rantrave/st02.pdf on how to program Fortran in any language.

How noticeable the performance impact is depends a lot on how often you have to traverse the extra level of indirection. (Doing a base+offset addition before each memory access could be a significant performance issue on things like a Commodore 64 or a TRS-80 but basically doesn't matter on 8086 or better hardware.)


He should have used AGPLv3. Anyone who doesn't like it should contact him with a business proposal for a proprietary license.

> Both Valve and MS have been making moves to steer game publishers away from KAC.

Can you elaborate on this? What sort of moves have they been making?

> I think the problem will solve itself when the platforms just say, "you can't do that anymore".

I hope you're right!


Valve has a long history of standing against kernel annticheat. It is a pain to dig up old statements against it, so the best evidence of that is Valve’s own anticheat VAC avoids touching the kernel. They even recently began to require disclosure of the use of kernel level anticheat:

https://www.pcgamer.com/games/steam-now-requires-developers-...

They recently voiced their opposition to kernel level anticheat as some thing that “ might present problematic trade-offs for the end-user in the longer term”:

https://automaton-media.com/en/interviews/the-steam-deck-has...

Kernel anticheat is a major security issue from the perspective of the operating system, as it is a kernel level rootkit. An offline analogue would be giving a corporation the keys to your home and having them regularly come and install new cameras and microphones to see what you are doing. They might say “it is only active when you are playing a game”, but there is no technical hurdle blocking them from watching 24x7 and some of them don’t even bother to pretend it is only when playing a game. Then there is the issue of the wiring being faulty such that it occasionally sets your house on fire (search for BSOD complaints involving anticheat kernel drivers and you will find many).

As for Microsoft, I think that is a misunderstanding that came from this:

https://www.notebookcheck.net/Microsoft-paves-the-way-for-Li...

Here is what someone who claims to develop kernel anticheat had to say about it:

https://blog.freudenjmp.com/posts/microsoft-will-not-kill-ke...

Unlike Apple and the Linux community, Microsoft does not care about end user security to take a stance against kernel anticheat. All of their security initiatives are security theater.


Thank you!

> energy we feed back into the grid will be given away to the grid operator for free

Why would you do that? I'd rather sink all the surplus electricity into a cryptocurrency miner than just give it away to the grid.


Cryptominers are way more expensive than the solar system itself, it is questionable if they will recoup their cost even with free electricity, and afaik, it would not be easy to select an arbitrary power consumption. Power can easily vary between 100W and 800W by the second.

You know, not everyone tries to profit from everything all the time.

If my utility company wanted to install solar on my roof with their own funds and give me some energy for free in exchange, I'd support that.

But installing solar on your own roof with your own funds, and then giving the energy away for free to a for-profit corporation? How does that make any financial sense?


It doesn't make less sense than burning it just so the power company can't have it. By giving it away, I at least reduce CO2 emmissions further.

Who cares, you are not going to use that power anyway.

Maybe not everyone but power grid operators absolutely do.

This is great but we must still be careful. Games have come to Linux but so has a lot of the suckiness associated with them.

The video games industry wants to own your computer. They don't want you to copy their games or cheat. Taking over your machine is the only way they can possibly hope to accomplish that. Therefore they think nothing of shipping literal rootkits directly to you. This is software whose only distinction from malware is a terms of service buried somewhere that you probably clicked through without reading and technically accepted.

There's also the fact they are proprietary software. There's no telling what they are doing. Sometimes there's literal malware in these things. I'm not kidding about this.

https://www.vice.com/en/article/fs-labs-flight-simulator-pas...

https://www.theregister.com/2016/09/23/capcom_street_fighter...

https://twitter.com/TheWack0lian/status/779397840762245124

https://fuzzysecurity.com/tutorials/28.html

https://github.com/FuzzySecurity/Capcom-Rootkit

I seriously doubt there's any effective way to sandbox them either, they probably need extensive permissions to even work. I wouldn't want to run these things in my personal computer.

For these reasons, you might want to set up a completely separate virtualized Linux system just for this purpose. IOMMU and VFIO technologies allow you to map a discrete graphics card to the virtual machine which enables hardware accelerated graphics at near native performance.

You might want to consider a dedicated gaming machine. To me it feels like a waste since the hardware is great and should also be used for other things.


> Taking over your machine is the only way they can possibly hope to accomplish that.

It's easy. Don't play competitive multiplayer crap. Especially if it's free to play. You get to not waste your time on predatory grindfests, besides not having to install a rootkit.

Also stay away from the companies requiring their own account system, like EA, Ubisoft, Rockstar.


Completely agree with you, this is great advice.

There are plenty of "competitive multiplayer crap" games which I think actually deserve to be botted to oblivion. If you load a game and you see a timer anywhere, it probably deserves it.

The timer exists to delay you rewards and resetting it is probably wired to the credit card button. They do this to create reward schedules in order to get players addicted. They want them logging into the game every single day. Automating those silly "daily tasks" is an absolutely moral thing to do and I will never fault anyone who does it. They are cures for video game addiction and should be prescribed by doctors.


> Automating those silly "daily tasks" is an absolutely moral thing to do and I will never fault anyone who does it.

I would. You should just dump the game then.


"Just dump the game" is not an easy thing to do when you're addicted. There are people out there who literally wake up at 3 AM to do daily tasks because that's when some idiotic timer resets. It's not something you just "dump". I know because I've been there.

Hmm I've done my share of wow dailies but even those were boring and i was skipping them.

As for free to play games, they're all too expensive. Since you pay for them with your time.


> Don't play competitive multiplayer crap. Especially if it's free to play.

Problem is that most good multiplayer online games have gone F2P.

I bought Team Fortress 2. Then it went F2P and got overrun with bots. Overwatch also went F2P after I bought it.

I like online team shooters, but like many genres it's dominated by the F2P business-model.


> They don't want you to cheat

Why do you think that is? I’m sure they wouldn’t bother with it if most gamers were fine playing against cheaters.


It's my computer. I am the god of this machine. If something happens, it's because I will it. I get to read and write arbitrary memory if I want to. It's offensive to me that they even think I shouldn't have this power. Couldn't care less what their reasons are.

Cheating? I don't care enough about most games to even consider it. I absolutely do consider it to be my prerogative, however. If they don't like it, they better run their "anticheat" nonsense on their computers, where it belongs. If they try to usurp control of my computer, I will do everything in my power to stop it.

This is gonna turn into yet another example of illegitimate customers enjoying a superior product while paying customers get treated like dishonest criminals. Legitimate customers get DRM and anticheat rootkits, pirates and cheaters get none of that. Guess which side I want to be on?


The issue w/ competitive gaming (League of Legends, Deadlock, Overwatch) is if you take advantage of your prerogative and cheat, you make the experience worse for everyone else; and it hurts the game itself.

The sad state of existence is that if you want to run a multiplayer game, you need to do shitty/controlling things or the game will turn unplayable as soon as it starts to become popular.

Games like BG3 however - Who cares if someone is cheating? Just stick to those (great) games if you want more control


It's unfortunate but at the end of the day they're just video games. They aren't worth sacrificing computer freedom over. We shouldn't end up becoming serfs in the digital fiefdoms of corporations just because people want to play online video games. These companies need to give up and let us play these things on our terms.

I'd sooner see multiplayer games disappear than accept this sad state of affairs where our computers come pwned straight off the factory in order to please the so called stakeholders by denying us the freedom to do things that hurt their interests. That's a far more damaging outcome than silly video games becoming unplayable. Cheaters are a small price to pay for freedom and I pay it gladly.

Besides, some games should be hurt. Plenty of "free" games out there employing literal gambling and drug dealer tactics to get people addicted to their product. Cheaters are doing us all a huge favor by speeding up their demise.


I'm not expert but I wonder if using blockchain technology to mathematically make impossible to cheat some information like the position or shooting direction is possible... that way maybe we don't need to give full control, and the most important things are still are not cheatable. cheating the skin is not that important but if they think that is important too, then they can just add more information to track somehow on the skins ahah

Blockchain is not needed. A huge class of problems could be solved by simply refusing to trust the game client. Plenty of games do that to this day.

https://youtu.be/AUjuefLqphY

You tell the server you're on the other side of the map and it just trusts you. Teleport hack. The other guy is on the other side of the map and behind a wall but the server is still sending you his position. Why send the client information it shouldn't have?

They want to pwn your computer so that you can't tamper with the game. They should fix the game so that tampering with it doesn't matter.


Exactly this.

But there are some cases where you just have to rely on client side. Like when other player position is partially obscured, server have to send it's position but it might be almost not visible by naked eye.

Teleport hacks are unfortunately also not that simple, I think most of games do not trust client input but give some wiggle room for network latency, that can be exploited (it should be limitted to reasonable amounts to allow max like 200ms or so of latency)

Most "pro" cheaters (there is market for this stuff) use protocol level tools that are invisible to anti cheat software as those work as proxy on physically separate computer.


How would block chain make this mathematically impossible? I do not think anyone knows how to do that and that is because it is not actually possible to do.

I saw your point in your original post of being wary of what games you install since some come with crapware, but you've completely lost me here. For many people, perhaps even most people, the whole point of practicing their digital freedom and even owning a computer is to enjoy a game. The use of games in society and the use of anticheats to games is very obvious by every measure. Yes, don't install crap; no, multiplayer games shouldn't and aren't going anywhere.

Cheating at video games is actually an exercise in computer freedom. The game is running on my computer. As the owner of the machine, I can change its memory. I can change whatever I want. I should be able to do this.

If you don't have the power to cheat at video games, it's because you do not actually control the machine. There's something above you preventing you from doing what you want. It's not your computer, it belongs to the game company. The computer does their bidding, not yours.

So people are not "practicing their digital freedom", they are practicing only what the game company allows them to do. They don't "own a computer" either, the corporations own their computers, they're just letting people use them. In the end it's up to them to decide if games are worth their sacrifices. Personally I think that's an indignity. It means your PC is no different than a game console.

I for one want to play games but don't want to make those sacrifices. I look for ways to make the game run on my terms instead of accepting the corporation's take it or leave it offer. It's pretty sad that people will just give up all their power just to play games but it can't be helped. I can only post these comments and try to convince others.


And murder is an exercise in bodily freedom. If my hands are tied so I can't murder people, I am not bodily free. Yes, you're correct, we shouldn't bind the hands of people. No, we shouldn't be arguing in favor of murder. That's where you lost me. Instead of arguing for cheating in games or for the death of all multiplayer games, argue for something like server side anti-cheat and rally against games that include crapware instead of saying things like (paraphrasing) "all multiplayer games should die for my sake." Seek nuance or find a middle ground instead of grandstanding on absolutism like this, it hurts your (fundamentally very good!) point.

So... don't play them? Your reasons for not accepting kernel anti-cheat are completely valid, but so are other users' desires to not play games with cheaters.

I already avoid multiplayer games. It's very rare for me to make an exception.

I came here to warn others about these concerns and to cite virtualization with VFIO as a viable solution. I think people should understand what sort of nonsense they're bringing into their computers when they install these games. That's what my original post was about.

I didn't mean to start another one of these discussions. We shouldn't have to justify ourselves. They're the ones barging in and usurping control of our computers because of "cheating" or whatever. You install some video game and next thing you know you've got some malware exfiltrating private information, taking screenshots, scanning your RAM and disks, making an issue of your developer tools. That's unacceptable behavior, the reason for it is irrelevant.


> ones barging in

Well.. no. They are for better or for worse explicitly invited.


The games themselves? Yeah. But nobody "explicitly invited" in a bunch of invasive anticheat nonsense. That stuff is a nuisance at best, just yet another annoying thing you have to install before you can enjoy the thing you actually paid money for.

Well, no. Anti-cheat exists to keep cheaters from ruining the game. If I paid to enjoy a multiplayer game, and cheaters keep me from enjoying it, then anti-cheat is a requirement to enjoying the game I paid for. It's fine if you don't think it's worth the trade-off, but it does serve a real purpose to make gaming better for players.

They don't prevent cheating, they just make it harder. Cheat developers are still gonna bypass it, after all it is their business. And even if they did prevent cheating, it wouldn't be justifiable because the software is so invasive it can be classified as malware.

It's just like DRM. Like copying, cheating simply cannot be prevented if we are in control of the machine. This technological arms race can only end in one of two ways. Either the corporations manage to own our computers or they lose. Neither result is particularly great but I know which one I'm willing to accept.


> They don't prevent cheating, they just make it harder.

TBF; it's net the same thing. People just need it to be hard enough that it (generally) doesn't ruin your game.

You're making the same logical argument people have made against wearing (and then mandating) seat belts, and in more recent times vaccines. It's a sad slope that's led to me being told over Christmas dinner that murder being illegal is stupid because people still kill. He was serious. Boggles the mind.


Seat belts and even vaccines are much more restricted in the kinds of side effects they can cause :

https://boingboing.net/2012/01/10/lockdown.html


Seat belts and vaccines are life saving items. They are approximately a trillion times more important than video games are and ever will be. They do not even belong in the same sentence.

Even those important life saving items have contraindications. They are well studied. We know their benefits. We know their risks. We know how to balance the two. Professionals do it every day. Most people voluntarily choose to use these items after the facts are explained. Forgoing their use doesn't stop your life either.

We know virtually nothing about anticheat systems. Their benefits, if any, are likely exaggerated to increase profits. Their costs and risks are "explained" in some annoying legalese document that pretty much nobody reads. You're forced to accept this nonsense. You can't play the game otherwise, might as well click next.

Their function is to take over your computer in order to control and limit what you can do with it. That's an affront to the user. Accepting this costs users part of their dignity. We can only hope that they will have lots of fun with their game afterwards. Otherwise their sacrifice will have been for nothing.


> That's an affront to the user. Accepting this costs users part of their dignity

I honestly love this. I want to hang out at a bar and get sloshed with you; maybe after hours at a conference. I legitimately think we'd be best buds.

As an aside though - 95% of PC users generally just don't care as long as ItWorks and its fun. It's easy to get mired in the minutia of the systems (technical and societal) instead of thinking about how it interacts with the average person.


Yeah man. I get it. But not everyone feels like you do. It's still the case that anti-cheat makes multiplayer games better for those who want to play them. It is an effective technology, otherwise they wouldn't use it. It's not like the game studios enjoy paying those licensing fees.

> play these things on our terms

Due to some reason a lot of people want to use public servers and matchmaking. Likely they wouldn’t do that if anticheat root kits didn’t exist.

I don’t particularly care about games like this either nor do I play them but that’s entirely besides the point.

> for freedom and I pay it gladly.

That’s great. Again a lot of people feel otherwise. Why do you feel that you have a moral right to impose your personal preferences on them?


> Why do you feel that you have a moral right to impose your personal preferences on them?

Because we can't allow corporations to install rootkits and malware into people's machines?

I find it weird that I even have to justify this. These ridiculous stunts were actual scandals not too long ago.

https://en.wikipedia.org/wiki/Sony_BMG_copy_protection_rootk...

I wonder what changed in the last couple of decades. Why did this become acceptable? Why did people start defending corporations that do stuff like this? On Hacker News of all places?

Why are you talking about "personal preferences"? These corporations are shipping literal rootkits to people.


> These corporations are shipping literal rootkits to people.

Same applies to products such as CrowdStrike and similar stuff which in my opinion might be even worse (Anticheat rootkits at least provide some real value.. I’m not really an expert in corporate IT so I might be wrong).

In both cases their users perceive that this software provides some direct or indirect value to them.

Is it so hard to believe that some people might value the opportunity to play online games with less cheaters than retaining the control of their PCs?

Would it be better if same software was running on strictly controlled devices like game consoles? If so what if some people treat their PCs effectively as mainly specialized gaming devices?

> start defending corporations

Let’s not get silly.. what makes you think I’m doing that? I’m merely pointing out that the world is not necessarily black and white and there is some space for nuance.


You're elevating games to the level of security software. Isn't it an issue that a game is literally policing your entire system? If you had any passwords, or literally anything else, they can take it. This is about as far as a "trade off" can go.

> If you had any passwords, or literally anything else, they can take it.

They have done it before.

https://www.vice.com/en/article/fs-labs-flight-simulator-pas...

Shipped a browser stealer to users and exfiltrated data on an unencrypted channel.

https://old.reddit.com/r/Asmongold/comments/1cibw9r/valorant...

https://www.unknowncheats.me/forum/anti-cheat-bypass/634974-...

Screenshots your computer screen and exfiltrates the picture to their servers.

Trusting these game companies is a huge mistake.


> Is it so hard to believe that some people might value the opportunity to play online games with less cheaters than retaining the control of their PCs?

Hard to believe? Absolutely.

This issue is just like privacy. It's one of those important issues where people not only refuse to care but actually look down on you as a loony if you do. They will suddenly start caring a lot when the corporations are fully entrenched and start exploiting them for profit.

The problem is by that point there will be nothing they can do about it. They gave up control of the machines to play games. They will not be able to do a thing when the machines start extracting profit out of them. They are no longer in control.

> Would it be better if same software was running on strictly controlled devices like game consoles?

For some interpretations of "better". Consoles are a huge waste. They are all perfectly good computers which could do so much more. At least dedicated gaming machines at least keep the damage contained. I said this in my original comment.

> If so what if some people treat their PCs effectively as mainly specialized gaming devices?

I have no trouble believing Windows users think that way. If you use Windows, it's because you do not care.

I seriously doubt someone who cared enough about computers to install and learn Linux will enjoy watching his omnipotent general purpose system get turned into a glorified gaming appliance just because corporations aren't happy about the fact he could theoretically use the system's immense power against them.

> Let’s not get silly.. what makes you think I’m doing that?

The words "moral right" gave me that impression.

What gives these corporations the moral right to tell me what I can or can't do on my computer? The whole idea is comical. If I want to cheat, I will cheat. They can only hope that I choose not to. That's a truth they just need to accept. If they won't we'll make them accept it.


> Because we can't allow corporations to install rootkits and malware into people's machines?

TBF - this is You dictating what tradeoffs others are able/willing to make in their off time. I grew up playing competitive FPS; and still have a 'gaming rig' for downtime. I would looove a better state-of-the-world; and am picky about what I will play (I won't run Rivals as an example as it requires Administrator; simply won't trust the developer that much)

> These corporations are shipping literal rootkits to people

i agree most/all kernel level anti-cheats are garbage - but I also dislike strict "We can't allow..." overarching statements also. A world I dread is one where Consoles are our only legitimate home gaming option.


> A world I dread is one where Consoles are our only legitimate home gaming option.

Then you should agree with me.

A computer you don't fully own and control is nothing but a glorified game console appliance.

Don't you see? That's what they are trying to turn our computers into with their rootkit nonsense. They want to own our computers. Turn them into consoles, appliances fully controlled by them.

It's 2025. The only difference between a console and a PC is the console refuses to run software not signed by the manufacturer. It only runs software they approve of. They literally have the keys to the machine, they're just letting us get some limited use out of it, on their terms of course.

That's what they would reduce our PCs to. Glorified appliances that refuse to do what we want. What if you want to cheat at video games? Computer says no. Because the corporation said so.

Averting that world is my objective. It's the reason why I wrote all these comments. The computer must say yes at all times.


> That's what they would reduce our PCs to.

As I've spent weeks of my life getting kernel modules to build/sign/release properly in a secure boot environment :D


I don't see how public servers and matchmaking are an issue. The public servers that are known to tolerate cheaters are themselves just going to get a bad reputation.

The issue is the kind of game that doesn't allow you to host public servers, and which instead has an automatching system with an undisclosed algorithm.

And since this also tends to be the kind of game that has DRM, doesn't even allow offline/private servers (is online only), and worse, engages into microtransactions and gambling, the sooner these games are made illegal, the better off the society will be.


> I don't care enough about most games to even consider it

Well yes, but millions of people feel otherwise.

Why do you think that game developers have some nefarious reasons for this and want to usurp your computer? To what ends?

I mean sure the current approach is flawed in many ways however without it many multiplayer games couldn’t really exist in their current form i.e. public servers, matchmaking etc. would become near impossible since the experience for most users would become extremely unenjoyable.

> pirates and cheaters get none of that

True in regards to single player games but I’m not sure how do you think this would work for multiplayer games? How can cheaters bypass the anticheat root kits and still play onlie?


> Why do you think that game developers have some nefarious reasons for this and want to usurp your computer?

Because that is what they do. They think we are all potential cheaters who need to be preemptively stopped and controlled lest we crack their games open. They feel absolutely justified in doing whatever it takes to "ensure" their precious games aren't "tampered with". There are no limits they wouldn't cross.

It's just what I've come to expect from the copyright industry as a whole. Our computers already come pwned straight off the factory just to appease "content creators". We really don't need game companies making the situation even worse.

> To what ends?

It doesn't matter. The result is we have to install their rootkits to play games we paid for. There are no excuses for that.

> many multiplayer games couldn’t really exist in their current form

Not a big deal. Maintaining control over our machines is more important. If that's the price I'll pay it gladly.

> How can cheaters bypass the anticheat root kits and still play onlie?

You'd have to ask them. I'm far from an expert on the subject. I just know that whatever it is that they do no doubt leads to their customers having to put up with a lot less game company malware than they would have needed to otherwise.


Unfortunately, you're not going to change any minds here. I've tried and failed to take this principled stand here, too. People (especially gamers) are willing to excuse anything game companies do as long as they at least say it's in service of "preventing cheating."

These rootkits are now considered the cost of admission to playing games, because gamers won't fight the practice, and they hate cheaters so much they are willing to accept anything.

Also consider: HN is full of software developers. If it's a choice between "What Software Developers Want To Do To Your Computer" and "What Users Want To Stop Them From Doing," HN commenters tend to be strongly on the side of the developers.



Yeah. It's incredibly depressing.

Thanks for replying. It's good to know that I'm not alone. That's the real reason why I comment these things.


You're not remotely alone here and it's sad how rare this sentiment is.

I completely agree with you.

I feel like I'm taking crazy pills because if you apply this situation to pretty much any other consumer product it gets ridiculous fast. What if a car doesn't allow you to turn off an approved road? What if it limited your speed to posted limits? What if you could only use fuel from one brand of station? If parts used DRM so the dealership had to do your brakes and any repairs?

All of these things would cause a massive backlash.

But computers are so hard people can't be trusted with them. It's just nuts.


I was so confused reading those as well. I'm concerned how it's even moderately acceptable to anybody.

Does steam run on GNU/Hurd?

People really need to stop bringing this up. We've got billionaires mocking this guy. The OpenAI CEO tried to make an example of "haters" out of him.

https://zedshaw.com/blog/2018-03-25-the-billionaires-vs-bran...

This isn't right, "good sport" or not. It doesn't reflect well on this community.


Because I hate cooking.

> I'd start with a 20 character buffer (because int64 will never need more)

Just in case anyone is wondering, this is because the maximum number of decimal digits for a given number of bits is given by:

  digits(bits) = ceil(bits * log10(2))
This can be generalized to any number of bits.

  digits(32)   = 10
  digits(64)   = 20
  digits(128)  = 39
  digits(256)  = 78
  digits(512)  = 155
  digits(1024) = 309

Wish I had known about this article last year when developers added debouncing to the Sensor Watch project. I had to learn a lot of this from scratch in order to review and merge in their changes.

I'm still running their code right now on my watch. It uses timers to allow the switch to settle before triggering input events. Dramatically improved its usability. Latency noticeably increased but without it interfaces which required holding down buttons simply didn't work reliably.


Debouncing doesn't need to delay a touchstart event, in general, so latency shouldn't really increase in a carefully designed system, especially if you can be animating in advance of the touchend event.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: