Spyke

Posts

meta·Lemy Metabyiso

Lemy.lol is not closing 🥳

Following the announcement of the instance's closure, @[email protected] offered to take over the instance. I am grateful to them for this. I prefer it going to someone else rather than shutting down completely.

Although it probably wouldn't be an issue, I prefer not to share the private information of all users. Therefore, all email addresses and private messages registered in the system will be deleted. Password hashes will remain as they are, since they are irreversibly hashed.

I thank @cm0002 for choosing to take over.

View original on lemy.lol
meta·Lemy Metabyiso

Lemy.lol is (not) closing

Sadly, like all good things, this too must come to an end.

Between rising server costs, my waning interest in self-hosting, and saving up to upgrade my car, I’ve decided it's time to pull the plug :) I plan to shut things down sometime in the next few weeks or months; I haven't set an exact date yet.

As for lemmy-federate.com, I plan to refactor and migrate it to Cloudflare Workers -which should be cheap enough to run- unless someone else steps up to take it over.

Honestly, it was a great run while it lasted. Cheers everyone. I kiss you.

View original on lemy.lol
meta·Lemy Metabyiso

Updated to 0.19.13 and added Tesseract UI (kind of late)

It's been a few days since 0.19.13 update was released and since it seemed stable, I updated it.

I also added Tesseract UI by request, even though it has been abandoned for a while. I plan to keep it until it stops working.

If you like the platform and would like to support it:

And for the haters, the frog is still here!

View original on lemy.lol
meta·Lemy Metabyiso

lemy.lol is 2 years old! (with a downtime 🤦‍♂️)

Today is the 2nd cake day of lemy.lol and I learned this in an interesting way. When I tried to use the instance, I came across Dynadot's "this domain has expired" page. It turns out that the expiration emails went to spam and the domain expired :)

I renewed it immediately but I think it will take a while for it to be propagated. Sorry about that. I'll go to another provider and extend it for another 5 years :)

Thank you to everyone who uses lemy.lol and don't forget to donate to Lemmy! https://join-lemmy.org/donate

View original on lemy.lol
meta·Lemy Metabyiso

"Breaks Community Rules" is no longer a valid report reason in lemy.lol

When the reason for the report is a generic sentence, it is necessary to read the entire comment thread to understand the full context. Therefore, please write, even if it is just 2 words, why the content you are reporting should be removed. From now on, reports of this type will be ignored (except for some cases).

Also, while we are on the subject of reports and content preferences, I would like to add that this instance does not attempt to appeal to mainstream opinion. Content that does not align with your political preferences may not be removed. However, I am aware that this policy attracts trolls and I try to intervene as much as I can.

If you want a more refined instance, you can try: beehaw.org, lemmy.blahaj.zone, dubvee.org, lemmy.ca, piefed.social etc.

View original on lemy.lol

Lemmy Federate now uses DNS-based authentication

I made this change to increase software support for Lemmy Federate. This way, besides Lemmy and Mbin, other software that supports FEP-1b12 such as NodeBB, Piefed, Guppe, Friendica or other custom implementations (like blogs) will be able to register to Lemmy Federate.

However, I must admit that this change makes the login mechanism more difficult. But I believe it was worth it.

An example authentication flow:

  • Enter instance host and click login

  • Add given record to DNS, and click login again

  • At this point, API key becomes reusable between logins.

If you experience any problems please let me know.

View original on lemy.lol

Impact of Lemmy Federate on instances

I’ve seen many arguments claiming that Lemmy Federate creates a significant load on instances in terms of data storage and networking. I used to believe this wasn’t a very valid concern, as I assumed that communities without followers wouldn’t generate many posts, comments, likes, etc.

Today, I had the chance to test this on my own instance, and here are the results:

  • Communities
    • Total count: 33,920
    • Federated by LF: 5,863
    • Percentage: 17.28%
  • Posts
    • Total count: 3,217,783
    • Federated by LF: 114,067
    • Percentage: 3.54%
  • Comments
    • Total count: 14,222,401
    • Federated by LF: 192,925
    • Percentage: 1.36%

LF = Lemmy Federate. Posts and comments refer to the number of posts and comments in communities federated with Lemmy Federate.

As you can see from the statistics, almost 20% of the communities are federated by Lemmy Federate. Although this seems like a high number, only 3.5% of the posts are created in communities federated by Lemmy Federate. The number of comments is even less than the number of posts.

So to answer, Lemmy Federate creates an average load of around 2-3% in an instance with about 1000 users. You can compare it with its benefits and decide whether to use it or not.

If you want to get stats for your own instance, you can run the SQL script below. Let us know the results please :)

::: spoiler the script

-- make sure to replace the <lemmy_federate_bot_person_id>
WITH
-- Total community count
total_communities AS (
    SELECT COUNT(id) AS total FROM community where local != true
),

-- Communities federated by LF (assuming person_id <lemmy_federate_bot_person_id> represents LF bot)
-- A community is considered federated by LF if LF follows it and it has local subscribers
lf_communities AS (
    SELECT ca.community_id
    FROM community_aggregates ca
    JOIN community c on c.id = ca.community_id
    JOIN community_follower cf ON ca.community_id = cf.community_id
    WHERE ca.subscribers_local > 0 and c.local != true AND cf.person_id = <lemmy_federate_bot_person_id>
),
lf_communities_count AS (
    SELECT COUNT(*) AS count FROM lf_communities
),

-- Total post count
total_posts AS (
    SELECT COUNT(id) AS total FROM post
),

-- Posts in LF communities
lf_posts AS (
    SELECT COUNT(p.id) AS count
    FROM post p
    WHERE p.community_id IN (SELECT community_id FROM lf_communities)
),

-- Total comment count
total_comments AS (
    SELECT COUNT(id) AS total FROM comment
),

-- Comments on posts in LF communities
lf_comments AS (
    SELECT COUNT(c.id) AS count
    FROM comment c
    JOIN post p ON c.post_id = p.id
    WHERE p.community_id IN (SELECT community_id FROM lf_communities)
)

-- Final output
SELECT
    tc.total AS community_count,
    lfc.count AS community_count_lf,
    ROUND((lfc.count::decimal / tc.total) * 100, 2) AS community_lf_percent,
    tp.total AS post_count,
    lp.count AS post_count_lf,
    ROUND((lp.count::decimal / tp.total) * 100, 2) AS post_lf_percent,
    tcom.total AS comment_count,
    lcom.count AS comment_count_lf,
	ROUND((lcom.count::decimal / tcom.total) * 100, 2) AS comment_lf_percent
FROM total_communities tc
JOIN lf_communities_count lfc ON TRUE
JOIN total_posts tp ON TRUE
JOIN lf_posts lp ON TRUE
JOIN total_comments tcom ON TRUE
JOIN lf_comments lcom ON TRUE;

:::

View original on lemy.lol

Added debug logs to Lemmy Federate

Sometimes instances can crash or slow down while following other instances. Or the remote instance may be blocked or the bot may be stuck at the rate limit.

To troubleshoot such issues I added a logs section to the instance management page.

Note: these logs are responses of requests sent to your instance. You can only see the logs for your own instance.

Some techie friends may ask why I didn't use something like Grafana. My answer is, I was just lazy :)

View original on lemy.lol
lemmy·Lemmybyiso

Lemmy Federate updates: Threadiverse support, instance blocking feature, dedicated community

Generic Threadiverse support

Thanks to @[email protected]'s contribution (#28), Lemmy Federate now supports all software types that implements group federation such as PieFed, NodeBB, Guppe 🎉

But unfortunately, not everything is perfect. Since there is no Fediverse standard for verifying whether a user is an admin, I have to register admins manually. I am also considering manually approving instances that are not guaranteed in Fediseer against spam attacks. Please contact me for this.

Note: Lemmy and Mbin works as before.

Top instances of Lemmy

With the addition of Lemmy.ml, the top 25 largest instances on Lemmy now use Lemmy Federate (except slrpnk.net). I think we can now consider that we have fixed the accessibility issue that was the reason I created this tool. Even if we didn't fix it, at least we band-aided it :)

Instance blocking feature

In addition to the allow list, a block list has been added.

  • If you allow at least one instance, you will not follow any other instances.
  • If you block an instance, you will continue to follow instances other than those you blocked.

Dedicated community

I didn't want to open it before, but now that we are trying to be compatible with more software, I believe a dedicated community could be useful. That's why I created a community here ![email protected]. If I make an update from now on, I'll probably post it there.

https://lemmy-federate.com/ https://github.com/ismailkarsli/lemmy-federate

View original on lemy.lol
fediverse·Fediversebyiso

Lemmy Federate updates: Threadiverse support, instance blocking feature, dedicated community

Generic Threadiverse support

Thanks to @[email protected]'s contribution (#28), Lemmy Federate now supports all software types that implements group federation such as PieFed, NodeBB, Guppe 🎉

But unfortunately, not everything is perfect. Since there is no Fediverse standard for verifying whether a user is an admin, I have to register admins manually. I am also considering manually approving instances that are not guaranteed in Fediseer against spam attacks. Please contact me for this.

Note: Lemmy and Mbin works as before.

Top instances of Lemmy

With the addition of Lemmy.ml, the top 25 largest instances on Lemmy now use Lemmy Federate (except slrpnk.net). I think we can now consider that we have fixed the accessibility issue that was the reason I created this tool. Even if we didn't fix it, at least we band-aided it :)

Instance blocking feature

In addition to the allow list, a block list has been added.

  • If you allow at least one instance, you will not follow any other instances.
  • If you block an instance, you will continue to follow instances other than those you blocked.

Dedicated community

I didn't want to open it before, but now that we are trying to be compatible with more software, I believe a dedicated community could be useful. That's why I created a community here ![email protected]. If I make an update from now on, I'll probably post it there.

https://lemmy-federate.com/ https://github.com/ismailkarsli/lemmy-federate

View original on lemy.lol

Threadiverse support, instance blocking feature and a new dedicated community

Generic Threadiverse support

Thanks to @[email protected]'s contribution (#28), Lemmy Federate now supports all software types that implements group federation such as PieFed, NodeBB, Guppe 🎉

But unfortunately, not everything is perfect. Since there is no Fediverse standard for verifying whether a user is an admin, I have to register admins manually. I am also considering manually approving instances that are not guaranteed in Fediseer against spam attacks. Please contact me for this.

Note: Lemmy and Mbin works as before.

Top instances of Lemmy

With the addition of Lemmy.ml, the top 25 largest instances on Lemmy now use Lemmy Federate (except slrpnk.net). I think we can now consider that we have fixed the accessibility issue that was the reason I created this tool. Even if we didn't fix it, at least we band-aided it :)

Instance blocking feature

In addition to the allow list, a block list has been added.

  • If you allow at least one instance, you will not follow any other instances.
  • If you block an instance, you will continue to follow instances other than those you blocked.

Dedicated community

I didn't want to open it before, but now that we are trying to be compatible with more software, I believe a dedicated community could be useful. That's why I created a community here ![email protected]. If I make an update from now on, I'll probably post it there.

https://lemmy-federate.com/ https://github.com/ismailkarsli/lemmy-federate

View original on lemy.lol
fediverse·Fediversebyiso

Lemmy Federate updates: Mbin support and federation mode option

I've been rewriting Lemmy Federate for the last 3 days and finally finished it. While there are no changes on the frontend, many things have changed behind the scenes.

Mbin support

After several requests, I have added Mbin support to Lemmy Federate. It is currently in experimental state. I may improve it in the coming days.

Currently, Lemmy-Mbin connection is off by default. You can enable it by activating the "cross software" option in the instance settings.

::: spoiler how it works? Since Mbin has OAuth support, the tool creates the client with OAuth instead of creating a bot user directly. Theoretically, you should be able to activate the tool simply by creating a OAuth client from instance settings.

But unfortunately, I couldn't try it enough because I'm not an admin on an Mbin instance. :::


Federation mode option

I added this option for small/single user instances. If you select federation mode as seed only in the instance settings, your instance will not follow other instance communities, but other instances will follow your communities.

Although I am not a fan of this option, I think it will work for instances like under 100 users.

Lemmy Federate

source code

Here’s example settings page:

View original on lemy.lol
askandroid·Ask Androidbyiso

Is Pixel 9 worth it? (instead of Pixel 8)

cross-posted from: https://lemy.lol/post/31616900

I currently have an iPhone 14 Pro Max and I want to switch to an Android phone.

First of all, I eliminated all Chinese phones. Since Samsung has limited custom rom support, I gave up on that too. At the end, I decided to get a Pixel because of its GrapheneOS support.

But right now I'm stuck between Pixel 8 and 9. There's a big price difference with small improvements. I can afford both but not sure if Pixel 9 is worth it. What do you think?

View original on lemy.lol
googlepixel·Google Pixelbyiso

Is Pixel 9 worth it? (instead of Pixel 8)

I currently have an iPhone 14 Pro Max and I want to switch to an Android phone.

First of all, I eliminated all Chinese phones. Since Samsung has limited custom rom support, I gave up on that too. At the end, I decided to get a Pixel because of its GrapheneOS support.

But right now I'm stuck between Pixel 8 and 9. There's a big price difference with small improvements. I can afford both but not sure if Pixel 9 is worth it. What do you think?

View original on lemy.lol
programming·Programmingbyiso

What is your preferred API error response and why?

I prefer simplicity and using the first example but I'd be happy to hear other options. Here's a few examples:

HTTP/1.1 403 POST /endpoint
{ "message": "Unauthorized access" }
HTTP/1.1 403 POST /endpoint
Unauthorized access (no json)
HTTP/1.1 403 POST /endpoint
{ "error": "Unauthorized access" }
HTTP/1.1 403 POST /endpoint
{
  "code": "UNAUTHORIZED",
  "message": "Unauthorized access",
}
HTTP/1.1 200 (🤡) POST /endpoint
{
  "error": true,
  "message": "Unauthorized access",
}
HTTP/1.1 403 POST /endpoint
{
  "status": 403,
  "code": "UNAUTHORIZED",
  "message": "Unauthorized access",
}

Or your own example.

View original on lemy.lol