modulus

joined 1 year ago
[–] modulus@lemmy.ml 3 points 1 month ago

Interesting article. I knew a bit about the split between the covenants of civil and political rights, and economic, social and cultural rights, but for example I didn't know the right to self-determination was introduced thanks to the Soviet Union.

A funny thing about the article is that it is not especially favourable to the Soviet Union--it reproduces the usual uncritical clichés--but even that makes liberals really annoyed.

[–] modulus@lemmy.ml 6 points 3 months ago (1 children)

I do not think it is a very good analogy. I do not see how this would turn into a broadcast medium. Though I do agree it can feel less accessible and there is a risk of building echo chambers.

Not so concerned on that--people being able to establish their tolerances for whom they want to talk to is fine with me. But if the system goes towards allowlists, it becomes more cliquish and finding a way in is more difficult. It would tend towards centralisation just because of the popularity of certain posters/instances and how scale-free networks behave when they're not handled another way.

It’s most likely a death sentence for one-persone instances. Which is not ideal. On the other hand, I’ve seen people managing their own instance give up on the idea when they realized how little control they have over what gets replicated on their instance and how much work is required to moderate replies and such. In short, the tooling is not quite there.

I run my instance and that's definitely not my experience. Which is of course not to say it can't be someone else's. But something, in my opinion not unimportant, is lost when it becomes harder to find a way in.

[–] modulus@lemmy.ml 9 points 3 months ago (3 children)

I'm concerned that people are already eager to bury the fediverse and unwilling to consider what would be lost. The solutions I keep hearing in this space all seem to hinge on making the place less equal, more of a broadcast medium, and less accessible to unconnected individuals and small groups.

How does an instance get into one of these archipelagos if they use allowlists?

Same thing with reply policies. I can see the reason why people want them, but a major advantage on the fedi is the sense that there is little difference between posters. I think a lot of this would just recreate structures of power and influence, just without doing so formally--after all the nature of scale-free networks is large inequality.

[–] modulus@lemmy.ml 6 points 3 months ago

It's possible FF wouldn't get away with something like integrating ad blocking by default, but in no reasonable universe were they required to do the PPA stuff and turn it on by default. Nor is it clear that it will lead to websites caring about FF compatibility--unfortunately many already don't.

[–] modulus@lemmy.ml 15 points 3 months ago (2 children)

The usual pro-advertising take. "It's ok that we're going to experiment without your consent on how to manipulate you, because we only use aggregated data so it's not personal, it's business."

[–] modulus@lemmy.ml 1 points 5 months ago (1 children)

Definitely, AP is not magic. But if even within one protocol round-tripping and full-fidelity is impossible or very difficult, that makes it only harder and less likely through a bridge.

[–] modulus@lemmy.ml 1 points 5 months ago

IMO bridging or translation isn't federation per se. Also it seems unlikely that protocols would converge to that extent. In fact AP implementations are already different enough that even within the same protocol it's hard to represent all the different activities instances can present.

[–] modulus@lemmy.ml 13 points 5 months ago (5 children)

I wouldn't really count Mastodon/Bluesky bridging as federation. They're incompatible protocols that were never intended to work together (arguably Bluesky was explicitly designed to avoid using AP).

[–] modulus@lemmy.ml 22 points 6 months ago (4 children)

For me the weirdest part of the interview is where he says he doesn't want to follow anyone, that he wants the algorithm to just pick up on his interests. It's so diametrically opposed to how I want to intentionally use social networks and how the fedi tends to work that it's sometimes hard to remember there are people who take that view.

[–] modulus@lemmy.ml 2 points 7 months ago

Ah, that does seem like it will solve the problem. Thanks!

[–] modulus@lemmy.ml 1 points 7 months ago (1 children)

Not sure I understand. What I'm trying to do is something like this:

  • Poll a stream which takes fedi events. Read player commands.
  • If an event comes from a known player, check which match they are into.
  • With that info, get their opponents/coplayers etc and perform the change of state in the game (send replies, next turn, etc).

So what I have as a key is a player name (AP username) and from that I need to find which match they're in.

There's nothing semantically useful about a match ID.

[–] modulus@lemmy.ml 1 points 7 months ago

Thanks, the RC is a possible approach. It seems to violate DRY a bit but maybe there's no way around it.

The reason I had the players outside the match is that I need them there anyway, because when I get a player action I need to check in which match they are, who are their opponent(s) and so on. So even if they're in, they'll have to be out too as there are concurrent matches and the player actions come all through the same network stream.

8
submitted 7 months ago* (last edited 7 months ago) by modulus@lemmy.ml to c/rust@programming.dev
 

I have a struct that looks like this:

pub struct Game {
    /// A HashSet with the players waiting to play as account strings.
    lobby: HashSet<String>,
    /// capacity determines  how many people a match contains.
    capacity: u8,
    /// A vector of ongoing matches.
    matches: Vec<Match>,
    /// HashSet indicating for each player which match they are in.
    players: HashMap<String, usize>,
}

I realised that this won't work because if there are 3 matches (0, 1, 2) and I remove 1 because it ends, the players that used to point at 2 will be pointing outside the vector or to an incorrect match.

So I thought the obvious solution was to use a reference to the match: players: HashMap<String, &Match>. But this makes lifetimes very complicated.

What's a good way to deal with a case like these where data are interrelated in the same struct?

view more: next ›