• 0 Posts
  • 56 Comments
Joined 1 year ago
cake
Cake day: July 1st, 2023

help-circle


  • Don’t use JSON for the response unless you include the response header to specify it’s application/json. You’re better off with regular plaintext unless the request header Accept asked for JSON and you respond with the right header.

    That also means you can send a response based on what the request asked for.

    403 Forbidden (not Unauthorized) is usually enough most of the time. Most of those errors are not meant for consumption by an application because it’s rare for 4xx codes to have a contract. They tend to go to a log and output for human readers later, so I’d lean on text as default.


  • Women are so cute and the best chance I can get the kids to be able to get the kids to be able to get the kids to be able to get the kids to be able to get the kids to be able to get the kids to be able to get the kids to be able to get the kids to be able to get the kids to be able to get the kids to be able to get the kids




  • I just recently started working with ImGui. Rewrite compiled game engines to add support for HDR into games that never supported it? Sure, easy. I can mod most games in an hour if not minutes.

    Make the UI respond like any modern flexible-width UI in the past 15 years? It’s still taking me days. All of the ImGui documentation is hidden behind closed GitHub issues. Like, the expected user experience is to bash your head against something for hours, then submit your very specific issue and wait for the author to tell you what to do if you’re lucky, or link to another issue that vaguely resembles your issue.

    I know some projects, WhatWG for one, follow the convention of, if something is unclear in the documentation, the issue does not get closed until that documentation gets updated so there’s no longer any ambiguity or lack of clarity.




  • ShortFuse@lemmy.worldtolinuxmemes@lemmy.world-----BEGIN PRIVATE KEY-----
    link
    fedilink
    arrow-up
    15
    arrow-down
    1
    ·
    edit-2
    4 months ago

    Yeah, except for the first few bytes. PKCS8 has some initial header information, but most of it is the OCTET_STRING of the private key itself.

    The PEM (human “readable”) version is Base64, so you can craft up a string and make that your key. DER is that converted to binary again:

    /**
     * @see https://datatracker.ietf.org/doc/html/rfc5208#section-5
     * @see https://datatracker.ietf.org/doc/html/rfc2313#section-11
     * Unwraps PKCS8 Container for internal key (RSA or EC)
     * @param {string|Uint8Array} pkcs8
     * @param {string} [checkOID]
     * @return {Uint8Array} DER
     */
    export function privateKeyFromPrivateKeyInformation(pkcs8, checkOID) {
      const der = derFromPrivateKeyInformation(pkcs8);
      const [
        [privateKeyInfoType, [
          [versionType, version],
          algorithmIdentifierTuple,
          privateKeyTuple,
        ]],
      ] = decodeDER(der);
      if (privateKeyInfoType !== 'SEQUENCE') throw new Error('Invalid PKCS8');
      if (versionType !== 'INTEGER') throw new Error('Invalid PKCS8');
      if (version !== 0) throw new Error('Unsupported PKCS8 Version');
      const [algorithmIdentifierType, algorithmIdentifierValues] = algorithmIdentifierTuple;
      if (algorithmIdentifierType !== 'SEQUENCE') throw new Error('Invalid PKCS8');
      const [privateKeyType, privateKey] = privateKeyTuple;
      if (privateKeyType !== 'OCTET_STRING') throw new Error('Invalid PKCS8');
      if (checkOID) {
        for (const [type, value] of algorithmIdentifierValues) {
          if (type === 'OBJECT_IDENTIFIER' && value === checkOID) {
            return privateKey;
          }
        }
        return null; // Not an error, just doesn't match
      }
    
      return privateKey;
    }
    

    I wrote a “plain English” library in Javascript to demystify all the magic of Let’s Encrypt, ACME, and all those certificates. (Also to spin up my own certs in NodeJS/Chrome).

    https://github.com/clshortfuse/acmejs/blob/96fcbe089f0f949f9eb6830ed2d7bc257ea8dc32/utils/certificate/privateKeyInformation.js#L40

    Edit: To be specific, PKCS8 is usually a PKCS1 (RSA) key with some wrapping to identify it (the OID). The integers (BigInts) you pick for RSA would have to line up in some way, but I would think it’s doable. At worst there is maybe a character or two of garbage at the breakpoints for the RSA integers. And if you account for which ones are absent in the public key, then anybody reading it could get a kick out of reading your public certificate.




  • There is no section 15 or 16 in GPLv3, but I did find section 7 saying:

    Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or

    But that’s an optional thing that you must add onto the GPLv3 license. I’ll have to keep that in mind for the future.

    That would explain why what I’ve read mentioned it’s not guaranteed in GPLv3 (when comparing to MIT). I’ll have to figure out what that notice would look like.



  • I don’t care if people make money to use my code. I just want my name attached to it somehow, even if you make it closed sourced which is MIT and OpenBSD. I hope you do use my code and even if you heavily reference it to make something new, carry that forward so more can learn and benefit.

    I also don’t understand “better for the end user” arguments either. I have a library that people want to be included in another project, but that project is GPL. They won’t merge my code unless I change my code to be GPL. So everyone who wants them merged is out of luck. I can’t merge their code either with mine. What is supposed to happen is I freely give up my name to the code and restrict it to only being GPL and for GPL projects. Essentially, assimilate and join with the Borg. No, thanks.

    And while that’s from my experience, I’ve also seen good projects get traction, have excitement over it, and fall off the earth because they end up making it GPL. Everyone interested in adopting it, personal or business, just disappear. Then something with less restrictions comes along and gets adopted.

    End-users move to what’s better for them, and if you have a library that is only for GPL, you can end up limiting your options with a wasteful purity test. If you want it to be free you’d give freely with no restrictions. And if you think, “You can contact me to discuss licensing” that doesn’t happen. It’s still a restriction and almost nobody actually bothers.


  • ShortFuse@lemmy.worldtoMemes@sopuli.xyzMonopoly
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    6 months ago

    Stop deflecting and stop trying to gaslight me. If prisons are the same as jails in this regard then why dispute? Why even bring it up? You’re retroactively trying to save face.

    I am fully aware how prisons and jails are similar and how they are different. You’re the one who was trying to correct somebody and then got downvoted to oblivion.

    Oh, but now you were just randomly bringing an unrelated technical point about how prisons can hold innocent people now that you’ve been confronted with the facts. /s


  • ShortFuse@lemmy.worldtoMemes@sopuli.xyzMonopoly
    link
    fedilink
    arrow-up
    0
    ·
    6 months ago

    I don’t have to distract with cheap ad-hominem attacks when I can quote your words right back to you:

    Prison. Not jail.

    Jails are temporary holding areas until you get to see a judge. Which means you could still be innocent at that point.


  • ShortFuse@lemmy.worldtoMemes@sopuli.xyzMonopoly
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    6 months ago

    Yep. That’s the right definition. Not what you said. You said jail is for innocent people. You also said the definition doesn’t differ no matter where you are and the link clearly defined the US can have a different interpretation (see interchangeable use).


  • ShortFuse@lemmy.worldtoMemes@sopuli.xyzMonopoly
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    6 months ago

    You should read what you link to (emphasis mine).

    Jail and prison are often used interchangeably as places of confinement. If you want to be specific jail can be used to describe a place for those awaiting trial or held for minor crimes, whereas prison describes a place for criminals convicted of serious crimes.

    You said:

    Jails are temporary holding areas until you get to see a judge. Which means you could still be innocent at that point.

    You can be convicted and in jail, which makes perfect sense in Monopoly, since it’s generally for a shorter period of time. They are both synonymous for the purpose of imprisoning somebody but different on how drastic the crimes you are behind bar for. In my opinion you should be in jail for minor crimes and not put in prison and it’s perfect for Monopoly.