[-] [email protected] 4 points 4 hours ago

I really, really hope an alternative to MasterCard and Visa appears, at least here in EU.

[-] [email protected] 2 points 15 hours ago

Well, not torrenting games and software and you're pretty sure to stay virus free.

For games you'd have to find some uploader who you trust.

[-] [email protected] 1 points 15 hours ago

It's pretty wild, he was originally a minor storm god that became the patron of Israel and then their religion was slowly modified over time - first he replaced their main god El (think Zeus/Odin) as the biggest one and then slowly over time the other gods were banned from being worshipped and eventually they ceased to exist from the holy texts.

If you read carefully, you can find verses in the Bible that acknowledge the existence of other gods, though most verses were edited over millennia and only a precious few like that remain.

[-] [email protected] 1 points 1 day ago

Well, Jehovah is just a different spelling of Yahweh. And yeah, allah is the christian god, IIRC allah literally means god, we just use their word for it to distinguish it.

[-] [email protected] 4 points 1 day ago

Perhaps because of the bat eating and drugs?

[-] [email protected] 4 points 1 day ago

No. You really should apply context. This isa very clear example of a limited service that's meant to convince you to buy the full offering.

[-] [email protected] 2 points 1 day ago

If you're into torrenting, paid Proton VPN is one of the best.

[-] [email protected] 2 points 1 day ago

True, if there's a game I really, really want I buy on Steam/Epic. Found out there are very few games I really want to play that much, can think of only 2 I bought like that.

[-] [email protected] 11 points 1 day ago

Because Linux is so effective that the GPU temperature tops at 69, which is nice.

[-] [email protected] 5 points 1 day ago

Speaking personally, it's literally that. I used to pay for Netflix, HBO, Prime and Disney+, now I don't pay for anything.

The reasons are quite simple:

  • everything got more and more expensive
  • some of the services started pushing ads down my throat even though I paid for them (usually the higher tier)

So I got back to torrenting + self-hosting (had to migrate from Plex to Jellyfin because even self-hosted solutions are turning to shit).

[-] [email protected] 10 points 1 day ago

Or just buy on GOG and don't buy Denuvo games.

[-] [email protected] 11 points 1 day ago

How exactly is Steam consumer friendly? Or is the bar so low that companies that don't shoot themselves in their feet by mistake because they were actually aiming for the customer are considered "consumer friendly"?

25
submitted 1 week ago* (last edited 1 week ago) by [email protected] to c/[email protected]
63
submitted 3 weeks ago by [email protected] to c/[email protected]

The time flies really fast! Exactly 2 years ago I was the one and only user of this instance and now there are thousands of us! So happy birthday to Lemmings.world and hope you all enjoy our small corner of the internet!

5
submitted 1 month ago by [email protected] to c/[email protected]

cross-posted from: https://chrastecky.dev/post/16

Starting with PHP 8.5, you'll be able to do the following:

 public function __construct(
    final public string $someProperty,
) {}

This wasn't possible before, as promoted properties couldn't be declared final.

Perhaps the more interesting part is that you can now omit the visibility modifier if you include final. In that case, the property will default to public:

 public function __construct(
    final string $someProperty, // this property will be public
) {}

Personally, I’m not a fan of this behavior — I prefer explicit over implicit. Fortunately, it can be enforced by third-party tools like code style fixers. Still, I would have preferred if the core required the visibility to be specified.

What do you think? Do you like this change, or would you have preferred a stricter approach?

12
submitted 1 month ago by [email protected] to c/[email protected]

cross-posted from: https://chrastecky.dev/post/13

This change is quite straightforward, so this won’t be a long article. PHP 8.5 adds support for annotating non-class, compile-time constants with attributes. Compile-time constants are those defined using the const keyword, not the define() function.

Attributes can now include Attribute::TARGET_CONSTANT among their valid targets. Additionally, as the name suggests, Attribute::TARGET_ALL now includes constants as well. The ReflectionConstant class has been updated with a new method, getAttributes(), to support retrieving these annotations.

One particularly useful aspect of this change is that the built-in #[Deprecated] attribute can now be applied to compile-time constants.

As promised, this was a short post, since the change is relatively simple. See you next time—hopefully with a more exciting new feature in PHP 8.5!

10
submitted 1 month ago by [email protected] to c/[email protected]

cross-posted from: https://chrastecky.dev/post/15

PHP has long had a levenshtein() function, but it comes with a significant limitation: it doesn’t support UTF-8.

If you’re not familiar with the Levenshtein distance, it’s a way to measure how different two strings are — by counting the minimum number of single-character edits (insertions, deletions, or substitutions) required to change one string into another.

For example, the following code returns 2 instead of the correct result, 1:

var_dump(levenshtein('göthe', 'gothe'));

There are workarounds — such as using a pure PHP implementation or converting strings to a custom single-byte encoding — but they come with downsides, like slower performance or non-standard behavior.

With the new grapheme_levenshtein() function in PHP 8.5, the code above now correctly returns 1.

Grapheme-Based Comparison

What makes this new function especially powerful is that it operates on graphemes, not bytes or code points. For instance, the character é (accented 'e') can be represented in two ways: as a single code point (U+00E9) or as a combination of the letter e (U+0065) and a combining accent (U+0301). In PHP, you can write these as:

$string1 = "\u{00e9}";
$string2 = "\u{0065}\u{0301}";

Even though these strings are technically different at the byte level, they represent the same grapheme. The new grapheme_levenshtein() function correctly recognizes this and returns 0 — meaning no difference.

This is particularly useful when working with complex scripts such as Japanese, Chinese, or Korean, where grapheme clusters play a bigger role than in Latin or Cyrillic alphabets.

Just for fun: what do you think the original levenshtein() function will return for the example above?

var_dump(levenshtein("\u{0065}\u{0301}", "\u{00e9}"));
2
Test (lemmings.world)
submitted 1 month ago by [email protected] to c/[email protected]

test

4
New version released! (lemmings.world)
submitted 1 month ago by [email protected] to c/[email protected]

As I outlined in a previous post, the new major version is released!

The migration guide for self-hosters is here: https://github.com/RikudouSage/LemmySchedule/blob/master/migrating_v2.md


As mentioned in another post, I accidentally deleted all scheduled jobs on the https://schedule.lemmings.world/, so if you used that, you need to recreate your schedules from scratch.

7
submitted 1 month ago by [email protected] to c/[email protected]

You know how in the previous post I urged everyone to do proper backups? Well, guess what happened... If you use https://schedule.lemmings.world/ as your scheduler, all your posts were deleted, including recurring ones etc. Sorry for the inconvenience.

6
Major rewrite coming (lemmings.world)
submitted 1 month ago by [email protected] to c/[email protected]

I've merged a significant rewrite into the main branch and will be releasing it soon.

Before I do so, I want to let everyone know that this will be a major release which means some old functionality will be left behind and some new is coming and you should take care when upgrading.

Namely, backup the volumes you have bound for runtime cache and uploaded files. Those are bound to these container directories:

  • /opt/runtime-cache
  • /opt/uploaded-files

The database format has changed completely and is incompatible with the old version, after you upgrade to the (soon-to-be-released) version 2, you won't be able to come back to any previous version. For that reason, the only way to downgrade in case of migration failure is by using the aforementioned backup.

I've tested it a lot and the migration works well, but there's always the possibility that your instance has some weird edge case I didn't think of.


On the off chance you used the serverless deployment to AWS, it's now unsupported and Docker (or manual deploy) are the only supported options now. To migrate from Dynamo DB cache backend, I've added a app:migrate-dynamo command you can use.


The reason for this rewrite is simple, back when this project started, only very simple use-cases were supported and using a cache instead of DB was fine, but now I've basically implemented a few relational database features into a key-value cache storage and then I thought "Hey, you know what else has relational database features? Relational databases!" so here we go.

Pretty much nothing else has changed (except some general modernization and a few unrelated bug fixes), but this will make it possible to implement new features without losing my sanity.

718
Shots fired (lemmings.world)
submitted 1 month ago by [email protected] to c/[email protected]
15
Flower in a wall (lemmings.world)
submitted 1 month ago by [email protected] to c/[email protected]
10
Flower in a wall (lemmings.world)
submitted 1 month ago by [email protected] to c/[email protected]
view more: next ›

rikudou

0 post score
0 comment score
joined 2 years ago
MODERATOR OF