What a non-story. The username, profile picture, posts from profile, and post interactions are all required for displaying the content that the Thread’s user has subscribed to. The IP address is required for connecting to the service to retrieve that content. Facebook doesn’t get any more access to your data than necessary nor do they get any more access to your data than anybody else. This is just fear mongering.
Lemmy project set wild unrealistic expectations on GItHub project: 1) "high performance’, maybe the Rust code but PostgreSQL logic is the ORM madness. 2) “full erase” while sending all your public comments and posts to ActivePub without agreement on concept of delete.
unrealistic expectations on GItHub project: 1) "high performance
For sure. That seems to be the go to phrase for anything developed in Rust. By itself, Rust isn’t any safer or faster than another similar language; it takes a good developer to make it work well.
Just because it’s written in Rust doesn’t make your app safe, or performant. Just like because your app is written in C, doesn’t mean it’s buggy and insecure.
See, I noticed this stuff reading through the Lemmy source code, but I assumed the authors just were on another level of database use than me. Is this actually just a mess? How exactly is it bad, beyond being opaque?
What a non-story. The username, profile picture, posts from profile, and post interactions are all required for displaying the content that the Thread’s user has subscribed to. The IP address is required for connecting to the service to retrieve that content. Facebook doesn’t get any more access to your data than necessary nor do they get any more access to your data than anybody else. This is just fear mongering.
Lemmy project set wild unrealistic expectations on GItHub project: 1) "high performance’, maybe the Rust code but PostgreSQL logic is the ORM madness. 2) “full erase” while sending all your public comments and posts to ActivePub without agreement on concept of delete.
For sure. That seems to be the go to phrase for anything developed in Rust. By itself, Rust isn’t any safer or faster than another similar language; it takes a good developer to make it work well.
Just because it’s written in Rust doesn’t make your app safe, or performant. Just like because your app is written in C, doesn’t mean it’s buggy and insecure.
Lemmy 0.18.4 listing posts, frequently via ORM Diesel:
SELECT "post"."id", "post"."name", "post"."url", "post"."body", "post"."creator_id", "post"."community_id", "post"."removed", "post"."locked", "post"."published", "post"."updated", "post"."deleted", "post"."nsfw", "post"."embed_title", "post"."embed_description", "post"."thumbnail_url", "post"."ap_id", "post"."local", "post"."embed_video_url", "post"."language_id", "post"."featured_community", "post"."featured_local", "person"."id", "person"."name", "person"."display_name", "person"."avatar", "person"."banned", "person"."published", "person"."updated", "person"."actor_id", "person"."bio", "person"."local", "person"."private_key", "person"."public_key", "person"."last_refreshed_at", "person"."banner", "person"."deleted", "person"."inbox_url", "person"."shared_inbox_url", "person"."matrix_user_id", "person"."admin", "person"."bot_account", "person"."ban_expires", "person"."instance_id", "community"."id", "community"."name", "community"."title", "community"."description", "community"."removed", "community"."published", "community"."updated", "community"."deleted", "community"."nsfw", "community"."actor_id", "community"."local", "community"."private_key", "community"."public_key", "community"."last_refreshed_at", "community"."icon", "community"."banner", "community"."followers_url", "community"."inbox_url", "community"."shared_inbox_url", "community"."hidden", "community"."posting_restricted_to_mods", "community"."instance_id", "community"."moderators_url", "community"."featured_url", ("community_person_ban"."id" IS NOT NULL), "post_aggregates"."id", "post_aggregates"."post_id", "post_aggregates"."comments", "post_aggregates"."score", "post_aggregates"."upvotes", "post_aggregates"."downvotes", "post_aggregates"."published", "post_aggregates"."newest_comment_time_necro", "post_aggregates"."newest_comment_time", "post_aggregates"."featured_community", "post_aggregates"."featured_local", "post_aggregates"."hot_rank", "post_aggregates"."hot_rank_active", "post_aggregates"."community_id", "post_aggregates"."creator_id", "post_aggregates"."controversy_rank", "community_follower"."pending", ("post_saved"."id" IS NOT NULL), ("post_read"."id" IS NOT NULL), ("person_block"."id" IS NOT NULL), "post_like"."score", coalesce(("post_aggregates"."comments" - "person_post_aggregates"."read_comments"), "post_aggregates"."comments") FROM (((((((((((( ("post_aggregates" INNER JOIN "person" ON ("post_aggregates"."creator_id" = "person"."id")) INNER JOIN "community" ON ("post_aggregates"."community_id" = "community"."id")) LEFT OUTER JOIN "community_person_ban" ON (("post_aggregates"."community_id" = "community_person_ban"."community_id") AND ("community_person_ban"."person_id" = "post_aggregates"."creator_id")) ) INNER JOIN "post" ON ("post_aggregates"."post_id" = "post"."id") ) LEFT OUTER JOIN "community_follower" ON (("post_aggregates"."community_id" = "community_follower"."community_id") AND ("community_follower"."person_id" = $1)) ) LEFT OUTER JOIN "community_moderator" ON (("post"."community_id" = "community_moderator"."community_id") AND ("community_moderator"."person_id" = $1)) ) LEFT OUTER JOIN "post_saved" ON (("post_aggregates"."post_id" = "post_saved"."post_id") AND ("post_saved"."person_id" = $1)) ) LEFT OUTER JOIN "post_read" ON (("post_aggregates"."post_id" = "post_read"."post_id") AND ("post_read"."person_id" = $1)) ) LEFT OUTER JOIN "person_block" ON (("post_aggregates"."creator_id" = "person_block"."target_id") AND ("person_block"."person_id" = $1)) ) LEFT OUTER JOIN "post_like" ON (("post_aggregates"."post_id" = "post_like"."post_id") AND ("post_like"."person_id" = $1)) ) LEFT OUTER JOIN "person_post_aggregates" ON (("post_aggregates"."post_id" = "person_post_aggregates"."post_id") AND ("person_post_aggregates"."person_id" = $1)) ) LEFT OUTER JOIN "community_block" ON (("post_aggregates"."community_id" = "community_block"."community_id") AND ("community_block"."person_id" = $1)) ) LEFT OUTER JOIN "local_user_language" ON (("post"."language_id" = "local_user_language"."language_id") AND ("local_user_language"."local_user_id" = $2)) ) WHERE ((( ((( ( ("community"."removed" = $3) AND ("post"."removed" = $4)) AND ("community_follower"."pending" IS NOT NULL) ) AND ("post"."nsfw" = $5) ) AND ("community"."nsfw" = $6) ) AND ("local_user_language"."language_id" IS NOT NULL) ) AND ("community_block"."person_id" IS NULL) ) AND ("person_block"."person_id" IS NULL) ) ORDER BY "post_aggregates"."featured_local" DESC , "post_aggregates"."hot_rank_active" DESC , "post_aggregates"."published" DESC LIMIT $7 OFFSET $8 ;`
That is with hand-optimized person_id = $1, which the Rust code does not do.
I cry just reading that…
See, I noticed this stuff reading through the Lemmy source code, but I assumed the authors just were on another level of database use than me. Is this actually just a mess? How exactly is it bad, beyond being opaque?
serous problems with scalability, it works fine if there is little data in the system.
Huh. I guess I’ll have to learn a bit more.
This is effectively a binary blob to me lol