HN user

alex7734

666 karma
Posts0
Comments128
View on HN
No posts found.

After a point, does it matter? Even assuming that models can keep getting smarter indefinitely, it's not like you need to use the smartest model to get the job done.

Moore's law is dead now, so at some threshold purchasing the GPUs to run the biggest and newest model hurts you more than whatever rent you could've extracted from it.

When we get there, why would you want to run a closed model that you can't control, with restrictions you can't remove, that a company can take from you or silently nerf without telling you?

Helpfully eSports players tend to have video captures of their gameplay, and most of these "undetectable" cheats are real obvious if you actually watch the footage. That catches most of the serious stuff at the upper level. It's why video verification has been a thing in the speedrunning scene for such a long time.

There's a subreddit called /r/vacsucks which is full of pro players blatantly cheating and getting away with it while the rest of the idiots think they're just good players.

Or, depending on your point of view, full of idiots flagging any player better than they are as cheating.

Aimbots can be "humanized" enough that any such determination becomes subjective.

No forced updates, no downgrade prohibition, no bootloader locking, kernel GPL compliance (with drivers that can be loaded in it, even if they are closed source), no remote attestation.

The bare minimum so that I can use the device I bought as I wish, even if the manufacturer later decides to "alter the deal".

Google loves doing this.

If you dare turn off Play Protect for example, you will be asked to turn it on every time you install or update anything. Never mind that you said no the last thousand times it asked.

I am happy my iPhone doesn't allow Meta to say "to use WhatsApp, you must install the MetaStore®, give it root and install it from there". I would not be happy with those restrictions on my desktop.

You fix that by making root access inconvenient enough that companies can't rely on the average random user having it enabled.

For example force you to wipe the device to unlock it as another person said in another comment. Or make it so that if you don't unlock it within 7 days of the device purchase and first boot, you cannot unlock it anymore.

This, or even sell "dev units" with the bootloader unlocked so that you explicitly have to accept the risk before purchasing the device.

The problem though is that rooting by itself is not that useful when a lot of apps use remote attestation to deny you service if you're rooted.

We don't just need root access, we need undetectable root access.

A few years ago everyone that had ever used a computer knew what a file and a folder was and could move a document to an USB drive.

Thanks to the efforts of Google to "simplify" smartphones the average young person now couldn't find and double-click a downloaded file if their life depended on it.

In the US, a manual car is considered an anti-theft device. In Europe, basically everyone that isn't obscenely rich has driven a manual car at some point.

People learn what they're expected to learn.

Currently, no. But once (undetectable) OS modification is no longer possible, making the undecrypted media unreadable is just a few API restrictions away.

In Android phones for example you cannot screenshot banking apps. And if you root (modify the OS of) your phone, banking apps refuse to work.

Encrypted monitors can be countered by a high quality video camera mounted on a tripod behind your chair or on a wall or ceiling

Expensive, yes, but at that point you're already spending real money on a second computer with a GPU to do computer vision on the game video stream, so...

Not having an automatic transmission means there are less ways in which a manufacturer can screw up your car's performance in the name of emissions.

This is obviously less relevant in America where you can still buy fast cars without being murdered by taxes.

- AI answers are much easier and faster to produce thus it's going to produce a lot more wrong answers by sheer volume.

- AI answers are grammatically correct and verbose so it looks like the poster put effort into it which deceives people into thinking the answers is more trustworthy than it is.

Barring trolls, humans (for the most part) only answer if they think they're right, and the more effort put into the answer the more likely they don't get it wrong.

But why spend so much time to make it worse?

    on_click() {
        if (last_one()) alert('You must keep at least one item selected.');
        else actually_toggle_it_off();
    }
Simple. Does not need fancy code. User immediately knows what he has to do, with no thinking required.

For projects where I can't trust that the people involved can deal with submodule bullshit correctly I just use these git aliases:

    box = !cd ${GIT_PREFIX:-.} && git config --get remote.origin.url > .gitboxinfo && git rev-parse --abbrev-ref HEAD >> .gitboxinfo && git rev-parse HEAD >> .gitboxinfo && mv .git .gitbox && git add -f .gitboxinfo && true
    unbox = !cd ${GIT_PREFIX:-.} && mv .gitbox .git && true
Then I add the .gitbox folder to gitignore. Whenever I need to interact with the "submodule" repo I unbox, otherwise I leave it boxed and as far as everyone else in the project is concerned, the dependency was just copied n pasted in the project.

If you ever need to regenerate the gitbox folder from scratch you can take a peek at the gitboxinfo file and git clone and reset the dependency repo in a temp folder, then move the git folder next to the gitboxinfo file.

Plus unlike submodules with this you can have local changes to the submodule files without having to fork the submodule itself.

There are ways to solve this without killing off the ability to root phones if this was really about users' safety.

You could for example make it so that phones could only be unlocked within a few days of the purchase (first boot) date, and put a scary warning on it. That'd put a stop to 99% of people being tricked into unlocking it.

You could also put a scary warning on boot that allowed anyone to tell it was rooted to stop people selling them while rooted.

The point of blocking rooted phones isn't "security", it's to maintain control of the user experience.

You could say the same about memory protection and isolation, and yet, here we are.

While it also serves as a security mechanism the most important benefit of memory protection is that it protects against processes *accidentally* corrupting other processes due to mistakes, invalid pointers, etc.

If you want to intentionally mess with other processes memory most OS give you the means to do it in a controlled way, with ptrace in Linux or WriteProcessMemory in Windows, because sometimes it is a useful thing to do.

The problem with Wayland is that they veto useful features they aren't interested in (that admittedly if misused could be a security problem or at least a nuisance) and they don't give any alternative way of doing them, choosing instead to punt the problem downstream to the compositors, who will each do them (or not) in a different way making the whole thing a mess.

Like I said, just take a look at Android. If you don't have an approved ROM you cannot use banking apps. Or Netflix. Or play most gacha games.

Riot Games's anti-cheat for Valorant will already not let you play if you don't have a TPM and Secure Boot enabled, and I'm pretty sure you need to have factory (Microsoft) keys for it to work.

Google has recently backtracked on their WEI API proposal which would give websites access to TPM remote attestation, but it will be back once people cool off. Once it's released you can count on every website with ads (like YouTube) to slap it on just to ensure you don't block them.

The list of things you cannot do on your Linux box will just keep increasing over time.

BS why?

Can a TPM not be used to remotely attest that you are running an unmodified OS and a TPM device that has been approved by the DRM implementer, before handing you an encryption key that never touches the disk?

Can you not restrict the list of approved OS to those that do not allow root/kernel access to the user?

Can you not restrict the list of approved TPMs to those that cannot be "easily" compromised? (i.e. only allow TPMs in the same die as the CPU)

Just because it's not used today does not mean it won't be used tomorrow. Microsoft has not completely pushed this through yet because they know that half of their userbase are pirates. But they are making preparatory steps for it, such as blocking systems without TPM or older CPUs out of Windows 11.

Just look at Android to see what it will look like in a few years.

I would agree with that if most of the costs of YouTube were paying the creators, but my guess is they're not. If YouTube gives, for example, Vimeo the chance to become big enough and they just happen to be more efficient than YouTube and also decide to pay the creators just a little bit more than YouTube, isn't it even a tiny bit reasonable that maybe Vimeo could gradually replace YouTube in the future?

Of course Vimeo would have to fight off adblockers too to compete in money extraction with YouTube but that's not my point, my point is that YouTube now has a monopoly and any actions that threaten that, such as strongarming people into watching 3 preroll unskippable ads, are in my opinion silly and self-defeating.

They're just too greedy. If they made the price of YouTube Premium something reasonable ($1 or $2 a month instead of $14 or whatever it is) they would get a lot more subscribers and probably even get more revenue. $1 or $2 is not worth spending even 10 minutes digging in obfuscated JavaScript to fix an adblocker, so this whole thing would go a lot smoother for them if they charged that. Even if $14 is not a lot people just don't want to pay that much.

I'd rather stop watching YouTube than start watching ads. I disabled my adblocker to see how bad is it and it is truly disgusting, I cannot conceive how people can enjoy YouTube with so many ads.

And before you say "just pay YouTube Premium", no, the moment a majority of people start paying $10 (or whatever it is) for YouTube Premium, Google is going to add ads to it again and make you pay $20 for YouTube Premium For Real(TM) to get rid of the ads (and/or just make the free tier miserable to prevent people from stopping paying). Google has proven that it is not above abusing the user to get money and there's no reason not to abuse the user further once you have them hooked after all.

This is happening to me in Chrome as well so I don't think it's tied to the browser you use.

Curiously it happens only on one profile, in another Chrome profile (which is also logged in to the same Google account) it does not happen. Both profiles run the code in your comment, but the one that does not have the delay does not wait for it to complete.

The only difference I spotted was that the profile that loads slowly does not include the #player-placeholder element in the initial HTML response. Maybe whether it sends it or not is tied to previous ad-blocker usage?

What does piss me off is that even if you clear cookies and local storage and turn off all extensions in both profiles it still somehow "knows" which profile is which, and I don't know how it's doing it.

It's really not very hard, basically add indexes

It's really not but you'd be surprised how many people don't know the basics of how indexes work. I've had people tell me that their queries couldn't be optimized further because "they had already added an index for every column of the table".

It doesn't help that SQL, by design, hides the actual algorithm doing the data access from the users while simultaneously relying on them to add indexes to achieve performance, which is in my humble opinion the worst mistake of SQL.

The idea is that you use a breakpoint somewhere where you have a reference to the function to see it then paste the search() function in the debugger console and call it to find it in window

The browser does not know the path. Also, if the function (or one of its parents) is in a closure, there may not even be a path to the function from window.

If you're sure the function is reachable from window you can search for it recursively:

    (function () {
        function search(prefix, obj, fn, seen = null) {
            if (!seen) seen = new Set();

            // Prevent cycles.
            if (seen.has(obj)) return false;
            seen.add(obj);

            console.log('Looking in ' + prefix);

            for (let key of Object.keys(obj)) {
                let child = obj[key];

                if (child === null || child === undefined) { 
                } else if (child === fn) { 
                    console.log('Found it! ' + prefix + '.' + key); 
                    return prefix + '.' + key;
                } else if (typeof child === 'object') { 
                    // Search this child.
                    let res = search(prefix + '.' + key, child, fn, seen);
                    if (res) {
                        return res;
                    }
                }
            }

            return false;
        }

        // For example:
        let fn = function() { alert('hi'); }
        window.a = {};
        window.a.b = {};
        window.a.b.c = {};
        window.a.b.c.f = fn;
        return search('window', window, fn);
    })();