[-] Ferk@lemmy.ml 11 points 2 months ago

True. Though I don't think we would be in a hurry for this one, both Mindustry and Shapez have similar concepts and are already open source and quite good.

[-] Ferk@lemmy.ml 9 points 3 months ago* (last edited 3 months ago)

To his point: if not "discuss", what is the correct approach against fascism? war and murder? dismiss it, try to "cancel it" without giving any arguments so it can continue to fester on its own and keep growing in opposition?

To me, fascism is a stupid position that doesn't make much sense, to the point that it falls on itself the moment you "discuss" it.

I would have expected that it would be the fascists the ones unable/unwilling to discuss their position, since it's the least rational one. So it's certainly very jarring whenever I hear people jumping to defend against fascism while at the same time stopping in their tracks when it comes to discussing it. Even if those unable to reason might not be convinced by our arguments, anyone with reason would. Rejecting discussion does a disservice, because it does put off those willing to listen and strengthens those who didn't really want an argument anyway.

Like flat-earthers, they should be challenged with reason, with discussion. Not dismissed as if it were true that there's a huge conspiracy against them. Whether they listen or not to that reason, dehumanizing them and rejecting civil and rational discourse would play in favor of their movement.

Stating "genocide is bad" should NOT be a statement of faith. Faith is the shakiest of the grounds, if we are unable to articulate the specific reasons that make genocide be bad, then we are condemned to see it repeat itself. So, I'd argue it's for the sake of the victims in Auschwitz that antifascism should not be turned into a religion, but into a solid and rational position that's not distorted nor used willy-nilly.

[-] Ferk@lemmy.ml 7 points 4 months ago* (last edited 4 months ago)

You still call the period before when the sun is directly overhead “morning” and the period after “afternoon” and similarly with “evening”, “night”, “dawn”, “noon”, “midnight” etc.

Note that the Sun position is not consistent throught the year and varies widely based on your latitude.

In Iceland (and also Alaska) you can have the Sun for a full 24 hours in the sky (they call it "midnight sun") during Summer solstice (with extremelly short nights the whole summer) and the opposite happens in Winter, with long periods of night time.

I think it still makes the most sense to decide that the days of the week (“Monday”, “Tuesday”, etc) last from whatever time “midnight” is locally to the following midnight, again probably rounding to the nearest whole hour.

Just the days of the week? you mean that 2024-06-30 23:59 and 2024-07-01 00:01 can both be the same weekday and at the same time be different days? Would the definition of "day" be different based on whether you are talking about "day of the week" vs "universal day"?

[-] Ferk@lemmy.ml 7 points 4 months ago

I have purchased every single open source game that I've seen listed on steam as paid. Examples:

For more FOSS games on steam, there's a decent list collected on this curator (also pointing which ones are only partially open): https://store.steampowered.com/curator/38475471-Libre-Open-Source-Games/?appid=1769170

[-] Ferk@lemmy.ml 9 points 7 months ago* (last edited 7 months ago)

If they really think there's no reason to hide anything, why are they prosecuting Snowden for exposing something that was hidden?

Before having surveillance on people, they should have it on themselves.

Imagine how many corruption cases could have been prevented if the government was publicly monitored, with live streams from all offices, like a "big brother" show set up in the white house with live recordings of all calls and communications, so the voters can judge by themselves and monitor if the person they employed as the servant for the country is doing its job.

[-] Ferk@lemmy.ml 6 points 9 months ago* (last edited 9 months ago)

On Android 12 or later, apps will be autoupdated after the first install or first update, no root, no unlocking, no PrivExt needed. Older apps that can’t be updated will feature a banner explaining why.

Most old versions of the apps are not build to support that, and you'll have to manually update each of those apps at least once (after they have been built with support for it). When checking most apps at the moment a banner appears showing how the app does not support automatic updates (yet?)

[-] Ferk@lemmy.ml 10 points 11 months ago* (last edited 11 months ago)

It can be formatted "nicely" with no issue. But that doesn't necessarily make it easy to understand.

What that person posted was in a function named smb() that only gets called by rmb() under certain conditions, and rmb() gets called by AdB() under other conditions after being called from eeB() used in BaP().... it's a long list of hard to read minified functions and variables in a mess of chained calls, declared in an order that doesn't necessarily match up with what you'd expect would be the flow.

In the same file you can also easily find references to the user agent being read at multiple points, sometimes storing it in variables with equally esoteric short names that might sneak past the reader if they aren't pedantic enough.

Like, for example, there's this function:

function vc() {
    var a = za.navigator;
    return a && (a = a.userAgent) ? a : ""
}

Searching for vc() gives you 56 instances in that file, often compared to some strings to check what browser the user is using. And that's just one of the methods where the userAgent is obtained, there's also a yc=Yba?Yba.userAgentData||null:null; later on too... and several direct uses of both userAgent and userAgentData.

And I'm not saying that the particular instance that was pointed out was the cause of the problem.. it's entirely possible that the issue is somewhere else... but my point is that you cannot point to a snippet of "nicely formated" messed up transpiler output without really understanding fully when does it get called and expect to draw accurate conclusions from it.

[-] Ferk@lemmy.ml 6 points 11 months ago* (last edited 11 months ago)

It doesn't really matter whether it was "targeted" at Firefox specifically or not, what matters is whether the website has logic that discriminates against Firefox users. Those are 2 different things. "End" vs "means".

I wouldn't be surprised if the logic was written by some AI, without specifically targeting any browser, and from the training data the AI concluded that there's a high enough chance of adblocking to deserve handicapping the UX when the browser happens to be Firefox's. Given that all it's doing is slowing the website down (instead of straight out blocking them) it might be that this is just a lower level of protection they added for cases where there's some indicators even if there's not a 100% confidence an adblock is used.

[-] Ferk@lemmy.ml 9 points 11 months ago* (last edited 11 months ago)

That's out of context. That snippet of code existing is not sufficient to understand when does that part of the code gets actually executed, right?

For all we know, that might have been taken from a piece of logic like this that adds the delay only for specific cases:

if ( complex_obfuscated_logic_to_discriminate_users ) {

    setTimeout(function() {
        c();
        a.resolve(1)
    }, 5E3);

} else {

    c();
    a.resolve(1)

}

It's possible that complex_obfuscated_logic_to_discriminate_users has some logic that changes based on user agent.

And I expect it's likely more complex than just one if-else. I haven't had the time to check it myself, but there's probably a mess of extremely hard to read obfuscated code as result of some compilation steps purposefully designed to make it very hard to properly understand when are some paths actually being executed, as a way to make tampering more difficult.

[-] Ferk@lemmy.ml 32 points 1 year ago* (last edited 1 year ago)

espeak default voice backend is synthesized without using actually real voice samples. So it doesn't require downloading a huge package for each language, which is convenient in some cases, but the outcome is extremely robotic.

You can use MBROLA as backend for espeak so that it uses some voice samples and the result should be less jarring (it'd still be easy to tell it's not natural voice, but at least you'd be able to understand it better). There's a tutorial on this here: https://github.com/espeak-ng/espeak-ng/blob/master/docs/mbrola.md

Or you can try piper (https://github.com/rhasspy/piper) it's one of the most natural-sounding TTS (here are some samples).

[-] Ferk@lemmy.ml 16 points 1 year ago* (last edited 1 year ago)

In fact, it’s not unlikely that the behavioural data of people who pay to opt out of being spammed with ads will be more valuable to data brokers.

True. This is why the AdNauseam extension doesn't simply "hide" ads, but it goes out of its way to actually simulate clicks for ALL ads, causing algorithms to be unable to more accurately profile you and making the pay-per-click model fall on its face. If everyone did that, advertisers would have to pay for completely meaningless clicks making it no longer worth it to advertise this way.

Though it's still not a solution to privacy, since it still gives some insight on your tastes by allowing them to know what websites do you frequently visit.

[-] Ferk@lemmy.ml 7 points 1 year ago* (last edited 1 year ago)

If they were complaining about cronjobs being created (like the post says), then they must have known what cron is.

1
submitted 2 years ago* (last edited 2 years ago) by Ferk@lemmy.ml to c/rpg@lemmy.ml

It compiles materials from multiple books by Michael E. Shea: the Lazy Dungeon Master, the Lazy GM's Workbook and the Lazy GM Companion.

view more: next ›

Ferk

joined 3 years ago