• 0 Posts
  • 39 Comments
Joined 1 year ago
cake
Cake day: July 9th, 2023

help-circle
  • it doesn’t unravel the underlying complexity of what it does… these alternative syntaxes tend to make some easy cases easy, but they have no idea what to do with more complicated cases

    This can be said of any higher-level language, or API. There is always a cost to abstraction. Binary -> Assembly -> C -> Python. As you go up that chain, many things get easier, but some things become impossible. You always have the option to drop down, though, and these regex tools are no different. Software development, sysops, devops, etc are full of compromises like this.


  • You are conflating the concept and the implementation. PFS is a feature of network protocols, and they are a frequently cited example, but they are not part of the definition. From your second link, the definition is:

    Perfect forward secrecy (PFS for short) refers to the property of key-exchange protocols (Key Exchange) by which the exposure of long-term keying material, used in the protocol to authenticate and negotiate session keys, does not compromise the secrecy of session keys established before the exposure.

    And your third link:

    Forward secrecy (FS): a key management scheme ensures forward secrecy if an adversary that corrupts (by a node compromise) a set of keys at some generations j and prior to generation i, where 1 ≤ j < i, is not able to use these keys to compute a usable key at a generation k where k ≥ i.

    Neither of these mention networks, only protocols/schemes, which are concepts. Cryptography exists outside networks, and outside computer science (even if that is where it finds the most use).

    Funnily enough, these two definitions (which I’ll remind you, come from the links you provided) are directly contradictory. The first describes protecting information “before the exposure” (i.e. past messages), while the second says a compromise at j cannot be used to compromise k, where k is strictly greater than j (i.e. a future message). So much for the hard and fast definition from “professional cryptographers.”

    Now, what you’ve described with matrix sounds like it is having a client send old messages to the server, which are then sent to another client. The fact the content is old is irrelevant - the content is sent in new messages, using new sessions, with new keys. This is different from what I described, about a new client downloading old messages (encrypted with the original key) from the server. In any case, both of these scenarios create an attack vector through which an adversary can get all of your old messages, which, whether you believe violates PFS by your chosen definition or not, does defeat its purpose (perhaps you prefer this phrasing to “break” or “breach”).

    This seems to align with what you said in your first response, that Signal’s goal is to “limit privacy leaks,” which I agree with. I’m not sure why we’ve gotten so hung up on semantics.

    I wasn’t going to address this, but since you brought it up twice, running a forum is not much of a credential. Anyone can start a forum. There are forums for vaxxers and forums for antivaxxers, forums for atheists and forums for believers, forums for vegans and forums for carnivores. Not everyone running these forums is an expert, and necessarily, not all of them are “right.” This isn’t to say you don’t have any knowledge of the subject matter, only that running a forum isn’t proof you do.

    If you’d like to reply, you may have the last word.









  • This is not entirely correct. Messages are stored on their servers temporarily (last I saw, for up to 30 days), so that even if your device is offline for a while, you still get all your messages.

    In theory, you could have messages waiting in your queue for device A, when you add device B, but device B will still not get the messages, even though the encrypted message is still on their servers.

    This is because messages are encrypted per device, rather than per user. So if you have a friend who uses a phone and computer, and you also use a phone and computer, the client sending the message encrypts it three times, and sends each encrypted copy to the server. Each client then pulls its copy, and decrypts it. If a device does not exist when the message is encrypted and sent, it is never encrypted for that device, so that new device cannot pull the message down and decrypt it.

    For more details: https://signal.org/docs/specifications/sesame/




  • My usb-c ports can be a little touchy, too. The SD card slot is also really bad - the card has to be positioned perfectly to slide in, or it jams. I’m also upset that the usb-c port can only be used for charging after a full boot. It cannot be used to perform firmware updates, or even to do a ram test. This means day-to-day, usb-c can be used, but I have to keep track of the barrel charger, just in case. This, of course, was not specified on the product details page (nor, I think, that only one of the two usb-c ports could be used for charging - it’s possible I overlooked that, but still frustrating on an expensive laptop that lists usb-c charging as a feature).


  • JoeyJoeJoeJr@lemmy.mltoLinux@lemmy.mlLaptop companies: which one?
    link
    fedilink
    arrow-up
    34
    arrow-down
    1
    ·
    edit-2
    8 months ago

    I currently have a System76 laptop, and sincerely regret my purchase. When I purchased it, the Framework was not out yet - I wanted to support a company that supports right-to-repair, and figured since they controlled the hardware, firmware, and software (Pop!_OS), it would be a good, stable experience. It has not been, and support has generally been poor. I know other people have had better experiences than I have, but personally, I won’t be buying from them again.

    I haven’t personally used Purism, but former co-workers spoke really poorly of them. They were trying to buy a big batch for work, and said the build quality was awful. Additionally: https://youtu.be/wKegmu0V75s


  • grep -r string .

    The flag should go before the pattern.

    -r to search recursively, . refers to the current directory.

    Why use . instead of *? Because on it’s own, * will (typically) not match hidden files. See the last paragraph of the ‘Origin’ section of: https://en.m.wikipedia.org/wiki/Glob_(programming). Technically your ls command (lacking the -a) flag would also skip hidden files, but since your comment mentions finding the string in ‘any files,’ I figured hidden files should also be covered (the find commands listed would also find the hidden files).

    EDIT: Should have mentioned that -R is also recursive, but will follow symlinks, where -r will ignore them.


  • JoeyJoeJoeJr@lemmy.mltoLinux@lemmy.mlNew laptop
    link
    fedilink
    arrow-up
    2
    ·
    9 months ago

    The battery life and speakers will certainly be model dependent. The quality of the machine I received and the lackluster support, given the price I paid, are what I find most frustrating. The computer would be fine for ~$600, but I paid over $1000. I paid a premium expecting System76 to hold themselves to a high standard, and so far, they’ve let me down in multiple ways.

    I do recognize with a different model, the experience could be 180°, but if buying from them is a roll-of-the-dice, for me personally, that’s enough to buy from someone else next time.


  • JoeyJoeJoeJr@lemmy.mltoLinux@lemmy.mlNew laptop
    link
    fedilink
    arrow-up
    5
    arrow-down
    1
    ·
    9 months ago

    I would not recommend them. I bought a Galago Pro in 2020, and it’s been a huge disappointment. Pop!_OS was very buggy, and their support was not helpful. I ultimately installed Ubuntu, and it’s now significantly more stable, but I’m left asking the question “why did I pay a premium for a clevo, when I’m not getting anything out of the custom software or support?”

    Even with Ubuntu, it’s not a good laptop. The speakers are worse than my phone, a fully charged battery will die completely in less than a day when the laptop is suspended, it runs unbelievably hot. As a developer who depends on this machine for daily work, it’s been intensely frustrating.


  • This is not true. The GPL does not force anyone to give up their code, unless they distribute it. From the “Definitions” section:

    A “covered work” means either the unmodified Program or a work based on the Program.

    And

    To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

    And from the “Basic Permissions” section:

    You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.

    Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.

    Under the terms of the GPL, the owner can revoke your access for any violation of the license, and at their discretion, they can make that revocation permanent. The GPL does not guarantee equal treatment - an author can punish one person harshly, and another not at all. It still comes down to the author. Yes, there is a small barrier in that you have to find a violation, but if you look hard enough, you can probably find a violation - especially in large projects using libraries distributed under multiple different licenses.

    the FUTO license can revoke the license just because Rossmann says so. It is a mechanism to keep Rossmann the owner of everything that spawns from the code of the app and being the only one who can make money from it. If Rossmann doesn’t like someone who wants to redistributes the app, he can immediately revoke their license.

    Quoting from my comment here:

    They’re just trying to prevent a company from making money off the free labor of the authors. It’s the same issue that has plagued other projects, such as Elastic Search, which ultimately led it to change licenses. And it’s why MariaDB created the BSL, which they and other companies have adopted (very similar terms here - source free to use for non-commercial purposes).

    If the hangup is specifically that they can change the terms, or revoke rights altogether, the other licenses also allow for that - that’s how these projects are changing licenses at all, and it happens quite a bit. I have personally contributed to projects that were GPL, and then went Apache.

    only one who can make money from it

    This is not true. You can make and sell plugins, you could offer support, you could sell your services as a code auditor/security expert… anything other than selling the code you didn’t write. On top of that, in practice, this isn’t different from anything else - most contributors to open source projects don’t profit from them, unless they work for the organization that owns the project. When the non-owners do profit, it’s usually big companies and results in the license changes I’ve described above.


  • A user that doesn’t care about licensing is typically called a pirate.

    The license literally does not govern the usage of the app. Here’s the first line:

    This license grants you the rights, and only the rights, set out below in respect of the source code provided.

    Read the entire license (it’s only 32 lines), and you won’t find anything related to using the product, only the code.

    This license should only be scary to developers, who might build on the project, and then have it taken away. As a user, your concerns are different, and this license vs the GPL, or any other FOSS, or even source available license, are more-or-less the same. As a user, your primary concerns are probably going to be related to the security and privacy related aspects, and as long as you have access to the source, you can audit it and ensure it meets your standards. If they choose to revoke access to the code, as a user, you’re in the same boat you described - don’t take new versions because you can’t audit them, but you can stay on the old version. They can’t revoke that access with this license, because again, this license literally does not govern usage of the product.


  • repackaging is a fundamental software freedom

    Re-packaging is fine. You just can’t sell it.

    They’re just trying to prevent a company from making money off the free labor of the authors. It’s the same issue that has plagued other projects, such as Elastic Search, which ultimately led it to change licenses. And it’s why MariaDB created the BSL, which they and other companies have adopted (very similar terms here - source free to use for non-commercial purposes).

    If the hangup is specifically that they can change the terms, or revoke rights altogether, the other licenses also allow for that - that’s how these projects are changing licenses at all, and it happens quite a bit. I have personally contributed to projects that were GPL, and then went Apache.

    As a developer, I could certainly see not wanting to build on the project while the license is what it is, but as a user, I don’t think this license is bad. I also think this is likely temporary (hence the name - “FUTO Temporary License”), and the tight grip on the rights are probably just so they can re-license later (hopefully to something a little more permissive). I could definitely be wrong, but given Louis’s track record of fighting for things like right-to-repair, I’d give him the benefit of the doubt here. He could certainly prove me wrong though, if they do anything shady. Feel free to rub it in my face if he ever does.

    Edit:

    Just for proof, here’s the specific line that says you can re-package and redistribute, from section 2, line 2:

    1. You may provide the code to anyone else and publish excerpts of it for the purposes of review, compilation and non-commercial distribution, provided that when you do so you make any recipient of the code aware of the terms of this license, they must agree to be bound by the terms of this license and you must attribute the code to the provider.