To be fair, I tried to create an Instagram account with my own website's domain as e-mail address, because I didn't want to use my phone number. When I tried to confirm my e-mail I got a simple "there was an error, try again" message. I looked it up on Google and it seems they just instantly suspended my account. I had to login in the account that I didn't even know was created to see I was suspended, so I could appeal, only to get told to confirm my e-mail again, and then they asked me to link a phone number, by which point I gave up. I hear they may even require a photo on top of that.
Looking at all those screenshots, I have no idea what this game even looks like. Is it 2D? 3D? Somehow less informative than the trailers they put in steam pages...
Also, oh my god, they changed the old :) icon to an emoji. This is worse than having ads or being pay to win.
Honestly, I don't even get why I need an online search engine to look up things because most of the time I just want examples of how to do X in programming language Y or the documentation of library Z.
It's not an infinite number of webpages. Someone could just put all those links into a .json and make an applet that let you instantly look up any of them.
> Then you go use linux and everyone copy-pastes commands other people wrote straight into the terminal.
This is exactly the same bias in action. When I started using Linux nobody was doing that, and even if somebody gave you a script, its actions were verifiable by reading the relevant man pages.
I still don't run install.sh files I didn't read or at least skimmed, for example.
Do you also audit the sources of the programs installed by that install.sh? Do you make sure the binaries and sources match? If not, why? What makes the shell script so special that it must be audited with care, but the binaries are fine?
I do not use any "install.sh" that installs freestanding binaries. All of the ones I use just sets up repositories, and I make sure that the repositories are the correct/legit ones. If I have to install a freestanding binary, I compile it from source and install.
Since all the repositories are signed there must be a big breach to compromise these packages since the infrastructure is generally distributed. Different servers, keys, etc.
> What makes the shell script so special that it must be audited with care...
Because I need to know what changes I'm incorporating into my system(s), and plan accordingly, or prevent any change which is not in line with my system administration principles.
> ...but the binaries are fine?
They are not fine, but they are signed at multiple levels and checksummed, so they are a lower risk.
Your risk model is kinda perverse. You're saying you trust package maintainers because they sign things. So if I send you a signed script that checksums itself before running will you run that without audit?
It’s trust all the way down and always has been. You just have a different idea of how you formally signal and convey trust than someone else.
I paste commands into the terminal because I can read exactly what they do and they are delivered over a connection where my user agent has verified the TLS certificate of the server. In fact I’m electing to trust directly rather than transitively the source of the software.
The only thing signed files prevents is modification in transit (and at rest on macOS/iOS and Windows, Linux doesn’t do that). Linux is ripe with time of check vs time of use race conditions.
I think I failed to make myself clear. I don't trust the package maintainers, I trust the supply chain and the process.
For example, a well maintained APT repository contains multiple levels of signatures, and these signatures are stored in a keyring. You import the keyring, and it contains public key of every package maintainer, plus the repository manager. So, package maintainers sign their packages, and repository maintainer signs the repository, plus the packages via their checksums. Packages' own signatures and own checksums provides consistency and authenticity checks, and repository maintainer's signature makes sure that nothing in the repository moves after the repository is signed and published.
So, you have to compromise at least two private keys (or two people) to compromise a repository. If you're working with a critical repository, you can use "m of n" scheme for the repository signing keys, so you need to compromise m+1 people to do something nefarious.
> So if I send you a signed script that checksums itself before running will you run that without audit?
Hard no. You don't have a verifiable chain behind that script. Even if you do, scripts are always read and examined. Period.
> I can read exactly what they do and they are delivered over a connection where my user agent has verified the TLS certificate of the server.
Yes, a TLS certificate guarantees that MITM is impossible for now. But it doesn't guarantee that server has not been compromised and the file changed at rest. We have seen that happened in the past.
> The only thing signed files prevents is modification in transit ...
No. Both RPM and APT repositories' signature chains ensure that files are not modified at rest or at transit, plus the files are put into the repositories with an approval of a real human being.
These signatures are tip of a "web of trust" iceberg, and not mere automated signatures.
Moreover, if a software doesn't inspire confidence and doesn't pass the smell test, it doesn't get installed on my system anyway, regardless of its form.
If I have to install it, I install it to an isolated VM, and destroy the VM as soon as my work is done with it.
I think the replies saying how terrible this is are missing it. The Linux community is a high-trust community and has continuously earned that trust over and over again. The times when it's been broken are so few it's newsworthy each time it happens.
Anyone who's like "well I don't copy/paste shell code into my terminal" is just virtue signaling. I'm willing to bet their editor Vim/Emacs/VSCode is overflowing with plug-ins and code written by just some guy on Github. I bet they've ran containers that are written by just some guy too.
It's a really cool feature that you can just download a random binary off Github, run it, and not really have to worry about it.
> everyone copy-pastes commands other people wrote straight into the terminal
I know a lot of people that use Linux and not many of them operate this way. Most care about their software sources. "Everyone" is certainly not the case.
And yet when I complained about `curl | sh` on HN the other day, I got ridiculed. "Everyone" is too much, but even on a purportedly "hacker" website, people find the idea of perusing a shell script before executing it preposterous.
Something that's hard to remember, but helps a little: if you get 3 people saying stupid things, that's only 3 people -- not necessarily representative of the people out there.
But `curl | sh` is no less secure. Download this file and execute it. Functionally the same outcome. Tell me how doing that is materially different than `apt get`. Both employ signing and checksums (just with different PKI). One delegates trust to a package maintainer while the other trusts the author directly. I truly don’t understand the paranoia and consider it tinfoil hat security theater.
It’s worse than that. Find a random blog that gives you shell commands that add random repositories to your apt sources.list, adds the ssl keys, and installs packages from the repo, all through a paste to the command line.
>these days, you want to write the code for modal dialogs as if they were not modal, even if to the user they prevent interaction with other parts of the program
I'm never going to use a toolkit that can't guarantee a modal is modal.
The problem with nested event loops is that there can always be timers or idle callbacks that fire while the nested event loop is running. Back in the day where windows were rendered on demand, you could also get expose events just because the user moved another window around.
So at the code level, "modal" windows are fiction and have always been. Getting rid of nested event loops is cleaner because it forces you to get to grips with the fact that (for the programmer, not the user) everything is asynchronous in an event-driven architecture. Plus these days programming languages have better tools to deal with the asynchronicity.
Why does everyone have to make it so hard? All I want is literally the widgets Windows had 20 years ago in all platforms. That's all.
I don't even need the ribbon.
And now GTK has sliding tabs with animation effects I have to install tweaks to turn off. To begin with, why is tweaks even a thing? This should all be in the normal control panel! I can't believe I used to hear criticisms about the windows registry when in linux I need to install 2 different regedits to make the GUI look bearable.
It is in the normal control panel, see "Reduce Animation" in the accessibility page.
>All I want is literally the widgets Windows had 20 years ago in all platforms.
This seems to me a very bizarre request. I mean, you can literally do that already: write Windows apps using the old user32 APIs and run them in Wine. But then they will look and behave really out-of-place on non-Windows platforms when all your other apps are using the native toolkit.
>write Windows apps using the old user32 APIs and run them in Wine
Honestly, to me this is the actual choice. I've tried using graphics gale (a win32 app) and fire alpaca (a qt app) on linux. Fire alpaca didn't work. Neither the app image nor the windows version on Wine. But graphics gale worked flawlessly.
The future of crossplatform is just everyone writing Win32 API apps, just like every language communicates by a C api.
I can't agree with that, Wine has been around for a long time and it never really took off for that use. IMO the future of cross-platform is still the web, because "cross-platform" also includes smartphones now.
>Neither the app image nor the windows version on Wine.
That is more the developer's fault. AppImage is a very broken distribution method and IMO it should never be used.
I'm doing exactly this. To me, most native apps look out-of-place and I avoid if possible. I just wish running apps in wine wasn't so slow compared to windows.
>To me, most native apps look out-of-place and I avoid if possible
That doesn't make sense, "out-of-place" here means with respect to the rest of the system and the shell. Doing things that way is guaranteed to result in an inconsistent desktop, so maybe you can understand why that won't really be a supported thing.
For a while I actually used to do something similar to what you're doing. In the early 2000s when OS X was the new thing, I had gotten used to the Mac. So for a while I would only use Qt apps with a Mac-style theme and I would get really upset if something didn't work with it. But I stopped eventually because I realized I was being unreasonable and frustrating my own computer usage for no benefit. IMO it's helpful to recognize when you're in a harmful thought process and break out of it.