Just another Swedish programming sysadmin person.
Coffee is always the answer.

And beware my spaghet.

  • 3 Posts
  • 20 Comments
Joined 1 year ago
cake
Cake day: June 11th, 2023

help-circle





  • Go has a heavy focus on simplicity and ease-of-use by hiding away complexity through abstractions, something that makes it an excellent language for getting to the minimum-viable-product point. Which I definitely applaud it for, it can be a true joy to code an initial implementation in it.

    The issue with hiding complexity like such is when you reach the limit of the provided abstractions, something that will inevitably happen when your project reaches a certain size. For many languages (like C/C++, Ruby, Python, etc) there’s an option to - at that point - skip the abstractions and instead code directly against the underlying layers, but Go doesn’t actually have that option.
    One result of this is that many enterprise-sized Go projects have had to - in pure desperation - hire the people who designed Go in the first place, just to get the necessary expertice to be able to continue development.

    Here’s one example in the form of a blog - with some examples of where hidden complexity can cause issues in the longer term; https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride











  • This looks really odd in relation to other fediverse software; Why /magic and required to be on the root of the domain? Why hard-require routing the domain part of the user ID when .well-known/webfinger exists? Why is there a X-Open-Web-Auth header which the spec only describes as “its purpose is unclear from the code”?
    So many questions.

    I definitely like the idea of distributed sign-in, Solid did a decent work of that many years ago after all. This particular proposal just looks rather odd.





  • The # is a room alias, only ! denotes a room ID.

    Room IDs are the main identifier for a room, while one or more aliases can also be assigned to it for discovery purposes.
    Any server can assign aliases - and therefore also serve the room discovery, but only if the room admins allow them.

    Using the Matrix HQ room as an example; #matrix:matrix.org is the canonical alias for the room, mapping to !OGEhHVWSdvArJzumhm:matrix.org.
    If you want to join the room, you either need to know the ID and some information on which servers are currently part of the room, or you need to know a room alias - which can be used to query the server owning it in order to receive the information on the room and how to join it.

    For example; (%23 is the HTTP entity for #, since # would otherwise be handled as a client part of the URL)

    $ curl -q 'https://matrix.org/_matrix/client/v3/directory/room/%23matrix:matrix.org' | jq '.room_id, .servers[0,1]'
    "!OGEhHVWSdvArJzumhm:matrix.org"
    "matrix.org"
    "artemislena.eu"