modulus

joined 1 year ago
[–] modulus@lemmy.ml 5 points 1 week ago

At least there seems to be some change in messaging that indicates peace may be nearer.

[–] modulus@lemmy.ml 23 points 1 week ago (4 children)

It's interesting how NATO is "forced" to take action by Chinese military build-up, doesn't leave any room for China being forced to take action by NATO's military build-up. Reminds me of that recent video of previous NATO's head complaining about China placing bases close to NATO, when any NATO country is thousands of km away and China is deploying near its own coast.

[–] modulus@lemmy.ml 53 points 3 weeks ago (24 children)

I kept giving Mozilla the benefit of the doubt and telling myself things weren't so bad.

I was wrong.

I'll continue using Firefox because it's the least bad option, but I can't advocate for it in good faith anymore, and I don't expect it to last long with this orientation.

So it goes.

[–] modulus@lemmy.ml 5 points 3 weeks ago

Unfortunately this came conveniently too late.

[–] modulus@lemmy.ml 13 points 3 weeks ago* (last edited 3 weeks ago) (1 children)

There's a very good report to the UN Human Rights Council on the human rights situation in the Palestinian occupied territories, numbered as A/HRC/55/73, which has a very good section on human shields.

58. IHL strictly prohibits the use of human shields. 188 Their use constitutes a war crime, 189 as it violates the duty to protect the civilian population from dangers arising from military operations. 190 When human shields are used, the attacking party must take into account the risk to civilians. 191 Indiscriminate or disproportionate harm to civilians remains unlawful and the civilian population can never be targeted.

59. Israel has accused Palestinian armed groups of deliberately using civilians as human shields in previous aggressions on Gaza (including in 2008-09, 192 2012, 193 2014, 194 2021 195 and 2022 196 ). It also used it to justify high civilian casualties and attacks against paramedics, journalists and others during the 2018–2019 ‘Great March of Return’. 197 UN independent fact-finding missions 198 and reputable human rights organizations 199 have consistently challenged these allegations, sometimes concluding that evidence of human shields had been fabricated. 200 Nevertheless, Israel has used these accusations – sometimes then retracted to justify widespread and systematic killing of Palestinian civilians in its ongoing assault. 202

60. After 7 October, this macro-characterization of Gaza’s civilians as a population of human shields has reached unprecedented levels, with Israel’s top-ranking political and military leaders consistently framing civilians as either Hamas operatives, “accomplices”, or human shields among whom Hamas is “embedded”. 203 In November, Israel’s Ministry of Foreign Affairs defined “the residents of the Gaza Strip as human shields” and accused Hamas of using “the civilian population as human shields”. 204 The Ministry defines armed groups fighting from urban areas as deliberately “embedded” in the population to such an extent that it “cannot be concluded from the mere fact that seeming ‘civilians’ or ‘civilian objects’ have been targeted, that an attack was unlawful”. 205 Two rhetorical elements of this key legal policy document indicate the intention to transform the entire Gaza population and its infrastructures of life into a ‘legitimate’ targetable shield: the use of the all-encompassing the combined with the quotation marks to qualify civilians and civilian objects. Israel has thus sought to camouflage genocidal intent with humanitarian law jargon.

61. International law does not permit the blanket claim that an opposing force is using the entire population as human shields en bloc. Any such usage must be assessed and established on a case-by-case basis before each individual attack. 206 The crime of using human shields occurs when the use of civilians or civilian objects to impede attacks on lawful targets is the result of a deliberate tactical choice, not merely arising from the nature of the battlefield, such as hostilities in densely populated urban terrain. 207

62. Nevertheless, Israeli authorities have characterized churches, 208 mosques, 209 schools, 210 UN facilities, 211 universities, 212 hospitals and ambulances 213 as connected with Hamas to reinforce the perception of a population characterized as broadly ‘complicit’ and therefore killable. Significant numbers of Palestinian civilians are defined as human shields simply by being in “proximity to” potential Israeli targets. 214 Israel has thus transformed Gaza into a “world without civilians” in which “everything from taking shelter in hospitals to fleeing for safety is declared a form of human shielding”. 215 The accusation of using human shields has thus become a pretext, justifying the killing of civilians under a cloak of purported legality, whose all-enveloping pervasiveness admits only of genocidal intent.

[–] modulus@lemmy.ml 2 points 4 weeks 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 2 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 2 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 4 points 3 months ago (1 children)

So it would still help optimising persuasion at scale (also known as lying to people to best et them to act against their interest). Why is this a good thing again?

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

what do I think the history is? A record of the sites I visited.

What do I think the history isn't? A correlated record of which advertisements I've been exposed to, and which conversions I've made, that gets sent to people who are not me.

Pretty relevant distinction. One thing is me tracking myself, another thing is this tracking being sent to others, no matter how purportedly trustworthy.

0
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?

 

Hi there,

I'm working on a bot to do social games on the fedi, and using the mastodon-async crate for communicating with the ActivityPub server in question. At the moment I'm using tokio mt as a runtime, though I'm new at async so if you think I shouldn't let me know.

The pattern I want to implement is the following:

  • At any given time, a user sends a "play" message to the bot.
  • If the player list is empty, the player is added to it awaiting someone else.
  • Otherwise, the bot checks if there are enough players on its list (who have previously sent a play message). For some games, enough is 1, since it's a 2-player game, for some it's 3 or more.
  • If there are enough players, play commences. list is cloned for that match, then emptied so other players can get in.

What I'm not very clear is how to keep this list to assure that sequence will be respected. I.a., if two play messages come reasonably quick together, I want one to be processed, then entered on the list, or get the match to start; then the other to get processed.

My current thoughts:

  • I could use a channel that receives the player accounts. When a new player is added, it performs the logic.
  • I could use a mutex with a list (or an option player value for the degenerate case of 2-player games).

Any thoughts on what the reasonable thing to do is here? I'm very new to async and while I realise there's probably lots of ways to do this, they're not all equally ergonomic and I want to avoid myself future pain.

view more: next ›