I’m Hunter Perrin. I’m a software engineer.

I wrote an email service: https://port87.com/

I write free software: https://github.com/sciactive

  • 5 Posts
  • 261 Comments
Joined 2 years ago
cake
Cake day: June 14th, 2023

help-circle









  • I didn’t say basic. I said bad. HTTP 1 is a good protocol. ActivityPub is not. Read both the specs if you don’t believe me. I have.

    There’s not a single point in HTTP 1 that I thought, “what the fuck does that mean?” There are several in ActivityPub. ActivityPub also has several areas that are ambiguous. Ambiguity is bad in a specification.

    ActivityPub tries to support everything, and has no defined behavior for when a client doesn’t support whatever thing it just received.

    It also uses JSON-LD, which isn’t necessarily bad, but defeats the purpose of JSON by making it too complicated to easily write by hand.

    This is not easy to write, read, or parse, or build:

    {
      "@context": {
        "name": "http://xmlns.com/foaf/0.1/name",
        "homepage": {
          "@id": "http://xmlns.com/foaf/0.1/workplaceHomepage",
          "@type": "@id"
        },
        "Person": "http://xmlns.com/foaf/0.1/Person"
      },
      "@id": "https://me.example.com/",
      "@type": "Person",
      "name": "John Smith",
      "homepage": "https://www.example.com/"
    }
    



  • If it’s just hours, that’s fine. I’ve spent months on a system before that ultimately got scrapped. When I was at Google, they accidentally had two teams working on basically the same project. The other team, with about 40 engineers, having worked on it for about a year, had their project scrapped. My team was meant to do the same work, with about 23 engineers. So if you’re ever wondering why Hangouts Chat launched kinda half baked, that’s why.