this post was submitted on 01 Sep 2023
122 points (100.0% liked)

Technology

37602 readers
302 users here now

A nice place to discuss rumors, happenings, innovations, and challenges in the technology sphere. We also welcome discussions on the intersections of technology and society. If it’s technological news or discussion of technology, it probably belongs here.

Remember the overriding ethos on Beehaw: Be(e) Nice. Each user you encounter here is a person, and should be treated with kindness (even if they’re wrong, or use a Linux distro you don’t like). Personal attacks will not be tolerated.

Subcommunities on Beehaw:


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] BitOneZero@beehaw.org 10 points 1 year ago (9 children)

What a non-story.

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.

[–] Penguincoder@beehaw.org 16 points 1 year ago (8 children)

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.

[–] BitOneZero@beehaw.org 9 points 1 year ago* (last edited 1 year ago) (7 children)

Just because it’s written in Rust doesn’t make your app safe, or performant.

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.

[–] plantstho@beehaw.org 3 points 1 year ago

This is effectively a binary blob to me lol

load more comments (6 replies)
load more comments (6 replies)
load more comments (6 replies)