Skip to content

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

the first thing you need to accept in an open world is that people will say and do different things.

Uncategorized
13 1 0
  • the first thing you need to accept in an open world is that people will say and do different things. if you operate under the assumption that everyone shares the same understanding you will quickly have problems. but rather than trying to get everyone to say and do the same things, you should instead be able to establish *equivalences*. you don't all say the same thing, but you recognize that the same thing might be said in different ways, and you have to translate the meaning across contexts.

  • the first thing you need to accept in an open world is that people will say and do different things. if you operate under the assumption that everyone shares the same understanding you will quickly have problems. but rather than trying to get everyone to say and do the same things, you should instead be able to establish *equivalences*. you don't all say the same thing, but you recognize that the same thing might be said in different ways, and you have to translate the meaning across contexts.

    if you try to make everyone say the same things, you actually make the problem worse, because people are going to end up saying the same thing but with different meanings. you get consistent vocabulary but inconsistent meaning. this is otherwise known as ambiguity or equivocation.

  • if you try to make everyone say the same things, you actually make the problem worse, because people are going to end up saying the same thing but with different meanings. you get consistent vocabulary but inconsistent meaning. this is otherwise known as ambiguity or equivocation.

    this is basically what happened with activitystreams as it gets used in fedi. the terms are defined by the w3c, but softwares don't use those definitions strictly. they have local concepts and abstractions, then they try to use whichever as2 term they feel is suitable. the mistake is assuming everyone else will inverse-map the as2 term to the same local concept or abstraction.

    it would be better to just be explicit and describe/define your own local concepts instead of enforcing a lingua franca

  • this is basically what happened with activitystreams as it gets used in fedi. the terms are defined by the w3c, but softwares don't use those definitions strictly. they have local concepts and abstractions, then they try to use whichever as2 term they feel is suitable. the mistake is assuming everyone else will inverse-map the as2 term to the same local concept or abstraction.

    it would be better to just be explicit and describe/define your own local concepts instead of enforcing a lingua franca

    example: mastodon maps its Status to as:Note and its Account to as:Person or as:Service. what if it didn't strictly need to? when federating with another mastodon-like processor, the translation is unnecessary; when federating with a processor with a divergent interpretation, it can even be incorrect. what mastodon wants to know is if the Thing is a Status, but it can only be told the Thing is a Note. this makes it impossible to have a Note that isn't a Status, or a Status that isn't a Note.

  • example: mastodon maps its Status to as:Note and its Account to as:Person or as:Service. what if it didn't strictly need to? when federating with another mastodon-like processor, the translation is unnecessary; when federating with a processor with a divergent interpretation, it can even be incorrect. what mastodon wants to know is if the Thing is a Status, but it can only be told the Thing is a Note. this makes it impossible to have a Note that isn't a Status, or a Status that isn't a Note.

    if mastodon had its own defined processing model that looked for its own defined terms (or their equivalents!) then this would be less of an issue. the problem with activitystreams is that its intended processing model is a) not formally defined/described in the spec, b) fundamentally different than mastodon's processing model.

    activitystreams actually made more sense as an extension to atom, because in that case you are basically saying that a Thing is both an atom:entry and an as:Activity.

  • if mastodon had its own defined processing model that looked for its own defined terms (or their equivalents!) then this would be less of an issue. the problem with activitystreams is that its intended processing model is a) not formally defined/described in the spec, b) fundamentally different than mastodon's processing model.

    activitystreams actually made more sense as an extension to atom, because in that case you are basically saying that a Thing is both an atom:entry and an as:Activity.

    your typical atom processor could understand the atom:feed and look at each atom:entry for its atom:content. but your activitystreams 1.0 processor could look for the activity:verb and activity:actor and so on. the two processing models can exist side by side in the same document. the same document can be read in different ways by looking for different terms. maybe some terms have the same value across different contexts, but are you expected to know that upfront, or told that explicitly?

  • your typical atom processor could understand the atom:feed and look at each atom:entry for its atom:content. but your activitystreams 1.0 processor could look for the activity:verb and activity:actor and so on. the two processing models can exist side by side in the same document. the same document can be read in different ways by looking for different terms. maybe some terms have the same value across different contexts, but are you expected to know that upfront, or told that explicitly?

    imagine how bad it would be if as1 was specified to reuse atom vocabulary but with different meanings. you'd never be able to tell if an atom feed was an atom feed or an activity stream! you'd just run into unexpected values randomly.

    now, to some extent, these kinds of processing models and data models and semantics are typically part of the iana media type or http content-type. application/atom+xml isn't the same as a hypothetical application/as1+xml. but documents can only have one such type

  • imagine how bad it would be if as1 was specified to reuse atom vocabulary but with different meanings. you'd never be able to tell if an atom feed was an atom feed or an activity stream! you'd just run into unexpected values randomly.

    now, to some extent, these kinds of processing models and data models and semantics are typically part of the iana media type or http content-type. application/atom+xml isn't the same as a hypothetical application/as1+xml. but documents can only have one such type

    in http the content type can be negotiated with the Accept header, but when you do this kind of content negotiation, you aren't just negotiating the serialization or data format. you are also negotiating a processing model! otherwise, we would just serve everything as plain old application/json or application/xml or text/plain. these "less specific" types are relatively unconstrained on what you can do with them; they make no assumptions beyond "you will parse this with a generic processor"

  • in http the content type can be negotiated with the Accept header, but when you do this kind of content negotiation, you aren't just negotiating the serialization or data format. you are also negotiating a processing model! otherwise, we would just serve everything as plain old application/json or application/xml or text/plain. these "less specific" types are relatively unconstrained on what you can do with them; they make no assumptions beyond "you will parse this with a generic processor"

    more specific types will further constrain your processing model or semantics:

    - application/octet-stream might open in a hex editor
    - text/plain opens in a text editor
    - application/json is loaded into a json processor
    - application/activity+json is loaded into an activity processor, and also defines what terms like "actor" and "object" mean in the first place. you know that "actor" means "who performed an activity" and not "who performed a role in a movie".

  • more specific types will further constrain your processing model or semantics:

    - application/octet-stream might open in a hex editor
    - text/plain opens in a text editor
    - application/json is loaded into a json processor
    - application/activity+json is loaded into an activity processor, and also defines what terms like "actor" and "object" mean in the first place. you know that "actor" means "who performed an activity" and not "who performed a role in a movie".

    now, here's the exercise left for the reader: how do you signal that you want to process a mastodon status?

    as a hint, consider a similar question that can be asked about atom and as1. how do you request an activity stream in as1? in that case, the same document might be served for both negotiated types (atom and as1). is this possible for heterogeneous fedi processing models?

  • now, here's the exercise left for the reader: how do you signal that you want to process a mastodon status?

    as a hint, consider a similar question that can be asked about atom and as1. how do you request an activity stream in as1? in that case, the same document might be served for both negotiated types (atom and as1). is this possible for heterogeneous fedi processing models?

    well, my answer is, there are two ways to do this:

    1) everyone agrees ahead of time on what words should mean and what should be done. (this is turning the open world into a closed world.)

    2) everyone uses their own words but tries to understand the words of others. over time, equivalences are mapped, and models can evolve and perhaps converge or diverge as appropriate.

  • well, my answer is, there are two ways to do this:

    1) everyone agrees ahead of time on what words should mean and what should be done. (this is turning the open world into a closed world.)

    2) everyone uses their own words but tries to understand the words of others. over time, equivalences are mapped, and models can evolve and perhaps converge or diverge as appropriate.

    i think the missing infrastructure that makes people lean more toward 1 than 2, is that we don't have minimally-agreed-upon ways to do that kind of equivalence mapping. you have to obtain that knowledge out-of-band. the iana won't tell you which types are equivalent, and http generally won't let you say that some resource can be processed in multiple ways, and filesystems rely too much on file extensions to handle this gracefully.

  • i think the missing infrastructure that makes people lean more toward 1 than 2, is that we don't have minimally-agreed-upon ways to do that kind of equivalence mapping. you have to obtain that knowledge out-of-band. the iana won't tell you which types are equivalent, and http generally won't let you say that some resource can be processed in multiple ways, and filesystems rely too much on file extensions to handle this gracefully.

    right now, this kind of equivalence information is hardcoded into the codebases of each fedi software. if you want to understand it, you have to go reading each and every codebase you care to interoperate with. that is the source of truth. there might be some html or markdown documentation available, but it is not a source of truth.

    and of course, these fedi softwares just assume a whole lot of things that can't be safely assumed.

    what if they didn't have to assume?

    /thread

  • oblomov@sociale.networkundefined oblomov@sociale.network shared this topic on

Gli ultimi otto messaggi ricevuti dalla Federazione
Post suggeriti
  • 0 Votes
    3 Posts
    0 Views
    @rotopenguin 🤣
  • 0 Votes
    1 Posts
    1 Views
    Perché dovresti smettere di usare Face ID subitoI blocchi biometrici come il riconoscimento facciale sono facili da impostare, ma grazie a una scappatoia legale, sono più facili da aggirare per le forze dell'ordine rispetto a un codice di accesso.https://www.pcmag.com/explainers/why-you-should-stop-using-face-id-right-now@privacypride
  • Hackaday Links: February 8, 2026

    Uncategorized
    1
    1
    0 Votes
    1 Posts
    0 Views
    Hackaday Links: February 8, 2026We start this week with a bit of a good news/bad news situation. On February 6th, the Relativistic Heavy Ion Collider (RHIC) was shut down after 25 years of operation. Located at Brookhaven National Laboratory in Upton, New York, the RHIC was the only operating particle collider in the United States, and along with the Large Hadron Collider (LHC), was one of only two heavy-ion colliders in existence.So that’s the bad news. The good news is that the RHIC is going dark so that the Electron-Ion Collider (EIC) can take its place. Planned for activation in the mid-2030s, the EIC will occupy the same tunnel as the RHIC and reuse much of the same hardware. As the name implies, it will be used to collide electrons.Switching gears (no pun intended) to the world of self-driving cars, Waymo’s chief safety officer, Dr. Mauricio Peña, made a surprising admission this week during a U.S. Senate hearing. When asked what his company’s vehicles do when they are presented with a situation that their on-board systems can’t resolve, Dr. Peña explained that they would contact a human “remote assistance operator.” He further clarified that these individuals, located both in the US and the Philippines, don’t literally drive the car remotely. Still, Senator Ed Markey of Massachusetts questioned not only the company’s transparency on the issue of remote assistance, but the idea that individuals overseas could be making decisions on how vehicles should operate on US roadways.While on the subject of a hyped-up technology that hasn’t quite delivered, CNN posed an interesting question — in an article titled “No, but seriously: What’s going on with bitcoin?“, David Goldman pointed out that the cryptocurrency recently dropped below $63,000 USD for the first time in over a year and a half (as of today, it has rebounded slightly to just under $71,000). He goes on to explain that global uncertainty and rapidly improving AI technology are partly to blame, although we’re honestly not quite sure how that second one works. But more importantly, he theorizes that the market is returning to where it was before the 2024 presidential election. Then candidate Trump embraced the digital currency and promised to remove restrictions he claimed were holding it back. This naturally caused a bump in Bitcoin value after he won the White House, but as those changes have yet to materialize, the excitement is apparently wearing off.In software news, the remaining Windows users who still haven’t been beaten into submission by Microsoft will have another feature taken away from them; as of February, the operating system’s integrated 3D Viewer is officially being deprecated. The tool allows users to inspect various types of 3D files, including STLs, and was added to Windows back when Microsoft was convinced “mixed reality” was going to be a thing. Anyone who has 3D Viewer installed will still be able to use it, but it will no longer be available for download officially from Microsoft. On the bright side, the web-based alternative that Microsoft recommends seems pretty slick.Those holding out hope for life on the Red Planet will be excited to read the recent report from NASA which claims that the organic compounds discovered on Mars by the Curiosity rover can’t be fully explained by non-biological processes. In other words, while there are geological processes that could have produced some of the molecules detected, and some could have been deposited on the planet by meteorites, none of the possibilities studied could account for them all. The researchers caution that this doesn’t mean there is current or active life on the Martian surface, however, as we still don’t fully understand the timescales required to break these molecules down. Curiosity might have sniffed out the signs of life, but that life could still have died off billions of years ago.On the subject of space, a recent post about the number of satellites in low-Earth orbit by mathematician John Cook got some debate going. He runs the numbers and argues that given the current number of LEO satellites (~12,500), and the area of space that they operate in, each bird has roughly 100,000,000 km³ to itself. Not exactly the close quarters flying that we’ve been hearing so much about recently with the proliferation of satellite constellations such as SpaceX’s Starlink. That said, others were quick to point out that his math only really works out if all the satellites were evenly distributed, which is obviously not the case in the real world. So while his estimate is probably a bit too generous, it still helps put into context just how mind-bogglingly big space actually is.Finally, for those who would prefer to scroll endlessly through something a bit more intellectually stimulating than social media, check out Xikipedia. This open source project takes the content from the Simple English Wikipedia and turns it into a never ending feed that you can browse, complete with an algorithm that will suggest articles to you based on your personal interests. What do you call the opposite of doomscrolling — maybe knowledgescrolling?See something interesting that you think would be a good fit for our weekly Links column? Drop us a line, we’ve love to hear about it.hackaday.com/2026/02/08/hackad…
  • 0 Votes
    5 Posts
    1 Views
    @jez There are ways to deal with that.