• 5 Posts
  • 573 Comments
Joined 6 years ago
cake
Cake day: January 21st, 2021

help-circle


  • We actually do. Libraries are traditionally named something like libfoo1.2.3.so. Then there are symlinks from libfoo1.so and libfoo1.2.so. This way you can depend on libfoo1.2.so and it works fine even if the user has libfoo 1.2.6.

    Now there are lots of problems here.

    1. It would require distros to ship multiple versions. This is a lot of maintenance work so it typically only done for very core libraries.
    2. It requires applications to accurately express their dependencies.
    3. It doesn’t work very well for version ranges beyond patches (I need at least version 1.2, but version 1.3 is also fine).
    4. It requires the library maintain binary compatibility which is difficult to do in C and C++.

    So yes, shared libraries and careful management is more elegant and efficient. But like so many things worse is better so “It works on your machine? We’re shipping your machine”.




  • If you only take the bottom (lowest) 1% of all frame rate measurements (and average them)

    I don’t think that is the methodology. I think it is taking the 99th percentile frame time. So basically if took the time it took to generate every single frame this is the time that 99% of frames were faster than and 1% were slower than.

    If this number goes down it means that the worst frames are less bad. This is a pretty important part of the experience as even if you have good average frame time (and decent FPS) having a few slow frames really makes the game feel choppy and can make precise inputs difficult.


  • Honestly AI has been used for moderation for decades. The newer models will be quite effective. It could be very useful for limiting lower effort spam. Sure dedicated spammers will figure it out and get by it but as the models get better that will get harder.

    Of course like every use of probabilistic technology like AI it should still go to human review. We shouldn’t be shadowbanning people because computer said no. But holding suspicious posts in a review queue for the moderators seems quite reasonable (much like they already do with their current systems).

    Honestly this sounds more like an investor update showing how innovative we are using modern technology and how it is going to really improve the platform and stonks will go up up up than any meaningful change to their current moderation systems.


  • In theory it is safe. When a Nix package is built it isn’t “installed”. Unless root is running/installing random packages out of the Nix store there is no problem. As long as the user’s aren’t added to the trusted-users option they shouldn’t be able to cause any problems for other users.

    However like any multi-user system you are sharing a Linux kernel. A kernel is a very complex piece of software with a huge attack surface. Privileged escalation vulnerabilities are commonly found. (This also applies to the nix-daemon, but it is a bit smaller attack surface but vulnerabilities are still occasionally found.) So you shouldn’t assume strong security isolation. I would say that a setup like this is acceptable for mostly-trusted people like coworkers or friends that are not expected to actively exploit vulnerabilities but definitely wouldn’t let random unknown users use the system.

    So if you want strong isolation use a VM or separate hardware, but then you won’t be able to share the builds and packages defeating the point in this case.







  • declaring multiple variables is less error-prone than in C. In C, the following declares x to be a pointer, but (surprisingly at first!) y to be a normal integer:

    int* x, y;
    

    Whereas the equivalent in Go does what you’d expect, declaring both to be pointers:

    var x, y *int
    

    I don’t think this is a related at all. C could have easily decided that the definition makes both x and y pointers. They just decided not to so that you can declare more variables on one line by being able to do int x, *y, **z, .... It is more flexible.

    Similarly that Go line could have been parsed like var x, (y*) int if they wanted to. They just made a different choice.


  • I’ve definitely ran into the situation where I fucked something up half-way though installing a new distro, then had to wipe it to go back to an old distro so that I could access the internet and find out what I did wrong so that I could start from scratch.

    I hate doing debugging on my phone, but man sometimes is it better than the alternative.




  • I understand that this is frustrating but it is arguably the right option. If the correct owner can recover the account without TOTP then the TOTP isn’t really protecting the account.

    Of course there are various ways to authenticate and it can make sense to have authentication to be (username + password + OTP) OR (email verification) but for a lot of people that email verification is a weaker link. It is more secure to only allow the former.

    What I wish is that more sites would document their account recovery procedure. Often times they ask for a phone number for verification or notifications and that silently becomes a backdoor into the account. Even better would be if users can select what authentication combos are supported on a per-account basis (there are a few companies with “lockdown” settings that are a simplified version of this).

    Of course it then becomes important to make it clear to the user “if you ever loose you X your account is forever lost”. It shouldn’t be surprise.