GET https://kbin.spritesserver.nl/m/selfhosted@lemmy.world/t/32872/Creating-the-XMPP-Network-Graph/active

Components

24 Twig Components
98 Render Count
449 ms Render Time
14.0 MiB Memory Usage

Components

Name Metadata Render Count Render Time
settings_row_switch
"App\Twig\Components\SettingsRowSwitchComponent"
components/_settings_row_switch.html.twig
15 2.05ms
date
"App\Twig\Components\DateComponent"
components/date.html.twig
10 2.97ms
user_inline
"App\Twig\Components\UserInlineComponent"
components/user_inline.html.twig
9 29.53ms
date_edited
"App\Twig\Components\DateEditedComponent"
components/date_edited.html.twig
8 1.79ms
vote
"App\Twig\Components\VoteComponent"
components/vote.html.twig
8 8.73ms
boost
"App\Twig\Components\BoostComponent"
components/boost.html.twig
8 26.04ms
entry_comment
"App\Twig\Components\EntryCommentComponent"
components/entry_comment.html.twig
7 662.06ms
user_avatar
"App\Twig\Components\UserAvatarComponent"
components/user_avatar.html.twig
7 27.80ms
entry_comments_nested
"App\Twig\Components\EntryCommentsNestedComponent"
components/_cached.html.twig
7 386.14ms
user_settings_row_switch
"App\Twig\Components\UserSettingsRowSwitchComponent"
components/_user_settings_row_switch.html.twig
4 0.68ms
settings_row_enum
"App\Twig\Components\SettingsRowEnumComponent"
components/_settings_row_enum.html.twig
2 0.40ms
entry
"App\Twig\Components\EntryComponent"
components/_cached.html.twig
1 20.30ms
entries_cross
"App\Twig\Components\EntriesCrossComponent"
components/_cached.html.twig
1 48.21ms
editor_toolbar
"App\Twig\Components\EditorToolbarComponent"
components/editor_toolbar.html.twig
1 0.23ms
user_actions
"App\Twig\Components\UserActionsComponent"
components/user_actions.html.twig
1 0.52ms
magazine_box
"App\Twig\Components\MagazineBoxComponent"
components/magazine_box.html.twig
1 27.37ms
magazine_sub
"App\Twig\Components\MagazineSubComponent"
components/magazine_sub.html.twig
1 0.54ms
related_magazines
"App\Twig\Components\RelatedMagazinesComponent"
components/_cached.html.twig
1 5.47ms
active_users
"App\Twig\Components\ActiveUsersComponent"
components/_cached.html.twig
1 0.51ms
related_categories
"App\Twig\Components\RelatedCategoriesComponent"
components/_cached.html.twig
1 3.70ms
related_posts
"App\Twig\Components\RelatedPostsComponent"
components/_cached.html.twig
1 4.64ms
related_entries
"App\Twig\Components\RelatedEntriesComponent"
components/_cached.html.twig
1 16.59ms
support_us_block
"App\Twig\Components\SupportUsBlock"
components/_cached.html.twig
1 1.92ms
featured_magazines
"App\Twig\Components\FeaturedMagazinesComponent"
components/_cached.html.twig
1 10.99ms

Render calls

entry App\Twig\Components\EntryComponent 14.0 MiB 20.30 ms
Input props
[
  "entry" => App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1970 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
    +slug: "Creating-the-XMPP-Network-Graph"
    +title: "Creating the XMPP Network Graph"
    +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
    +body: """
      Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
      \n
      tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 7
    +favouriteCount: 58
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1728607448 {#2418
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1884 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1959 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +children: []
    -id: 32872
    -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
    -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1706216000
    +visibility: "visible             "
    +apId: "https://programming.dev/post/9063516"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706129600 {#1858
      date: 2024-01-24 21:53:20.0 +01:00
    }
  }
  "isSingle" => true
  "showShortSentence" => false
  "showBody" => true
]
Attributes
[
  "class" => "entry--single section--top"
]
Component
App\Twig\Components\EntryComponent {#2968
  -authorizationChecker: Symfony\Component\Security\Core\Authorization\AuthorizationChecker {#931 …}
  -newCommentMarkerCount: App\Kbin\NewCommentMarker\NewCommentMarkerCount {#2969 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -security: Symfony\Bundle\SecurityBundle\Security {#1101 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1970 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
    +slug: "Creating-the-XMPP-Network-Graph"
    +title: "Creating the XMPP Network Graph"
    +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
    +body: """
      Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
      \n
      tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 7
    +favouriteCount: 58
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1728607448 {#2418
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1884 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1959 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +children: []
    -id: 32872
    -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
    -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1706216000
    +visibility: "visible             "
    +apId: "https://programming.dev/post/9063516"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706129600 {#1858
      date: 2024-01-24 21:53:20.0 +01:00
    }
  }
  +isSingle: true
  +showShortSentence: false
  +showBody: true
  +showMagazineName: false
  +canSeeTrash: false
  +newComments: 0
}
user_inline App\Twig\Components\UserInlineComponent 14.0 MiB 0.29 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#1978
    +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
    +cover: null
    +email: "u_tamtam@programming.dev"
    +username: "@u_tamtam@programming.dev"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729195912 {#1520
      date: 2024-10-17 22:11:52.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
    +entries: Doctrine\ORM\PersistentCollection {#1659 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
    +posts: Doctrine\ORM\PersistentCollection {#1468 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
    +follows: Doctrine\ORM\PersistentCollection {#1423 …}
    +followers: Doctrine\ORM\PersistentCollection {#1421 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
    +reports: Doctrine\ORM\PersistentCollection {#1448 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
    +violations: Doctrine\ORM\PersistentCollection {#1696 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
    +awards: Doctrine\ORM\PersistentCollection {#1700 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
    +categories: Doctrine\ORM\PersistentCollection {#1673 …}
    -id: 67294
    -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
    +apId: "u_tamtam@programming.dev"
    +apProfileId: "https://programming.dev/u/u_tamtam"
    +apPublicUrl: "https://programming.dev/u/u_tamtam"
    +apFollowersUrl: null
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "u_tamtam"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703073477 {#1516
      date: 2023-12-20 12:57:57.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698441053 {#1519
      date: 2023-10-27 23:10:53.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  "showAvatar" => false
]
Attributes
[]
Component
App\Twig\Components\UserInlineComponent {#3131
  +user: Proxies\__CG__\App\Entity\User {#1978
    +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
    +cover: null
    +email: "u_tamtam@programming.dev"
    +username: "@u_tamtam@programming.dev"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729195912 {#1520
      date: 2024-10-17 22:11:52.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
    +entries: Doctrine\ORM\PersistentCollection {#1659 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
    +posts: Doctrine\ORM\PersistentCollection {#1468 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
    +follows: Doctrine\ORM\PersistentCollection {#1423 …}
    +followers: Doctrine\ORM\PersistentCollection {#1421 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
    +reports: Doctrine\ORM\PersistentCollection {#1448 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
    +violations: Doctrine\ORM\PersistentCollection {#1696 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
    +awards: Doctrine\ORM\PersistentCollection {#1700 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
    +categories: Doctrine\ORM\PersistentCollection {#1673 …}
    -id: 67294
    -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
    +apId: "u_tamtam@programming.dev"
    +apProfileId: "https://programming.dev/u/u_tamtam"
    +apPublicUrl: "https://programming.dev/u/u_tamtam"
    +apFollowersUrl: null
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "u_tamtam"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703073477 {#1516
      date: 2023-12-20 12:57:57.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698441053 {#1519
      date: 2023-10-27 23:10:53.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +showAvatar: false
}
date App\Twig\Components\DateComponent 14.0 MiB 0.21 ms
Input props
[
  "date" => DateTimeImmutable @1706129600 {#1858
    date: 2024-01-24 21:53:20.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#3201
  +date: DateTimeImmutable @1706129600 {#1858
    date: 2024-01-24 21:53:20.0 +01:00
  }
}
date_edited App\Twig\Components\DateEditedComponent 14.0 MiB 0.14 ms
Input props
[
  "createdAt" => DateTimeImmutable @1706129600 {#1858
    date: 2024-01-24 21:53:20.0 +01:00
  }
  "editedAt" => null
]
Attributes
[]
Component
App\Twig\Components\DateEditedComponent {#3265
  +createdAt: DateTimeImmutable @1706129600 {#1858
    date: 2024-01-24 21:53:20.0 +01:00
  }
  +editedAt: null
}
vote App\Twig\Components\VoteComponent 14.0 MiB 0.45 ms
Input props
[
  "subject" => App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1970 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
    +slug: "Creating-the-XMPP-Network-Graph"
    +title: "Creating the XMPP Network Graph"
    +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
    +body: """
      Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
      \n
      tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 7
    +favouriteCount: 58
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1728607448 {#2418
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1884 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1959 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +children: []
    -id: 32872
    -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
    -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1706216000
    +visibility: "visible             "
    +apId: "https://programming.dev/post/9063516"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706129600 {#1858
      date: 2024-01-24 21:53:20.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\VoteComponent {#3332
  +subject: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1970 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
    +slug: "Creating-the-XMPP-Network-Graph"
    +title: "Creating the XMPP Network Graph"
    +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
    +body: """
      Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
      \n
      tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 7
    +favouriteCount: 58
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1728607448 {#2418
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1884 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1959 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +children: []
    -id: 32872
    -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
    -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1706216000
    +visibility: "visible             "
    +apId: "https://programming.dev/post/9063516"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706129600 {#1858
      date: 2024-01-24 21:53:20.0 +01:00
    }
  }
  +formDest: "entry"
  +showDownvote: true
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
boost App\Twig\Components\BoostComponent 14.0 MiB 1.04 ms
Input props
[
  "subject" => App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1970 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
    +slug: "Creating-the-XMPP-Network-Graph"
    +title: "Creating the XMPP Network Graph"
    +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
    +body: """
      Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
      \n
      tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 7
    +favouriteCount: 58
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1728607448 {#2418
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1884 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1959 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +children: []
    -id: 32872
    -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
    -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1706216000
    +visibility: "visible             "
    +apId: "https://programming.dev/post/9063516"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706129600 {#1858
      date: 2024-01-24 21:53:20.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\BoostComponent {#3398
  +formDest: "entry"
  +subject: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1970 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
    +slug: "Creating-the-XMPP-Network-Graph"
    +title: "Creating the XMPP Network Graph"
    +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
    +body: """
      Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
      \n
      tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 7
    +favouriteCount: 58
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1728607448 {#2418
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1884 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1959 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +children: []
    -id: 32872
    -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
    -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1706216000
    +visibility: "visible             "
    +apId: "https://programming.dev/post/9063516"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706129600 {#1858
      date: 2024-01-24 21:53:20.0 +01:00
    }
  }
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
entries_cross App\Twig\Components\EntriesCrossComponent 14.0 MiB 48.21 ms
Input props
[
  "entry" => App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1970 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
    +slug: "Creating-the-XMPP-Network-Graph"
    +title: "Creating the XMPP Network Graph"
    +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
    +body: """
      Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
      \n
      tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 7
    +favouriteCount: 58
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1728607448 {#2418
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1884 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1959 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +children: []
    -id: 32872
    -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
    -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1706216000
    +visibility: "visible             "
    +apId: "https://programming.dev/post/9063516"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706129600 {#1858
      date: 2024-01-24 21:53:20.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\EntriesCrossComponent {#3712
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: App\Entity\Magazine {#264
      +icon: Proxies\__CG__\App\Entity\Image {#245 …}
      +name: "selfhosted@lemmy.world"
      +title: "selfhosted"
      +description: """
        A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
        \n
        Rules:\n
        \n
        - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
        - No spam posting.\n
        - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
        - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
        - No trolling.\n
        \n
        Resources:\n
        \n
        - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
        - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
        - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
        \n
        > Any issues on the community? Report it using the report flag.\n
        \n
        > Questions? DM the mods!
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 222
      +entryCommentCount: 3916
      +postCount: 0
      +postCommentCount: 0
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729582735 {#274
        date: 2024-10-22 09:38:55.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#236 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
      +entries: Doctrine\ORM\PersistentCollection {#179 …}
      +posts: Doctrine\ORM\PersistentCollection {#137 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
      +bans: Doctrine\ORM\PersistentCollection {#116 …}
      +reports: Doctrine\ORM\PersistentCollection {#102 …}
      +badges: Doctrine\ORM\PersistentCollection {#80 …}
      +logs: Doctrine\ORM\PersistentCollection {#70 …}
      +awards: Doctrine\ORM\PersistentCollection {#1360 …}
      +categories: Doctrine\ORM\PersistentCollection {#1792 …}
      -id: 120
      +apId: "selfhosted@lemmy.world"
      +apProfileId: "https://lemmy.world/c/selfhosted"
      +apPublicUrl: "https://lemmy.world/c/selfhosted"
      +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "selfhosted"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703473826 {#268
        date: 2023-12-25 04:10:26.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1703473826 {#270
        date: 2023-12-25 04:10:26.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1970 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
    +slug: "Creating-the-XMPP-Network-Graph"
    +title: "Creating the XMPP Network Graph"
    +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
    +body: """
      Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
      \n
      tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 7
    +favouriteCount: 58
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1728607448 {#2418
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1884 …}
    +votes: Doctrine\ORM\PersistentCollection {#1961 …}
    +reports: Doctrine\ORM\PersistentCollection {#1959 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
    +badges: Doctrine\ORM\PersistentCollection {#2436 …}
    +children: []
    -id: 32872
    -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
    -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1706216000
    +visibility: "visible             "
    +apId: "https://programming.dev/post/9063516"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706129600 {#1858
      date: 2024-01-24 21:53:20.0 +01:00
    }
  }
  -repository: App\Repository\EntryRepository {#269 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -security: Symfony\Bundle\SecurityBundle\Security {#1101 …}
}
editor_toolbar App\Twig\Components\EditorToolbarComponent 14.0 MiB 0.23 ms
Input props
[
  "id" => "entry_comment_68ccc7d42abea0.77960243_body"
]
Attributes
[]
Component
App\Twig\Components\EditorToolbarComponent {#3837
  +id: "entry_comment_68ccc7d42abea0.77960243_body"
}
entry_comment App\Twig\Components\EntryCommentComponent 14.0 MiB 282.32 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4036
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1728607448 {#4046
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4034 …}
    +nested: Doctrine\ORM\PersistentCollection {#4032 …}
    +votes: Doctrine\ORM\PersistentCollection {#4030 …}
    +reports: Doctrine\ORM\PersistentCollection {#4028 …}
    +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
    -id: 338678
    -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/6999292"
    +editedAt: DateTimeImmutable @1728516868 {#3982
      date: 2024-10-10 01:34:28.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706166868 {#4045
      date: 2024-01-25 08:14:28.0 +01:00
    }
  }
  "showNested" => true
  "dateAsUrl" => false
  "showMagazineName" => false
  "showEntryTitle" => false
]
Attributes
[]
Component
App\Twig\Components\EntryCommentComponent {#4207
  +comment: App\Entity\EntryComment {#4036
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1728607448 {#4046
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4034 …}
    +nested: Doctrine\ORM\PersistentCollection {#4032 …}
    +votes: Doctrine\ORM\PersistentCollection {#4030 …}
    +reports: Doctrine\ORM\PersistentCollection {#4028 …}
    +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
    -id: 338678
    -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/6999292"
    +editedAt: DateTimeImmutable @1728516868 {#3982
      date: 2024-10-10 01:34:28.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706166868 {#4045
      date: 2024-01-25 08:14:28.0 +01:00
    }
  }
  +showMagazineName: false
  +showEntryTitle: false
  +showNested: true
  +level: 1
  +canSeeTrash: false
  +dateAsUrl: false
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -authorizationChecker: Symfony\Component\Security\Core\Authorization\AuthorizationChecker {#931 …}
}
user_inline App\Twig\Components\UserInlineComponent 14.0 MiB 0.16 ms
Input props
[
  "user" => App\Entity\User {#3984
    +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
    +cover: null
    +email: "iso@lemy.lol"
    +username: "@iso@lemy.lol"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
    +lastActive: DateTime @1728807873 {#4041
      date: 2024-10-13 10:24:33.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
    +entries: Doctrine\ORM\PersistentCollection {#3977 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
    +posts: Doctrine\ORM\PersistentCollection {#3967 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
    +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
    +follows: Doctrine\ORM\PersistentCollection {#4097 …}
    +followers: Doctrine\ORM\PersistentCollection {#4086 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
    +reports: Doctrine\ORM\PersistentCollection {#4063 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
    +violations: Doctrine\ORM\PersistentCollection {#4093 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
    +awards: Doctrine\ORM\PersistentCollection {#4089 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
    +categories: Doctrine\ORM\PersistentCollection {#4081 …}
    -id: 22594
    -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
    +apId: "iso@lemy.lol"
    +apProfileId: "https://lemy.lol/u/iso"
    +apPublicUrl: "https://lemy.lol/u/iso"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemy.lol/inbox"
    +apDomain: "lemy.lol"
    +apPreferredUsername: "iso"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1705354101 {#4039
      date: 2024-01-15 22:28:21.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689074515 {#4038
      date: 2023-07-11 13:21:55.0 +02:00
    }
  }
  "showAvatar" => false
]
Attributes
[]
Component
App\Twig\Components\UserInlineComponent {#4317
  +user: App\Entity\User {#3984
    +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
    +cover: null
    +email: "iso@lemy.lol"
    +username: "@iso@lemy.lol"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
    +lastActive: DateTime @1728807873 {#4041
      date: 2024-10-13 10:24:33.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
    +entries: Doctrine\ORM\PersistentCollection {#3977 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
    +posts: Doctrine\ORM\PersistentCollection {#3967 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
    +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
    +follows: Doctrine\ORM\PersistentCollection {#4097 …}
    +followers: Doctrine\ORM\PersistentCollection {#4086 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
    +reports: Doctrine\ORM\PersistentCollection {#4063 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
    +violations: Doctrine\ORM\PersistentCollection {#4093 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
    +awards: Doctrine\ORM\PersistentCollection {#4089 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
    +categories: Doctrine\ORM\PersistentCollection {#4081 …}
    -id: 22594
    -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
    +apId: "iso@lemy.lol"
    +apProfileId: "https://lemy.lol/u/iso"
    +apPublicUrl: "https://lemy.lol/u/iso"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemy.lol/inbox"
    +apDomain: "lemy.lol"
    +apPreferredUsername: "iso"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1705354101 {#4039
      date: 2024-01-15 22:28:21.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689074515 {#4038
      date: 2023-07-11 13:21:55.0 +02:00
    }
  }
  +showAvatar: false
}
date App\Twig\Components\DateComponent 14.0 MiB 0.14 ms
Input props
[
  "date" => DateTimeImmutable @1706166868 {#4045
    date: 2024-01-25 08:14:28.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#4372
  +date: DateTimeImmutable @1706166868 {#4045
    date: 2024-01-25 08:14:28.0 +01:00
  }
}
date_edited App\Twig\Components\DateEditedComponent 14.0 MiB 0.16 ms
Input props
[
  "createdAt" => DateTimeImmutable @1706166868 {#4045
    date: 2024-01-25 08:14:28.0 +01:00
  }
  "editedAt" => DateTimeImmutable @1728516868 {#3982
    date: 2024-10-10 01:34:28.0 +02:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateEditedComponent {#4426
  +createdAt: DateTimeImmutable @1706166868 {#4045
    date: 2024-01-25 08:14:28.0 +01:00
  }
  +editedAt: DateTimeImmutable @1728516868 {#3982
    date: 2024-10-10 01:34:28.0 +02:00
  }
}
user_avatar App\Twig\Components\UserAvatarComponent 14.0 MiB 14.86 ms
Input props
[
  "user" => App\Entity\User {#3984
    +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
    +cover: null
    +email: "iso@lemy.lol"
    +username: "@iso@lemy.lol"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
    +lastActive: DateTime @1728807873 {#4041
      date: 2024-10-13 10:24:33.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
    +entries: Doctrine\ORM\PersistentCollection {#3977 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
    +posts: Doctrine\ORM\PersistentCollection {#3967 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
    +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
    +follows: Doctrine\ORM\PersistentCollection {#4097 …}
    +followers: Doctrine\ORM\PersistentCollection {#4086 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
    +reports: Doctrine\ORM\PersistentCollection {#4063 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
    +violations: Doctrine\ORM\PersistentCollection {#4093 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
    +awards: Doctrine\ORM\PersistentCollection {#4089 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
    +categories: Doctrine\ORM\PersistentCollection {#4081 …}
    -id: 22594
    -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
    +apId: "iso@lemy.lol"
    +apProfileId: "https://lemy.lol/u/iso"
    +apPublicUrl: "https://lemy.lol/u/iso"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemy.lol/inbox"
    +apDomain: "lemy.lol"
    +apPreferredUsername: "iso"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1705354101 {#4039
      date: 2024-01-15 22:28:21.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689074515 {#4038
      date: 2023-07-11 13:21:55.0 +02:00
    }
  }
  "width" => 40
  "height" => 40
  "asLink" => true
]
Attributes
[]
Component
App\Twig\Components\UserAvatarComponent {#4482
  +width: 40
  +height: 40
  +user: App\Entity\User {#3984
    +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
    +cover: null
    +email: "iso@lemy.lol"
    +username: "@iso@lemy.lol"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
    +lastActive: DateTime @1728807873 {#4041
      date: 2024-10-13 10:24:33.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
    +entries: Doctrine\ORM\PersistentCollection {#3977 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
    +posts: Doctrine\ORM\PersistentCollection {#3967 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
    +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
    +follows: Doctrine\ORM\PersistentCollection {#4097 …}
    +followers: Doctrine\ORM\PersistentCollection {#4086 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
    +reports: Doctrine\ORM\PersistentCollection {#4063 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
    +violations: Doctrine\ORM\PersistentCollection {#4093 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
    +awards: Doctrine\ORM\PersistentCollection {#4089 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
    +categories: Doctrine\ORM\PersistentCollection {#4081 …}
    -id: 22594
    -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
    +apId: "iso@lemy.lol"
    +apProfileId: "https://lemy.lol/u/iso"
    +apPublicUrl: "https://lemy.lol/u/iso"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemy.lol/inbox"
    +apDomain: "lemy.lol"
    +apPreferredUsername: "iso"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1705354101 {#4039
      date: 2024-01-15 22:28:21.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689074515 {#4038
      date: 2023-07-11 13:21:55.0 +02:00
    }
  }
  +asLink: true
}
vote App\Twig\Components\VoteComponent 14.0 MiB 0.40 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4036
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1728607448 {#4046
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4034 …}
    +nested: Doctrine\ORM\PersistentCollection {#4032 …}
    +votes: Doctrine\ORM\PersistentCollection {#4030 …}
    +reports: Doctrine\ORM\PersistentCollection {#4028 …}
    +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
    -id: 338678
    -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/6999292"
    +editedAt: DateTimeImmutable @1728516868 {#3982
      date: 2024-10-10 01:34:28.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706166868 {#4045
      date: 2024-01-25 08:14:28.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\VoteComponent {#4573
  +subject: App\Entity\EntryComment {#4036
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1728607448 {#4046
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4034 …}
    +nested: Doctrine\ORM\PersistentCollection {#4032 …}
    +votes: Doctrine\ORM\PersistentCollection {#4030 …}
    +reports: Doctrine\ORM\PersistentCollection {#4028 …}
    +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
    -id: 338678
    -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/6999292"
    +editedAt: DateTimeImmutable @1728516868 {#3982
      date: 2024-10-10 01:34:28.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706166868 {#4045
      date: 2024-01-25 08:14:28.0 +01:00
    }
  }
  +formDest: "entry_comment"
  +showDownvote: true
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
boost App\Twig\Components\BoostComponent 14.0 MiB 0.79 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4036
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1728607448 {#4046
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4034 …}
    +nested: Doctrine\ORM\PersistentCollection {#4032 …}
    +votes: Doctrine\ORM\PersistentCollection {#4030 …}
    +reports: Doctrine\ORM\PersistentCollection {#4028 …}
    +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
    -id: 338678
    -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/6999292"
    +editedAt: DateTimeImmutable @1728516868 {#3982
      date: 2024-10-10 01:34:28.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706166868 {#4045
      date: 2024-01-25 08:14:28.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\BoostComponent {#4630
  +formDest: "entry_comment"
  +subject: App\Entity\EntryComment {#4036
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1728607448 {#4046
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4034 …}
    +nested: Doctrine\ORM\PersistentCollection {#4032 …}
    +votes: Doctrine\ORM\PersistentCollection {#4030 …}
    +reports: Doctrine\ORM\PersistentCollection {#4028 …}
    +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
    -id: 338678
    -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/6999292"
    +editedAt: DateTimeImmutable @1728516868 {#3982
      date: 2024-10-10 01:34:28.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706166868 {#4045
      date: 2024-01-25 08:14:28.0 +01:00
    }
  }
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
entry_comments_nested App\Twig\Components\EntryCommentsNestedComponent 14.0 MiB 244.37 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4036
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1728607448 {#4046
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4034 …}
    +nested: Doctrine\ORM\PersistentCollection {#4032 …}
    +votes: Doctrine\ORM\PersistentCollection {#4030 …}
    +reports: Doctrine\ORM\PersistentCollection {#4028 …}
    +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
    -id: 338678
    -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/6999292"
    +editedAt: DateTimeImmutable @1728516868 {#3982
      date: 2024-10-10 01:34:28.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706166868 {#4045
      date: 2024-01-25 08:14:28.0 +01:00
    }
  }
  "level" => 1
  "showNested" => true
  "view" => "tree"
]
Attributes
[
  "showNested" => true
]
Component
App\Twig\Components\EntryCommentsNestedComponent {#4875
  +comment: App\Entity\EntryComment {#4036
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1728607448 {#4046
      date: 2024-10-11 02:44:08.0 +02:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4034 …}
    +nested: Doctrine\ORM\PersistentCollection {#4032 …}
    +votes: Doctrine\ORM\PersistentCollection {#4030 …}
    +reports: Doctrine\ORM\PersistentCollection {#4028 …}
    +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
    -id: 338678
    -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/6999292"
    +editedAt: DateTimeImmutable @1728516868 {#3982
      date: 2024-10-10 01:34:28.0 +02:00
    }
    +createdAt: DateTimeImmutable @1706166868 {#4045
      date: 2024-01-25 08:14:28.0 +01:00
    }
  }
  +nestedComments: [
    338889 => App\Entity\EntryComment {#4197
      +user: App\Entity\User {#3984}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4183
        +user: Proxies\__CG__\App\Entity\User {#1978 …2}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4036}
        +root: App\Entity\EntryComment {#4036}
        +body: """
          They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
          \n
          Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
          \n
          Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 8
        +score: 0
        +lastActive: DateTime @1706172652 {#4181
          date: 2024-01-25 09:50:52.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4184 …}
        +nested: Doctrine\ORM\PersistentCollection {#4186 …}
        +votes: Doctrine\ORM\PersistentCollection {#4188 …}
        +reports: Doctrine\ORM\PersistentCollection {#4190 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
        -id: 338818
        -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/6801885"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706172652 {#4182
          date: 2024-01-25 09:50:52.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
        \n
        The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        Which client would you recommend?
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 3
      +score: 0
      +lastActive: DateTime @1706176290 {#4202
        date: 2024-01-25 10:51:30.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4205 …}
      +nested: Doctrine\ORM\PersistentCollection {#4209 …}
      +votes: Doctrine\ORM\PersistentCollection {#4211 …}
      +reports: Doctrine\ORM\PersistentCollection {#4212 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
      -id: 338889
      -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/7002949"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706176290 {#4199
        date: 2024-01-25 10:51:30.0 +01:00
      }
    }
    338687 => App\Entity\EntryComment {#4159
      +user: Proxies\__CG__\App\Entity\User {#4167
        +avatar: null
        +cover: null
        +email: "StefanT@lemmy.world"
        +username: "@StefanT@lemmy.world"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729349848 {#5036
          date: 2024-10-19 16:57:28.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
        +entries: Doctrine\ORM\PersistentCollection {#5048 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
        +posts: Doctrine\ORM\PersistentCollection {#5056 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
        +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
        +follows: Doctrine\ORM\PersistentCollection {#5068 …}
        +followers: Doctrine\ORM\PersistentCollection {#5070 …}
        +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
        +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
        +reports: Doctrine\ORM\PersistentCollection {#5080 …}
        +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
        +violations: Doctrine\ORM\PersistentCollection {#5084 …}
        +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
        +awards: Doctrine\ORM\PersistentCollection {#5088 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
        +categories: Doctrine\ORM\PersistentCollection {#5092 …}
        -id: 16372
        -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
        +apId: "StefanT@lemmy.world"
        +apProfileId: "https://lemmy.world/u/StefanT"
        +apPublicUrl: "https://lemmy.world/u/StefanT"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "StefanT"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1726479809 {#5033
          date: 2024-09-16 11:43:29.0 +02:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1688288660 {#5035
          date: 2023-07-02 11:04:20.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4036}
      +root: App\Entity\EntryComment {#4036}
      +body: "This comparison looks neutral: [www.freie-messenger.de/en/…/xmpp-matrix/](https://www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1706167365 {#4164
        date: 2024-01-25 08:22:45.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4170 …}
      +nested: Doctrine\ORM\PersistentCollection {#4172 …}
      +votes: Doctrine\ORM\PersistentCollection {#4168 …}
      +reports: Doctrine\ORM\PersistentCollection {#4175 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4177 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4179 …}
      -id: 338687
      -bodyTs: "'/en/':7 '/en/systemvergleich/xmpp-matrix/)':11 '/xmpp-matrix':8 'comparison':2 'look':3 'neutral':4 'www.freie-messenger.de':6,10 'www.freie-messenger.de/en/':5 'www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)':9"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6994038"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706167365 {#4161
        date: 2024-01-25 08:22:45.0 +01:00
      }
    }
    339614 => App\Entity\EntryComment {#4255
      +user: App\Entity\User {#3984}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4233
        +user: Proxies\__CG__\App\Entity\User {#1978 …2}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4197}
        +root: App\Entity\EntryComment {#4036}
        +body: """
          > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
          \n
          That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
          \n
          And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
          \n
          > Which client would you recommend?\n
          \n
          Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 5
        +score: 0
        +lastActive: DateTime @1706185731 {#4228
          date: 2024-01-25 13:28:51.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4225 …}
        +nested: Doctrine\ORM\PersistentCollection {#4222 …}
        +votes: Doctrine\ORM\PersistentCollection {#4220 …}
        +reports: Doctrine\ORM\PersistentCollection {#4234 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
        -id: 339291
        -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/6806935"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706185731 {#4231
          date: 2024-01-25 13:28:51.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: "Thank you for the suggestions. I just created an account on jabber.hot-chilli.net and downloaded Gajim. It looks really cool!"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 3
      +score: 0
      +lastActive: DateTime @1706199393 {#4250
        date: 2024-01-25 17:16:33.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4247 …}
      +nested: Doctrine\ORM\PersistentCollection {#4244 …}
      +votes: Doctrine\ORM\PersistentCollection {#4242 …}
      +reports: Doctrine\ORM\PersistentCollection {#4256 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4258 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4260 …}
      -id: 339614
      -bodyTs: "'account':10 'cool':19 'creat':8 'download':14 'gajim':15 'jabber.hot-chilli.net':12 'look':17 'realli':18 'suggest':5 'thank':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/7010951"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706199393 {#4253
        date: 2024-01-25 17:16:33.0 +01:00
      }
    }
    338818 => App\Entity\EntryComment {#4183}
    339291 => App\Entity\EntryComment {#4233}
  ]
  +level: 1
  +view: "tree"
  -entryCommentRepository: App\Repository\EntryCommentRepository {#555 …}
  -twig: Twig\Environment {#1252 …}
  -security: Symfony\Bundle\SecurityBundle\Security {#1101 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
entry_comment App\Twig\Components\EntryCommentComponent 14.0 MiB 75.13 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4159
    +user: Proxies\__CG__\App\Entity\User {#4167
      +avatar: null
      +cover: null
      +email: "StefanT@lemmy.world"
      +username: "@StefanT@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729349848 {#5036
        date: 2024-10-19 16:57:28.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
      +entries: Doctrine\ORM\PersistentCollection {#5048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
      +posts: Doctrine\ORM\PersistentCollection {#5056 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
      +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
      +follows: Doctrine\ORM\PersistentCollection {#5068 …}
      +followers: Doctrine\ORM\PersistentCollection {#5070 …}
      +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
      +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
      +reports: Doctrine\ORM\PersistentCollection {#5080 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
      +violations: Doctrine\ORM\PersistentCollection {#5084 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
      +awards: Doctrine\ORM\PersistentCollection {#5088 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
      +categories: Doctrine\ORM\PersistentCollection {#5092 …}
      -id: 16372
      -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
      +apId: "StefanT@lemmy.world"
      +apProfileId: "https://lemmy.world/u/StefanT"
      +apPublicUrl: "https://lemmy.world/u/StefanT"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "StefanT"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1726479809 {#5033
        date: 2024-09-16 11:43:29.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1688288660 {#5035
        date: 2023-07-02 11:04:20.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "This comparison looks neutral: [www.freie-messenger.de/en/…/xmpp-matrix/](https://www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706167365 {#4164
      date: 2024-01-25 08:22:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4170 …}
    +nested: Doctrine\ORM\PersistentCollection {#4172 …}
    +votes: Doctrine\ORM\PersistentCollection {#4168 …}
    +reports: Doctrine\ORM\PersistentCollection {#4175 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4177 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4179 …}
    -id: 338687
    -bodyTs: "'/en/':7 '/en/systemvergleich/xmpp-matrix/)':11 '/xmpp-matrix':8 'comparison':2 'look':3 'neutral':4 'www.freie-messenger.de':6,10 'www.freie-messenger.de/en/':5 'www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6994038"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706167365 {#4161
      date: 2024-01-25 08:22:45.0 +01:00
    }
  }
  "showNested" => true
  "level" => 2
  "showEntryTitle" => false
  "showMagazineName" => false
]
Attributes
[]
Component
App\Twig\Components\EntryCommentComponent {#4949
  +comment: App\Entity\EntryComment {#4159
    +user: Proxies\__CG__\App\Entity\User {#4167
      +avatar: null
      +cover: null
      +email: "StefanT@lemmy.world"
      +username: "@StefanT@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729349848 {#5036
        date: 2024-10-19 16:57:28.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
      +entries: Doctrine\ORM\PersistentCollection {#5048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
      +posts: Doctrine\ORM\PersistentCollection {#5056 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
      +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
      +follows: Doctrine\ORM\PersistentCollection {#5068 …}
      +followers: Doctrine\ORM\PersistentCollection {#5070 …}
      +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
      +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
      +reports: Doctrine\ORM\PersistentCollection {#5080 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
      +violations: Doctrine\ORM\PersistentCollection {#5084 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
      +awards: Doctrine\ORM\PersistentCollection {#5088 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
      +categories: Doctrine\ORM\PersistentCollection {#5092 …}
      -id: 16372
      -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
      +apId: "StefanT@lemmy.world"
      +apProfileId: "https://lemmy.world/u/StefanT"
      +apPublicUrl: "https://lemmy.world/u/StefanT"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "StefanT"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1726479809 {#5033
        date: 2024-09-16 11:43:29.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1688288660 {#5035
        date: 2023-07-02 11:04:20.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "This comparison looks neutral: [www.freie-messenger.de/en/…/xmpp-matrix/](https://www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706167365 {#4164
      date: 2024-01-25 08:22:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4170 …}
    +nested: Doctrine\ORM\PersistentCollection {#4172 …}
    +votes: Doctrine\ORM\PersistentCollection {#4168 …}
    +reports: Doctrine\ORM\PersistentCollection {#4175 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4177 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4179 …}
    -id: 338687
    -bodyTs: "'/en/':7 '/en/systemvergleich/xmpp-matrix/)':11 '/xmpp-matrix':8 'comparison':2 'look':3 'neutral':4 'www.freie-messenger.de':6,10 'www.freie-messenger.de/en/':5 'www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6994038"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706167365 {#4161
      date: 2024-01-25 08:22:45.0 +01:00
    }
  }
  +showMagazineName: false
  +showEntryTitle: false
  +showNested: true
  +level: 2
  +canSeeTrash: false
  +dateAsUrl: false
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -authorizationChecker: Symfony\Component\Security\Core\Authorization\AuthorizationChecker {#931 …}
}
user_inline App\Twig\Components\UserInlineComponent 14.0 MiB 21.43 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#4167
    +avatar: null
    +cover: null
    +email: "StefanT@lemmy.world"
    +username: "@StefanT@lemmy.world"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729349848 {#5036
      date: 2024-10-19 16:57:28.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
    +entries: Doctrine\ORM\PersistentCollection {#5048 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
    +posts: Doctrine\ORM\PersistentCollection {#5056 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
    +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
    +follows: Doctrine\ORM\PersistentCollection {#5068 …}
    +followers: Doctrine\ORM\PersistentCollection {#5070 …}
    +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
    +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
    +reports: Doctrine\ORM\PersistentCollection {#5080 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
    +violations: Doctrine\ORM\PersistentCollection {#5084 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
    +awards: Doctrine\ORM\PersistentCollection {#5088 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
    +categories: Doctrine\ORM\PersistentCollection {#5092 …}
    -id: 16372
    -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
    +apId: "StefanT@lemmy.world"
    +apProfileId: "https://lemmy.world/u/StefanT"
    +apPublicUrl: "https://lemmy.world/u/StefanT"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "StefanT"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726479809 {#5033
      date: 2024-09-16 11:43:29.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1688288660 {#5035
      date: 2023-07-02 11:04:20.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  "showAvatar" => false
]
Attributes
[]
Component
App\Twig\Components\UserInlineComponent {#4996
  +user: Proxies\__CG__\App\Entity\User {#4167
    +avatar: null
    +cover: null
    +email: "StefanT@lemmy.world"
    +username: "@StefanT@lemmy.world"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729349848 {#5036
      date: 2024-10-19 16:57:28.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
    +entries: Doctrine\ORM\PersistentCollection {#5048 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
    +posts: Doctrine\ORM\PersistentCollection {#5056 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
    +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
    +follows: Doctrine\ORM\PersistentCollection {#5068 …}
    +followers: Doctrine\ORM\PersistentCollection {#5070 …}
    +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
    +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
    +reports: Doctrine\ORM\PersistentCollection {#5080 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
    +violations: Doctrine\ORM\PersistentCollection {#5084 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
    +awards: Doctrine\ORM\PersistentCollection {#5088 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
    +categories: Doctrine\ORM\PersistentCollection {#5092 …}
    -id: 16372
    -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
    +apId: "StefanT@lemmy.world"
    +apProfileId: "https://lemmy.world/u/StefanT"
    +apPublicUrl: "https://lemmy.world/u/StefanT"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "StefanT"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726479809 {#5033
      date: 2024-09-16 11:43:29.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1688288660 {#5035
      date: 2023-07-02 11:04:20.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +showAvatar: false
}
date App\Twig\Components\DateComponent 14.0 MiB 0.30 ms
Input props
[
  "date" => DateTimeImmutable @1706167365 {#4161
    date: 2024-01-25 08:22:45.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#5114
  +date: DateTimeImmutable @1706167365 {#4161
    date: 2024-01-25 08:22:45.0 +01:00
  }
}
date_edited App\Twig\Components\DateEditedComponent 14.0 MiB 0.21 ms
Input props
[
  "createdAt" => DateTimeImmutable @1706167365 {#4161
    date: 2024-01-25 08:22:45.0 +01:00
  }
  "editedAt" => null
]
Attributes
[]
Component
App\Twig\Components\DateEditedComponent {#5168
  +createdAt: DateTimeImmutable @1706167365 {#4161
    date: 2024-01-25 08:22:45.0 +01:00
  }
  +editedAt: null
}
user_avatar App\Twig\Components\UserAvatarComponent 14.0 MiB 0.29 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#4167
    +avatar: null
    +cover: null
    +email: "StefanT@lemmy.world"
    +username: "@StefanT@lemmy.world"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729349848 {#5036
      date: 2024-10-19 16:57:28.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
    +entries: Doctrine\ORM\PersistentCollection {#5048 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
    +posts: Doctrine\ORM\PersistentCollection {#5056 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
    +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
    +follows: Doctrine\ORM\PersistentCollection {#5068 …}
    +followers: Doctrine\ORM\PersistentCollection {#5070 …}
    +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
    +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
    +reports: Doctrine\ORM\PersistentCollection {#5080 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
    +violations: Doctrine\ORM\PersistentCollection {#5084 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
    +awards: Doctrine\ORM\PersistentCollection {#5088 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
    +categories: Doctrine\ORM\PersistentCollection {#5092 …}
    -id: 16372
    -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
    +apId: "StefanT@lemmy.world"
    +apProfileId: "https://lemmy.world/u/StefanT"
    +apPublicUrl: "https://lemmy.world/u/StefanT"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "StefanT"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726479809 {#5033
      date: 2024-09-16 11:43:29.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1688288660 {#5035
      date: 2023-07-02 11:04:20.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  "width" => 40
  "height" => 40
  "asLink" => true
]
Attributes
[]
Component
App\Twig\Components\UserAvatarComponent {#5222
  +width: 40
  +height: 40
  +user: Proxies\__CG__\App\Entity\User {#4167
    +avatar: null
    +cover: null
    +email: "StefanT@lemmy.world"
    +username: "@StefanT@lemmy.world"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729349848 {#5036
      date: 2024-10-19 16:57:28.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
    +entries: Doctrine\ORM\PersistentCollection {#5048 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
    +posts: Doctrine\ORM\PersistentCollection {#5056 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
    +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
    +follows: Doctrine\ORM\PersistentCollection {#5068 …}
    +followers: Doctrine\ORM\PersistentCollection {#5070 …}
    +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
    +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
    +reports: Doctrine\ORM\PersistentCollection {#5080 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
    +violations: Doctrine\ORM\PersistentCollection {#5084 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
    +awards: Doctrine\ORM\PersistentCollection {#5088 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
    +categories: Doctrine\ORM\PersistentCollection {#5092 …}
    -id: 16372
    -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
    +apId: "StefanT@lemmy.world"
    +apProfileId: "https://lemmy.world/u/StefanT"
    +apPublicUrl: "https://lemmy.world/u/StefanT"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "StefanT"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726479809 {#5033
      date: 2024-09-16 11:43:29.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1688288660 {#5035
      date: 2023-07-02 11:04:20.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +asLink: true
}
vote App\Twig\Components\VoteComponent 14.0 MiB 0.90 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4159
    +user: Proxies\__CG__\App\Entity\User {#4167
      +avatar: null
      +cover: null
      +email: "StefanT@lemmy.world"
      +username: "@StefanT@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729349848 {#5036
        date: 2024-10-19 16:57:28.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
      +entries: Doctrine\ORM\PersistentCollection {#5048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
      +posts: Doctrine\ORM\PersistentCollection {#5056 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
      +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
      +follows: Doctrine\ORM\PersistentCollection {#5068 …}
      +followers: Doctrine\ORM\PersistentCollection {#5070 …}
      +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
      +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
      +reports: Doctrine\ORM\PersistentCollection {#5080 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
      +violations: Doctrine\ORM\PersistentCollection {#5084 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
      +awards: Doctrine\ORM\PersistentCollection {#5088 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
      +categories: Doctrine\ORM\PersistentCollection {#5092 …}
      -id: 16372
      -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
      +apId: "StefanT@lemmy.world"
      +apProfileId: "https://lemmy.world/u/StefanT"
      +apPublicUrl: "https://lemmy.world/u/StefanT"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "StefanT"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1726479809 {#5033
        date: 2024-09-16 11:43:29.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1688288660 {#5035
        date: 2023-07-02 11:04:20.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "This comparison looks neutral: [www.freie-messenger.de/en/…/xmpp-matrix/](https://www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706167365 {#4164
      date: 2024-01-25 08:22:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4170 …}
    +nested: Doctrine\ORM\PersistentCollection {#4172 …}
    +votes: Doctrine\ORM\PersistentCollection {#4168 …}
    +reports: Doctrine\ORM\PersistentCollection {#4175 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4177 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4179 …}
    -id: 338687
    -bodyTs: "'/en/':7 '/en/systemvergleich/xmpp-matrix/)':11 '/xmpp-matrix':8 'comparison':2 'look':3 'neutral':4 'www.freie-messenger.de':6,10 'www.freie-messenger.de/en/':5 'www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6994038"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706167365 {#4161
      date: 2024-01-25 08:22:45.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\VoteComponent {#5295
  +subject: App\Entity\EntryComment {#4159
    +user: Proxies\__CG__\App\Entity\User {#4167
      +avatar: null
      +cover: null
      +email: "StefanT@lemmy.world"
      +username: "@StefanT@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729349848 {#5036
        date: 2024-10-19 16:57:28.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
      +entries: Doctrine\ORM\PersistentCollection {#5048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
      +posts: Doctrine\ORM\PersistentCollection {#5056 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
      +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
      +follows: Doctrine\ORM\PersistentCollection {#5068 …}
      +followers: Doctrine\ORM\PersistentCollection {#5070 …}
      +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
      +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
      +reports: Doctrine\ORM\PersistentCollection {#5080 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
      +violations: Doctrine\ORM\PersistentCollection {#5084 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
      +awards: Doctrine\ORM\PersistentCollection {#5088 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
      +categories: Doctrine\ORM\PersistentCollection {#5092 …}
      -id: 16372
      -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
      +apId: "StefanT@lemmy.world"
      +apProfileId: "https://lemmy.world/u/StefanT"
      +apPublicUrl: "https://lemmy.world/u/StefanT"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "StefanT"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1726479809 {#5033
        date: 2024-09-16 11:43:29.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1688288660 {#5035
        date: 2023-07-02 11:04:20.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "This comparison looks neutral: [www.freie-messenger.de/en/…/xmpp-matrix/](https://www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706167365 {#4164
      date: 2024-01-25 08:22:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4170 …}
    +nested: Doctrine\ORM\PersistentCollection {#4172 …}
    +votes: Doctrine\ORM\PersistentCollection {#4168 …}
    +reports: Doctrine\ORM\PersistentCollection {#4175 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4177 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4179 …}
    -id: 338687
    -bodyTs: "'/en/':7 '/en/systemvergleich/xmpp-matrix/)':11 '/xmpp-matrix':8 'comparison':2 'look':3 'neutral':4 'www.freie-messenger.de':6,10 'www.freie-messenger.de/en/':5 'www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6994038"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706167365 {#4161
      date: 2024-01-25 08:22:45.0 +01:00
    }
  }
  +formDest: "entry_comment"
  +showDownvote: true
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
boost App\Twig\Components\BoostComponent 14.0 MiB 20.08 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4159
    +user: Proxies\__CG__\App\Entity\User {#4167
      +avatar: null
      +cover: null
      +email: "StefanT@lemmy.world"
      +username: "@StefanT@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729349848 {#5036
        date: 2024-10-19 16:57:28.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
      +entries: Doctrine\ORM\PersistentCollection {#5048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
      +posts: Doctrine\ORM\PersistentCollection {#5056 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
      +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
      +follows: Doctrine\ORM\PersistentCollection {#5068 …}
      +followers: Doctrine\ORM\PersistentCollection {#5070 …}
      +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
      +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
      +reports: Doctrine\ORM\PersistentCollection {#5080 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
      +violations: Doctrine\ORM\PersistentCollection {#5084 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
      +awards: Doctrine\ORM\PersistentCollection {#5088 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
      +categories: Doctrine\ORM\PersistentCollection {#5092 …}
      -id: 16372
      -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
      +apId: "StefanT@lemmy.world"
      +apProfileId: "https://lemmy.world/u/StefanT"
      +apPublicUrl: "https://lemmy.world/u/StefanT"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "StefanT"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1726479809 {#5033
        date: 2024-09-16 11:43:29.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1688288660 {#5035
        date: 2023-07-02 11:04:20.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "This comparison looks neutral: [www.freie-messenger.de/en/…/xmpp-matrix/](https://www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706167365 {#4164
      date: 2024-01-25 08:22:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4170 …}
    +nested: Doctrine\ORM\PersistentCollection {#4172 …}
    +votes: Doctrine\ORM\PersistentCollection {#4168 …}
    +reports: Doctrine\ORM\PersistentCollection {#4175 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4177 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4179 …}
    -id: 338687
    -bodyTs: "'/en/':7 '/en/systemvergleich/xmpp-matrix/)':11 '/xmpp-matrix':8 'comparison':2 'look':3 'neutral':4 'www.freie-messenger.de':6,10 'www.freie-messenger.de/en/':5 'www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6994038"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706167365 {#4161
      date: 2024-01-25 08:22:45.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\BoostComponent {#5352
  +formDest: "entry_comment"
  +subject: App\Entity\EntryComment {#4159
    +user: Proxies\__CG__\App\Entity\User {#4167
      +avatar: null
      +cover: null
      +email: "StefanT@lemmy.world"
      +username: "@StefanT@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729349848 {#5036
        date: 2024-10-19 16:57:28.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
      +entries: Doctrine\ORM\PersistentCollection {#5048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
      +posts: Doctrine\ORM\PersistentCollection {#5056 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
      +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
      +follows: Doctrine\ORM\PersistentCollection {#5068 …}
      +followers: Doctrine\ORM\PersistentCollection {#5070 …}
      +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
      +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
      +reports: Doctrine\ORM\PersistentCollection {#5080 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
      +violations: Doctrine\ORM\PersistentCollection {#5084 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
      +awards: Doctrine\ORM\PersistentCollection {#5088 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
      +categories: Doctrine\ORM\PersistentCollection {#5092 …}
      -id: 16372
      -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
      +apId: "StefanT@lemmy.world"
      +apProfileId: "https://lemmy.world/u/StefanT"
      +apPublicUrl: "https://lemmy.world/u/StefanT"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "StefanT"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1726479809 {#5033
        date: 2024-09-16 11:43:29.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1688288660 {#5035
        date: 2023-07-02 11:04:20.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "This comparison looks neutral: [www.freie-messenger.de/en/…/xmpp-matrix/](https://www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706167365 {#4164
      date: 2024-01-25 08:22:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4170 …}
    +nested: Doctrine\ORM\PersistentCollection {#4172 …}
    +votes: Doctrine\ORM\PersistentCollection {#4168 …}
    +reports: Doctrine\ORM\PersistentCollection {#4175 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4177 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4179 …}
    -id: 338687
    -bodyTs: "'/en/':7 '/en/systemvergleich/xmpp-matrix/)':11 '/xmpp-matrix':8 'comparison':2 'look':3 'neutral':4 'www.freie-messenger.de':6,10 'www.freie-messenger.de/en/':5 'www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6994038"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706167365 {#4161
      date: 2024-01-25 08:22:45.0 +01:00
    }
  }
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
entry_comments_nested App\Twig\Components\EntryCommentsNestedComponent 14.0 MiB 2.55 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4159
    +user: Proxies\__CG__\App\Entity\User {#4167
      +avatar: null
      +cover: null
      +email: "StefanT@lemmy.world"
      +username: "@StefanT@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729349848 {#5036
        date: 2024-10-19 16:57:28.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
      +entries: Doctrine\ORM\PersistentCollection {#5048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
      +posts: Doctrine\ORM\PersistentCollection {#5056 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
      +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
      +follows: Doctrine\ORM\PersistentCollection {#5068 …}
      +followers: Doctrine\ORM\PersistentCollection {#5070 …}
      +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
      +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
      +reports: Doctrine\ORM\PersistentCollection {#5080 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
      +violations: Doctrine\ORM\PersistentCollection {#5084 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
      +awards: Doctrine\ORM\PersistentCollection {#5088 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
      +categories: Doctrine\ORM\PersistentCollection {#5092 …}
      -id: 16372
      -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
      +apId: "StefanT@lemmy.world"
      +apProfileId: "https://lemmy.world/u/StefanT"
      +apPublicUrl: "https://lemmy.world/u/StefanT"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "StefanT"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1726479809 {#5033
        date: 2024-09-16 11:43:29.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1688288660 {#5035
        date: 2023-07-02 11:04:20.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "This comparison looks neutral: [www.freie-messenger.de/en/…/xmpp-matrix/](https://www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706167365 {#4164
      date: 2024-01-25 08:22:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4170 …}
    +nested: Doctrine\ORM\PersistentCollection {#4172 …}
    +votes: Doctrine\ORM\PersistentCollection {#4168 …}
    +reports: Doctrine\ORM\PersistentCollection {#4175 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4177 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4179 …}
    -id: 338687
    -bodyTs: "'/en/':7 '/en/systemvergleich/xmpp-matrix/)':11 '/xmpp-matrix':8 'comparison':2 'look':3 'neutral':4 'www.freie-messenger.de':6,10 'www.freie-messenger.de/en/':5 'www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6994038"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706167365 {#4161
      date: 2024-01-25 08:22:45.0 +01:00
    }
  }
  "level" => 2
  "showNested" => true
  "view" => "tree"
]
Attributes
[
  "showNested" => true
]
Component
App\Twig\Components\EntryCommentsNestedComponent {#5592
  +comment: App\Entity\EntryComment {#4159
    +user: Proxies\__CG__\App\Entity\User {#4167
      +avatar: null
      +cover: null
      +email: "StefanT@lemmy.world"
      +username: "@StefanT@lemmy.world"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729349848 {#5036
        date: 2024-10-19 16:57:28.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#5041 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#5044 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#5046 …}
      +entries: Doctrine\ORM\PersistentCollection {#5048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#5050 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#5052 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#5054 …}
      +posts: Doctrine\ORM\PersistentCollection {#5056 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#5058 …}
      +postComments: Doctrine\ORM\PersistentCollection {#5060 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#5062 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#5064 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#5066 …}
      +follows: Doctrine\ORM\PersistentCollection {#5068 …}
      +followers: Doctrine\ORM\PersistentCollection {#5070 …}
      +blocks: Doctrine\ORM\PersistentCollection {#5072 …}
      +blockers: Doctrine\ORM\PersistentCollection {#5074 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#5076 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#5078 …}
      +reports: Doctrine\ORM\PersistentCollection {#5080 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5082 …}
      +violations: Doctrine\ORM\PersistentCollection {#5084 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5086 …}
      +awards: Doctrine\ORM\PersistentCollection {#5088 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#5090 …}
      +categories: Doctrine\ORM\PersistentCollection {#5092 …}
      -id: 16372
      -password: "$2y$13$2TRKpzlom32Tryx6jdMMmuukqFdqAw43sqNFR5NEEUQxaJW34aGES"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#5094 …}
      +apId: "StefanT@lemmy.world"
      +apProfileId: "https://lemmy.world/u/StefanT"
      +apPublicUrl: "https://lemmy.world/u/StefanT"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemmy.world/inbox"
      +apDomain: "lemmy.world"
      +apPreferredUsername: "StefanT"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1726479809 {#5033
        date: 2024-09-16 11:43:29.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1688288660 {#5035
        date: 2023-07-02 11:04:20.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "This comparison looks neutral: [www.freie-messenger.de/en/…/xmpp-matrix/](https://www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706167365 {#4164
      date: 2024-01-25 08:22:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4170 …}
    +nested: Doctrine\ORM\PersistentCollection {#4172 …}
    +votes: Doctrine\ORM\PersistentCollection {#4168 …}
    +reports: Doctrine\ORM\PersistentCollection {#4175 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4177 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4179 …}
    -id: 338687
    -bodyTs: "'/en/':7 '/en/systemvergleich/xmpp-matrix/)':11 '/xmpp-matrix':8 'comparison':2 'look':3 'neutral':4 'www.freie-messenger.de':6,10 'www.freie-messenger.de/en/':5 'www.freie-messenger.de/en/systemvergleich/xmpp-matrix/)':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6994038"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706167365 {#4161
      date: 2024-01-25 08:22:45.0 +01:00
    }
  }
  +nestedComments: []
  +level: 2
  +view: "tree"
  -entryCommentRepository: App\Repository\EntryCommentRepository {#555 …}
  -twig: Twig\Environment {#1252 …}
  -security: Symfony\Bundle\SecurityBundle\Security {#1101 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
entry_comment App\Twig\Components\EntryCommentComponent 14.0 MiB 154.68 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4183
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
      \n
      Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
      \n
      Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 8
    +score: 0
    +lastActive: DateTime @1706172652 {#4181
      date: 2024-01-25 09:50:52.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4184 …}
    +nested: Doctrine\ORM\PersistentCollection {#4186 …}
    +votes: Doctrine\ORM\PersistentCollection {#4188 …}
    +reports: Doctrine\ORM\PersistentCollection {#4190 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
    -id: 338818
    -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6801885"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706172652 {#4182
      date: 2024-01-25 09:50:52.0 +01:00
    }
  }
  "showNested" => true
  "level" => 2
  "showEntryTitle" => false
  "showMagazineName" => false
]
Attributes
[]
Component
App\Twig\Components\EntryCommentComponent {#5658
  +comment: App\Entity\EntryComment {#4183
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
      \n
      Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
      \n
      Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 8
    +score: 0
    +lastActive: DateTime @1706172652 {#4181
      date: 2024-01-25 09:50:52.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4184 …}
    +nested: Doctrine\ORM\PersistentCollection {#4186 …}
    +votes: Doctrine\ORM\PersistentCollection {#4188 …}
    +reports: Doctrine\ORM\PersistentCollection {#4190 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
    -id: 338818
    -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6801885"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706172652 {#4182
      date: 2024-01-25 09:50:52.0 +01:00
    }
  }
  +showMagazineName: false
  +showEntryTitle: false
  +showNested: true
  +level: 2
  +canSeeTrash: false
  +dateAsUrl: false
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -authorizationChecker: Symfony\Component\Security\Core\Authorization\AuthorizationChecker {#931 …}
}
user_inline App\Twig\Components\UserInlineComponent 14.0 MiB 0.87 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#1978
    +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
    +cover: null
    +email: "u_tamtam@programming.dev"
    +username: "@u_tamtam@programming.dev"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729195912 {#1520
      date: 2024-10-17 22:11:52.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
    +entries: Doctrine\ORM\PersistentCollection {#1659 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
    +posts: Doctrine\ORM\PersistentCollection {#1468 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
    +follows: Doctrine\ORM\PersistentCollection {#1423 …}
    +followers: Doctrine\ORM\PersistentCollection {#1421 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
    +reports: Doctrine\ORM\PersistentCollection {#1448 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
    +violations: Doctrine\ORM\PersistentCollection {#1696 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
    +awards: Doctrine\ORM\PersistentCollection {#1700 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
    +categories: Doctrine\ORM\PersistentCollection {#1673 …}
    -id: 67294
    -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
    +apId: "u_tamtam@programming.dev"
    +apProfileId: "https://programming.dev/u/u_tamtam"
    +apPublicUrl: "https://programming.dev/u/u_tamtam"
    +apFollowersUrl: null
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "u_tamtam"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703073477 {#1516
      date: 2023-12-20 12:57:57.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698441053 {#1519
      date: 2023-10-27 23:10:53.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  "showAvatar" => false
]
Attributes
[]
Component
App\Twig\Components\UserInlineComponent {#5703
  +user: Proxies\__CG__\App\Entity\User {#1978
    +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
    +cover: null
    +email: "u_tamtam@programming.dev"
    +username: "@u_tamtam@programming.dev"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729195912 {#1520
      date: 2024-10-17 22:11:52.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
    +entries: Doctrine\ORM\PersistentCollection {#1659 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
    +posts: Doctrine\ORM\PersistentCollection {#1468 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
    +follows: Doctrine\ORM\PersistentCollection {#1423 …}
    +followers: Doctrine\ORM\PersistentCollection {#1421 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
    +reports: Doctrine\ORM\PersistentCollection {#1448 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
    +violations: Doctrine\ORM\PersistentCollection {#1696 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
    +awards: Doctrine\ORM\PersistentCollection {#1700 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
    +categories: Doctrine\ORM\PersistentCollection {#1673 …}
    -id: 67294
    -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
    +apId: "u_tamtam@programming.dev"
    +apProfileId: "https://programming.dev/u/u_tamtam"
    +apPublicUrl: "https://programming.dev/u/u_tamtam"
    +apFollowersUrl: null
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "u_tamtam"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703073477 {#1516
      date: 2023-12-20 12:57:57.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698441053 {#1519
      date: 2023-10-27 23:10:53.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +showAvatar: false
}
date App\Twig\Components\DateComponent 14.0 MiB 1.37 ms
Input props
[
  "date" => DateTimeImmutable @1706172652 {#4182
    date: 2024-01-25 09:50:52.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#5758
  +date: DateTimeImmutable @1706172652 {#4182
    date: 2024-01-25 09:50:52.0 +01:00
  }
}
date_edited App\Twig\Components\DateEditedComponent 14.0 MiB 0.79 ms
Input props
[
  "createdAt" => DateTimeImmutable @1706172652 {#4182
    date: 2024-01-25 09:50:52.0 +01:00
  }
  "editedAt" => null
]
Attributes
[]
Component
App\Twig\Components\DateEditedComponent {#5812
  +createdAt: DateTimeImmutable @1706172652 {#4182
    date: 2024-01-25 09:50:52.0 +01:00
  }
  +editedAt: null
}
user_avatar App\Twig\Components\UserAvatarComponent 14.0 MiB 2.88 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#1978
    +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
    +cover: null
    +email: "u_tamtam@programming.dev"
    +username: "@u_tamtam@programming.dev"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729195912 {#1520
      date: 2024-10-17 22:11:52.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
    +entries: Doctrine\ORM\PersistentCollection {#1659 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
    +posts: Doctrine\ORM\PersistentCollection {#1468 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
    +follows: Doctrine\ORM\PersistentCollection {#1423 …}
    +followers: Doctrine\ORM\PersistentCollection {#1421 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
    +reports: Doctrine\ORM\PersistentCollection {#1448 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
    +violations: Doctrine\ORM\PersistentCollection {#1696 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
    +awards: Doctrine\ORM\PersistentCollection {#1700 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
    +categories: Doctrine\ORM\PersistentCollection {#1673 …}
    -id: 67294
    -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
    +apId: "u_tamtam@programming.dev"
    +apProfileId: "https://programming.dev/u/u_tamtam"
    +apPublicUrl: "https://programming.dev/u/u_tamtam"
    +apFollowersUrl: null
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "u_tamtam"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703073477 {#1516
      date: 2023-12-20 12:57:57.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698441053 {#1519
      date: 2023-10-27 23:10:53.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  "width" => 40
  "height" => 40
  "asLink" => true
]
Attributes
[]
Component
App\Twig\Components\UserAvatarComponent {#5866
  +width: 40
  +height: 40
  +user: Proxies\__CG__\App\Entity\User {#1978
    +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
    +cover: null
    +email: "u_tamtam@programming.dev"
    +username: "@u_tamtam@programming.dev"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729195912 {#1520
      date: 2024-10-17 22:11:52.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
    +entries: Doctrine\ORM\PersistentCollection {#1659 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
    +posts: Doctrine\ORM\PersistentCollection {#1468 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
    +follows: Doctrine\ORM\PersistentCollection {#1423 …}
    +followers: Doctrine\ORM\PersistentCollection {#1421 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
    +reports: Doctrine\ORM\PersistentCollection {#1448 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
    +violations: Doctrine\ORM\PersistentCollection {#1696 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
    +awards: Doctrine\ORM\PersistentCollection {#1700 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
    +categories: Doctrine\ORM\PersistentCollection {#1673 …}
    -id: 67294
    -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
    +apId: "u_tamtam@programming.dev"
    +apProfileId: "https://programming.dev/u/u_tamtam"
    +apPublicUrl: "https://programming.dev/u/u_tamtam"
    +apFollowersUrl: null
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "u_tamtam"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703073477 {#1516
      date: 2023-12-20 12:57:57.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698441053 {#1519
      date: 2023-10-27 23:10:53.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +asLink: true
}
vote App\Twig\Components\VoteComponent 14.0 MiB 4.53 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4183
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
      \n
      Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
      \n
      Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 8
    +score: 0
    +lastActive: DateTime @1706172652 {#4181
      date: 2024-01-25 09:50:52.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4184 …}
    +nested: Doctrine\ORM\PersistentCollection {#4186 …}
    +votes: Doctrine\ORM\PersistentCollection {#4188 …}
    +reports: Doctrine\ORM\PersistentCollection {#4190 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
    -id: 338818
    -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6801885"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706172652 {#4182
      date: 2024-01-25 09:50:52.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\VoteComponent {#5945
  +subject: App\Entity\EntryComment {#4183
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
      \n
      Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
      \n
      Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 8
    +score: 0
    +lastActive: DateTime @1706172652 {#4181
      date: 2024-01-25 09:50:52.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4184 …}
    +nested: Doctrine\ORM\PersistentCollection {#4186 …}
    +votes: Doctrine\ORM\PersistentCollection {#4188 …}
    +reports: Doctrine\ORM\PersistentCollection {#4190 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
    -id: 338818
    -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6801885"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706172652 {#4182
      date: 2024-01-25 09:50:52.0 +01:00
    }
  }
  +formDest: "entry_comment"
  +showDownvote: true
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
boost App\Twig\Components\BoostComponent 14.0 MiB 0.86 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4183
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
      \n
      Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
      \n
      Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 8
    +score: 0
    +lastActive: DateTime @1706172652 {#4181
      date: 2024-01-25 09:50:52.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4184 …}
    +nested: Doctrine\ORM\PersistentCollection {#4186 …}
    +votes: Doctrine\ORM\PersistentCollection {#4188 …}
    +reports: Doctrine\ORM\PersistentCollection {#4190 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
    -id: 338818
    -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6801885"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706172652 {#4182
      date: 2024-01-25 09:50:52.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\BoostComponent {#6002
  +formDest: "entry_comment"
  +subject: App\Entity\EntryComment {#4183
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
      \n
      Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
      \n
      Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 8
    +score: 0
    +lastActive: DateTime @1706172652 {#4181
      date: 2024-01-25 09:50:52.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4184 …}
    +nested: Doctrine\ORM\PersistentCollection {#4186 …}
    +votes: Doctrine\ORM\PersistentCollection {#4188 …}
    +reports: Doctrine\ORM\PersistentCollection {#4190 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
    -id: 338818
    -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6801885"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706172652 {#4182
      date: 2024-01-25 09:50:52.0 +01:00
    }
  }
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
entry_comments_nested App\Twig\Components\EntryCommentsNestedComponent 14.0 MiB 67.53 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4183
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
      \n
      Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
      \n
      Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 8
    +score: 0
    +lastActive: DateTime @1706172652 {#4181
      date: 2024-01-25 09:50:52.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4184 …}
    +nested: Doctrine\ORM\PersistentCollection {#4186 …}
    +votes: Doctrine\ORM\PersistentCollection {#4188 …}
    +reports: Doctrine\ORM\PersistentCollection {#4190 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
    -id: 338818
    -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6801885"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706172652 {#4182
      date: 2024-01-25 09:50:52.0 +01:00
    }
  }
  "level" => 2
  "showNested" => true
  "view" => "tree"
]
Attributes
[
  "showNested" => true
]
Component
App\Twig\Components\EntryCommentsNestedComponent {#6242
  +comment: App\Entity\EntryComment {#4183
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4036
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: null
      +root: null
      +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1728607448 {#4046
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@u_tamtam@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4034 …}
      +nested: Doctrine\ORM\PersistentCollection {#4032 …}
      +votes: Doctrine\ORM\PersistentCollection {#4030 …}
      +reports: Doctrine\ORM\PersistentCollection {#4028 …}
      +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
      -id: 338678
      -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/6999292"
      +editedAt: DateTimeImmutable @1728516868 {#3982
        date: 2024-10-10 01:34:28.0 +02:00
      }
      +createdAt: DateTimeImmutable @1706166868 {#4045
        date: 2024-01-25 08:14:28.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
      \n
      Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
      \n
      Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 8
    +score: 0
    +lastActive: DateTime @1706172652 {#4181
      date: 2024-01-25 09:50:52.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4184 …}
    +nested: Doctrine\ORM\PersistentCollection {#4186 …}
    +votes: Doctrine\ORM\PersistentCollection {#4188 …}
    +reports: Doctrine\ORM\PersistentCollection {#4190 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
    -id: 338818
    -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6801885"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706172652 {#4182
      date: 2024-01-25 09:50:52.0 +01:00
    }
  }
  +nestedComments: []
  +level: 2
  +view: "tree"
  -entryCommentRepository: App\Repository\EntryCommentRepository {#555 …}
  -twig: Twig\Environment {#1252 …}
  -security: Symfony\Bundle\SecurityBundle\Security {#1101 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
entry_comment App\Twig\Components\EntryCommentComponent 14.0 MiB 62.39 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4197
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4183
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4036
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: null
        +root: null
        +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
        +lang: "en"
        +isAdult: false
        +favouriteCount: 5
        +score: 0
        +lastActive: DateTime @1728607448 {#4046
          date: 2024-10-11 02:44:08.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@u_tamtam@programming.dev"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4034 …}
        +nested: Doctrine\ORM\PersistentCollection {#4032 …}
        +votes: Doctrine\ORM\PersistentCollection {#4030 …}
        +reports: Doctrine\ORM\PersistentCollection {#4028 …}
        +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
        -id: 338678
        -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/6999292"
        +editedAt: DateTimeImmutable @1728516868 {#3982
          date: 2024-10-10 01:34:28.0 +02:00
        }
        +createdAt: DateTimeImmutable @1706166868 {#4045
          date: 2024-01-25 08:14:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
        \n
        Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
        \n
        Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 8
      +score: 0
      +lastActive: DateTime @1706172652 {#4181
        date: 2024-01-25 09:50:52.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4184 …}
      +nested: Doctrine\ORM\PersistentCollection {#4186 …}
      +votes: Doctrine\ORM\PersistentCollection {#4188 …}
      +reports: Doctrine\ORM\PersistentCollection {#4190 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
      -id: 338818
      -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6801885"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706172652 {#4182
        date: 2024-01-25 09:50:52.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
      \n
      The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      Which client would you recommend?
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706176290 {#4202
      date: 2024-01-25 10:51:30.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4205 …}
    +nested: Doctrine\ORM\PersistentCollection {#4209 …}
    +votes: Doctrine\ORM\PersistentCollection {#4211 …}
    +reports: Doctrine\ORM\PersistentCollection {#4212 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
    -id: 338889
    -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7002949"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706176290 {#4199
      date: 2024-01-25 10:51:30.0 +01:00
    }
  }
  "showNested" => true
  "level" => 3
  "showEntryTitle" => false
  "showMagazineName" => false
]
Attributes
[]
Component
App\Twig\Components\EntryCommentComponent {#6297
  +comment: App\Entity\EntryComment {#4197
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4183
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4036
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: null
        +root: null
        +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
        +lang: "en"
        +isAdult: false
        +favouriteCount: 5
        +score: 0
        +lastActive: DateTime @1728607448 {#4046
          date: 2024-10-11 02:44:08.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@u_tamtam@programming.dev"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4034 …}
        +nested: Doctrine\ORM\PersistentCollection {#4032 …}
        +votes: Doctrine\ORM\PersistentCollection {#4030 …}
        +reports: Doctrine\ORM\PersistentCollection {#4028 …}
        +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
        -id: 338678
        -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/6999292"
        +editedAt: DateTimeImmutable @1728516868 {#3982
          date: 2024-10-10 01:34:28.0 +02:00
        }
        +createdAt: DateTimeImmutable @1706166868 {#4045
          date: 2024-01-25 08:14:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
        \n
        Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
        \n
        Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 8
      +score: 0
      +lastActive: DateTime @1706172652 {#4181
        date: 2024-01-25 09:50:52.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4184 …}
      +nested: Doctrine\ORM\PersistentCollection {#4186 …}
      +votes: Doctrine\ORM\PersistentCollection {#4188 …}
      +reports: Doctrine\ORM\PersistentCollection {#4190 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
      -id: 338818
      -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6801885"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706172652 {#4182
        date: 2024-01-25 09:50:52.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
      \n
      The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      Which client would you recommend?
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706176290 {#4202
      date: 2024-01-25 10:51:30.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4205 …}
    +nested: Doctrine\ORM\PersistentCollection {#4209 …}
    +votes: Doctrine\ORM\PersistentCollection {#4211 …}
    +reports: Doctrine\ORM\PersistentCollection {#4212 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
    -id: 338889
    -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7002949"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706176290 {#4199
      date: 2024-01-25 10:51:30.0 +01:00
    }
  }
  +showMagazineName: false
  +showEntryTitle: false
  +showNested: true
  +level: 3
  +canSeeTrash: false
  +dateAsUrl: false
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -authorizationChecker: Symfony\Component\Security\Core\Authorization\AuthorizationChecker {#931 …}
}
user_inline App\Twig\Components\UserInlineComponent 14.0 MiB 0.15 ms
Input props
[
  "user" => App\Entity\User {#3984
    +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
    +cover: null
    +email: "iso@lemy.lol"
    +username: "@iso@lemy.lol"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
    +lastActive: DateTime @1728807873 {#4041
      date: 2024-10-13 10:24:33.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
    +entries: Doctrine\ORM\PersistentCollection {#3977 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
    +posts: Doctrine\ORM\PersistentCollection {#3967 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
    +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
    +follows: Doctrine\ORM\PersistentCollection {#4097 …}
    +followers: Doctrine\ORM\PersistentCollection {#4086 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
    +reports: Doctrine\ORM\PersistentCollection {#4063 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
    +violations: Doctrine\ORM\PersistentCollection {#4093 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
    +awards: Doctrine\ORM\PersistentCollection {#4089 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
    +categories: Doctrine\ORM\PersistentCollection {#4081 …}
    -id: 22594
    -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
    +apId: "iso@lemy.lol"
    +apProfileId: "https://lemy.lol/u/iso"
    +apPublicUrl: "https://lemy.lol/u/iso"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemy.lol/inbox"
    +apDomain: "lemy.lol"
    +apPreferredUsername: "iso"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1705354101 {#4039
      date: 2024-01-15 22:28:21.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689074515 {#4038
      date: 2023-07-11 13:21:55.0 +02:00
    }
  }
  "showAvatar" => false
]
Attributes
[]
Component
App\Twig\Components\UserInlineComponent {#6342
  +user: App\Entity\User {#3984
    +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
    +cover: null
    +email: "iso@lemy.lol"
    +username: "@iso@lemy.lol"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
    +lastActive: DateTime @1728807873 {#4041
      date: 2024-10-13 10:24:33.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
    +entries: Doctrine\ORM\PersistentCollection {#3977 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
    +posts: Doctrine\ORM\PersistentCollection {#3967 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
    +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
    +follows: Doctrine\ORM\PersistentCollection {#4097 …}
    +followers: Doctrine\ORM\PersistentCollection {#4086 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
    +reports: Doctrine\ORM\PersistentCollection {#4063 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
    +violations: Doctrine\ORM\PersistentCollection {#4093 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
    +awards: Doctrine\ORM\PersistentCollection {#4089 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
    +categories: Doctrine\ORM\PersistentCollection {#4081 …}
    -id: 22594
    -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
    +apId: "iso@lemy.lol"
    +apProfileId: "https://lemy.lol/u/iso"
    +apPublicUrl: "https://lemy.lol/u/iso"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemy.lol/inbox"
    +apDomain: "lemy.lol"
    +apPreferredUsername: "iso"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1705354101 {#4039
      date: 2024-01-15 22:28:21.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689074515 {#4038
      date: 2023-07-11 13:21:55.0 +02:00
    }
  }
  +showAvatar: false
}
date App\Twig\Components\DateComponent 14.0 MiB 0.15 ms
Input props
[
  "date" => DateTimeImmutable @1706176290 {#4199
    date: 2024-01-25 10:51:30.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#6397
  +date: DateTimeImmutable @1706176290 {#4199
    date: 2024-01-25 10:51:30.0 +01:00
  }
}
date_edited App\Twig\Components\DateEditedComponent 14.0 MiB 0.14 ms
Input props
[
  "createdAt" => DateTimeImmutable @1706176290 {#4199
    date: 2024-01-25 10:51:30.0 +01:00
  }
  "editedAt" => null
]
Attributes
[]
Component
App\Twig\Components\DateEditedComponent {#6451
  +createdAt: DateTimeImmutable @1706176290 {#4199
    date: 2024-01-25 10:51:30.0 +01:00
  }
  +editedAt: null
}
user_avatar App\Twig\Components\UserAvatarComponent 14.0 MiB 0.20 ms
Input props
[
  "user" => App\Entity\User {#3984
    +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
    +cover: null
    +email: "iso@lemy.lol"
    +username: "@iso@lemy.lol"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
    +lastActive: DateTime @1728807873 {#4041
      date: 2024-10-13 10:24:33.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
    +entries: Doctrine\ORM\PersistentCollection {#3977 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
    +posts: Doctrine\ORM\PersistentCollection {#3967 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
    +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
    +follows: Doctrine\ORM\PersistentCollection {#4097 …}
    +followers: Doctrine\ORM\PersistentCollection {#4086 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
    +reports: Doctrine\ORM\PersistentCollection {#4063 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
    +violations: Doctrine\ORM\PersistentCollection {#4093 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
    +awards: Doctrine\ORM\PersistentCollection {#4089 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
    +categories: Doctrine\ORM\PersistentCollection {#4081 …}
    -id: 22594
    -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
    +apId: "iso@lemy.lol"
    +apProfileId: "https://lemy.lol/u/iso"
    +apPublicUrl: "https://lemy.lol/u/iso"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemy.lol/inbox"
    +apDomain: "lemy.lol"
    +apPreferredUsername: "iso"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1705354101 {#4039
      date: 2024-01-15 22:28:21.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689074515 {#4038
      date: 2023-07-11 13:21:55.0 +02:00
    }
  }
  "width" => 40
  "height" => 40
  "asLink" => true
]
Attributes
[]
Component
App\Twig\Components\UserAvatarComponent {#6505
  +width: 40
  +height: 40
  +user: App\Entity\User {#3984
    +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
    +cover: null
    +email: "iso@lemy.lol"
    +username: "@iso@lemy.lol"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
    +lastActive: DateTime @1728807873 {#4041
      date: 2024-10-13 10:24:33.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
    +entries: Doctrine\ORM\PersistentCollection {#3977 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
    +posts: Doctrine\ORM\PersistentCollection {#3967 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
    +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
    +follows: Doctrine\ORM\PersistentCollection {#4097 …}
    +followers: Doctrine\ORM\PersistentCollection {#4086 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
    +reports: Doctrine\ORM\PersistentCollection {#4063 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
    +violations: Doctrine\ORM\PersistentCollection {#4093 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
    +awards: Doctrine\ORM\PersistentCollection {#4089 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
    +categories: Doctrine\ORM\PersistentCollection {#4081 …}
    -id: 22594
    -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
    +apId: "iso@lemy.lol"
    +apProfileId: "https://lemy.lol/u/iso"
    +apPublicUrl: "https://lemy.lol/u/iso"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemy.lol/inbox"
    +apDomain: "lemy.lol"
    +apPreferredUsername: "iso"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1705354101 {#4039
      date: 2024-01-15 22:28:21.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689074515 {#4038
      date: 2023-07-11 13:21:55.0 +02:00
    }
  }
  +asLink: true
}
vote App\Twig\Components\VoteComponent 14.0 MiB 0.65 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4197
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4183
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4036
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: null
        +root: null
        +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
        +lang: "en"
        +isAdult: false
        +favouriteCount: 5
        +score: 0
        +lastActive: DateTime @1728607448 {#4046
          date: 2024-10-11 02:44:08.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@u_tamtam@programming.dev"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4034 …}
        +nested: Doctrine\ORM\PersistentCollection {#4032 …}
        +votes: Doctrine\ORM\PersistentCollection {#4030 …}
        +reports: Doctrine\ORM\PersistentCollection {#4028 …}
        +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
        -id: 338678
        -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/6999292"
        +editedAt: DateTimeImmutable @1728516868 {#3982
          date: 2024-10-10 01:34:28.0 +02:00
        }
        +createdAt: DateTimeImmutable @1706166868 {#4045
          date: 2024-01-25 08:14:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
        \n
        Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
        \n
        Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 8
      +score: 0
      +lastActive: DateTime @1706172652 {#4181
        date: 2024-01-25 09:50:52.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4184 …}
      +nested: Doctrine\ORM\PersistentCollection {#4186 …}
      +votes: Doctrine\ORM\PersistentCollection {#4188 …}
      +reports: Doctrine\ORM\PersistentCollection {#4190 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
      -id: 338818
      -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6801885"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706172652 {#4182
        date: 2024-01-25 09:50:52.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
      \n
      The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      Which client would you recommend?
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706176290 {#4202
      date: 2024-01-25 10:51:30.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4205 …}
    +nested: Doctrine\ORM\PersistentCollection {#4209 …}
    +votes: Doctrine\ORM\PersistentCollection {#4211 …}
    +reports: Doctrine\ORM\PersistentCollection {#4212 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
    -id: 338889
    -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7002949"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706176290 {#4199
      date: 2024-01-25 10:51:30.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\VoteComponent {#6589
  +subject: App\Entity\EntryComment {#4197
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4183
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4036
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: null
        +root: null
        +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
        +lang: "en"
        +isAdult: false
        +favouriteCount: 5
        +score: 0
        +lastActive: DateTime @1728607448 {#4046
          date: 2024-10-11 02:44:08.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@u_tamtam@programming.dev"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4034 …}
        +nested: Doctrine\ORM\PersistentCollection {#4032 …}
        +votes: Doctrine\ORM\PersistentCollection {#4030 …}
        +reports: Doctrine\ORM\PersistentCollection {#4028 …}
        +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
        -id: 338678
        -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/6999292"
        +editedAt: DateTimeImmutable @1728516868 {#3982
          date: 2024-10-10 01:34:28.0 +02:00
        }
        +createdAt: DateTimeImmutable @1706166868 {#4045
          date: 2024-01-25 08:14:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
        \n
        Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
        \n
        Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 8
      +score: 0
      +lastActive: DateTime @1706172652 {#4181
        date: 2024-01-25 09:50:52.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4184 …}
      +nested: Doctrine\ORM\PersistentCollection {#4186 …}
      +votes: Doctrine\ORM\PersistentCollection {#4188 …}
      +reports: Doctrine\ORM\PersistentCollection {#4190 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
      -id: 338818
      -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6801885"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706172652 {#4182
        date: 2024-01-25 09:50:52.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
      \n
      The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      Which client would you recommend?
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706176290 {#4202
      date: 2024-01-25 10:51:30.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4205 …}
    +nested: Doctrine\ORM\PersistentCollection {#4209 …}
    +votes: Doctrine\ORM\PersistentCollection {#4211 …}
    +reports: Doctrine\ORM\PersistentCollection {#4212 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
    -id: 338889
    -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7002949"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706176290 {#4199
      date: 2024-01-25 10:51:30.0 +01:00
    }
  }
  +formDest: "entry_comment"
  +showDownvote: true
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
boost App\Twig\Components\BoostComponent 14.0 MiB 0.89 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4197
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4183
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4036
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: null
        +root: null
        +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
        +lang: "en"
        +isAdult: false
        +favouriteCount: 5
        +score: 0
        +lastActive: DateTime @1728607448 {#4046
          date: 2024-10-11 02:44:08.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@u_tamtam@programming.dev"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4034 …}
        +nested: Doctrine\ORM\PersistentCollection {#4032 …}
        +votes: Doctrine\ORM\PersistentCollection {#4030 …}
        +reports: Doctrine\ORM\PersistentCollection {#4028 …}
        +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
        -id: 338678
        -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/6999292"
        +editedAt: DateTimeImmutable @1728516868 {#3982
          date: 2024-10-10 01:34:28.0 +02:00
        }
        +createdAt: DateTimeImmutable @1706166868 {#4045
          date: 2024-01-25 08:14:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
        \n
        Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
        \n
        Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 8
      +score: 0
      +lastActive: DateTime @1706172652 {#4181
        date: 2024-01-25 09:50:52.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4184 …}
      +nested: Doctrine\ORM\PersistentCollection {#4186 …}
      +votes: Doctrine\ORM\PersistentCollection {#4188 …}
      +reports: Doctrine\ORM\PersistentCollection {#4190 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
      -id: 338818
      -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6801885"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706172652 {#4182
        date: 2024-01-25 09:50:52.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
      \n
      The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      Which client would you recommend?
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706176290 {#4202
      date: 2024-01-25 10:51:30.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4205 …}
    +nested: Doctrine\ORM\PersistentCollection {#4209 …}
    +votes: Doctrine\ORM\PersistentCollection {#4211 …}
    +reports: Doctrine\ORM\PersistentCollection {#4212 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
    -id: 338889
    -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7002949"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706176290 {#4199
      date: 2024-01-25 10:51:30.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\BoostComponent {#6646
  +formDest: "entry_comment"
  +subject: App\Entity\EntryComment {#4197
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4183
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4036
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: null
        +root: null
        +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
        +lang: "en"
        +isAdult: false
        +favouriteCount: 5
        +score: 0
        +lastActive: DateTime @1728607448 {#4046
          date: 2024-10-11 02:44:08.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@u_tamtam@programming.dev"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4034 …}
        +nested: Doctrine\ORM\PersistentCollection {#4032 …}
        +votes: Doctrine\ORM\PersistentCollection {#4030 …}
        +reports: Doctrine\ORM\PersistentCollection {#4028 …}
        +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
        -id: 338678
        -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/6999292"
        +editedAt: DateTimeImmutable @1728516868 {#3982
          date: 2024-10-10 01:34:28.0 +02:00
        }
        +createdAt: DateTimeImmutable @1706166868 {#4045
          date: 2024-01-25 08:14:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
        \n
        Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
        \n
        Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 8
      +score: 0
      +lastActive: DateTime @1706172652 {#4181
        date: 2024-01-25 09:50:52.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4184 …}
      +nested: Doctrine\ORM\PersistentCollection {#4186 …}
      +votes: Doctrine\ORM\PersistentCollection {#4188 …}
      +reports: Doctrine\ORM\PersistentCollection {#4190 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
      -id: 338818
      -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6801885"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706172652 {#4182
        date: 2024-01-25 09:50:52.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
      \n
      The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      Which client would you recommend?
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706176290 {#4202
      date: 2024-01-25 10:51:30.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4205 …}
    +nested: Doctrine\ORM\PersistentCollection {#4209 …}
    +votes: Doctrine\ORM\PersistentCollection {#4211 …}
    +reports: Doctrine\ORM\PersistentCollection {#4212 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
    -id: 338889
    -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7002949"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706176290 {#4199
      date: 2024-01-25 10:51:30.0 +01:00
    }
  }
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
entry_comments_nested App\Twig\Components\EntryCommentsNestedComponent 14.0 MiB 49.44 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4197
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4183
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4036
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: null
        +root: null
        +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
        +lang: "en"
        +isAdult: false
        +favouriteCount: 5
        +score: 0
        +lastActive: DateTime @1728607448 {#4046
          date: 2024-10-11 02:44:08.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@u_tamtam@programming.dev"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4034 …}
        +nested: Doctrine\ORM\PersistentCollection {#4032 …}
        +votes: Doctrine\ORM\PersistentCollection {#4030 …}
        +reports: Doctrine\ORM\PersistentCollection {#4028 …}
        +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
        -id: 338678
        -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/6999292"
        +editedAt: DateTimeImmutable @1728516868 {#3982
          date: 2024-10-10 01:34:28.0 +02:00
        }
        +createdAt: DateTimeImmutable @1706166868 {#4045
          date: 2024-01-25 08:14:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
        \n
        Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
        \n
        Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 8
      +score: 0
      +lastActive: DateTime @1706172652 {#4181
        date: 2024-01-25 09:50:52.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4184 …}
      +nested: Doctrine\ORM\PersistentCollection {#4186 …}
      +votes: Doctrine\ORM\PersistentCollection {#4188 …}
      +reports: Doctrine\ORM\PersistentCollection {#4190 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
      -id: 338818
      -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6801885"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706172652 {#4182
        date: 2024-01-25 09:50:52.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
      \n
      The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      Which client would you recommend?
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706176290 {#4202
      date: 2024-01-25 10:51:30.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4205 …}
    +nested: Doctrine\ORM\PersistentCollection {#4209 …}
    +votes: Doctrine\ORM\PersistentCollection {#4211 …}
    +reports: Doctrine\ORM\PersistentCollection {#4212 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
    -id: 338889
    -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7002949"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706176290 {#4199
      date: 2024-01-25 10:51:30.0 +01:00
    }
  }
  "level" => 3
  "showNested" => true
  "view" => "tree"
]
Attributes
[
  "showNested" => true
]
Component
App\Twig\Components\EntryCommentsNestedComponent {#6886
  +comment: App\Entity\EntryComment {#4197
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4183
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4036
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: null
        +root: null
        +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
        +lang: "en"
        +isAdult: false
        +favouriteCount: 5
        +score: 0
        +lastActive: DateTime @1728607448 {#4046
          date: 2024-10-11 02:44:08.0 +02:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@u_tamtam@programming.dev"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4034 …}
        +nested: Doctrine\ORM\PersistentCollection {#4032 …}
        +votes: Doctrine\ORM\PersistentCollection {#4030 …}
        +reports: Doctrine\ORM\PersistentCollection {#4028 …}
        +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
        -id: 338678
        -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/6999292"
        +editedAt: DateTimeImmutable @1728516868 {#3982
          date: 2024-10-10 01:34:28.0 +02:00
        }
        +createdAt: DateTimeImmutable @1706166868 {#4045
          date: 2024-01-25 08:14:28.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
        \n
        Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
        \n
        Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 8
      +score: 0
      +lastActive: DateTime @1706172652 {#4181
        date: 2024-01-25 09:50:52.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4184 …}
      +nested: Doctrine\ORM\PersistentCollection {#4186 …}
      +votes: Doctrine\ORM\PersistentCollection {#4188 …}
      +reports: Doctrine\ORM\PersistentCollection {#4190 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
      -id: 338818
      -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6801885"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706172652 {#4182
        date: 2024-01-25 09:50:52.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
      \n
      The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      Which client would you recommend?
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706176290 {#4202
      date: 2024-01-25 10:51:30.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4205 …}
    +nested: Doctrine\ORM\PersistentCollection {#4209 …}
    +votes: Doctrine\ORM\PersistentCollection {#4211 …}
    +reports: Doctrine\ORM\PersistentCollection {#4212 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
    -id: 338889
    -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7002949"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706176290 {#4199
      date: 2024-01-25 10:51:30.0 +01:00
    }
  }
  +nestedComments: []
  +level: 3
  +view: "tree"
  -entryCommentRepository: App\Repository\EntryCommentRepository {#555 …}
  -twig: Twig\Environment {#1252 …}
  -security: Symfony\Bundle\SecurityBundle\Security {#1101 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
entry_comment App\Twig\Components\EntryCommentComponent 14.0 MiB 46.85 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4233
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4197
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4183
        +user: Proxies\__CG__\App\Entity\User {#1978 …2}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4036
          +user: App\Entity\User {#3984}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: null
          +root: null
          +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
          +lang: "en"
          +isAdult: false
          +favouriteCount: 5
          +score: 0
          +lastActive: DateTime @1728607448 {#4046
            date: 2024-10-11 02:44:08.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@u_tamtam@programming.dev"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4034 …}
          +nested: Doctrine\ORM\PersistentCollection {#4032 …}
          +votes: Doctrine\ORM\PersistentCollection {#4030 …}
          +reports: Doctrine\ORM\PersistentCollection {#4028 …}
          +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
          -id: 338678
          -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemy.lol/comment/6999292"
          +editedAt: DateTimeImmutable @1728516868 {#3982
            date: 2024-10-10 01:34:28.0 +02:00
          }
          +createdAt: DateTimeImmutable @1706166868 {#4045
            date: 2024-01-25 08:14:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
          \n
          Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
          \n
          Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 8
        +score: 0
        +lastActive: DateTime @1706172652 {#4181
          date: 2024-01-25 09:50:52.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4184 …}
        +nested: Doctrine\ORM\PersistentCollection {#4186 …}
        +votes: Doctrine\ORM\PersistentCollection {#4188 …}
        +reports: Doctrine\ORM\PersistentCollection {#4190 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
        -id: 338818
        -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/6801885"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706172652 {#4182
          date: 2024-01-25 09:50:52.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
        \n
        The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        Which client would you recommend?
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 3
      +score: 0
      +lastActive: DateTime @1706176290 {#4202
        date: 2024-01-25 10:51:30.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4205 …}
      +nested: Doctrine\ORM\PersistentCollection {#4209 …}
      +votes: Doctrine\ORM\PersistentCollection {#4211 …}
      +reports: Doctrine\ORM\PersistentCollection {#4212 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
      -id: 338889
      -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/7002949"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706176290 {#4199
        date: 2024-01-25 10:51:30.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
      \n
      And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
      \n
      > Which client would you recommend?\n
      \n
      Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706185731 {#4228
      date: 2024-01-25 13:28:51.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4225 …}
    +nested: Doctrine\ORM\PersistentCollection {#4222 …}
    +votes: Doctrine\ORM\PersistentCollection {#4220 …}
    +reports: Doctrine\ORM\PersistentCollection {#4234 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
    -id: 339291
    -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6806935"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706185731 {#4231
      date: 2024-01-25 13:28:51.0 +01:00
    }
  }
  "showNested" => true
  "level" => 4
  "showEntryTitle" => false
  "showMagazineName" => false
]
Attributes
[]
Component
App\Twig\Components\EntryCommentComponent {#6941
  +comment: App\Entity\EntryComment {#4233
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4197
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4183
        +user: Proxies\__CG__\App\Entity\User {#1978 …2}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4036
          +user: App\Entity\User {#3984}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: null
          +root: null
          +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
          +lang: "en"
          +isAdult: false
          +favouriteCount: 5
          +score: 0
          +lastActive: DateTime @1728607448 {#4046
            date: 2024-10-11 02:44:08.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@u_tamtam@programming.dev"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4034 …}
          +nested: Doctrine\ORM\PersistentCollection {#4032 …}
          +votes: Doctrine\ORM\PersistentCollection {#4030 …}
          +reports: Doctrine\ORM\PersistentCollection {#4028 …}
          +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
          -id: 338678
          -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemy.lol/comment/6999292"
          +editedAt: DateTimeImmutable @1728516868 {#3982
            date: 2024-10-10 01:34:28.0 +02:00
          }
          +createdAt: DateTimeImmutable @1706166868 {#4045
            date: 2024-01-25 08:14:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
          \n
          Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
          \n
          Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 8
        +score: 0
        +lastActive: DateTime @1706172652 {#4181
          date: 2024-01-25 09:50:52.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4184 …}
        +nested: Doctrine\ORM\PersistentCollection {#4186 …}
        +votes: Doctrine\ORM\PersistentCollection {#4188 …}
        +reports: Doctrine\ORM\PersistentCollection {#4190 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
        -id: 338818
        -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/6801885"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706172652 {#4182
          date: 2024-01-25 09:50:52.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
        \n
        The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        Which client would you recommend?
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 3
      +score: 0
      +lastActive: DateTime @1706176290 {#4202
        date: 2024-01-25 10:51:30.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4205 …}
      +nested: Doctrine\ORM\PersistentCollection {#4209 …}
      +votes: Doctrine\ORM\PersistentCollection {#4211 …}
      +reports: Doctrine\ORM\PersistentCollection {#4212 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
      -id: 338889
      -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/7002949"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706176290 {#4199
        date: 2024-01-25 10:51:30.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
      \n
      And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
      \n
      > Which client would you recommend?\n
      \n
      Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706185731 {#4228
      date: 2024-01-25 13:28:51.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4225 …}
    +nested: Doctrine\ORM\PersistentCollection {#4222 …}
    +votes: Doctrine\ORM\PersistentCollection {#4220 …}
    +reports: Doctrine\ORM\PersistentCollection {#4234 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
    -id: 339291
    -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6806935"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706185731 {#4231
      date: 2024-01-25 13:28:51.0 +01:00
    }
  }
  +showMagazineName: false
  +showEntryTitle: false
  +showNested: true
  +level: 4
  +canSeeTrash: false
  +dateAsUrl: false
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -authorizationChecker: Symfony\Component\Security\Core\Authorization\AuthorizationChecker {#931 …}
}
user_inline App\Twig\Components\UserInlineComponent 14.0 MiB 4.85 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#1978
    +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
    +cover: null
    +email: "u_tamtam@programming.dev"
    +username: "@u_tamtam@programming.dev"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729195912 {#1520
      date: 2024-10-17 22:11:52.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
    +entries: Doctrine\ORM\PersistentCollection {#1659 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
    +posts: Doctrine\ORM\PersistentCollection {#1468 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
    +follows: Doctrine\ORM\PersistentCollection {#1423 …}
    +followers: Doctrine\ORM\PersistentCollection {#1421 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
    +reports: Doctrine\ORM\PersistentCollection {#1448 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
    +violations: Doctrine\ORM\PersistentCollection {#1696 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
    +awards: Doctrine\ORM\PersistentCollection {#1700 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
    +categories: Doctrine\ORM\PersistentCollection {#1673 …}
    -id: 67294
    -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
    +apId: "u_tamtam@programming.dev"
    +apProfileId: "https://programming.dev/u/u_tamtam"
    +apPublicUrl: "https://programming.dev/u/u_tamtam"
    +apFollowersUrl: null
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "u_tamtam"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703073477 {#1516
      date: 2023-12-20 12:57:57.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698441053 {#1519
      date: 2023-10-27 23:10:53.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  "showAvatar" => false
]
Attributes
[]
Component
App\Twig\Components\UserInlineComponent {#6986
  +user: Proxies\__CG__\App\Entity\User {#1978
    +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
    +cover: null
    +email: "u_tamtam@programming.dev"
    +username: "@u_tamtam@programming.dev"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729195912 {#1520
      date: 2024-10-17 22:11:52.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
    +entries: Doctrine\ORM\PersistentCollection {#1659 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
    +posts: Doctrine\ORM\PersistentCollection {#1468 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
    +follows: Doctrine\ORM\PersistentCollection {#1423 …}
    +followers: Doctrine\ORM\PersistentCollection {#1421 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
    +reports: Doctrine\ORM\PersistentCollection {#1448 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
    +violations: Doctrine\ORM\PersistentCollection {#1696 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
    +awards: Doctrine\ORM\PersistentCollection {#1700 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
    +categories: Doctrine\ORM\PersistentCollection {#1673 …}
    -id: 67294
    -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
    +apId: "u_tamtam@programming.dev"
    +apProfileId: "https://programming.dev/u/u_tamtam"
    +apPublicUrl: "https://programming.dev/u/u_tamtam"
    +apFollowersUrl: null
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "u_tamtam"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703073477 {#1516
      date: 2023-12-20 12:57:57.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698441053 {#1519
      date: 2023-10-27 23:10:53.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +showAvatar: false
}
date App\Twig\Components\DateComponent 14.0 MiB 0.18 ms
Input props
[
  "date" => DateTimeImmutable @1706185731 {#4231
    date: 2024-01-25 13:28:51.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#7041
  +date: DateTimeImmutable @1706185731 {#4231
    date: 2024-01-25 13:28:51.0 +01:00
  }
}
date_edited App\Twig\Components\DateEditedComponent 14.0 MiB 0.15 ms
Input props
[
  "createdAt" => DateTimeImmutable @1706185731 {#4231
    date: 2024-01-25 13:28:51.0 +01:00
  }
  "editedAt" => null
]
Attributes
[]
Component
App\Twig\Components\DateEditedComponent {#7095
  +createdAt: DateTimeImmutable @1706185731 {#4231
    date: 2024-01-25 13:28:51.0 +01:00
  }
  +editedAt: null
}
user_avatar App\Twig\Components\UserAvatarComponent 14.0 MiB 0.26 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#1978
    +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
    +cover: null
    +email: "u_tamtam@programming.dev"
    +username: "@u_tamtam@programming.dev"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729195912 {#1520
      date: 2024-10-17 22:11:52.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
    +entries: Doctrine\ORM\PersistentCollection {#1659 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
    +posts: Doctrine\ORM\PersistentCollection {#1468 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
    +follows: Doctrine\ORM\PersistentCollection {#1423 …}
    +followers: Doctrine\ORM\PersistentCollection {#1421 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
    +reports: Doctrine\ORM\PersistentCollection {#1448 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
    +violations: Doctrine\ORM\PersistentCollection {#1696 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
    +awards: Doctrine\ORM\PersistentCollection {#1700 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
    +categories: Doctrine\ORM\PersistentCollection {#1673 …}
    -id: 67294
    -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
    +apId: "u_tamtam@programming.dev"
    +apProfileId: "https://programming.dev/u/u_tamtam"
    +apPublicUrl: "https://programming.dev/u/u_tamtam"
    +apFollowersUrl: null
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "u_tamtam"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703073477 {#1516
      date: 2023-12-20 12:57:57.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698441053 {#1519
      date: 2023-10-27 23:10:53.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  "width" => 40
  "height" => 40
  "asLink" => true
]
Attributes
[]
Component
App\Twig\Components\UserAvatarComponent {#7149
  +width: 40
  +height: 40
  +user: Proxies\__CG__\App\Entity\User {#1978
    +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
    +cover: null
    +email: "u_tamtam@programming.dev"
    +username: "@u_tamtam@programming.dev"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729195912 {#1520
      date: 2024-10-17 22:11:52.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
    +entries: Doctrine\ORM\PersistentCollection {#1659 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
    +posts: Doctrine\ORM\PersistentCollection {#1468 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
    +follows: Doctrine\ORM\PersistentCollection {#1423 …}
    +followers: Doctrine\ORM\PersistentCollection {#1421 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
    +reports: Doctrine\ORM\PersistentCollection {#1448 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
    +violations: Doctrine\ORM\PersistentCollection {#1696 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
    +awards: Doctrine\ORM\PersistentCollection {#1700 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
    +categories: Doctrine\ORM\PersistentCollection {#1673 …}
    -id: 67294
    -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
    +apId: "u_tamtam@programming.dev"
    +apProfileId: "https://programming.dev/u/u_tamtam"
    +apPublicUrl: "https://programming.dev/u/u_tamtam"
    +apFollowersUrl: null
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "u_tamtam"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703073477 {#1516
      date: 2023-12-20 12:57:57.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698441053 {#1519
      date: 2023-10-27 23:10:53.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +asLink: true
}
vote App\Twig\Components\VoteComponent 14.0 MiB 0.66 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4233
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4197
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4183
        +user: Proxies\__CG__\App\Entity\User {#1978 …2}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4036
          +user: App\Entity\User {#3984}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: null
          +root: null
          +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
          +lang: "en"
          +isAdult: false
          +favouriteCount: 5
          +score: 0
          +lastActive: DateTime @1728607448 {#4046
            date: 2024-10-11 02:44:08.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@u_tamtam@programming.dev"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4034 …}
          +nested: Doctrine\ORM\PersistentCollection {#4032 …}
          +votes: Doctrine\ORM\PersistentCollection {#4030 …}
          +reports: Doctrine\ORM\PersistentCollection {#4028 …}
          +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
          -id: 338678
          -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemy.lol/comment/6999292"
          +editedAt: DateTimeImmutable @1728516868 {#3982
            date: 2024-10-10 01:34:28.0 +02:00
          }
          +createdAt: DateTimeImmutable @1706166868 {#4045
            date: 2024-01-25 08:14:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
          \n
          Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
          \n
          Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 8
        +score: 0
        +lastActive: DateTime @1706172652 {#4181
          date: 2024-01-25 09:50:52.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4184 …}
        +nested: Doctrine\ORM\PersistentCollection {#4186 …}
        +votes: Doctrine\ORM\PersistentCollection {#4188 …}
        +reports: Doctrine\ORM\PersistentCollection {#4190 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
        -id: 338818
        -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/6801885"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706172652 {#4182
          date: 2024-01-25 09:50:52.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
        \n
        The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        Which client would you recommend?
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 3
      +score: 0
      +lastActive: DateTime @1706176290 {#4202
        date: 2024-01-25 10:51:30.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4205 …}
      +nested: Doctrine\ORM\PersistentCollection {#4209 …}
      +votes: Doctrine\ORM\PersistentCollection {#4211 …}
      +reports: Doctrine\ORM\PersistentCollection {#4212 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
      -id: 338889
      -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/7002949"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706176290 {#4199
        date: 2024-01-25 10:51:30.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
      \n
      And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
      \n
      > Which client would you recommend?\n
      \n
      Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706185731 {#4228
      date: 2024-01-25 13:28:51.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4225 …}
    +nested: Doctrine\ORM\PersistentCollection {#4222 …}
    +votes: Doctrine\ORM\PersistentCollection {#4220 …}
    +reports: Doctrine\ORM\PersistentCollection {#4234 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
    -id: 339291
    -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6806935"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706185731 {#4231
      date: 2024-01-25 13:28:51.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\VoteComponent {#7251
  +subject: App\Entity\EntryComment {#4233
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4197
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4183
        +user: Proxies\__CG__\App\Entity\User {#1978 …2}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4036
          +user: App\Entity\User {#3984}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: null
          +root: null
          +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
          +lang: "en"
          +isAdult: false
          +favouriteCount: 5
          +score: 0
          +lastActive: DateTime @1728607448 {#4046
            date: 2024-10-11 02:44:08.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@u_tamtam@programming.dev"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4034 …}
          +nested: Doctrine\ORM\PersistentCollection {#4032 …}
          +votes: Doctrine\ORM\PersistentCollection {#4030 …}
          +reports: Doctrine\ORM\PersistentCollection {#4028 …}
          +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
          -id: 338678
          -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemy.lol/comment/6999292"
          +editedAt: DateTimeImmutable @1728516868 {#3982
            date: 2024-10-10 01:34:28.0 +02:00
          }
          +createdAt: DateTimeImmutable @1706166868 {#4045
            date: 2024-01-25 08:14:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
          \n
          Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
          \n
          Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 8
        +score: 0
        +lastActive: DateTime @1706172652 {#4181
          date: 2024-01-25 09:50:52.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4184 …}
        +nested: Doctrine\ORM\PersistentCollection {#4186 …}
        +votes: Doctrine\ORM\PersistentCollection {#4188 …}
        +reports: Doctrine\ORM\PersistentCollection {#4190 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
        -id: 338818
        -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/6801885"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706172652 {#4182
          date: 2024-01-25 09:50:52.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
        \n
        The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        Which client would you recommend?
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 3
      +score: 0
      +lastActive: DateTime @1706176290 {#4202
        date: 2024-01-25 10:51:30.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4205 …}
      +nested: Doctrine\ORM\PersistentCollection {#4209 …}
      +votes: Doctrine\ORM\PersistentCollection {#4211 …}
      +reports: Doctrine\ORM\PersistentCollection {#4212 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
      -id: 338889
      -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/7002949"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706176290 {#4199
        date: 2024-01-25 10:51:30.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
      \n
      And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
      \n
      > Which client would you recommend?\n
      \n
      Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706185731 {#4228
      date: 2024-01-25 13:28:51.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4225 …}
    +nested: Doctrine\ORM\PersistentCollection {#4222 …}
    +votes: Doctrine\ORM\PersistentCollection {#4220 …}
    +reports: Doctrine\ORM\PersistentCollection {#4234 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
    -id: 339291
    -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6806935"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706185731 {#4231
      date: 2024-01-25 13:28:51.0 +01:00
    }
  }
  +formDest: "entry_comment"
  +showDownvote: true
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
boost App\Twig\Components\BoostComponent 14.0 MiB 0.85 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4233
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4197
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4183
        +user: Proxies\__CG__\App\Entity\User {#1978 …2}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4036
          +user: App\Entity\User {#3984}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: null
          +root: null
          +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
          +lang: "en"
          +isAdult: false
          +favouriteCount: 5
          +score: 0
          +lastActive: DateTime @1728607448 {#4046
            date: 2024-10-11 02:44:08.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@u_tamtam@programming.dev"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4034 …}
          +nested: Doctrine\ORM\PersistentCollection {#4032 …}
          +votes: Doctrine\ORM\PersistentCollection {#4030 …}
          +reports: Doctrine\ORM\PersistentCollection {#4028 …}
          +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
          -id: 338678
          -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemy.lol/comment/6999292"
          +editedAt: DateTimeImmutable @1728516868 {#3982
            date: 2024-10-10 01:34:28.0 +02:00
          }
          +createdAt: DateTimeImmutable @1706166868 {#4045
            date: 2024-01-25 08:14:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
          \n
          Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
          \n
          Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 8
        +score: 0
        +lastActive: DateTime @1706172652 {#4181
          date: 2024-01-25 09:50:52.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4184 …}
        +nested: Doctrine\ORM\PersistentCollection {#4186 …}
        +votes: Doctrine\ORM\PersistentCollection {#4188 …}
        +reports: Doctrine\ORM\PersistentCollection {#4190 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
        -id: 338818
        -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/6801885"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706172652 {#4182
          date: 2024-01-25 09:50:52.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
        \n
        The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        Which client would you recommend?
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 3
      +score: 0
      +lastActive: DateTime @1706176290 {#4202
        date: 2024-01-25 10:51:30.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4205 …}
      +nested: Doctrine\ORM\PersistentCollection {#4209 …}
      +votes: Doctrine\ORM\PersistentCollection {#4211 …}
      +reports: Doctrine\ORM\PersistentCollection {#4212 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
      -id: 338889
      -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/7002949"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706176290 {#4199
        date: 2024-01-25 10:51:30.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
      \n
      And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
      \n
      > Which client would you recommend?\n
      \n
      Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706185731 {#4228
      date: 2024-01-25 13:28:51.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4225 …}
    +nested: Doctrine\ORM\PersistentCollection {#4222 …}
    +votes: Doctrine\ORM\PersistentCollection {#4220 …}
    +reports: Doctrine\ORM\PersistentCollection {#4234 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
    -id: 339291
    -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6806935"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706185731 {#4231
      date: 2024-01-25 13:28:51.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\BoostComponent {#7308
  +formDest: "entry_comment"
  +subject: App\Entity\EntryComment {#4233
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4197
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4183
        +user: Proxies\__CG__\App\Entity\User {#1978 …2}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4036
          +user: App\Entity\User {#3984}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: null
          +root: null
          +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
          +lang: "en"
          +isAdult: false
          +favouriteCount: 5
          +score: 0
          +lastActive: DateTime @1728607448 {#4046
            date: 2024-10-11 02:44:08.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@u_tamtam@programming.dev"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4034 …}
          +nested: Doctrine\ORM\PersistentCollection {#4032 …}
          +votes: Doctrine\ORM\PersistentCollection {#4030 …}
          +reports: Doctrine\ORM\PersistentCollection {#4028 …}
          +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
          -id: 338678
          -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemy.lol/comment/6999292"
          +editedAt: DateTimeImmutable @1728516868 {#3982
            date: 2024-10-10 01:34:28.0 +02:00
          }
          +createdAt: DateTimeImmutable @1706166868 {#4045
            date: 2024-01-25 08:14:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
          \n
          Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
          \n
          Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 8
        +score: 0
        +lastActive: DateTime @1706172652 {#4181
          date: 2024-01-25 09:50:52.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4184 …}
        +nested: Doctrine\ORM\PersistentCollection {#4186 …}
        +votes: Doctrine\ORM\PersistentCollection {#4188 …}
        +reports: Doctrine\ORM\PersistentCollection {#4190 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
        -id: 338818
        -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/6801885"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706172652 {#4182
          date: 2024-01-25 09:50:52.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
        \n
        The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        Which client would you recommend?
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 3
      +score: 0
      +lastActive: DateTime @1706176290 {#4202
        date: 2024-01-25 10:51:30.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4205 …}
      +nested: Doctrine\ORM\PersistentCollection {#4209 …}
      +votes: Doctrine\ORM\PersistentCollection {#4211 …}
      +reports: Doctrine\ORM\PersistentCollection {#4212 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
      -id: 338889
      -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/7002949"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706176290 {#4199
        date: 2024-01-25 10:51:30.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
      \n
      And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
      \n
      > Which client would you recommend?\n
      \n
      Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706185731 {#4228
      date: 2024-01-25 13:28:51.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4225 …}
    +nested: Doctrine\ORM\PersistentCollection {#4222 …}
    +votes: Doctrine\ORM\PersistentCollection {#4220 …}
    +reports: Doctrine\ORM\PersistentCollection {#4234 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
    -id: 339291
    -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6806935"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706185731 {#4231
      date: 2024-01-25 13:28:51.0 +01:00
    }
  }
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
entry_comments_nested App\Twig\Components\EntryCommentsNestedComponent 14.0 MiB 18.45 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4233
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4197
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4183
        +user: Proxies\__CG__\App\Entity\User {#1978 …2}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4036
          +user: App\Entity\User {#3984}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: null
          +root: null
          +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
          +lang: "en"
          +isAdult: false
          +favouriteCount: 5
          +score: 0
          +lastActive: DateTime @1728607448 {#4046
            date: 2024-10-11 02:44:08.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@u_tamtam@programming.dev"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4034 …}
          +nested: Doctrine\ORM\PersistentCollection {#4032 …}
          +votes: Doctrine\ORM\PersistentCollection {#4030 …}
          +reports: Doctrine\ORM\PersistentCollection {#4028 …}
          +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
          -id: 338678
          -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemy.lol/comment/6999292"
          +editedAt: DateTimeImmutable @1728516868 {#3982
            date: 2024-10-10 01:34:28.0 +02:00
          }
          +createdAt: DateTimeImmutable @1706166868 {#4045
            date: 2024-01-25 08:14:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
          \n
          Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
          \n
          Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 8
        +score: 0
        +lastActive: DateTime @1706172652 {#4181
          date: 2024-01-25 09:50:52.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4184 …}
        +nested: Doctrine\ORM\PersistentCollection {#4186 …}
        +votes: Doctrine\ORM\PersistentCollection {#4188 …}
        +reports: Doctrine\ORM\PersistentCollection {#4190 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
        -id: 338818
        -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/6801885"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706172652 {#4182
          date: 2024-01-25 09:50:52.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
        \n
        The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        Which client would you recommend?
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 3
      +score: 0
      +lastActive: DateTime @1706176290 {#4202
        date: 2024-01-25 10:51:30.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4205 …}
      +nested: Doctrine\ORM\PersistentCollection {#4209 …}
      +votes: Doctrine\ORM\PersistentCollection {#4211 …}
      +reports: Doctrine\ORM\PersistentCollection {#4212 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
      -id: 338889
      -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/7002949"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706176290 {#4199
        date: 2024-01-25 10:51:30.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
      \n
      And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
      \n
      > Which client would you recommend?\n
      \n
      Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706185731 {#4228
      date: 2024-01-25 13:28:51.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4225 …}
    +nested: Doctrine\ORM\PersistentCollection {#4222 …}
    +votes: Doctrine\ORM\PersistentCollection {#4220 …}
    +reports: Doctrine\ORM\PersistentCollection {#4234 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
    -id: 339291
    -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6806935"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706185731 {#4231
      date: 2024-01-25 13:28:51.0 +01:00
    }
  }
  "level" => 4
  "showNested" => true
  "view" => "tree"
]
Attributes
[
  "showNested" => true
]
Component
App\Twig\Components\EntryCommentsNestedComponent {#7548
  +comment: App\Entity\EntryComment {#4233
    +user: Proxies\__CG__\App\Entity\User {#1978
      +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
      +cover: null
      +email: "u_tamtam@programming.dev"
      +username: "@u_tamtam@programming.dev"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1729195912 {#1520
        date: 2024-10-17 22:11:52.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
      +entries: Doctrine\ORM\PersistentCollection {#1659 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
      +posts: Doctrine\ORM\PersistentCollection {#1468 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
      +follows: Doctrine\ORM\PersistentCollection {#1423 …}
      +followers: Doctrine\ORM\PersistentCollection {#1421 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
      +reports: Doctrine\ORM\PersistentCollection {#1448 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
      +violations: Doctrine\ORM\PersistentCollection {#1696 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
      +awards: Doctrine\ORM\PersistentCollection {#1700 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
      +categories: Doctrine\ORM\PersistentCollection {#1673 …}
      -id: 67294
      -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
      +apId: "u_tamtam@programming.dev"
      +apProfileId: "https://programming.dev/u/u_tamtam"
      +apPublicUrl: "https://programming.dev/u/u_tamtam"
      +apFollowersUrl: null
      +apInboxUrl: "https://programming.dev/inbox"
      +apDomain: "programming.dev"
      +apPreferredUsername: "u_tamtam"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1703073477 {#1516
        date: 2023-12-20 12:57:57.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698441053 {#1519
        date: 2023-10-27 23:10:53.0 +02:00
      }
      +__isInitialized__: true
       …2
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4197
      +user: App\Entity\User {#3984
        +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
        +cover: null
        +email: "iso@lemy.lol"
        +username: "@iso@lemy.lol"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
        +lastActive: DateTime @1728807873 {#4041
          date: 2024-10-13 10:24:33.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: true
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: false
        +notifyOnNewEntryCommentReply: false
        +notifyOnNewPost: false
        +notifyOnNewPostReply: false
        +notifyOnNewPostCommentReply: false
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
        +entries: Doctrine\ORM\PersistentCollection {#3977 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
        +posts: Doctrine\ORM\PersistentCollection {#3967 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
        +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
        +follows: Doctrine\ORM\PersistentCollection {#4097 …}
        +followers: Doctrine\ORM\PersistentCollection {#4086 …}
        +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
        +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
        +reports: Doctrine\ORM\PersistentCollection {#4063 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
        +violations: Doctrine\ORM\PersistentCollection {#4093 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
        +awards: Doctrine\ORM\PersistentCollection {#4089 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
        +categories: Doctrine\ORM\PersistentCollection {#4081 …}
        -id: 22594
        -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
        +apId: "iso@lemy.lol"
        +apProfileId: "https://lemy.lol/u/iso"
        +apPublicUrl: "https://lemy.lol/u/iso"
        +apFollowersUrl: null
        +apInboxUrl: "https://lemy.lol/inbox"
        +apDomain: "lemy.lol"
        +apPreferredUsername: "iso"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1705354101 {#4039
          date: 2024-01-15 22:28:21.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1689074515 {#4038
          date: 2023-07-11 13:21:55.0 +02:00
        }
      }
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4183
        +user: Proxies\__CG__\App\Entity\User {#1978 …2}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4036
          +user: App\Entity\User {#3984}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: null
          +root: null
          +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
          +lang: "en"
          +isAdult: false
          +favouriteCount: 5
          +score: 0
          +lastActive: DateTime @1728607448 {#4046
            date: 2024-10-11 02:44:08.0 +02:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@u_tamtam@programming.dev"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4034 …}
          +nested: Doctrine\ORM\PersistentCollection {#4032 …}
          +votes: Doctrine\ORM\PersistentCollection {#4030 …}
          +reports: Doctrine\ORM\PersistentCollection {#4028 …}
          +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
          -id: 338678
          -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemy.lol/comment/6999292"
          +editedAt: DateTimeImmutable @1728516868 {#3982
            date: 2024-10-10 01:34:28.0 +02:00
          }
          +createdAt: DateTimeImmutable @1706166868 {#4045
            date: 2024-01-25 08:14:28.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
          \n
          Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
          \n
          Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 8
        +score: 0
        +lastActive: DateTime @1706172652 {#4181
          date: 2024-01-25 09:50:52.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4184 …}
        +nested: Doctrine\ORM\PersistentCollection {#4186 …}
        +votes: Doctrine\ORM\PersistentCollection {#4188 …}
        +reports: Doctrine\ORM\PersistentCollection {#4190 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
        -id: 338818
        -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/6801885"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706172652 {#4182
          date: 2024-01-25 09:50:52.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
        \n
        The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        Which client would you recommend?
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 3
      +score: 0
      +lastActive: DateTime @1706176290 {#4202
        date: 2024-01-25 10:51:30.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4205 …}
      +nested: Doctrine\ORM\PersistentCollection {#4209 …}
      +votes: Doctrine\ORM\PersistentCollection {#4211 …}
      +reports: Doctrine\ORM\PersistentCollection {#4212 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
      -id: 338889
      -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemy.lol/comment/7002949"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706176290 {#4199
        date: 2024-01-25 10:51:30.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: """
      > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
      \n
      That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
      \n
      And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
      \n
      > Which client would you recommend?\n
      \n
      Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 5
    +score: 0
    +lastActive: DateTime @1706185731 {#4228
      date: 2024-01-25 13:28:51.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4225 …}
    +nested: Doctrine\ORM\PersistentCollection {#4222 …}
    +votes: Doctrine\ORM\PersistentCollection {#4220 …}
    +reports: Doctrine\ORM\PersistentCollection {#4234 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
    -id: 339291
    -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/6806935"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706185731 {#4231
      date: 2024-01-25 13:28:51.0 +01:00
    }
  }
  +nestedComments: []
  +level: 4
  +view: "tree"
  -entryCommentRepository: App\Repository\EntryCommentRepository {#555 …}
  -twig: Twig\Environment {#1252 …}
  -security: Symfony\Bundle\SecurityBundle\Security {#1101 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
entry_comment App\Twig\Components\EntryCommentComponent 14.0 MiB 17.55 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4255
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4233
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4197
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4183
          +user: Proxies\__CG__\App\Entity\User {#1978 …2}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: App\Entity\EntryComment {#4036
            +user: App\Entity\User {#3984}
            +entry: App\Entity\Entry {#2412}
            +magazine: App\Entity\Magazine {#264}
            +image: null
            +parent: null
            +root: null
            +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
            +lang: "en"
            +isAdult: false
            +favouriteCount: 5
            +score: 0
            +lastActive: DateTime @1728607448 {#4046
              date: 2024-10-11 02:44:08.0 +02:00
            }
            +ip: null
            +tags: null
            +mentions: [
              "@u_tamtam@programming.dev"
              "@u_tamtam@programming.dev"
            ]
            +children: Doctrine\ORM\PersistentCollection {#4034 …}
            +nested: Doctrine\ORM\PersistentCollection {#4032 …}
            +votes: Doctrine\ORM\PersistentCollection {#4030 …}
            +reports: Doctrine\ORM\PersistentCollection {#4028 …}
            +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
            +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
            -id: 338678
            -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
            +ranking: 0
            +commentCount: 0
            +upVotes: 0
            +downVotes: 0
            +visibility: "visible             "
            +apId: "https://lemy.lol/comment/6999292"
            +editedAt: DateTimeImmutable @1728516868 {#3982
              date: 2024-10-10 01:34:28.0 +02:00
            }
            +createdAt: DateTimeImmutable @1706166868 {#4045
              date: 2024-01-25 08:14:28.0 +01:00
            }
          }
          +root: App\Entity\EntryComment {#4036}
          +body: """
            They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
            \n
            Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
            \n
            Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
            """
          +lang: "en"
          +isAdult: false
          +favouriteCount: 8
          +score: 0
          +lastActive: DateTime @1706172652 {#4181
            date: 2024-01-25 09:50:52.0 +01:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@iso@lemy.lol"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4184 …}
          +nested: Doctrine\ORM\PersistentCollection {#4186 …}
          +votes: Doctrine\ORM\PersistentCollection {#4188 …}
          +reports: Doctrine\ORM\PersistentCollection {#4190 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
          -id: 338818
          -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://programming.dev/comment/6801885"
          +editedAt: null
          +createdAt: DateTimeImmutable @1706172652 {#4182
            date: 2024-01-25 09:50:52.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
          \n
          The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
          \n
          Which client would you recommend?
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 3
        +score: 0
        +lastActive: DateTime @1706176290 {#4202
          date: 2024-01-25 10:51:30.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4205 …}
        +nested: Doctrine\ORM\PersistentCollection {#4209 …}
        +votes: Doctrine\ORM\PersistentCollection {#4211 …}
        +reports: Doctrine\ORM\PersistentCollection {#4212 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
        -id: 338889
        -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/7002949"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706176290 {#4199
          date: 2024-01-25 10:51:30.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
        \n
        And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
        \n
        > Which client would you recommend?\n
        \n
        Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1706185731 {#4228
        date: 2024-01-25 13:28:51.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4225 …}
      +nested: Doctrine\ORM\PersistentCollection {#4222 …}
      +votes: Doctrine\ORM\PersistentCollection {#4220 …}
      +reports: Doctrine\ORM\PersistentCollection {#4234 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
      -id: 339291
      -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6806935"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706185731 {#4231
        date: 2024-01-25 13:28:51.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "Thank you for the suggestions. I just created an account on jabber.hot-chilli.net and downloaded Gajim. It looks really cool!"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706199393 {#4250
      date: 2024-01-25 17:16:33.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4247 …}
    +nested: Doctrine\ORM\PersistentCollection {#4244 …}
    +votes: Doctrine\ORM\PersistentCollection {#4242 …}
    +reports: Doctrine\ORM\PersistentCollection {#4256 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4258 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4260 …}
    -id: 339614
    -bodyTs: "'account':10 'cool':19 'creat':8 'download':14 'gajim':15 'jabber.hot-chilli.net':12 'look':17 'realli':18 'suggest':5 'thank':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7010951"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706199393 {#4253
      date: 2024-01-25 17:16:33.0 +01:00
    }
  }
  "showNested" => true
  "level" => 5
  "showEntryTitle" => false
  "showMagazineName" => false
]
Attributes
[]
Component
App\Twig\Components\EntryCommentComponent {#7603
  +comment: App\Entity\EntryComment {#4255
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4233
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4197
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4183
          +user: Proxies\__CG__\App\Entity\User {#1978 …2}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: App\Entity\EntryComment {#4036
            +user: App\Entity\User {#3984}
            +entry: App\Entity\Entry {#2412}
            +magazine: App\Entity\Magazine {#264}
            +image: null
            +parent: null
            +root: null
            +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
            +lang: "en"
            +isAdult: false
            +favouriteCount: 5
            +score: 0
            +lastActive: DateTime @1728607448 {#4046
              date: 2024-10-11 02:44:08.0 +02:00
            }
            +ip: null
            +tags: null
            +mentions: [
              "@u_tamtam@programming.dev"
              "@u_tamtam@programming.dev"
            ]
            +children: Doctrine\ORM\PersistentCollection {#4034 …}
            +nested: Doctrine\ORM\PersistentCollection {#4032 …}
            +votes: Doctrine\ORM\PersistentCollection {#4030 …}
            +reports: Doctrine\ORM\PersistentCollection {#4028 …}
            +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
            +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
            -id: 338678
            -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
            +ranking: 0
            +commentCount: 0
            +upVotes: 0
            +downVotes: 0
            +visibility: "visible             "
            +apId: "https://lemy.lol/comment/6999292"
            +editedAt: DateTimeImmutable @1728516868 {#3982
              date: 2024-10-10 01:34:28.0 +02:00
            }
            +createdAt: DateTimeImmutable @1706166868 {#4045
              date: 2024-01-25 08:14:28.0 +01:00
            }
          }
          +root: App\Entity\EntryComment {#4036}
          +body: """
            They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
            \n
            Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
            \n
            Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
            """
          +lang: "en"
          +isAdult: false
          +favouriteCount: 8
          +score: 0
          +lastActive: DateTime @1706172652 {#4181
            date: 2024-01-25 09:50:52.0 +01:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@iso@lemy.lol"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4184 …}
          +nested: Doctrine\ORM\PersistentCollection {#4186 …}
          +votes: Doctrine\ORM\PersistentCollection {#4188 …}
          +reports: Doctrine\ORM\PersistentCollection {#4190 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
          -id: 338818
          -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://programming.dev/comment/6801885"
          +editedAt: null
          +createdAt: DateTimeImmutable @1706172652 {#4182
            date: 2024-01-25 09:50:52.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
          \n
          The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
          \n
          Which client would you recommend?
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 3
        +score: 0
        +lastActive: DateTime @1706176290 {#4202
          date: 2024-01-25 10:51:30.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4205 …}
        +nested: Doctrine\ORM\PersistentCollection {#4209 …}
        +votes: Doctrine\ORM\PersistentCollection {#4211 …}
        +reports: Doctrine\ORM\PersistentCollection {#4212 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
        -id: 338889
        -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/7002949"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706176290 {#4199
          date: 2024-01-25 10:51:30.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
        \n
        And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
        \n
        > Which client would you recommend?\n
        \n
        Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1706185731 {#4228
        date: 2024-01-25 13:28:51.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4225 …}
      +nested: Doctrine\ORM\PersistentCollection {#4222 …}
      +votes: Doctrine\ORM\PersistentCollection {#4220 …}
      +reports: Doctrine\ORM\PersistentCollection {#4234 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
      -id: 339291
      -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6806935"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706185731 {#4231
        date: 2024-01-25 13:28:51.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "Thank you for the suggestions. I just created an account on jabber.hot-chilli.net and downloaded Gajim. It looks really cool!"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706199393 {#4250
      date: 2024-01-25 17:16:33.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4247 …}
    +nested: Doctrine\ORM\PersistentCollection {#4244 …}
    +votes: Doctrine\ORM\PersistentCollection {#4242 …}
    +reports: Doctrine\ORM\PersistentCollection {#4256 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4258 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4260 …}
    -id: 339614
    -bodyTs: "'account':10 'cool':19 'creat':8 'download':14 'gajim':15 'jabber.hot-chilli.net':12 'look':17 'realli':18 'suggest':5 'thank':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7010951"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706199393 {#4253
      date: 2024-01-25 17:16:33.0 +01:00
    }
  }
  +showMagazineName: false
  +showEntryTitle: false
  +showNested: true
  +level: 5
  +canSeeTrash: false
  +dateAsUrl: false
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -authorizationChecker: Symfony\Component\Security\Core\Authorization\AuthorizationChecker {#931 …}
}
user_inline App\Twig\Components\UserInlineComponent 14.0 MiB 0.16 ms
Input props
[
  "user" => App\Entity\User {#3984
    +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
    +cover: null
    +email: "iso@lemy.lol"
    +username: "@iso@lemy.lol"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
    +lastActive: DateTime @1728807873 {#4041
      date: 2024-10-13 10:24:33.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
    +entries: Doctrine\ORM\PersistentCollection {#3977 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
    +posts: Doctrine\ORM\PersistentCollection {#3967 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
    +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
    +follows: Doctrine\ORM\PersistentCollection {#4097 …}
    +followers: Doctrine\ORM\PersistentCollection {#4086 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
    +reports: Doctrine\ORM\PersistentCollection {#4063 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
    +violations: Doctrine\ORM\PersistentCollection {#4093 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
    +awards: Doctrine\ORM\PersistentCollection {#4089 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
    +categories: Doctrine\ORM\PersistentCollection {#4081 …}
    -id: 22594
    -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
    +apId: "iso@lemy.lol"
    +apProfileId: "https://lemy.lol/u/iso"
    +apPublicUrl: "https://lemy.lol/u/iso"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemy.lol/inbox"
    +apDomain: "lemy.lol"
    +apPreferredUsername: "iso"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1705354101 {#4039
      date: 2024-01-15 22:28:21.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689074515 {#4038
      date: 2023-07-11 13:21:55.0 +02:00
    }
  }
  "showAvatar" => false
]
Attributes
[]
Component
App\Twig\Components\UserInlineComponent {#7648
  +user: App\Entity\User {#3984
    +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
    +cover: null
    +email: "iso@lemy.lol"
    +username: "@iso@lemy.lol"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
    +lastActive: DateTime @1728807873 {#4041
      date: 2024-10-13 10:24:33.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
    +entries: Doctrine\ORM\PersistentCollection {#3977 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
    +posts: Doctrine\ORM\PersistentCollection {#3967 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
    +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
    +follows: Doctrine\ORM\PersistentCollection {#4097 …}
    +followers: Doctrine\ORM\PersistentCollection {#4086 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
    +reports: Doctrine\ORM\PersistentCollection {#4063 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
    +violations: Doctrine\ORM\PersistentCollection {#4093 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
    +awards: Doctrine\ORM\PersistentCollection {#4089 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
    +categories: Doctrine\ORM\PersistentCollection {#4081 …}
    -id: 22594
    -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
    +apId: "iso@lemy.lol"
    +apProfileId: "https://lemy.lol/u/iso"
    +apPublicUrl: "https://lemy.lol/u/iso"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemy.lol/inbox"
    +apDomain: "lemy.lol"
    +apPreferredUsername: "iso"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1705354101 {#4039
      date: 2024-01-15 22:28:21.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689074515 {#4038
      date: 2023-07-11 13:21:55.0 +02:00
    }
  }
  +showAvatar: false
}
date App\Twig\Components\DateComponent 14.0 MiB 0.18 ms
Input props
[
  "date" => DateTimeImmutable @1706199393 {#4253
    date: 2024-01-25 17:16:33.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#7703
  +date: DateTimeImmutable @1706199393 {#4253
    date: 2024-01-25 17:16:33.0 +01:00
  }
}
date_edited App\Twig\Components\DateEditedComponent 14.0 MiB 0.10 ms
Input props
[
  "createdAt" => DateTimeImmutable @1706199393 {#4253
    date: 2024-01-25 17:16:33.0 +01:00
  }
  "editedAt" => null
]
Attributes
[]
Component
App\Twig\Components\DateEditedComponent {#7757
  +createdAt: DateTimeImmutable @1706199393 {#4253
    date: 2024-01-25 17:16:33.0 +01:00
  }
  +editedAt: null
}
user_avatar App\Twig\Components\UserAvatarComponent 14.0 MiB 0.20 ms
Input props
[
  "user" => App\Entity\User {#3984
    +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
    +cover: null
    +email: "iso@lemy.lol"
    +username: "@iso@lemy.lol"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
    +lastActive: DateTime @1728807873 {#4041
      date: 2024-10-13 10:24:33.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
    +entries: Doctrine\ORM\PersistentCollection {#3977 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
    +posts: Doctrine\ORM\PersistentCollection {#3967 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
    +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
    +follows: Doctrine\ORM\PersistentCollection {#4097 …}
    +followers: Doctrine\ORM\PersistentCollection {#4086 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
    +reports: Doctrine\ORM\PersistentCollection {#4063 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
    +violations: Doctrine\ORM\PersistentCollection {#4093 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
    +awards: Doctrine\ORM\PersistentCollection {#4089 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
    +categories: Doctrine\ORM\PersistentCollection {#4081 …}
    -id: 22594
    -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
    +apId: "iso@lemy.lol"
    +apProfileId: "https://lemy.lol/u/iso"
    +apPublicUrl: "https://lemy.lol/u/iso"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemy.lol/inbox"
    +apDomain: "lemy.lol"
    +apPreferredUsername: "iso"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1705354101 {#4039
      date: 2024-01-15 22:28:21.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689074515 {#4038
      date: 2023-07-11 13:21:55.0 +02:00
    }
  }
  "width" => 40
  "height" => 40
  "asLink" => true
]
Attributes
[]
Component
App\Twig\Components\UserAvatarComponent {#7811
  +width: 40
  +height: 40
  +user: App\Entity\User {#3984
    +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
    +cover: null
    +email: "iso@lemy.lol"
    +username: "@iso@lemy.lol"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
    +lastActive: DateTime @1728807873 {#4041
      date: 2024-10-13 10:24:33.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
    +entries: Doctrine\ORM\PersistentCollection {#3977 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
    +posts: Doctrine\ORM\PersistentCollection {#3967 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
    +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
    +follows: Doctrine\ORM\PersistentCollection {#4097 …}
    +followers: Doctrine\ORM\PersistentCollection {#4086 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
    +reports: Doctrine\ORM\PersistentCollection {#4063 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
    +violations: Doctrine\ORM\PersistentCollection {#4093 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
    +awards: Doctrine\ORM\PersistentCollection {#4089 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
    +categories: Doctrine\ORM\PersistentCollection {#4081 …}
    -id: 22594
    -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
    +apId: "iso@lemy.lol"
    +apProfileId: "https://lemy.lol/u/iso"
    +apPublicUrl: "https://lemy.lol/u/iso"
    +apFollowersUrl: null
    +apInboxUrl: "https://lemy.lol/inbox"
    +apDomain: "lemy.lol"
    +apPreferredUsername: "iso"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1705354101 {#4039
      date: 2024-01-15 22:28:21.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689074515 {#4038
      date: 2023-07-11 13:21:55.0 +02:00
    }
  }
  +asLink: true
}
vote App\Twig\Components\VoteComponent 14.0 MiB 0.66 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4255
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4233
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4197
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4183
          +user: Proxies\__CG__\App\Entity\User {#1978 …2}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: App\Entity\EntryComment {#4036
            +user: App\Entity\User {#3984}
            +entry: App\Entity\Entry {#2412}
            +magazine: App\Entity\Magazine {#264}
            +image: null
            +parent: null
            +root: null
            +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
            +lang: "en"
            +isAdult: false
            +favouriteCount: 5
            +score: 0
            +lastActive: DateTime @1728607448 {#4046
              date: 2024-10-11 02:44:08.0 +02:00
            }
            +ip: null
            +tags: null
            +mentions: [
              "@u_tamtam@programming.dev"
              "@u_tamtam@programming.dev"
            ]
            +children: Doctrine\ORM\PersistentCollection {#4034 …}
            +nested: Doctrine\ORM\PersistentCollection {#4032 …}
            +votes: Doctrine\ORM\PersistentCollection {#4030 …}
            +reports: Doctrine\ORM\PersistentCollection {#4028 …}
            +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
            +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
            -id: 338678
            -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
            +ranking: 0
            +commentCount: 0
            +upVotes: 0
            +downVotes: 0
            +visibility: "visible             "
            +apId: "https://lemy.lol/comment/6999292"
            +editedAt: DateTimeImmutable @1728516868 {#3982
              date: 2024-10-10 01:34:28.0 +02:00
            }
            +createdAt: DateTimeImmutable @1706166868 {#4045
              date: 2024-01-25 08:14:28.0 +01:00
            }
          }
          +root: App\Entity\EntryComment {#4036}
          +body: """
            They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
            \n
            Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
            \n
            Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
            """
          +lang: "en"
          +isAdult: false
          +favouriteCount: 8
          +score: 0
          +lastActive: DateTime @1706172652 {#4181
            date: 2024-01-25 09:50:52.0 +01:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@iso@lemy.lol"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4184 …}
          +nested: Doctrine\ORM\PersistentCollection {#4186 …}
          +votes: Doctrine\ORM\PersistentCollection {#4188 …}
          +reports: Doctrine\ORM\PersistentCollection {#4190 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
          -id: 338818
          -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://programming.dev/comment/6801885"
          +editedAt: null
          +createdAt: DateTimeImmutable @1706172652 {#4182
            date: 2024-01-25 09:50:52.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
          \n
          The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
          \n
          Which client would you recommend?
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 3
        +score: 0
        +lastActive: DateTime @1706176290 {#4202
          date: 2024-01-25 10:51:30.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4205 …}
        +nested: Doctrine\ORM\PersistentCollection {#4209 …}
        +votes: Doctrine\ORM\PersistentCollection {#4211 …}
        +reports: Doctrine\ORM\PersistentCollection {#4212 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
        -id: 338889
        -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/7002949"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706176290 {#4199
          date: 2024-01-25 10:51:30.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
        \n
        And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
        \n
        > Which client would you recommend?\n
        \n
        Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1706185731 {#4228
        date: 2024-01-25 13:28:51.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4225 …}
      +nested: Doctrine\ORM\PersistentCollection {#4222 …}
      +votes: Doctrine\ORM\PersistentCollection {#4220 …}
      +reports: Doctrine\ORM\PersistentCollection {#4234 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
      -id: 339291
      -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6806935"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706185731 {#4231
        date: 2024-01-25 13:28:51.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "Thank you for the suggestions. I just created an account on jabber.hot-chilli.net and downloaded Gajim. It looks really cool!"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706199393 {#4250
      date: 2024-01-25 17:16:33.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4247 …}
    +nested: Doctrine\ORM\PersistentCollection {#4244 …}
    +votes: Doctrine\ORM\PersistentCollection {#4242 …}
    +reports: Doctrine\ORM\PersistentCollection {#4256 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4258 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4260 …}
    -id: 339614
    -bodyTs: "'account':10 'cool':19 'creat':8 'download':14 'gajim':15 'jabber.hot-chilli.net':12 'look':17 'realli':18 'suggest':5 'thank':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7010951"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706199393 {#4253
      date: 2024-01-25 17:16:33.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\VoteComponent {#7881
  +subject: App\Entity\EntryComment {#4255
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4233
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4197
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4183
          +user: Proxies\__CG__\App\Entity\User {#1978 …2}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: App\Entity\EntryComment {#4036
            +user: App\Entity\User {#3984}
            +entry: App\Entity\Entry {#2412}
            +magazine: App\Entity\Magazine {#264}
            +image: null
            +parent: null
            +root: null
            +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
            +lang: "en"
            +isAdult: false
            +favouriteCount: 5
            +score: 0
            +lastActive: DateTime @1728607448 {#4046
              date: 2024-10-11 02:44:08.0 +02:00
            }
            +ip: null
            +tags: null
            +mentions: [
              "@u_tamtam@programming.dev"
              "@u_tamtam@programming.dev"
            ]
            +children: Doctrine\ORM\PersistentCollection {#4034 …}
            +nested: Doctrine\ORM\PersistentCollection {#4032 …}
            +votes: Doctrine\ORM\PersistentCollection {#4030 …}
            +reports: Doctrine\ORM\PersistentCollection {#4028 …}
            +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
            +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
            -id: 338678
            -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
            +ranking: 0
            +commentCount: 0
            +upVotes: 0
            +downVotes: 0
            +visibility: "visible             "
            +apId: "https://lemy.lol/comment/6999292"
            +editedAt: DateTimeImmutable @1728516868 {#3982
              date: 2024-10-10 01:34:28.0 +02:00
            }
            +createdAt: DateTimeImmutable @1706166868 {#4045
              date: 2024-01-25 08:14:28.0 +01:00
            }
          }
          +root: App\Entity\EntryComment {#4036}
          +body: """
            They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
            \n
            Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
            \n
            Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
            """
          +lang: "en"
          +isAdult: false
          +favouriteCount: 8
          +score: 0
          +lastActive: DateTime @1706172652 {#4181
            date: 2024-01-25 09:50:52.0 +01:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@iso@lemy.lol"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4184 …}
          +nested: Doctrine\ORM\PersistentCollection {#4186 …}
          +votes: Doctrine\ORM\PersistentCollection {#4188 …}
          +reports: Doctrine\ORM\PersistentCollection {#4190 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
          -id: 338818
          -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://programming.dev/comment/6801885"
          +editedAt: null
          +createdAt: DateTimeImmutable @1706172652 {#4182
            date: 2024-01-25 09:50:52.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
          \n
          The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
          \n
          Which client would you recommend?
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 3
        +score: 0
        +lastActive: DateTime @1706176290 {#4202
          date: 2024-01-25 10:51:30.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4205 …}
        +nested: Doctrine\ORM\PersistentCollection {#4209 …}
        +votes: Doctrine\ORM\PersistentCollection {#4211 …}
        +reports: Doctrine\ORM\PersistentCollection {#4212 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
        -id: 338889
        -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/7002949"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706176290 {#4199
          date: 2024-01-25 10:51:30.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
        \n
        And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
        \n
        > Which client would you recommend?\n
        \n
        Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1706185731 {#4228
        date: 2024-01-25 13:28:51.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4225 …}
      +nested: Doctrine\ORM\PersistentCollection {#4222 …}
      +votes: Doctrine\ORM\PersistentCollection {#4220 …}
      +reports: Doctrine\ORM\PersistentCollection {#4234 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
      -id: 339291
      -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6806935"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706185731 {#4231
        date: 2024-01-25 13:28:51.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "Thank you for the suggestions. I just created an account on jabber.hot-chilli.net and downloaded Gajim. It looks really cool!"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706199393 {#4250
      date: 2024-01-25 17:16:33.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4247 …}
    +nested: Doctrine\ORM\PersistentCollection {#4244 …}
    +votes: Doctrine\ORM\PersistentCollection {#4242 …}
    +reports: Doctrine\ORM\PersistentCollection {#4256 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4258 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4260 …}
    -id: 339614
    -bodyTs: "'account':10 'cool':19 'creat':8 'download':14 'gajim':15 'jabber.hot-chilli.net':12 'look':17 'realli':18 'suggest':5 'thank':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7010951"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706199393 {#4253
      date: 2024-01-25 17:16:33.0 +01:00
    }
  }
  +formDest: "entry_comment"
  +showDownvote: true
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
boost App\Twig\Components\BoostComponent 14.0 MiB 0.81 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4255
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4233
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4197
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4183
          +user: Proxies\__CG__\App\Entity\User {#1978 …2}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: App\Entity\EntryComment {#4036
            +user: App\Entity\User {#3984}
            +entry: App\Entity\Entry {#2412}
            +magazine: App\Entity\Magazine {#264}
            +image: null
            +parent: null
            +root: null
            +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
            +lang: "en"
            +isAdult: false
            +favouriteCount: 5
            +score: 0
            +lastActive: DateTime @1728607448 {#4046
              date: 2024-10-11 02:44:08.0 +02:00
            }
            +ip: null
            +tags: null
            +mentions: [
              "@u_tamtam@programming.dev"
              "@u_tamtam@programming.dev"
            ]
            +children: Doctrine\ORM\PersistentCollection {#4034 …}
            +nested: Doctrine\ORM\PersistentCollection {#4032 …}
            +votes: Doctrine\ORM\PersistentCollection {#4030 …}
            +reports: Doctrine\ORM\PersistentCollection {#4028 …}
            +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
            +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
            -id: 338678
            -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
            +ranking: 0
            +commentCount: 0
            +upVotes: 0
            +downVotes: 0
            +visibility: "visible             "
            +apId: "https://lemy.lol/comment/6999292"
            +editedAt: DateTimeImmutable @1728516868 {#3982
              date: 2024-10-10 01:34:28.0 +02:00
            }
            +createdAt: DateTimeImmutable @1706166868 {#4045
              date: 2024-01-25 08:14:28.0 +01:00
            }
          }
          +root: App\Entity\EntryComment {#4036}
          +body: """
            They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
            \n
            Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
            \n
            Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
            """
          +lang: "en"
          +isAdult: false
          +favouriteCount: 8
          +score: 0
          +lastActive: DateTime @1706172652 {#4181
            date: 2024-01-25 09:50:52.0 +01:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@iso@lemy.lol"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4184 …}
          +nested: Doctrine\ORM\PersistentCollection {#4186 …}
          +votes: Doctrine\ORM\PersistentCollection {#4188 …}
          +reports: Doctrine\ORM\PersistentCollection {#4190 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
          -id: 338818
          -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://programming.dev/comment/6801885"
          +editedAt: null
          +createdAt: DateTimeImmutable @1706172652 {#4182
            date: 2024-01-25 09:50:52.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
          \n
          The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
          \n
          Which client would you recommend?
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 3
        +score: 0
        +lastActive: DateTime @1706176290 {#4202
          date: 2024-01-25 10:51:30.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4205 …}
        +nested: Doctrine\ORM\PersistentCollection {#4209 …}
        +votes: Doctrine\ORM\PersistentCollection {#4211 …}
        +reports: Doctrine\ORM\PersistentCollection {#4212 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
        -id: 338889
        -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/7002949"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706176290 {#4199
          date: 2024-01-25 10:51:30.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
        \n
        And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
        \n
        > Which client would you recommend?\n
        \n
        Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1706185731 {#4228
        date: 2024-01-25 13:28:51.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4225 …}
      +nested: Doctrine\ORM\PersistentCollection {#4222 …}
      +votes: Doctrine\ORM\PersistentCollection {#4220 …}
      +reports: Doctrine\ORM\PersistentCollection {#4234 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
      -id: 339291
      -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6806935"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706185731 {#4231
        date: 2024-01-25 13:28:51.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "Thank you for the suggestions. I just created an account on jabber.hot-chilli.net and downloaded Gajim. It looks really cool!"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706199393 {#4250
      date: 2024-01-25 17:16:33.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4247 …}
    +nested: Doctrine\ORM\PersistentCollection {#4244 …}
    +votes: Doctrine\ORM\PersistentCollection {#4242 …}
    +reports: Doctrine\ORM\PersistentCollection {#4256 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4258 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4260 …}
    -id: 339614
    -bodyTs: "'account':10 'cool':19 'creat':8 'download':14 'gajim':15 'jabber.hot-chilli.net':12 'look':17 'realli':18 'suggest':5 'thank':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7010951"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706199393 {#4253
      date: 2024-01-25 17:16:33.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\BoostComponent {#7938
  +formDest: "entry_comment"
  +subject: App\Entity\EntryComment {#4255
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4233
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4197
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4183
          +user: Proxies\__CG__\App\Entity\User {#1978 …2}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: App\Entity\EntryComment {#4036
            +user: App\Entity\User {#3984}
            +entry: App\Entity\Entry {#2412}
            +magazine: App\Entity\Magazine {#264}
            +image: null
            +parent: null
            +root: null
            +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
            +lang: "en"
            +isAdult: false
            +favouriteCount: 5
            +score: 0
            +lastActive: DateTime @1728607448 {#4046
              date: 2024-10-11 02:44:08.0 +02:00
            }
            +ip: null
            +tags: null
            +mentions: [
              "@u_tamtam@programming.dev"
              "@u_tamtam@programming.dev"
            ]
            +children: Doctrine\ORM\PersistentCollection {#4034 …}
            +nested: Doctrine\ORM\PersistentCollection {#4032 …}
            +votes: Doctrine\ORM\PersistentCollection {#4030 …}
            +reports: Doctrine\ORM\PersistentCollection {#4028 …}
            +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
            +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
            -id: 338678
            -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
            +ranking: 0
            +commentCount: 0
            +upVotes: 0
            +downVotes: 0
            +visibility: "visible             "
            +apId: "https://lemy.lol/comment/6999292"
            +editedAt: DateTimeImmutable @1728516868 {#3982
              date: 2024-10-10 01:34:28.0 +02:00
            }
            +createdAt: DateTimeImmutable @1706166868 {#4045
              date: 2024-01-25 08:14:28.0 +01:00
            }
          }
          +root: App\Entity\EntryComment {#4036}
          +body: """
            They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
            \n
            Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
            \n
            Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
            """
          +lang: "en"
          +isAdult: false
          +favouriteCount: 8
          +score: 0
          +lastActive: DateTime @1706172652 {#4181
            date: 2024-01-25 09:50:52.0 +01:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@iso@lemy.lol"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4184 …}
          +nested: Doctrine\ORM\PersistentCollection {#4186 …}
          +votes: Doctrine\ORM\PersistentCollection {#4188 …}
          +reports: Doctrine\ORM\PersistentCollection {#4190 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
          -id: 338818
          -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://programming.dev/comment/6801885"
          +editedAt: null
          +createdAt: DateTimeImmutable @1706172652 {#4182
            date: 2024-01-25 09:50:52.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
          \n
          The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
          \n
          Which client would you recommend?
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 3
        +score: 0
        +lastActive: DateTime @1706176290 {#4202
          date: 2024-01-25 10:51:30.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4205 …}
        +nested: Doctrine\ORM\PersistentCollection {#4209 …}
        +votes: Doctrine\ORM\PersistentCollection {#4211 …}
        +reports: Doctrine\ORM\PersistentCollection {#4212 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
        -id: 338889
        -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/7002949"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706176290 {#4199
          date: 2024-01-25 10:51:30.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
        \n
        And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
        \n
        > Which client would you recommend?\n
        \n
        Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1706185731 {#4228
        date: 2024-01-25 13:28:51.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4225 …}
      +nested: Doctrine\ORM\PersistentCollection {#4222 …}
      +votes: Doctrine\ORM\PersistentCollection {#4220 …}
      +reports: Doctrine\ORM\PersistentCollection {#4234 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
      -id: 339291
      -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6806935"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706185731 {#4231
        date: 2024-01-25 13:28:51.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "Thank you for the suggestions. I just created an account on jabber.hot-chilli.net and downloaded Gajim. It looks really cool!"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706199393 {#4250
      date: 2024-01-25 17:16:33.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4247 …}
    +nested: Doctrine\ORM\PersistentCollection {#4244 …}
    +votes: Doctrine\ORM\PersistentCollection {#4242 …}
    +reports: Doctrine\ORM\PersistentCollection {#4256 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4258 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4260 …}
    -id: 339614
    -bodyTs: "'account':10 'cool':19 'creat':8 'download':14 'gajim':15 'jabber.hot-chilli.net':12 'look':17 'realli':18 'suggest':5 'thank':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7010951"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706199393 {#4253
      date: 2024-01-25 17:16:33.0 +01:00
    }
  }
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
entry_comments_nested App\Twig\Components\EntryCommentsNestedComponent 14.0 MiB 2.86 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4255
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4233
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4197
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4183
          +user: Proxies\__CG__\App\Entity\User {#1978 …2}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: App\Entity\EntryComment {#4036
            +user: App\Entity\User {#3984}
            +entry: App\Entity\Entry {#2412}
            +magazine: App\Entity\Magazine {#264}
            +image: null
            +parent: null
            +root: null
            +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
            +lang: "en"
            +isAdult: false
            +favouriteCount: 5
            +score: 0
            +lastActive: DateTime @1728607448 {#4046
              date: 2024-10-11 02:44:08.0 +02:00
            }
            +ip: null
            +tags: null
            +mentions: [
              "@u_tamtam@programming.dev"
              "@u_tamtam@programming.dev"
            ]
            +children: Doctrine\ORM\PersistentCollection {#4034 …}
            +nested: Doctrine\ORM\PersistentCollection {#4032 …}
            +votes: Doctrine\ORM\PersistentCollection {#4030 …}
            +reports: Doctrine\ORM\PersistentCollection {#4028 …}
            +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
            +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
            -id: 338678
            -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
            +ranking: 0
            +commentCount: 0
            +upVotes: 0
            +downVotes: 0
            +visibility: "visible             "
            +apId: "https://lemy.lol/comment/6999292"
            +editedAt: DateTimeImmutable @1728516868 {#3982
              date: 2024-10-10 01:34:28.0 +02:00
            }
            +createdAt: DateTimeImmutable @1706166868 {#4045
              date: 2024-01-25 08:14:28.0 +01:00
            }
          }
          +root: App\Entity\EntryComment {#4036}
          +body: """
            They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
            \n
            Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
            \n
            Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
            """
          +lang: "en"
          +isAdult: false
          +favouriteCount: 8
          +score: 0
          +lastActive: DateTime @1706172652 {#4181
            date: 2024-01-25 09:50:52.0 +01:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@iso@lemy.lol"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4184 …}
          +nested: Doctrine\ORM\PersistentCollection {#4186 …}
          +votes: Doctrine\ORM\PersistentCollection {#4188 …}
          +reports: Doctrine\ORM\PersistentCollection {#4190 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
          -id: 338818
          -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://programming.dev/comment/6801885"
          +editedAt: null
          +createdAt: DateTimeImmutable @1706172652 {#4182
            date: 2024-01-25 09:50:52.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
          \n
          The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
          \n
          Which client would you recommend?
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 3
        +score: 0
        +lastActive: DateTime @1706176290 {#4202
          date: 2024-01-25 10:51:30.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4205 …}
        +nested: Doctrine\ORM\PersistentCollection {#4209 …}
        +votes: Doctrine\ORM\PersistentCollection {#4211 …}
        +reports: Doctrine\ORM\PersistentCollection {#4212 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
        -id: 338889
        -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/7002949"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706176290 {#4199
          date: 2024-01-25 10:51:30.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
        \n
        And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
        \n
        > Which client would you recommend?\n
        \n
        Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1706185731 {#4228
        date: 2024-01-25 13:28:51.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4225 …}
      +nested: Doctrine\ORM\PersistentCollection {#4222 …}
      +votes: Doctrine\ORM\PersistentCollection {#4220 …}
      +reports: Doctrine\ORM\PersistentCollection {#4234 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
      -id: 339291
      -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6806935"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706185731 {#4231
        date: 2024-01-25 13:28:51.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "Thank you for the suggestions. I just created an account on jabber.hot-chilli.net and downloaded Gajim. It looks really cool!"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706199393 {#4250
      date: 2024-01-25 17:16:33.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4247 …}
    +nested: Doctrine\ORM\PersistentCollection {#4244 …}
    +votes: Doctrine\ORM\PersistentCollection {#4242 …}
    +reports: Doctrine\ORM\PersistentCollection {#4256 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4258 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4260 …}
    -id: 339614
    -bodyTs: "'account':10 'cool':19 'creat':8 'download':14 'gajim':15 'jabber.hot-chilli.net':12 'look':17 'realli':18 'suggest':5 'thank':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7010951"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706199393 {#4253
      date: 2024-01-25 17:16:33.0 +01:00
    }
  }
  "level" => 5
  "showNested" => true
  "view" => "tree"
]
Attributes
[
  "showNested" => true
]
Component
App\Twig\Components\EntryCommentsNestedComponent {#8178
  +comment: App\Entity\EntryComment {#4255
    +user: App\Entity\User {#3984
      +avatar: Proxies\__CG__\App\Entity\Image {#3985 …}
      +cover: null
      +email: "iso@lemy.lol"
      +username: "@iso@lemy.lol"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "I’m a male, 23 yo software developer. Admin of [lemy.lol](https://lemy.lol/) instance."
      +lastActive: DateTime @1728807873 {#4041
        date: 2024-10-13 10:24:33.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#3989 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#3981 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#3979 …}
      +entries: Doctrine\ORM\PersistentCollection {#3977 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#3974 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#3972 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#3969 …}
      +posts: Doctrine\ORM\PersistentCollection {#3967 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#3965 …}
      +postComments: Doctrine\ORM\PersistentCollection {#3962 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#3960 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#3958 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4101 …}
      +follows: Doctrine\ORM\PersistentCollection {#4097 …}
      +followers: Doctrine\ORM\PersistentCollection {#4086 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4077 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4066 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4103 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4100 …}
      +reports: Doctrine\ORM\PersistentCollection {#4063 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4090 …}
      +violations: Doctrine\ORM\PersistentCollection {#4093 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4091 …}
      +awards: Doctrine\ORM\PersistentCollection {#4089 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4088 …}
      +categories: Doctrine\ORM\PersistentCollection {#4081 …}
      -id: 22594
      -password: "$2y$13$rtwQUzAcVB.YkzC1ityAyuwfNrM7zHeAVaOjWYmG3OAtKZKUGhkvC"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4075 …}
      +apId: "iso@lemy.lol"
      +apProfileId: "https://lemy.lol/u/iso"
      +apPublicUrl: "https://lemy.lol/u/iso"
      +apFollowersUrl: null
      +apInboxUrl: "https://lemy.lol/inbox"
      +apDomain: "lemy.lol"
      +apPreferredUsername: "iso"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1705354101 {#4039
        date: 2024-01-15 22:28:21.0 +01:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689074515 {#4038
        date: 2023-07-11 13:21:55.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4233
      +user: Proxies\__CG__\App\Entity\User {#1978 …2}
      +entry: App\Entity\Entry {#2412}
      +magazine: App\Entity\Magazine {#264}
      +image: null
      +parent: App\Entity\EntryComment {#4197
        +user: App\Entity\User {#3984}
        +entry: App\Entity\Entry {#2412}
        +magazine: App\Entity\Magazine {#264}
        +image: null
        +parent: App\Entity\EntryComment {#4183
          +user: Proxies\__CG__\App\Entity\User {#1978 …2}
          +entry: App\Entity\Entry {#2412}
          +magazine: App\Entity\Magazine {#264}
          +image: null
          +parent: App\Entity\EntryComment {#4036
            +user: App\Entity\User {#3984}
            +entry: App\Entity\Entry {#2412}
            +magazine: App\Entity\Magazine {#264}
            +image: null
            +parent: null
            +root: null
            +body: "I’ve never used XMPP. Can someone compare it with Matrix?"
            +lang: "en"
            +isAdult: false
            +favouriteCount: 5
            +score: 0
            +lastActive: DateTime @1728607448 {#4046
              date: 2024-10-11 02:44:08.0 +02:00
            }
            +ip: null
            +tags: null
            +mentions: [
              "@u_tamtam@programming.dev"
              "@u_tamtam@programming.dev"
            ]
            +children: Doctrine\ORM\PersistentCollection {#4034 …}
            +nested: Doctrine\ORM\PersistentCollection {#4032 …}
            +votes: Doctrine\ORM\PersistentCollection {#4030 …}
            +reports: Doctrine\ORM\PersistentCollection {#4028 …}
            +favourites: Doctrine\ORM\PersistentCollection {#3996 …}
            +notifications: Doctrine\ORM\PersistentCollection {#4000 …}
            -id: 338678
            -bodyTs: "'compar':8 'matrix':11 'never':3 'someon':7 'use':4 've':2 'xmpp':5"
            +ranking: 0
            +commentCount: 0
            +upVotes: 0
            +downVotes: 0
            +visibility: "visible             "
            +apId: "https://lemy.lol/comment/6999292"
            +editedAt: DateTimeImmutable @1728516868 {#3982
              date: 2024-10-10 01:34:28.0 +02:00
            }
            +createdAt: DateTimeImmutable @1706166868 {#4045
              date: 2024-01-25 08:14:28.0 +01:00
            }
          }
          +root: App\Entity\EntryComment {#4036}
          +body: """
            They both qualify as “open, federated messaging protocols”, with XMPP being the oldest (about 25 years old) and an internet standard (IETF) but at this point we can consider Matrix to be quite old, too (10 years old). On the paper they are quite interchangeable, they both focus on bridging with established protocols, etc.\n
            \n
            Where things differ, though, is that Matrix is practically a single vendor implementation: the same organization (Element/New Vector/ however it’s called these days) develops both the reference client and the reference server. Which incidentally is super complex, not well documented (the code is the documentation), and practically not compatible with the other (semi-official) implementations. This is a red herring because it also happens that this organization was built on venture capital money with no financial stability in sight. XMPP is a much more diverse and accessible ecosystem: there are multiple independent teams and corporations implementing servers and clients, the protocol itself is very stable, versatile and extensible. This is how you can find XMPP today running the backbone of the modern internet, dispatching notifications to all Android devices, being the signaling system behind millions of IoT devices, providing messaging to billion of users (WhatsApp is, by the way, based on XMPP)\n
            \n
            Another significant difference is that, despite 10 years of existence and millions invested into it, Matrix still has not reached stability (and probably never will): the organization recently announced Matrix 2 as the (yet another) definitive answer to the protocol’s shortcomings, without changing anything to what makes the protocol so painful to work with, and the requirements (compute, memory, bandwidth) to run Matrix at even a small scale are still orders of magnitude higher than XMPP. This discouraged many organizations (even serious ones, like Mozilla, KDE, …) from running Matrix themselves and further contributes to the de-facto centralization and single point of control federated protocols are meant to prevent.
            """
          +lang: "en"
          +isAdult: false
          +favouriteCount: 8
          +score: 0
          +lastActive: DateTime @1706172652 {#4181
            date: 2024-01-25 09:50:52.0 +01:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@u_tamtam@programming.dev"
            "@iso@lemy.lol"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4184 …}
          +nested: Doctrine\ORM\PersistentCollection {#4186 …}
          +votes: Doctrine\ORM\PersistentCollection {#4188 …}
          +reports: Doctrine\ORM\PersistentCollection {#4190 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4192 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4194 …}
          -id: 338818
          -bodyTs: "'10':36,215 '2':239 '25':15 'access':143 'also':119 'android':184 'announc':237 'anoth':209,243 'answer':245 'anyth':253 'backbon':175 'bandwidth':269 'base':206 'behind':190 'billion':198 'bridg':50 'built':125 'call':76 'capit':128 'central':308 'chang':252 'client':83,155 'code':97 'compat':104 'complex':92 'comput':267 'consid':29 'contribut':302 'control':313 'corpor':151 'day':78 'de':306 'de-facto':305 'definit':244 'despit':214 'develop':79 'devic':185,194 'differ':57,211 'discourag':287 'dispatch':180 'divers':141 'document':95,100 'ecosystem':144 'element/new':71 'establish':52 'etc':54 'even':274,290 'exist':218 'extens':164 'facto':307 'feder':6,314 'financi':132 'find':170 'focus':48 'happen':120 'herring':116 'higher':283 'howev':73 'ietf':22 'implement':67,111,152 'incident':89 'independ':148 'interchang':45 'internet':20,179 'invest':221 'iot':193 'kde':295 'like':293 'magnitud':282 'make':256 'mani':288 'matrix':30,61,224,238,272,298 'meant':317 'memori':268 'messag':7,196 'million':191,220 'modern':178 'money':129 'mozilla':294 'much':139 'multipl':147 'never':232 'notif':181 'offici':110 'old':17,34,38 'oldest':13 'one':292 'open':5 'order':280 'organ':70,123,235,289 'pain':260 'paper':41 'point':26,311 'practic':63,102 'prevent':319 'probabl':231 'protocol':8,53,157,248,258,315 'provid':195 'qualifi':3 'quit':33,44 'reach':228 'recent':236 'red':115 'refer':82,86 'requir':266 'run':173,271,297 'scale':277 'semi':109 'semi-offici':108 'serious':291 'server':87,153 'shortcom':250 'sight':135 'signal':188 'signific':210 'singl':65,310 'small':276 'stabil':133,229 'stabl':161 'standard':21 'still':225,279 'super':91 'system':189 'team':149 'thing':56 'though':58 'today':172 'user':200 'vector':72 'vendor':66 'ventur':127 'versatil':162 'way':205 'well':94 'whatsapp':201 'without':251 'work':262 'xmpp':10,136,171,208,285 'year':16,37,216 'yet':242"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://programming.dev/comment/6801885"
          +editedAt: null
          +createdAt: DateTimeImmutable @1706172652 {#4182
            date: 2024-01-25 09:50:52.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4036}
        +body: """
          I’ve used Matrix for months and agree with most points. I would like to try XMPP but it is clear that it does not have the best onboarding experience.\n
          \n
          The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
          \n
          Which client would you recommend?
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 3
        +score: 0
        +lastActive: DateTime @1706176290 {#4202
          date: 2024-01-25 10:51:30.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@u_tamtam@programming.dev"
          "@iso@lemy.lol"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4205 …}
        +nested: Doctrine\ORM\PersistentCollection {#4209 …}
        +votes: Doctrine\ORM\PersistentCollection {#4211 …}
        +reports: Doctrine\ORM\PersistentCollection {#4212 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4214 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4216 …}
        -id: 338889
        -bodyTs: "'agre':8 'best':28 'choos':64 'clear':21 'client':50,66 'experi':30 'featur':55 'lack':43 'like':14 'm':58 'matrix':4 'month':6 'observ':35 'onboard':29 'one':62 'outsid':40 'point':11 'problem':32 'recommend':69 'server':48 'standard':46 'support':54 'sure':60 'tri':16 'use':3 've':2,34 'would':13,67 'xmpp':17,37"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemy.lol/comment/7002949"
        +editedAt: null
        +createdAt: DateTimeImmutable @1706176290 {#4199
          date: 2024-01-25 10:51:30.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4036}
      +body: """
        > The *problem* I’ve observed with XMPP as an outsider is the lack of a standard. Each server or client has its own supported features and I’m not sure which one to choose.\n
        \n
        That’s a valid concern, but I wouldn’t call it a problem. There are practically 2 types of clients/servers: the ones which are maintained, and which work absolutely fine and well together, and the rest, the unmaintained/abandoned part of the ecosystem.\n
        \n
        And with the protocol being so stable and backwards/forwards compatible in large parts, those unmaintained clients will just work, just not with the latest and greatest features (XMPP has the machinery to let clients and servers advertise about their supported features so the experience is at least cohesive).\n
        \n
        > Which client would you recommend?\n
        \n
        Depends on which platform you are on and the type of usage. You should be able to pick one as advertised on [joinjabber.org](https://joinjabber.org) , that should keep you away from the fringe/unmaintained stuff. Personally I use gajim and monocles.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 5
      +score: 0
      +lastActive: DateTime @1706185731 {#4228
        date: 2024-01-25 13:28:51.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@u_tamtam@programming.dev"
        "@iso@lemy.lol"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4225 …}
      +nested: Doctrine\ORM\PersistentCollection {#4222 …}
      +votes: Doctrine\ORM\PersistentCollection {#4220 …}
      +reports: Doctrine\ORM\PersistentCollection {#4234 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4236 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4238 …}
      -id: 339291
      -bodyTs: "'2':51 'abl':145 'absolut':63 'advertis':113,150 'away':158 'backwards/forwards':85 'call':44 'choos':34 'client':20,92,110,126 'clients/servers':54 'cohes':124 'compat':86 'concern':39 'depend':130 'ecosystem':76 'experi':120 'featur':25,103,117 'fine':64 'fringe/unmaintained':161 'gajim':166 'greatest':102 'joinjabber.org':152,153 'keep':156 'lack':13 'larg':88 'latest':100 'least':123 'let':109 'm':28 'machineri':107 'maintain':59 'monocl':168 'observ':5 'one':32,56,148 'outsid':10 'part':73,89 'person':163 'pick':147 'platform':133 'practic':50 'problem':2,47 'protocol':80 'recommend':129 'rest':70 'server':18,112 'stabl':83 'standard':16 'stuff':162 'support':24,116 'sure':30 'togeth':67 'type':52,139 'unmaintain':91 'unmaintained/abandoned':72 'usag':141 'use':165 'valid':38 've':4 'well':66 'work':62,95 'would':127 'wouldn':42 'xmpp':7,104"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/6806935"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706185731 {#4231
        date: 2024-01-25 13:28:51.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4036}
    +body: "Thank you for the suggestions. I just created an account on jabber.hot-chilli.net and downloaded Gajim. It looks really cool!"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1706199393 {#4250
      date: 2024-01-25 17:16:33.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
      "@iso@lemy.lol"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4247 …}
    +nested: Doctrine\ORM\PersistentCollection {#4244 …}
    +votes: Doctrine\ORM\PersistentCollection {#4242 …}
    +reports: Doctrine\ORM\PersistentCollection {#4256 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4258 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4260 …}
    -id: 339614
    -bodyTs: "'account':10 'cool':19 'creat':8 'download':14 'gajim':15 'jabber.hot-chilli.net':12 'look':17 'realli':18 'suggest':5 'thank':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemy.lol/comment/7010951"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706199393 {#4253
      date: 2024-01-25 17:16:33.0 +01:00
    }
  }
  +nestedComments: []
  +level: 5
  +view: "tree"
  -entryCommentRepository: App\Repository\EntryCommentRepository {#555 …}
  -twig: Twig\Environment {#1252 …}
  -security: Symfony\Bundle\SecurityBundle\Security {#1101 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
entry_comment App\Twig\Components\EntryCommentComponent 14.0 MiB 23.13 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4072
    +user: App\Entity\User {#4056
      +avatar: Proxies\__CG__\App\Entity\Image {#4055 …}
      +cover: null
      +email: "drdiddlybadger@pawb.social"
      +username: "@drdiddlybadger@pawb.social"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "Mastodon: me@drdiddlybadger.com Avatar drawn by kittydee.art"
      +lastActive: DateTime @1728830615 {#4076
        date: 2024-10-13 16:43:35.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#4054 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4052 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#4050 …}
      +entries: Doctrine\ORM\PersistentCollection {#4048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#4107 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#4108 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4110 …}
      +posts: Doctrine\ORM\PersistentCollection {#4112 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#4114 …}
      +postComments: Doctrine\ORM\PersistentCollection {#4116 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#4118 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#4120 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4122 …}
      +follows: Doctrine\ORM\PersistentCollection {#4124 …}
      +followers: Doctrine\ORM\PersistentCollection {#4126 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4128 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4130 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4132 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4134 …}
      +reports: Doctrine\ORM\PersistentCollection {#4136 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4138 …}
      +violations: Doctrine\ORM\PersistentCollection {#4140 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4142 …}
      +awards: Doctrine\ORM\PersistentCollection {#4144 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4146 …}
      +categories: Doctrine\ORM\PersistentCollection {#4148 …}
      -id: 22817
      -password: "$2y$13$lBD0h7YTsS2fTKccfwPq9OFqLWGLrIoZ..T52lJx1XYIJm3cJDvyG"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4150 …}
      +apId: "drdiddlybadger@pawb.social"
      +apProfileId: "https://pawb.social/u/drdiddlybadger"
      +apPublicUrl: "https://pawb.social/u/drdiddlybadger"
      +apFollowersUrl: null
      +apInboxUrl: "https://pawb.social/inbox"
      +apDomain: "pawb.social"
      +apPreferredUsername: "drdiddlybadger"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729428621 {#4069
        date: 2024-10-20 14:50:21.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689083513 {#4074
        date: 2023-07-11 15:51:53.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I think this is pretty cool."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1706139601 {#4078
      date: 2024-01-25 00:40:01.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4073 …}
    +nested: Doctrine\ORM\PersistentCollection {#4064 …}
    +votes: Doctrine\ORM\PersistentCollection {#4067 …}
    +reports: Doctrine\ORM\PersistentCollection {#4062 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4060 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4058 …}
    -id: 337992
    -bodyTs: "'cool':6 'pretti':5 'think':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://pawb.social/comment/5639392"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706139601 {#4079
      date: 2024-01-25 00:40:01.0 +01:00
    }
  }
  "showNested" => true
  "dateAsUrl" => false
  "showMagazineName" => false
  "showEntryTitle" => false
]
Attributes
[]
Component
App\Twig\Components\EntryCommentComponent {#8287
  +comment: App\Entity\EntryComment {#4072
    +user: App\Entity\User {#4056
      +avatar: Proxies\__CG__\App\Entity\Image {#4055 …}
      +cover: null
      +email: "drdiddlybadger@pawb.social"
      +username: "@drdiddlybadger@pawb.social"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "Mastodon: me@drdiddlybadger.com Avatar drawn by kittydee.art"
      +lastActive: DateTime @1728830615 {#4076
        date: 2024-10-13 16:43:35.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#4054 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4052 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#4050 …}
      +entries: Doctrine\ORM\PersistentCollection {#4048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#4107 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#4108 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4110 …}
      +posts: Doctrine\ORM\PersistentCollection {#4112 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#4114 …}
      +postComments: Doctrine\ORM\PersistentCollection {#4116 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#4118 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#4120 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4122 …}
      +follows: Doctrine\ORM\PersistentCollection {#4124 …}
      +followers: Doctrine\ORM\PersistentCollection {#4126 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4128 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4130 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4132 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4134 …}
      +reports: Doctrine\ORM\PersistentCollection {#4136 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4138 …}
      +violations: Doctrine\ORM\PersistentCollection {#4140 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4142 …}
      +awards: Doctrine\ORM\PersistentCollection {#4144 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4146 …}
      +categories: Doctrine\ORM\PersistentCollection {#4148 …}
      -id: 22817
      -password: "$2y$13$lBD0h7YTsS2fTKccfwPq9OFqLWGLrIoZ..T52lJx1XYIJm3cJDvyG"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4150 …}
      +apId: "drdiddlybadger@pawb.social"
      +apProfileId: "https://pawb.social/u/drdiddlybadger"
      +apPublicUrl: "https://pawb.social/u/drdiddlybadger"
      +apFollowersUrl: null
      +apInboxUrl: "https://pawb.social/inbox"
      +apDomain: "pawb.social"
      +apPreferredUsername: "drdiddlybadger"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729428621 {#4069
        date: 2024-10-20 14:50:21.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689083513 {#4074
        date: 2023-07-11 15:51:53.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I think this is pretty cool."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1706139601 {#4078
      date: 2024-01-25 00:40:01.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4073 …}
    +nested: Doctrine\ORM\PersistentCollection {#4064 …}
    +votes: Doctrine\ORM\PersistentCollection {#4067 …}
    +reports: Doctrine\ORM\PersistentCollection {#4062 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4060 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4058 …}
    -id: 337992
    -bodyTs: "'cool':6 'pretti':5 'think':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://pawb.social/comment/5639392"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706139601 {#4079
      date: 2024-01-25 00:40:01.0 +01:00
    }
  }
  +showMagazineName: false
  +showEntryTitle: false
  +showNested: true
  +level: 1
  +canSeeTrash: false
  +dateAsUrl: false
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -authorizationChecker: Symfony\Component\Security\Core\Authorization\AuthorizationChecker {#931 …}
}
user_inline App\Twig\Components\UserInlineComponent 14.0 MiB 0.17 ms
Input props
[
  "user" => App\Entity\User {#4056
    +avatar: Proxies\__CG__\App\Entity\Image {#4055 …}
    +cover: null
    +email: "drdiddlybadger@pawb.social"
    +username: "@drdiddlybadger@pawb.social"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "Mastodon: me@drdiddlybadger.com Avatar drawn by kittydee.art"
    +lastActive: DateTime @1728830615 {#4076
      date: 2024-10-13 16:43:35.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#4054 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4052 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#4050 …}
    +entries: Doctrine\ORM\PersistentCollection {#4048 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#4107 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#4108 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4110 …}
    +posts: Doctrine\ORM\PersistentCollection {#4112 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#4114 …}
    +postComments: Doctrine\ORM\PersistentCollection {#4116 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#4118 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#4120 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4122 …}
    +follows: Doctrine\ORM\PersistentCollection {#4124 …}
    +followers: Doctrine\ORM\PersistentCollection {#4126 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4128 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4130 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4132 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4134 …}
    +reports: Doctrine\ORM\PersistentCollection {#4136 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4138 …}
    +violations: Doctrine\ORM\PersistentCollection {#4140 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4142 …}
    +awards: Doctrine\ORM\PersistentCollection {#4144 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4146 …}
    +categories: Doctrine\ORM\PersistentCollection {#4148 …}
    -id: 22817
    -password: "$2y$13$lBD0h7YTsS2fTKccfwPq9OFqLWGLrIoZ..T52lJx1XYIJm3cJDvyG"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4150 …}
    +apId: "drdiddlybadger@pawb.social"
    +apProfileId: "https://pawb.social/u/drdiddlybadger"
    +apPublicUrl: "https://pawb.social/u/drdiddlybadger"
    +apFollowersUrl: null
    +apInboxUrl: "https://pawb.social/inbox"
    +apDomain: "pawb.social"
    +apPreferredUsername: "drdiddlybadger"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729428621 {#4069
      date: 2024-10-20 14:50:21.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689083513 {#4074
      date: 2023-07-11 15:51:53.0 +02:00
    }
  }
  "showAvatar" => false
]
Attributes
[]
Component
App\Twig\Components\UserInlineComponent {#8332
  +user: App\Entity\User {#4056
    +avatar: Proxies\__CG__\App\Entity\Image {#4055 …}
    +cover: null
    +email: "drdiddlybadger@pawb.social"
    +username: "@drdiddlybadger@pawb.social"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "Mastodon: me@drdiddlybadger.com Avatar drawn by kittydee.art"
    +lastActive: DateTime @1728830615 {#4076
      date: 2024-10-13 16:43:35.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#4054 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4052 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#4050 …}
    +entries: Doctrine\ORM\PersistentCollection {#4048 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#4107 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#4108 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4110 …}
    +posts: Doctrine\ORM\PersistentCollection {#4112 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#4114 …}
    +postComments: Doctrine\ORM\PersistentCollection {#4116 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#4118 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#4120 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4122 …}
    +follows: Doctrine\ORM\PersistentCollection {#4124 …}
    +followers: Doctrine\ORM\PersistentCollection {#4126 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4128 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4130 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4132 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4134 …}
    +reports: Doctrine\ORM\PersistentCollection {#4136 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4138 …}
    +violations: Doctrine\ORM\PersistentCollection {#4140 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4142 …}
    +awards: Doctrine\ORM\PersistentCollection {#4144 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4146 …}
    +categories: Doctrine\ORM\PersistentCollection {#4148 …}
    -id: 22817
    -password: "$2y$13$lBD0h7YTsS2fTKccfwPq9OFqLWGLrIoZ..T52lJx1XYIJm3cJDvyG"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4150 …}
    +apId: "drdiddlybadger@pawb.social"
    +apProfileId: "https://pawb.social/u/drdiddlybadger"
    +apPublicUrl: "https://pawb.social/u/drdiddlybadger"
    +apFollowersUrl: null
    +apInboxUrl: "https://pawb.social/inbox"
    +apDomain: "pawb.social"
    +apPreferredUsername: "drdiddlybadger"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729428621 {#4069
      date: 2024-10-20 14:50:21.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689083513 {#4074
      date: 2023-07-11 15:51:53.0 +02:00
    }
  }
  +showAvatar: false
}
date App\Twig\Components\DateComponent 14.0 MiB 0.15 ms
Input props
[
  "date" => DateTimeImmutable @1706139601 {#4079
    date: 2024-01-25 00:40:01.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#8387
  +date: DateTimeImmutable @1706139601 {#4079
    date: 2024-01-25 00:40:01.0 +01:00
  }
}
date_edited App\Twig\Components\DateEditedComponent 14.0 MiB 0.10 ms
Input props
[
  "createdAt" => DateTimeImmutable @1706139601 {#4079
    date: 2024-01-25 00:40:01.0 +01:00
  }
  "editedAt" => null
]
Attributes
[]
Component
App\Twig\Components\DateEditedComponent {#8441
  +createdAt: DateTimeImmutable @1706139601 {#4079
    date: 2024-01-25 00:40:01.0 +01:00
  }
  +editedAt: null
}
user_avatar App\Twig\Components\UserAvatarComponent 14.0 MiB 9.10 ms
Input props
[
  "user" => App\Entity\User {#4056
    +avatar: Proxies\__CG__\App\Entity\Image {#4055 …}
    +cover: null
    +email: "drdiddlybadger@pawb.social"
    +username: "@drdiddlybadger@pawb.social"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "Mastodon: me@drdiddlybadger.com Avatar drawn by kittydee.art"
    +lastActive: DateTime @1728830615 {#4076
      date: 2024-10-13 16:43:35.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#4054 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4052 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#4050 …}
    +entries: Doctrine\ORM\PersistentCollection {#4048 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#4107 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#4108 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4110 …}
    +posts: Doctrine\ORM\PersistentCollection {#4112 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#4114 …}
    +postComments: Doctrine\ORM\PersistentCollection {#4116 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#4118 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#4120 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4122 …}
    +follows: Doctrine\ORM\PersistentCollection {#4124 …}
    +followers: Doctrine\ORM\PersistentCollection {#4126 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4128 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4130 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4132 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4134 …}
    +reports: Doctrine\ORM\PersistentCollection {#4136 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4138 …}
    +violations: Doctrine\ORM\PersistentCollection {#4140 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4142 …}
    +awards: Doctrine\ORM\PersistentCollection {#4144 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4146 …}
    +categories: Doctrine\ORM\PersistentCollection {#4148 …}
    -id: 22817
    -password: "$2y$13$lBD0h7YTsS2fTKccfwPq9OFqLWGLrIoZ..T52lJx1XYIJm3cJDvyG"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4150 …}
    +apId: "drdiddlybadger@pawb.social"
    +apProfileId: "https://pawb.social/u/drdiddlybadger"
    +apPublicUrl: "https://pawb.social/u/drdiddlybadger"
    +apFollowersUrl: null
    +apInboxUrl: "https://pawb.social/inbox"
    +apDomain: "pawb.social"
    +apPreferredUsername: "drdiddlybadger"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729428621 {#4069
      date: 2024-10-20 14:50:21.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689083513 {#4074
      date: 2023-07-11 15:51:53.0 +02:00
    }
  }
  "width" => 40
  "height" => 40
  "asLink" => true
]
Attributes
[]
Component
App\Twig\Components\UserAvatarComponent {#8495
  +width: 40
  +height: 40
  +user: App\Entity\User {#4056
    +avatar: Proxies\__CG__\App\Entity\Image {#4055 …}
    +cover: null
    +email: "drdiddlybadger@pawb.social"
    +username: "@drdiddlybadger@pawb.social"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: "Mastodon: me@drdiddlybadger.com Avatar drawn by kittydee.art"
    +lastActive: DateTime @1728830615 {#4076
      date: 2024-10-13 16:43:35.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#4054 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4052 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#4050 …}
    +entries: Doctrine\ORM\PersistentCollection {#4048 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#4107 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#4108 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4110 …}
    +posts: Doctrine\ORM\PersistentCollection {#4112 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#4114 …}
    +postComments: Doctrine\ORM\PersistentCollection {#4116 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#4118 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#4120 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#4122 …}
    +follows: Doctrine\ORM\PersistentCollection {#4124 …}
    +followers: Doctrine\ORM\PersistentCollection {#4126 …}
    +blocks: Doctrine\ORM\PersistentCollection {#4128 …}
    +blockers: Doctrine\ORM\PersistentCollection {#4130 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#4132 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#4134 …}
    +reports: Doctrine\ORM\PersistentCollection {#4136 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4138 …}
    +violations: Doctrine\ORM\PersistentCollection {#4140 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4142 …}
    +awards: Doctrine\ORM\PersistentCollection {#4144 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#4146 …}
    +categories: Doctrine\ORM\PersistentCollection {#4148 …}
    -id: 22817
    -password: "$2y$13$lBD0h7YTsS2fTKccfwPq9OFqLWGLrIoZ..T52lJx1XYIJm3cJDvyG"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4150 …}
    +apId: "drdiddlybadger@pawb.social"
    +apProfileId: "https://pawb.social/u/drdiddlybadger"
    +apPublicUrl: "https://pawb.social/u/drdiddlybadger"
    +apFollowersUrl: null
    +apInboxUrl: "https://pawb.social/inbox"
    +apDomain: "pawb.social"
    +apPreferredUsername: "drdiddlybadger"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729428621 {#4069
      date: 2024-10-20 14:50:21.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1689083513 {#4074
      date: 2023-07-11 15:51:53.0 +02:00
    }
  }
  +asLink: true
}
vote App\Twig\Components\VoteComponent 14.0 MiB 0.48 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4072
    +user: App\Entity\User {#4056
      +avatar: Proxies\__CG__\App\Entity\Image {#4055 …}
      +cover: null
      +email: "drdiddlybadger@pawb.social"
      +username: "@drdiddlybadger@pawb.social"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "Mastodon: me@drdiddlybadger.com Avatar drawn by kittydee.art"
      +lastActive: DateTime @1728830615 {#4076
        date: 2024-10-13 16:43:35.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#4054 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4052 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#4050 …}
      +entries: Doctrine\ORM\PersistentCollection {#4048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#4107 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#4108 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4110 …}
      +posts: Doctrine\ORM\PersistentCollection {#4112 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#4114 …}
      +postComments: Doctrine\ORM\PersistentCollection {#4116 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#4118 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#4120 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4122 …}
      +follows: Doctrine\ORM\PersistentCollection {#4124 …}
      +followers: Doctrine\ORM\PersistentCollection {#4126 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4128 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4130 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4132 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4134 …}
      +reports: Doctrine\ORM\PersistentCollection {#4136 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4138 …}
      +violations: Doctrine\ORM\PersistentCollection {#4140 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4142 …}
      +awards: Doctrine\ORM\PersistentCollection {#4144 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4146 …}
      +categories: Doctrine\ORM\PersistentCollection {#4148 …}
      -id: 22817
      -password: "$2y$13$lBD0h7YTsS2fTKccfwPq9OFqLWGLrIoZ..T52lJx1XYIJm3cJDvyG"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4150 …}
      +apId: "drdiddlybadger@pawb.social"
      +apProfileId: "https://pawb.social/u/drdiddlybadger"
      +apPublicUrl: "https://pawb.social/u/drdiddlybadger"
      +apFollowersUrl: null
      +apInboxUrl: "https://pawb.social/inbox"
      +apDomain: "pawb.social"
      +apPreferredUsername: "drdiddlybadger"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729428621 {#4069
        date: 2024-10-20 14:50:21.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689083513 {#4074
        date: 2023-07-11 15:51:53.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I think this is pretty cool."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1706139601 {#4078
      date: 2024-01-25 00:40:01.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4073 …}
    +nested: Doctrine\ORM\PersistentCollection {#4064 …}
    +votes: Doctrine\ORM\PersistentCollection {#4067 …}
    +reports: Doctrine\ORM\PersistentCollection {#4062 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4060 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4058 …}
    -id: 337992
    -bodyTs: "'cool':6 'pretti':5 'think':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://pawb.social/comment/5639392"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706139601 {#4079
      date: 2024-01-25 00:40:01.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\VoteComponent {#8572
  +subject: App\Entity\EntryComment {#4072
    +user: App\Entity\User {#4056
      +avatar: Proxies\__CG__\App\Entity\Image {#4055 …}
      +cover: null
      +email: "drdiddlybadger@pawb.social"
      +username: "@drdiddlybadger@pawb.social"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "Mastodon: me@drdiddlybadger.com Avatar drawn by kittydee.art"
      +lastActive: DateTime @1728830615 {#4076
        date: 2024-10-13 16:43:35.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#4054 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4052 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#4050 …}
      +entries: Doctrine\ORM\PersistentCollection {#4048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#4107 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#4108 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4110 …}
      +posts: Doctrine\ORM\PersistentCollection {#4112 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#4114 …}
      +postComments: Doctrine\ORM\PersistentCollection {#4116 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#4118 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#4120 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4122 …}
      +follows: Doctrine\ORM\PersistentCollection {#4124 …}
      +followers: Doctrine\ORM\PersistentCollection {#4126 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4128 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4130 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4132 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4134 …}
      +reports: Doctrine\ORM\PersistentCollection {#4136 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4138 …}
      +violations: Doctrine\ORM\PersistentCollection {#4140 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4142 …}
      +awards: Doctrine\ORM\PersistentCollection {#4144 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4146 …}
      +categories: Doctrine\ORM\PersistentCollection {#4148 …}
      -id: 22817
      -password: "$2y$13$lBD0h7YTsS2fTKccfwPq9OFqLWGLrIoZ..T52lJx1XYIJm3cJDvyG"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4150 …}
      +apId: "drdiddlybadger@pawb.social"
      +apProfileId: "https://pawb.social/u/drdiddlybadger"
      +apPublicUrl: "https://pawb.social/u/drdiddlybadger"
      +apFollowersUrl: null
      +apInboxUrl: "https://pawb.social/inbox"
      +apDomain: "pawb.social"
      +apPreferredUsername: "drdiddlybadger"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729428621 {#4069
        date: 2024-10-20 14:50:21.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689083513 {#4074
        date: 2023-07-11 15:51:53.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I think this is pretty cool."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1706139601 {#4078
      date: 2024-01-25 00:40:01.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4073 …}
    +nested: Doctrine\ORM\PersistentCollection {#4064 …}
    +votes: Doctrine\ORM\PersistentCollection {#4067 …}
    +reports: Doctrine\ORM\PersistentCollection {#4062 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4060 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4058 …}
    -id: 337992
    -bodyTs: "'cool':6 'pretti':5 'think':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://pawb.social/comment/5639392"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706139601 {#4079
      date: 2024-01-25 00:40:01.0 +01:00
    }
  }
  +formDest: "entry_comment"
  +showDownvote: true
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
boost App\Twig\Components\BoostComponent 14.0 MiB 0.72 ms
Input props
[
  "subject" => App\Entity\EntryComment {#4072
    +user: App\Entity\User {#4056
      +avatar: Proxies\__CG__\App\Entity\Image {#4055 …}
      +cover: null
      +email: "drdiddlybadger@pawb.social"
      +username: "@drdiddlybadger@pawb.social"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "Mastodon: me@drdiddlybadger.com Avatar drawn by kittydee.art"
      +lastActive: DateTime @1728830615 {#4076
        date: 2024-10-13 16:43:35.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#4054 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4052 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#4050 …}
      +entries: Doctrine\ORM\PersistentCollection {#4048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#4107 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#4108 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4110 …}
      +posts: Doctrine\ORM\PersistentCollection {#4112 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#4114 …}
      +postComments: Doctrine\ORM\PersistentCollection {#4116 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#4118 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#4120 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4122 …}
      +follows: Doctrine\ORM\PersistentCollection {#4124 …}
      +followers: Doctrine\ORM\PersistentCollection {#4126 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4128 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4130 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4132 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4134 …}
      +reports: Doctrine\ORM\PersistentCollection {#4136 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4138 …}
      +violations: Doctrine\ORM\PersistentCollection {#4140 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4142 …}
      +awards: Doctrine\ORM\PersistentCollection {#4144 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4146 …}
      +categories: Doctrine\ORM\PersistentCollection {#4148 …}
      -id: 22817
      -password: "$2y$13$lBD0h7YTsS2fTKccfwPq9OFqLWGLrIoZ..T52lJx1XYIJm3cJDvyG"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4150 …}
      +apId: "drdiddlybadger@pawb.social"
      +apProfileId: "https://pawb.social/u/drdiddlybadger"
      +apPublicUrl: "https://pawb.social/u/drdiddlybadger"
      +apFollowersUrl: null
      +apInboxUrl: "https://pawb.social/inbox"
      +apDomain: "pawb.social"
      +apPreferredUsername: "drdiddlybadger"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729428621 {#4069
        date: 2024-10-20 14:50:21.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689083513 {#4074
        date: 2023-07-11 15:51:53.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I think this is pretty cool."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1706139601 {#4078
      date: 2024-01-25 00:40:01.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4073 …}
    +nested: Doctrine\ORM\PersistentCollection {#4064 …}
    +votes: Doctrine\ORM\PersistentCollection {#4067 …}
    +reports: Doctrine\ORM\PersistentCollection {#4062 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4060 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4058 …}
    -id: 337992
    -bodyTs: "'cool':6 'pretti':5 'think':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://pawb.social/comment/5639392"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706139601 {#4079
      date: 2024-01-25 00:40:01.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\BoostComponent {#8629
  +formDest: "entry_comment"
  +subject: App\Entity\EntryComment {#4072
    +user: App\Entity\User {#4056
      +avatar: Proxies\__CG__\App\Entity\Image {#4055 …}
      +cover: null
      +email: "drdiddlybadger@pawb.social"
      +username: "@drdiddlybadger@pawb.social"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "Mastodon: me@drdiddlybadger.com Avatar drawn by kittydee.art"
      +lastActive: DateTime @1728830615 {#4076
        date: 2024-10-13 16:43:35.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#4054 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4052 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#4050 …}
      +entries: Doctrine\ORM\PersistentCollection {#4048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#4107 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#4108 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4110 …}
      +posts: Doctrine\ORM\PersistentCollection {#4112 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#4114 …}
      +postComments: Doctrine\ORM\PersistentCollection {#4116 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#4118 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#4120 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4122 …}
      +follows: Doctrine\ORM\PersistentCollection {#4124 …}
      +followers: Doctrine\ORM\PersistentCollection {#4126 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4128 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4130 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4132 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4134 …}
      +reports: Doctrine\ORM\PersistentCollection {#4136 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4138 …}
      +violations: Doctrine\ORM\PersistentCollection {#4140 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4142 …}
      +awards: Doctrine\ORM\PersistentCollection {#4144 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4146 …}
      +categories: Doctrine\ORM\PersistentCollection {#4148 …}
      -id: 22817
      -password: "$2y$13$lBD0h7YTsS2fTKccfwPq9OFqLWGLrIoZ..T52lJx1XYIJm3cJDvyG"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4150 …}
      +apId: "drdiddlybadger@pawb.social"
      +apProfileId: "https://pawb.social/u/drdiddlybadger"
      +apPublicUrl: "https://pawb.social/u/drdiddlybadger"
      +apFollowersUrl: null
      +apInboxUrl: "https://pawb.social/inbox"
      +apDomain: "pawb.social"
      +apPreferredUsername: "drdiddlybadger"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729428621 {#4069
        date: 2024-10-20 14:50:21.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689083513 {#4074
        date: 2023-07-11 15:51:53.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I think this is pretty cool."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1706139601 {#4078
      date: 2024-01-25 00:40:01.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4073 …}
    +nested: Doctrine\ORM\PersistentCollection {#4064 …}
    +votes: Doctrine\ORM\PersistentCollection {#4067 …}
    +reports: Doctrine\ORM\PersistentCollection {#4062 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4060 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4058 …}
    -id: 337992
    -bodyTs: "'cool':6 'pretti':5 'think':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://pawb.social/comment/5639392"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706139601 {#4079
      date: 2024-01-25 00:40:01.0 +01:00
    }
  }
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
entry_comments_nested App\Twig\Components\EntryCommentsNestedComponent 14.0 MiB 0.95 ms
Input props
[
  "comment" => App\Entity\EntryComment {#4072
    +user: App\Entity\User {#4056
      +avatar: Proxies\__CG__\App\Entity\Image {#4055 …}
      +cover: null
      +email: "drdiddlybadger@pawb.social"
      +username: "@drdiddlybadger@pawb.social"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "Mastodon: me@drdiddlybadger.com Avatar drawn by kittydee.art"
      +lastActive: DateTime @1728830615 {#4076
        date: 2024-10-13 16:43:35.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#4054 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4052 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#4050 …}
      +entries: Doctrine\ORM\PersistentCollection {#4048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#4107 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#4108 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4110 …}
      +posts: Doctrine\ORM\PersistentCollection {#4112 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#4114 …}
      +postComments: Doctrine\ORM\PersistentCollection {#4116 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#4118 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#4120 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4122 …}
      +follows: Doctrine\ORM\PersistentCollection {#4124 …}
      +followers: Doctrine\ORM\PersistentCollection {#4126 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4128 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4130 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4132 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4134 …}
      +reports: Doctrine\ORM\PersistentCollection {#4136 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4138 …}
      +violations: Doctrine\ORM\PersistentCollection {#4140 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4142 …}
      +awards: Doctrine\ORM\PersistentCollection {#4144 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4146 …}
      +categories: Doctrine\ORM\PersistentCollection {#4148 …}
      -id: 22817
      -password: "$2y$13$lBD0h7YTsS2fTKccfwPq9OFqLWGLrIoZ..T52lJx1XYIJm3cJDvyG"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4150 …}
      +apId: "drdiddlybadger@pawb.social"
      +apProfileId: "https://pawb.social/u/drdiddlybadger"
      +apPublicUrl: "https://pawb.social/u/drdiddlybadger"
      +apFollowersUrl: null
      +apInboxUrl: "https://pawb.social/inbox"
      +apDomain: "pawb.social"
      +apPreferredUsername: "drdiddlybadger"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729428621 {#4069
        date: 2024-10-20 14:50:21.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689083513 {#4074
        date: 2023-07-11 15:51:53.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I think this is pretty cool."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1706139601 {#4078
      date: 2024-01-25 00:40:01.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4073 …}
    +nested: Doctrine\ORM\PersistentCollection {#4064 …}
    +votes: Doctrine\ORM\PersistentCollection {#4067 …}
    +reports: Doctrine\ORM\PersistentCollection {#4062 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4060 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4058 …}
    -id: 337992
    -bodyTs: "'cool':6 'pretti':5 'think':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://pawb.social/comment/5639392"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706139601 {#4079
      date: 2024-01-25 00:40:01.0 +01:00
    }
  }
  "level" => 1
  "showNested" => true
  "view" => "tree"
]
Attributes
[
  "showNested" => true
]
Component
App\Twig\Components\EntryCommentsNestedComponent {#8869
  +comment: App\Entity\EntryComment {#4072
    +user: App\Entity\User {#4056
      +avatar: Proxies\__CG__\App\Entity\Image {#4055 …}
      +cover: null
      +email: "drdiddlybadger@pawb.social"
      +username: "@drdiddlybadger@pawb.social"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: "Mastodon: me@drdiddlybadger.com Avatar drawn by kittydee.art"
      +lastActive: DateTime @1728830615 {#4076
        date: 2024-10-13 16:43:35.0 +02:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: true
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: false
      +notifyOnNewEntryCommentReply: false
      +notifyOnNewPost: false
      +notifyOnNewPostReply: false
      +notifyOnNewPostCommentReply: false
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#4054 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#4052 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#4050 …}
      +entries: Doctrine\ORM\PersistentCollection {#4048 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#4107 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#4108 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#4110 …}
      +posts: Doctrine\ORM\PersistentCollection {#4112 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#4114 …}
      +postComments: Doctrine\ORM\PersistentCollection {#4116 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#4118 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#4120 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#4122 …}
      +follows: Doctrine\ORM\PersistentCollection {#4124 …}
      +followers: Doctrine\ORM\PersistentCollection {#4126 …}
      +blocks: Doctrine\ORM\PersistentCollection {#4128 …}
      +blockers: Doctrine\ORM\PersistentCollection {#4130 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#4132 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#4134 …}
      +reports: Doctrine\ORM\PersistentCollection {#4136 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4138 …}
      +violations: Doctrine\ORM\PersistentCollection {#4140 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4142 …}
      +awards: Doctrine\ORM\PersistentCollection {#4144 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#4146 …}
      +categories: Doctrine\ORM\PersistentCollection {#4148 …}
      -id: 22817
      -password: "$2y$13$lBD0h7YTsS2fTKccfwPq9OFqLWGLrIoZ..T52lJx1XYIJm3cJDvyG"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#4150 …}
      +apId: "drdiddlybadger@pawb.social"
      +apProfileId: "https://pawb.social/u/drdiddlybadger"
      +apPublicUrl: "https://pawb.social/u/drdiddlybadger"
      +apFollowersUrl: null
      +apInboxUrl: "https://pawb.social/inbox"
      +apDomain: "pawb.social"
      +apPreferredUsername: "drdiddlybadger"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729428621 {#4069
        date: 2024-10-20 14:50:21.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1689083513 {#4074
        date: 2023-07-11 15:51:53.0 +02:00
      }
    }
    +entry: App\Entity\Entry {#2412
      +user: Proxies\__CG__\App\Entity\User {#1978
        +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
        +cover: null
        +email: "u_tamtam@programming.dev"
        +username: "@u_tamtam@programming.dev"
        +roles: []
        +followersCount: 0
        +homepage: "front"
        +about: null
        +lastActive: DateTime @1729195912 {#1520
          date: 2024-10-17 22:11:52.0 +02:00
        }
        +markedForDeletionAt: null
        +fields: null
        +oauthGithubId: null
        +oauthGoogleId: null
        +oauthFacebookId: null
        +oauthKeycloakId: null
        +hideAdult: true
        +showSubscribedUsers: true
        +showSubscribedMagazines: true
        +showSubscribedDomains: true
        +preferredLanguages: []
        +featuredMagazines: null
        +showProfileSubscriptions: false
        +showProfileFollowings: true
        +markNewComments: false
        +notifyOnNewEntry: false
        +notifyOnNewEntryReply: true
        +notifyOnNewEntryCommentReply: true
        +notifyOnNewPost: false
        +notifyOnNewPostReply: true
        +notifyOnNewPostCommentReply: true
        +addMentionsEntries: false
        +addMentionsPosts: true
        +isBanned: false
        +isVerified: false
        +isDeleted: false
        +isBot: false
        +spamProtection: true
        +customCss: null
        +ignoreMagazinesCustomCss: false
        +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
        +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
        +entries: Doctrine\ORM\PersistentCollection {#1659 …}
        +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
        +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
        +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
        +posts: Doctrine\ORM\PersistentCollection {#1468 …}
        +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
        +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
        +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
        +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
        +follows: Doctrine\ORM\PersistentCollection {#1423 …}
        +followers: Doctrine\ORM\PersistentCollection {#1421 …}
        +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
        +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
        +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
        +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
        +reports: Doctrine\ORM\PersistentCollection {#1448 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
        +violations: Doctrine\ORM\PersistentCollection {#1696 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
        +awards: Doctrine\ORM\PersistentCollection {#1700 …}
        +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
        +categories: Doctrine\ORM\PersistentCollection {#1673 …}
        -id: 67294
        -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
        -totpSecret: null
        -totpBackupCodes: []
        -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
        +apId: "u_tamtam@programming.dev"
        +apProfileId: "https://programming.dev/u/u_tamtam"
        +apPublicUrl: "https://programming.dev/u/u_tamtam"
        +apFollowersUrl: null
        +apInboxUrl: "https://programming.dev/inbox"
        +apDomain: "programming.dev"
        +apPreferredUsername: "u_tamtam"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: false
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703073477 {#1516
          date: 2023-12-20 12:57:57.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698441053 {#1519
          date: 2023-10-27 23:10:53.0 +02:00
        }
        +__isInitialized__: true
         …2
      }
      +magazine: App\Entity\Magazine {#264
        +icon: Proxies\__CG__\App\Entity\Image {#245 …}
        +name: "selfhosted@lemmy.world"
        +title: "selfhosted"
        +description: """
          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
          \n
          Rules:\n
          \n
          - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
          - No spam posting.\n
          - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
          - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
          - No trolling.\n
          \n
          Resources:\n
          \n
          - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
          - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
          - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
          \n
          > Any issues on the community? Report it using the report flag.\n
          \n
          > Questions? DM the mods!
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 222
        +entryCommentCount: 3916
        +postCount: 0
        +postCommentCount: 0
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729582735 {#274
          date: 2024-10-22 09:38:55.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#236 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
        +entries: Doctrine\ORM\PersistentCollection {#179 …}
        +posts: Doctrine\ORM\PersistentCollection {#137 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
        +bans: Doctrine\ORM\PersistentCollection {#116 …}
        +reports: Doctrine\ORM\PersistentCollection {#102 …}
        +badges: Doctrine\ORM\PersistentCollection {#80 …}
        +logs: Doctrine\ORM\PersistentCollection {#70 …}
        +awards: Doctrine\ORM\PersistentCollection {#1360 …}
        +categories: Doctrine\ORM\PersistentCollection {#1792 …}
        -id: 120
        +apId: "selfhosted@lemmy.world"
        +apProfileId: "https://lemmy.world/c/selfhosted"
        +apPublicUrl: "https://lemmy.world/c/selfhosted"
        +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
        +apInboxUrl: "https://lemmy.world/inbox"
        +apDomain: "lemmy.world"
        +apPreferredUsername: "selfhosted"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1703473826 {#268
          date: 2023-12-25 04:10:26.0 +01:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1703473826 {#270
          date: 2023-12-25 04:10:26.0 +01:00
        }
      }
      +image: Proxies\__CG__\App\Entity\Image {#1970 …}
      +domain: Proxies\__CG__\App\Entity\Domain {#1915 …}
      +slug: "Creating-the-XMPP-Network-Graph"
      +title: "Creating the XMPP Network Graph"
      +url: "https://discourse.igniterealtime.org/t/creating-the-xmpp-network-graph/93521"
      +body: """
        Sorry if this isn’t the right venue for that, I thought it’d be in the tone of “self-hosting” and “federation” :)\n
        \n
        tl;dr: some XMPP servers started to deploy a mod to report back about how they federate with the rest of the network, and now there is a pretty graph to show for it at [xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)
        """
      +type: "link"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 7
      +favouriteCount: 58
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1728607448 {#2418
        date: 2024-10-11 02:44:08.0 +02:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#1884 …}
      +votes: Doctrine\ORM\PersistentCollection {#1961 …}
      +reports: Doctrine\ORM\PersistentCollection {#1959 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1399 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2440 …}
      +badges: Doctrine\ORM\PersistentCollection {#2436 …}
      +children: []
      -id: 32872
      -titleTs: "'creat':1 'graph':5 'network':4 'xmpp':3"
      -bodyTs: "'/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':62 'back':37 'd':14 'deploy':32 'dr':26 'feder':24,41 'graph':54 'host':22 'isn':4 'mod':34 'network':47 'pretti':53 'report':36 'rest':44 'right':7 'self':21 'self-host':20 'server':29 'show':56 'sorri':1 'start':30 'thought':12 'tl':25 'tone':18 'venu':8 'xmpp':28 'xmppnetwork.goodbytes.im':61 'xmppnetwork.goodbytes.im/webgl.html](https://xmppnetwork.goodbytes.im/webgl.html)':60"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1706216000
      +visibility: "visible             "
      +apId: "https://programming.dev/post/9063516"
      +editedAt: null
      +createdAt: DateTimeImmutable @1706129600 {#1858
        date: 2024-01-24 21:53:20.0 +01:00
      }
    }
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: null
    +root: null
    +body: "I think this is pretty cool."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1706139601 {#4078
      date: 2024-01-25 00:40:01.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@u_tamtam@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4073 …}
    +nested: Doctrine\ORM\PersistentCollection {#4064 …}
    +votes: Doctrine\ORM\PersistentCollection {#4067 …}
    +reports: Doctrine\ORM\PersistentCollection {#4062 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4060 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4058 …}
    -id: 337992
    -bodyTs: "'cool':6 'pretti':5 'think':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://pawb.social/comment/5639392"
    +editedAt: null
    +createdAt: DateTimeImmutable @1706139601 {#4079
      date: 2024-01-25 00:40:01.0 +01:00
    }
  }
  +nestedComments: []
  +level: 1
  +view: "tree"
  -entryCommentRepository: App\Repository\EntryCommentRepository {#555 …}
  -twig: Twig\Environment {#1252 …}
  -security: Symfony\Bundle\SecurityBundle\Security {#1101 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
settings_row_enum App\Twig\Components\SettingsRowEnumComponent 14.0 MiB 0.24 ms
Input props
[
  "label" => "Sidebar position"
  "settingsKey" => "KBIN_GENERAL_SIDEBAR_POSITION"
  "values" => [
    [
      "name" => "Left"
      "value" => "LEFT"
    ]
    [
      "name" => "Right"
      "value" => "RIGHT"
    ]
  ]
  "defaultValue" => "RIGHT"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowEnumComponent {#8994
  +label: "Sidebar position"
  +help: ""
  +settingsKey: "KBIN_GENERAL_SIDEBAR_POSITION"
  +values: [
    [
      "name" => "Left"
      "value" => "LEFT"
    ]
    [
      "name" => "Right"
      "value" => "RIGHT"
    ]
  ]
  +defaultValue: "RIGHT"
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.18 ms
Input props
[
  "label" => "Dynamic lists"
  "settingsKey" => "KBIN_GENERAL_DYNAMIC_LISTS"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9058
  +label: "Dynamic lists"
  +help: ""
  +settingsKey: "KBIN_GENERAL_DYNAMIC_LISTS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.13 ms
Input props
[
  "label" => "Rounded edges"
  "settingsKey" => "KBIN_GENERAL_ROUNDED_EDGES"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9123
  +label: "Rounded edges"
  +help: ""
  +settingsKey: "KBIN_GENERAL_ROUNDED_EDGES"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.13 ms
Input props
[
  "label" => "Infinite scrolling"
  "help" => "Automatically load more content when you reach the bottom of the page."
  "settingsKey" => "KBIN_GENERAL_INFINITE_SCROLL"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9179
  +label: "Infinite scrolling"
  +help: "Automatically load more content when you reach the bottom of the page."
  +settingsKey: "KBIN_GENERAL_INFINITE_SCROLL"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.13 ms
Input props
[
  "label" => "Sticky navbar"
  "help" => "The navbar will stick to the top of the page when you scroll down."
  "settingsKey" => "KBIN_GENERAL_FIXED_NAVBAR"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9238
  +label: "Sticky navbar"
  +help: "The navbar will stick to the top of the page when you scroll down."
  +settingsKey: "KBIN_GENERAL_FIXED_NAVBAR"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.15 ms
Input props
[
  "label" => "Show top bar"
  "settingsKey" => "KBIN_GENERAL_TOPBAR"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9294
  +label: "Show top bar"
  +help: ""
  +settingsKey: "KBIN_GENERAL_TOPBAR"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.12 ms
Input props
[
  "label" => "Turbo mode (experimental)"
  "settingsKey" => "KBIN_GENERAL_TURBO"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9350
  +label: "Turbo mode (experimental)"
  +help: ""
  +settingsKey: "KBIN_GENERAL_TURBO"
  +defaultValue: false
  +reloadRequired: true
}
user_settings_row_switch App\Twig\Components\UserSettingsRowSwitchComponent 14.0 MiB 0.23 ms
Input props
[
  "label" => "Mark new comments"
  "settingsKey" => "KBIN_MARK_NEW_COMMENTS"
]
Attributes
[]
Component
App\Twig\Components\UserSettingsRowSwitchComponent {#9408
  +label: "Mark new comments"
  +help: ""
  +settingsKey: "KBIN_MARK_NEW_COMMENTS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.18 ms
Input props
[
  "label" => "Show "Support Us" block"
  "settingsKey" => "KBIN_GENERAL_SUPPORT_US_BLOCK"
  "defaultValue" => true
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9471
  +label: "Show "Support Us" block"
  +help: ""
  +settingsKey: "KBIN_GENERAL_SUPPORT_US_BLOCK"
  +defaultValue: true
  +reloadRequired: true
}
user_settings_row_switch App\Twig\Components\UserSettingsRowSwitchComponent 14.0 MiB 0.15 ms
Input props
[
  "label" => "Show subscribed users"
  "settingsKey" => "KBIN_SUB_CHANNEL_USERS"
]
Attributes
[]
Component
App\Twig\Components\UserSettingsRowSwitchComponent {#9529
  +label: "Show subscribed users"
  +help: ""
  +settingsKey: "KBIN_SUB_CHANNEL_USERS"
  +defaultValue: false
  +reloadRequired: true
}
user_settings_row_switch App\Twig\Components\UserSettingsRowSwitchComponent 14.0 MiB 0.15 ms
Input props
[
  "label" => "Show subscribed magazines"
  "settingsKey" => "KBIN_SUB_CHANNEL_MAGAZINES"
]
Attributes
[]
Component
App\Twig\Components\UserSettingsRowSwitchComponent {#9585
  +label: "Show subscribed magazines"
  +help: ""
  +settingsKey: "KBIN_SUB_CHANNEL_MAGAZINES"
  +defaultValue: false
  +reloadRequired: true
}
user_settings_row_switch App\Twig\Components\UserSettingsRowSwitchComponent 14.0 MiB 0.14 ms
Input props
[
  "label" => "Show subscribed domains"
  "settingsKey" => "KBIN_SUB_CHANNEL_DOMAINS"
]
Attributes
[]
Component
App\Twig\Components\UserSettingsRowSwitchComponent {#9641
  +label: "Show subscribed domains"
  +help: ""
  +settingsKey: "KBIN_SUB_CHANNEL_DOMAINS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.13 ms
Input props
[
  "label" => "Auto media preview"
  "help" => "Automatically expand media previews."
  "settingsKey" => "KBIN_ENTRIES_SHOW_PREVIEW"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9697
  +label: "Auto media preview"
  +help: "Automatically expand media previews."
  +settingsKey: "KBIN_ENTRIES_SHOW_PREVIEW"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.14 ms
Input props
[
  "label" => "Compact view"
  "settingsKey" => "KBIN_ENTRIES_COMPACT"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9753
  +label: "Compact view"
  +help: ""
  +settingsKey: "KBIN_ENTRIES_COMPACT"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.14 ms
Input props
[
  "label" => "Show users’ avatars"
  "settingsKey" => "KBIN_ENTRIES_SHOW_USERS_AVATARS"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9809
  +label: "Show users’ avatars"
  +help: ""
  +settingsKey: "KBIN_ENTRIES_SHOW_USERS_AVATARS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.12 ms
Input props
[
  "label" => "Show magazines’ icons"
  "settingsKey" => "KBIN_ENTRIES_SHOW_MAGAZINES_ICONS"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9865
  +label: "Show magazines’ icons"
  +help: ""
  +settingsKey: "KBIN_ENTRIES_SHOW_MAGAZINES_ICONS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.13 ms
Input props
[
  "label" => "Show thumbnails"
  "settingsKey" => "KBIN_ENTRIES_SHOW_THUMBNAILS"
  "defaultValue" => true
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9921
  +label: "Show thumbnails"
  +help: ""
  +settingsKey: "KBIN_ENTRIES_SHOW_THUMBNAILS"
  +defaultValue: true
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.12 ms
Input props
[
  "label" => "Auto media preview"
  "help" => "Automatically expand media previews."
  "settingsKey" => "KBIN_POSTS_SHOW_PREVIEW"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#9977
  +label: "Auto media preview"
  +help: "Automatically expand media previews."
  +settingsKey: "KBIN_POSTS_SHOW_PREVIEW"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.13 ms
Input props
[
  "label" => "Show users’ avatars"
  "settingsKey" => "KBIN_POSTS_SHOW_USERS_AVATARS"
  "defaultValue" => true
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#10033
  +label: "Show users’ avatars"
  +help: ""
  +settingsKey: "KBIN_POSTS_SHOW_USERS_AVATARS"
  +defaultValue: true
  +reloadRequired: true
}
settings_row_enum App\Twig\Components\SettingsRowEnumComponent 14.0 MiB 0.15 ms
Input props
[
  "label" => "Comment reply position"
  "help" => "Display the comment reply form either at the top or bottom of the page. When 'infinite scroll' is enabled the position will always appear at the top."
  "settingsKey" => "KBIN_COMMENTS_REPLY_POSITION"
  "values" => [
    [
      "name" => "top"
      "value" => "TOP"
    ]
    [
      "name" => "bottom"
      "value" => "BOTTOM"
    ]
  ]
  "defaultValue" => "TOP"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowEnumComponent {#10089
  +label: "Comment reply position"
  +help: "Display the comment reply form either at the top or bottom of the page. When 'infinite scroll' is enabled the position will always appear at the top."
  +settingsKey: "KBIN_COMMENTS_REPLY_POSITION"
  +values: [
    [
      "name" => "top"
      "value" => "TOP"
    ]
    [
      "name" => "bottom"
      "value" => "BOTTOM"
    ]
  ]
  +defaultValue: "TOP"
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 14.0 MiB 0.13 ms
Input props
[
  "label" => "Show Comment Avatars"
  "help" => "Display/hide user avatars when viewing comments on a single thread or post."
  "settingsKey" => "KBIN_COMMENTS_SHOW_USER_AVATAR"
  "defaultValue" => true
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#10147
  +label: "Show Comment Avatars"
  +help: "Display/hide user avatars when viewing comments on a single thread or post."
  +settingsKey: "KBIN_COMMENTS_SHOW_USER_AVATAR"
  +defaultValue: true
  +reloadRequired: true
}
user_actions App\Twig\Components\UserActionsComponent 14.0 MiB 0.52 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#1978
    +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
    +cover: null
    +email: "u_tamtam@programming.dev"
    +username: "@u_tamtam@programming.dev"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729195912 {#1520
      date: 2024-10-17 22:11:52.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
    +entries: Doctrine\ORM\PersistentCollection {#1659 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
    +posts: Doctrine\ORM\PersistentCollection {#1468 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
    +follows: Doctrine\ORM\PersistentCollection {#1423 …}
    +followers: Doctrine\ORM\PersistentCollection {#1421 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
    +reports: Doctrine\ORM\PersistentCollection {#1448 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
    +violations: Doctrine\ORM\PersistentCollection {#1696 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
    +awards: Doctrine\ORM\PersistentCollection {#1700 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
    +categories: Doctrine\ORM\PersistentCollection {#1673 …}
    -id: 67294
    -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
    +apId: "u_tamtam@programming.dev"
    +apProfileId: "https://programming.dev/u/u_tamtam"
    +apPublicUrl: "https://programming.dev/u/u_tamtam"
    +apFollowersUrl: null
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "u_tamtam"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703073477 {#1516
      date: 2023-12-20 12:57:57.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698441053 {#1519
      date: 2023-10-27 23:10:53.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
]
Attributes
[]
Component
App\Twig\Components\UserActionsComponent {#10225
  +user: Proxies\__CG__\App\Entity\User {#1978
    +avatar: Proxies\__CG__\App\Entity\Image {#1406 …}
    +cover: null
    +email: "u_tamtam@programming.dev"
    +username: "@u_tamtam@programming.dev"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1729195912 {#1520
      date: 2024-10-17 22:11:52.0 +02:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#1713 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#1710 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1742 …}
    +entries: Doctrine\ORM\PersistentCollection {#1659 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#1747 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#1753 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#1483 …}
    +posts: Doctrine\ORM\PersistentCollection {#1468 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#1492 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1777 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1634 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1757 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1446 …}
    +follows: Doctrine\ORM\PersistentCollection {#1423 …}
    +followers: Doctrine\ORM\PersistentCollection {#1421 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1464 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1454 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1428 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#1431 …}
    +reports: Doctrine\ORM\PersistentCollection {#1448 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1703 …}
    +violations: Doctrine\ORM\PersistentCollection {#1696 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1595 …}
    +awards: Doctrine\ORM\PersistentCollection {#1700 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1744 …}
    +categories: Doctrine\ORM\PersistentCollection {#1673 …}
    -id: 67294
    -password: "$2y$13$Cr34yOYOLCEm6vHxccA0buCUgdfwuXYUWlW9PMep.N3zhnbjG4gd."
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1654 …}
    +apId: "u_tamtam@programming.dev"
    +apProfileId: "https://programming.dev/u/u_tamtam"
    +apPublicUrl: "https://programming.dev/u/u_tamtam"
    +apFollowersUrl: null
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "u_tamtam"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703073477 {#1516
      date: 2023-12-20 12:57:57.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698441053 {#1519
      date: 2023-10-27 23:10:53.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
}
date App\Twig\Components\DateComponent 14.0 MiB 0.13 ms
Input props
[
  "date" => DateTimeImmutable @1706129600 {#1858
    date: 2024-01-24 21:53:20.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#10286
  +date: DateTimeImmutable @1706129600 {#1858
    date: 2024-01-24 21:53:20.0 +01:00
  }
}
magazine_box App\Twig\Components\MagazineBoxComponent 14.0 MiB 27.37 ms
Input props
[
  "magazine" => App\Entity\Magazine {#264
    +icon: Proxies\__CG__\App\Entity\Image {#245 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#274
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#236 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
    +entries: Doctrine\ORM\PersistentCollection {#179 …}
    +posts: Doctrine\ORM\PersistentCollection {#137 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
    +bans: Doctrine\ORM\PersistentCollection {#116 …}
    +reports: Doctrine\ORM\PersistentCollection {#102 …}
    +badges: Doctrine\ORM\PersistentCollection {#80 …}
    +logs: Doctrine\ORM\PersistentCollection {#70 …}
    +awards: Doctrine\ORM\PersistentCollection {#1360 …}
    +categories: Doctrine\ORM\PersistentCollection {#1792 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#268
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#270
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  "showSectionTitle" => true
]
Attributes
[]
Component
App\Twig\Components\MagazineBoxComponent {#10342
  +magazine: App\Entity\Magazine {#264
    +icon: Proxies\__CG__\App\Entity\Image {#245 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#274
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#236 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
    +entries: Doctrine\ORM\PersistentCollection {#179 …}
    +posts: Doctrine\ORM\PersistentCollection {#137 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
    +bans: Doctrine\ORM\PersistentCollection {#116 …}
    +reports: Doctrine\ORM\PersistentCollection {#102 …}
    +badges: Doctrine\ORM\PersistentCollection {#80 …}
    +logs: Doctrine\ORM\PersistentCollection {#70 …}
    +awards: Doctrine\ORM\PersistentCollection {#1360 …}
    +categories: Doctrine\ORM\PersistentCollection {#1792 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#268
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#270
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +showCover: true
  +showDescription: true
  +showRules: true
  +showSubscribeButton: true
  +showInfo: true
  +showMeta: true
  +showSectionTitle: true
  +stretchedLink: true
}
magazine_sub App\Twig\Components\MagazineSubComponent 14.0 MiB 0.54 ms
Input props
[
  "magazine" => App\Entity\Magazine {#264
    +icon: Proxies\__CG__\App\Entity\Image {#245 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#274
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#236 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
    +entries: Doctrine\ORM\PersistentCollection {#179 …}
    +posts: Doctrine\ORM\PersistentCollection {#137 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
    +bans: Doctrine\ORM\PersistentCollection {#116 …}
    +reports: Doctrine\ORM\PersistentCollection {#102 …}
    +badges: Doctrine\ORM\PersistentCollection {#80 …}
    +logs: Doctrine\ORM\PersistentCollection {#70 …}
    +awards: Doctrine\ORM\PersistentCollection {#1360 …}
    +categories: Doctrine\ORM\PersistentCollection {#1792 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#268
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#270
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\MagazineSubComponent {#10401
  +magazine: App\Entity\Magazine {#264
    +icon: Proxies\__CG__\App\Entity\Image {#245 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#274
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#236 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
    +entries: Doctrine\ORM\PersistentCollection {#179 …}
    +posts: Doctrine\ORM\PersistentCollection {#137 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
    +bans: Doctrine\ORM\PersistentCollection {#116 …}
    +reports: Doctrine\ORM\PersistentCollection {#102 …}
    +badges: Doctrine\ORM\PersistentCollection {#80 …}
    +logs: Doctrine\ORM\PersistentCollection {#70 …}
    +awards: Doctrine\ORM\PersistentCollection {#1360 …}
    +categories: Doctrine\ORM\PersistentCollection {#1792 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#268
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#270
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
}
date App\Twig\Components\DateComponent 14.0 MiB 0.15 ms
Input props
[
  "date" => DateTimeImmutable @1703473826 {#270
    date: 2023-12-25 04:10:26.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#10561
  +date: DateTimeImmutable @1703473826 {#270
    date: 2023-12-25 04:10:26.0 +01:00
  }
}
user_inline App\Twig\Components\UserInlineComponent 14.0 MiB 1.44 ms
Input props
[
  "user" => Proxies\__CG__\App\Entity\User {#10620
    +avatar: null
    +cover: null
    +email: "kbin@j0h.nl"
    +username: "Sprite_tm"
    +roles: [
      "ROLE_ADMIN"
    ]
    +followersCount: 0
    +homepage: "front"
    +about: "Hi! I'm Sprite_tm. You may know me from sites like https://spritesmods.com."
    +lastActive: DateTime @1707547382 {#10667
      date: 2024-02-10 07:43:02.0 +01:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: true
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#10669 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#10671 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#10673 …}
    +entries: Doctrine\ORM\PersistentCollection {#10675 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#10677 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#10679 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#10681 …}
    +posts: Doctrine\ORM\PersistentCollection {#10683 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#10685 …}
    +postComments: Doctrine\ORM\PersistentCollection {#10687 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#10689 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#10691 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#10693 …}
    +follows: Doctrine\ORM\PersistentCollection {#10695 …}
    +followers: Doctrine\ORM\PersistentCollection {#10697 …}
    +blocks: Doctrine\ORM\PersistentCollection {#10699 …}
    +blockers: Doctrine\ORM\PersistentCollection {#10701 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#10703 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#10705 …}
    +reports: Doctrine\ORM\PersistentCollection {#10707 …}
    +favourites: Doctrine\ORM\PersistentCollection {#10709 …}
    +violations: Doctrine\ORM\PersistentCollection {#10711 …}
    +notifications: Doctrine\ORM\PersistentCollection {#10713 …}
    +awards: Doctrine\ORM\PersistentCollection {#10715 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#10717 …}
    +categories: Doctrine\ORM\PersistentCollection {#10719 …}
    -id: 1
    -password: "$2y$13$ZX7Aou2QOPRGkHPp4y5x8OWfxZMoT1BGH7bRLlPP7mwZFTkfiaPGG"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#10721 …}
    +apId: null
    +apProfileId: null
    +apPublicUrl: null
    +apFollowersUrl: null
    +apInboxUrl: null
    +apDomain: null
    +apPreferredUsername: null
    +apDiscoverable: null
    +apManuallyApprovesFollowers: null
    +privateKey: """
      -----BEGIN PRIVATE KEY-----\r\n
      MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDleeotz5TBiMlC\r\n
      YsJYJHVNxjvnvt0qsQA282B7vdqBTbARfD49iKPiMIwgU2yhCI0oTSQwc2Zy9AQ+\r\n
      31rwmvBx8VvcLgQvKpNzPVhMQjelK7k5iPiPc/W1soaauepq3YwQKgGod4c5Vh9f\r\n
      MInSANfOLOUSo3pUzfaQaGEvQc5DbKjDgIjsv/OKI1acbzu067KQzIThu+1BvcqQ\r\n
      Ypo2Ux5W23nNqkrRZ++z/r1MI2jS3vwi5OSwz4fWhLPJXE6lwokc6b/uAZe7sLT6\r\n
      QQtjevLnmMyRIVnmxbtHPMSfhLdz8ssQhoNCfAkMnBjDUX31SSs67pU8v5O3Fn2H\r\n
      d+qFWCjrREwSpBAd24INJqKsjSa6j3oLL8Xw8HZf+x6QRPJch/c3FNWRtM2b9n8V\r\n
      sAQiD985pafyeQ1TqIe4iSjI0iUgy2WgwO0C1Z0PNbQzQmRk0EOAlxIXjPmB229P\r\n
      V4+OcZxLT9phP/rid1Qt9Ro+2LdkS9Zqe8c2JHeJKc5Nv/8OOX5uQ/B82JXnuXYi\r\n
      /oVEJb5t42G8u3IIkYM5G/Gt033WU6dbyKOBmdnbXaPw9LC3M7oop3yyCb3UDLfg\r\n
      g/XnZVvZxSPCPlh5G1Lb0r47siKq/0k9YRua0AFsVg0dhqfuwsb6G9Hx5EicuPsu\r\n
      OIjXINBTjlnE4SdMz0ZJt7bLjwlKdQIDAQABAoICAAlWo8QHfYs+sMoF0Njbavam\r\n
      SYvNxZxWJacW0mdWu4ylh7O+dZ31cI3k4d7y5inLeksYkI90MsgczAtu9XlzJLPO\r\n
      WamlKcBtoCCBb5Vy4GbVV61SuKLF2krxn+6uAC8nIusJepXLf3JC4fXyuLkWFbIr\r\n
      O4s9od3Pn+gSh1nv+J/fzSJfmbLgwN1vQLgPAsQDD3o7CHFTP318ZsDnclUhnst0\r\n
      FQnckzzgWO3fQP7XNg3WyzX0UKYtW97L+bEJE55FQ2Us0gWyhOU7dLH2casztqzc\r\n
      F/8T91+fzlZAz9OaCAks6Tyb7L2I5KlhtNRF/bU8rAiy6tnVBgLeZG9d3upcQxX0\r\n
      L+SMPWg55qERGI5mO+BxFdUnVtcmswziKmySYtzgm+c4jmPS5cWhGB9HFCTW2S0x\r\n
      GoVA2cZGWjMTrbZQhgJjBqzp76fhLtXTufd328sYmX7fBYKEWFYNwrEJaWYUNl/V\r\n
      yEyl0aMQWKhVokx6eCqnuDZUc77LeuGuCleIdhQ53NYHrXMCmgVyLfmGdrOS3Uh6\r\n
      RrAYmnvvMkAUTOQajW2csC345PmgBOjE7vB7349ylKUkXvN4L+9xZCYaVjBt3O24\r\n
      aRoQSQDGhk+NIaYleiFx+u7dJSryxdx/6ut6dQ2S+jKlm1oN1qq6ppO5y/TFRQ1e\r\n
      qn7kjIGzUT80fANDFqdhAoIBAQD1+cGiWXRQhUrJc5X3ngH1zHoLWpmSZcUUDFn/\r\n
      bV/CChd2M43fOpneIQETZ1oS7BsU3y92kTw63ytYOUg7C5iT5/r9ZoBGq0HZSbll\r\n
      riRJWGiajr2aYCmIes++CrfUvCcD6+l8QMZ3s8eXdk80GX+vt1xEfRpWV9e9huJK\r\n
      K1e8wXfFmPAmxUi63IePscdc+SVQGeooMYDnMwLWvxpAtp5mGOaQc4D5dviWXjSE\r\n
      Z/PJa+gectpD1iDIPUXm3o17ivE2UYFia8/FCGUN6Yz7ucRKF+2SPO8hLefk5UvJ\r\n
      Lxlkh67MXKkneDqRU9C82Qmcfz5nQLQadC0nbE44YeXrnlIdAoIBAQDu1AWMIe6f\r\n
      7TZYCWnTa3nT6penJ9CMaGDPI/62dKTmGnI4oo3u9DGGrnuWbcFFCQA02vcYdpuw\r\n
      CVy6mkP/yqN5VSV3EHZiJUA0aKIxot3o3YOiobpVYn9hwvzzOdMZO4SOuevNfY1c\r\n
      qmnLGhYoDvR1c2yaudCf/BDwQqlLoSg9F5X57bRtwaRyUjhtXVKXWb59qtiwwrvp\r\n
      1vPjxciEIxAtgSXtIUQz3ljDRNUHjpyfYM3ska5jkxMIPNYUYFMX2x+Gxn9PZEG3\r\n
      Im391BRynZsnkvJO6i4i5N1xsPK5SyPiKBnlMxW/6ZLi5aAQHV3cc2KLzV+T+s2B\r\n
      v9LTAyO7nWo5AoIBAASA/jqqyKZwyl3F8AkIq6CEjfeHQSidFG65iyxSJF65MJTJ\r\n
      fN+Jgye+Evb3/X47NIO9UnEpV6D8VR7YbaonHDQZG09ogRDKMfp4jxx9g8yUAdZS\r\n
      psYc3KXTGdqw94y9pTk9KJlN1lR6xjzPvcOGdAATq2zVnZXXJewifCI/iOu73yWP\r\n
      F1aeZiaFwzWuW6goJ7a/wrnZrjKNjI/CEAj/TwcvjYk3lDT9KLAYKX4DKUOW5jko\r\n
      gTacxRzlglIn4Q9SC/iipWvX7YX+EVuf2yUA0cdJiOAUnYxN+uEGEc0tP5nHoju7\r\n
      tp0yZmAi2L+cecCT0+CwHpwdZHZEVWpS4JLf40ECggEBALFSZIgGDZlaU5YL7zHV\r\n
      Q5APRugKDLKjMPW7IPwxINnj2tioAL/hOQBpfkNTXEM4ipmz1fCo57FNUjcOINzD\r\n
      hJqqmHWNmIgIZmJDKeG2rhKenYTblXCeADwCvTKNxWmfoi0iZ6ybwqCBuqjcxoSZ\r\n
      jfHCcGl0+yw9yAnLRM1ta2XopCb70ZIIS2PCHjk9J/xN2ryNY/PhsgnN2ilMiTNq\r\n
      oTFYCWPF5lCojrj020KQJUPEaUBzbcpqwZ/FI6HfXvKAdCjqKk40/wHNI2Np2oC6\r\n
      +h7o4NWs0/J+gNhP6/edjZf19DwTsNtbvf6PRUeRtkXeudVY99T0Sy9B0HNxik9b\r\n
      cikCggEAM2wassiP1i0Gc3wrbNLHyQN+yqMaAp0xF+8l0fU3T8zPL/tYDcITnZPY\r\n
      pEFV/aodP9X7XFuQD0iGTOTGDXiMSLPOLI/ifmwbT41rgIN9x14MpU2EtWeVz7sx\r\n
      ZIFMt98rHx6BsZx/DnSFDQ8iqrKF3u+OOv7s6j+8odz4Rq53+16vMev5VUMOPq+E\r\n
      aQn8SDKkOjZzwb9QGB9bXS5s9yyj4pLyggQ0O5S2ugZjUcmCecNpktN8bUR3I9VQ\r\n
      KWkcQa9yCpidp/JYrQtlbqAPiIzptA4T4RNh+F6pKbmw7hNMIPipPzbQezEMaBOn\r\n
      Cgb38EldyAVGjCzRGfhu9SNU9B03bg==\r\n
      -----END PRIVATE KEY-----
      """
    +publicKey: """
      -----BEGIN PUBLIC KEY-----\r\n
      MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5XnqLc+UwYjJQmLCWCR1\r\n
      TcY7577dKrEANvNge73agU2wEXw+PYij4jCMIFNsoQiNKE0kMHNmcvQEPt9a8Jrw\r\n
      cfFb3C4ELyqTcz1YTEI3pSu5OYj4j3P1tbKGmrnqat2MECoBqHeHOVYfXzCJ0gDX\r\n
      zizlEqN6VM32kGhhL0HOQ2yow4CI7L/ziiNWnG87tOuykMyE4bvtQb3KkGKaNlMe\r\n
      Vtt5zapK0Wfvs/69TCNo0t78IuTksM+H1oSzyVxOpcKJHOm/7gGXu7C0+kELY3ry\r\n
      55jMkSFZ5sW7RzzEn4S3c/LLEIaDQnwJDJwYw1F99UkrOu6VPL+TtxZ9h3fqhVgo\r\n
      60RMEqQQHduCDSairI0muo96Cy/F8PB2X/sekETyXIf3NxTVkbTNm/Z/FbAEIg/f\r\n
      OaWn8nkNU6iHuIkoyNIlIMtloMDtAtWdDzW0M0JkZNBDgJcSF4z5gdtvT1ePjnGc\r\n
      S0/aYT/64ndULfUaPti3ZEvWanvHNiR3iSnOTb//Djl+bkPwfNiV57l2Iv6FRCW+\r\n
      beNhvLtyCJGDORvxrdN91lOnW8ijgZnZ212j8PSwtzO6KKd8sgm91Ay34IP152Vb\r\n
      2cUjwj5YeRtS29K+O7Iiqv9JPWEbmtABbFYNHYan7sLG+hvR8eRInLj7LjiI1yDQ\r\n
      U45ZxOEnTM9GSbe2y48JSnUCAwEAAQ==\r\n
      -----END PUBLIC KEY-----
      """
    +apFetchedAt: null
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1686560440 {#10668
      date: 2023-06-12 11:00:40.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
]
Attributes
[]
Component
App\Twig\Components\UserInlineComponent {#10638
  +user: Proxies\__CG__\App\Entity\User {#10620
    +avatar: null
    +cover: null
    +email: "kbin@j0h.nl"
    +username: "Sprite_tm"
    +roles: [
      "ROLE_ADMIN"
    ]
    +followersCount: 0
    +homepage: "front"
    +about: "Hi! I'm Sprite_tm. You may know me from sites like https://spritesmods.com."
    +lastActive: DateTime @1707547382 {#10667
      date: 2024-02-10 07:43:02.0 +01:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: true
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: false
    +notifyOnNewEntryCommentReply: false
    +notifyOnNewPost: false
    +notifyOnNewPostReply: false
    +notifyOnNewPostCommentReply: false
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: true
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#10669 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#10671 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#10673 …}
    +entries: Doctrine\ORM\PersistentCollection {#10675 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#10677 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#10679 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#10681 …}
    +posts: Doctrine\ORM\PersistentCollection {#10683 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#10685 …}
    +postComments: Doctrine\ORM\PersistentCollection {#10687 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#10689 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#10691 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#10693 …}
    +follows: Doctrine\ORM\PersistentCollection {#10695 …}
    +followers: Doctrine\ORM\PersistentCollection {#10697 …}
    +blocks: Doctrine\ORM\PersistentCollection {#10699 …}
    +blockers: Doctrine\ORM\PersistentCollection {#10701 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#10703 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#10705 …}
    +reports: Doctrine\ORM\PersistentCollection {#10707 …}
    +favourites: Doctrine\ORM\PersistentCollection {#10709 …}
    +violations: Doctrine\ORM\PersistentCollection {#10711 …}
    +notifications: Doctrine\ORM\PersistentCollection {#10713 …}
    +awards: Doctrine\ORM\PersistentCollection {#10715 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#10717 …}
    +categories: Doctrine\ORM\PersistentCollection {#10719 …}
    -id: 1
    -password: "$2y$13$ZX7Aou2QOPRGkHPp4y5x8OWfxZMoT1BGH7bRLlPP7mwZFTkfiaPGG"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#10721 …}
    +apId: null
    +apProfileId: null
    +apPublicUrl: null
    +apFollowersUrl: null
    +apInboxUrl: null
    +apDomain: null
    +apPreferredUsername: null
    +apDiscoverable: null
    +apManuallyApprovesFollowers: null
    +privateKey: """
      -----BEGIN PRIVATE KEY-----\r\n
      MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDleeotz5TBiMlC\r\n
      YsJYJHVNxjvnvt0qsQA282B7vdqBTbARfD49iKPiMIwgU2yhCI0oTSQwc2Zy9AQ+\r\n
      31rwmvBx8VvcLgQvKpNzPVhMQjelK7k5iPiPc/W1soaauepq3YwQKgGod4c5Vh9f\r\n
      MInSANfOLOUSo3pUzfaQaGEvQc5DbKjDgIjsv/OKI1acbzu067KQzIThu+1BvcqQ\r\n
      Ypo2Ux5W23nNqkrRZ++z/r1MI2jS3vwi5OSwz4fWhLPJXE6lwokc6b/uAZe7sLT6\r\n
      QQtjevLnmMyRIVnmxbtHPMSfhLdz8ssQhoNCfAkMnBjDUX31SSs67pU8v5O3Fn2H\r\n
      d+qFWCjrREwSpBAd24INJqKsjSa6j3oLL8Xw8HZf+x6QRPJch/c3FNWRtM2b9n8V\r\n
      sAQiD985pafyeQ1TqIe4iSjI0iUgy2WgwO0C1Z0PNbQzQmRk0EOAlxIXjPmB229P\r\n
      V4+OcZxLT9phP/rid1Qt9Ro+2LdkS9Zqe8c2JHeJKc5Nv/8OOX5uQ/B82JXnuXYi\r\n
      /oVEJb5t42G8u3IIkYM5G/Gt033WU6dbyKOBmdnbXaPw9LC3M7oop3yyCb3UDLfg\r\n
      g/XnZVvZxSPCPlh5G1Lb0r47siKq/0k9YRua0AFsVg0dhqfuwsb6G9Hx5EicuPsu\r\n
      OIjXINBTjlnE4SdMz0ZJt7bLjwlKdQIDAQABAoICAAlWo8QHfYs+sMoF0Njbavam\r\n
      SYvNxZxWJacW0mdWu4ylh7O+dZ31cI3k4d7y5inLeksYkI90MsgczAtu9XlzJLPO\r\n
      WamlKcBtoCCBb5Vy4GbVV61SuKLF2krxn+6uAC8nIusJepXLf3JC4fXyuLkWFbIr\r\n
      O4s9od3Pn+gSh1nv+J/fzSJfmbLgwN1vQLgPAsQDD3o7CHFTP318ZsDnclUhnst0\r\n
      FQnckzzgWO3fQP7XNg3WyzX0UKYtW97L+bEJE55FQ2Us0gWyhOU7dLH2casztqzc\r\n
      F/8T91+fzlZAz9OaCAks6Tyb7L2I5KlhtNRF/bU8rAiy6tnVBgLeZG9d3upcQxX0\r\n
      L+SMPWg55qERGI5mO+BxFdUnVtcmswziKmySYtzgm+c4jmPS5cWhGB9HFCTW2S0x\r\n
      GoVA2cZGWjMTrbZQhgJjBqzp76fhLtXTufd328sYmX7fBYKEWFYNwrEJaWYUNl/V\r\n
      yEyl0aMQWKhVokx6eCqnuDZUc77LeuGuCleIdhQ53NYHrXMCmgVyLfmGdrOS3Uh6\r\n
      RrAYmnvvMkAUTOQajW2csC345PmgBOjE7vB7349ylKUkXvN4L+9xZCYaVjBt3O24\r\n
      aRoQSQDGhk+NIaYleiFx+u7dJSryxdx/6ut6dQ2S+jKlm1oN1qq6ppO5y/TFRQ1e\r\n
      qn7kjIGzUT80fANDFqdhAoIBAQD1+cGiWXRQhUrJc5X3ngH1zHoLWpmSZcUUDFn/\r\n
      bV/CChd2M43fOpneIQETZ1oS7BsU3y92kTw63ytYOUg7C5iT5/r9ZoBGq0HZSbll\r\n
      riRJWGiajr2aYCmIes++CrfUvCcD6+l8QMZ3s8eXdk80GX+vt1xEfRpWV9e9huJK\r\n
      K1e8wXfFmPAmxUi63IePscdc+SVQGeooMYDnMwLWvxpAtp5mGOaQc4D5dviWXjSE\r\n
      Z/PJa+gectpD1iDIPUXm3o17ivE2UYFia8/FCGUN6Yz7ucRKF+2SPO8hLefk5UvJ\r\n
      Lxlkh67MXKkneDqRU9C82Qmcfz5nQLQadC0nbE44YeXrnlIdAoIBAQDu1AWMIe6f\r\n
      7TZYCWnTa3nT6penJ9CMaGDPI/62dKTmGnI4oo3u9DGGrnuWbcFFCQA02vcYdpuw\r\n
      CVy6mkP/yqN5VSV3EHZiJUA0aKIxot3o3YOiobpVYn9hwvzzOdMZO4SOuevNfY1c\r\n
      qmnLGhYoDvR1c2yaudCf/BDwQqlLoSg9F5X57bRtwaRyUjhtXVKXWb59qtiwwrvp\r\n
      1vPjxciEIxAtgSXtIUQz3ljDRNUHjpyfYM3ska5jkxMIPNYUYFMX2x+Gxn9PZEG3\r\n
      Im391BRynZsnkvJO6i4i5N1xsPK5SyPiKBnlMxW/6ZLi5aAQHV3cc2KLzV+T+s2B\r\n
      v9LTAyO7nWo5AoIBAASA/jqqyKZwyl3F8AkIq6CEjfeHQSidFG65iyxSJF65MJTJ\r\n
      fN+Jgye+Evb3/X47NIO9UnEpV6D8VR7YbaonHDQZG09ogRDKMfp4jxx9g8yUAdZS\r\n
      psYc3KXTGdqw94y9pTk9KJlN1lR6xjzPvcOGdAATq2zVnZXXJewifCI/iOu73yWP\r\n
      F1aeZiaFwzWuW6goJ7a/wrnZrjKNjI/CEAj/TwcvjYk3lDT9KLAYKX4DKUOW5jko\r\n
      gTacxRzlglIn4Q9SC/iipWvX7YX+EVuf2yUA0cdJiOAUnYxN+uEGEc0tP5nHoju7\r\n
      tp0yZmAi2L+cecCT0+CwHpwdZHZEVWpS4JLf40ECggEBALFSZIgGDZlaU5YL7zHV\r\n
      Q5APRugKDLKjMPW7IPwxINnj2tioAL/hOQBpfkNTXEM4ipmz1fCo57FNUjcOINzD\r\n
      hJqqmHWNmIgIZmJDKeG2rhKenYTblXCeADwCvTKNxWmfoi0iZ6ybwqCBuqjcxoSZ\r\n
      jfHCcGl0+yw9yAnLRM1ta2XopCb70ZIIS2PCHjk9J/xN2ryNY/PhsgnN2ilMiTNq\r\n
      oTFYCWPF5lCojrj020KQJUPEaUBzbcpqwZ/FI6HfXvKAdCjqKk40/wHNI2Np2oC6\r\n
      +h7o4NWs0/J+gNhP6/edjZf19DwTsNtbvf6PRUeRtkXeudVY99T0Sy9B0HNxik9b\r\n
      cikCggEAM2wassiP1i0Gc3wrbNLHyQN+yqMaAp0xF+8l0fU3T8zPL/tYDcITnZPY\r\n
      pEFV/aodP9X7XFuQD0iGTOTGDXiMSLPOLI/ifmwbT41rgIN9x14MpU2EtWeVz7sx\r\n
      ZIFMt98rHx6BsZx/DnSFDQ8iqrKF3u+OOv7s6j+8odz4Rq53+16vMev5VUMOPq+E\r\n
      aQn8SDKkOjZzwb9QGB9bXS5s9yyj4pLyggQ0O5S2ugZjUcmCecNpktN8bUR3I9VQ\r\n
      KWkcQa9yCpidp/JYrQtlbqAPiIzptA4T4RNh+F6pKbmw7hNMIPipPzbQezEMaBOn\r\n
      Cgb38EldyAVGjCzRGfhu9SNU9B03bg==\r\n
      -----END PRIVATE KEY-----
      """
    +publicKey: """
      -----BEGIN PUBLIC KEY-----\r\n
      MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5XnqLc+UwYjJQmLCWCR1\r\n
      TcY7577dKrEANvNge73agU2wEXw+PYij4jCMIFNsoQiNKE0kMHNmcvQEPt9a8Jrw\r\n
      cfFb3C4ELyqTcz1YTEI3pSu5OYj4j3P1tbKGmrnqat2MECoBqHeHOVYfXzCJ0gDX\r\n
      zizlEqN6VM32kGhhL0HOQ2yow4CI7L/ziiNWnG87tOuykMyE4bvtQb3KkGKaNlMe\r\n
      Vtt5zapK0Wfvs/69TCNo0t78IuTksM+H1oSzyVxOpcKJHOm/7gGXu7C0+kELY3ry\r\n
      55jMkSFZ5sW7RzzEn4S3c/LLEIaDQnwJDJwYw1F99UkrOu6VPL+TtxZ9h3fqhVgo\r\n
      60RMEqQQHduCDSairI0muo96Cy/F8PB2X/sekETyXIf3NxTVkbTNm/Z/FbAEIg/f\r\n
      OaWn8nkNU6iHuIkoyNIlIMtloMDtAtWdDzW0M0JkZNBDgJcSF4z5gdtvT1ePjnGc\r\n
      S0/aYT/64ndULfUaPti3ZEvWanvHNiR3iSnOTb//Djl+bkPwfNiV57l2Iv6FRCW+\r\n
      beNhvLtyCJGDORvxrdN91lOnW8ijgZnZ212j8PSwtzO6KKd8sgm91Ay34IP152Vb\r\n
      2cUjwj5YeRtS29K+O7Iiqv9JPWEbmtABbFYNHYan7sLG+hvR8eRInLj7LjiI1yDQ\r\n
      U45ZxOEnTM9GSbe2y48JSnUCAwEAAQ==\r\n
      -----END PUBLIC KEY-----
      """
    +apFetchedAt: null
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1686560440 {#10668
      date: 2023-06-12 11:00:40.0 +02:00
    }
    +__isInitialized__: true
     …2
  }
  +showAvatar: true
}
related_magazines App\Twig\Components\RelatedMagazinesComponent 14.0 MiB 5.47 ms
Input props
[
  "magazine" => "selfhosted@lemmy.world"
  "tag" => null
]
Attributes
[]
Component
App\Twig\Components\RelatedMagazinesComponent {#10829
  +limit: 4
  +tag: null
  +magazine: "selfhosted@lemmy.world"
  +type: "magazine"
  +title: "related_magazines"
  +refreshedRandom: false
  -repository: App\Repository\MagazineRepository {#332 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
active_users App\Twig\Components\ActiveUsersComponent 14.0 MiB 0.51 ms
Input props
[
  "magazine" => App\Entity\Magazine {#264
    +icon: Proxies\__CG__\App\Entity\Image {#245 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#274
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#236 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
    +entries: Doctrine\ORM\PersistentCollection {#179 …}
    +posts: Doctrine\ORM\PersistentCollection {#137 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
    +bans: Doctrine\ORM\PersistentCollection {#116 …}
    +reports: Doctrine\ORM\PersistentCollection {#102 …}
    +badges: Doctrine\ORM\PersistentCollection {#80 …}
    +logs: Doctrine\ORM\PersistentCollection {#70 …}
    +awards: Doctrine\ORM\PersistentCollection {#1360 …}
    +categories: Doctrine\ORM\PersistentCollection {#1792 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#268
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#270
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\ActiveUsersComponent {#10916
  +magazine: App\Entity\Magazine {#264
    +icon: Proxies\__CG__\App\Entity\Image {#245 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#274
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#236 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
    +entries: Doctrine\ORM\PersistentCollection {#179 …}
    +posts: Doctrine\ORM\PersistentCollection {#137 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
    +bans: Doctrine\ORM\PersistentCollection {#116 …}
    +reports: Doctrine\ORM\PersistentCollection {#102 …}
    +badges: Doctrine\ORM\PersistentCollection {#80 …}
    +logs: Doctrine\ORM\PersistentCollection {#70 …}
    +awards: Doctrine\ORM\PersistentCollection {#1360 …}
    +categories: Doctrine\ORM\PersistentCollection {#1792 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#268
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#270
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  -userRepository: App\Repository\UserRepository {#603 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
related_categories App\Twig\Components\RelatedCategoriesComponent 14.0 MiB 3.70 ms
Input props
[
  "magazine" => "selfhosted@lemmy.world"
  "tag" => null
]
Attributes
[]
Component
App\Twig\Components\RelatedCategoriesComponent {#10975
  +limit: 4
  +tag: null
  +magazine: "selfhosted@lemmy.world"
  +type: "related"
  +title: "related_categories"
  +refreshedRandom: false
  -repository: App\Repository\CategoryRepository {#10976 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
related_posts App\Twig\Components\RelatedPostsComponent 14.0 MiB 4.64 ms
Input props
[
  "magazine" => "selfhosted@lemmy.world"
  "tag" => null
]
Attributes
[]
Component
App\Twig\Components\RelatedPostsComponent {#11046
  +limit: 4
  +tag: null
  +magazine: "selfhosted@lemmy.world"
  +type: "magazine"
  +post: null
  +title: "related_posts"
  +refreshedRandom: false
  -repository: App\Repository\PostRepository {#11045 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -mentionManager: App\Service\MentionManager {#388 …}
}
related_entries App\Twig\Components\RelatedEntriesComponent 14.0 MiB 16.59 ms
Input props
[
  "magazine" => "selfhosted@lemmy.world"
  "tag" => null
]
Attributes
[]
Component
App\Twig\Components\RelatedEntriesComponent {#11115
  +limit: 4
  +tag: null
  +magazine: "selfhosted@lemmy.world"
  +type: "magazine"
  +entry: null
  +title: "related_entries"
  +refreshedRandom: false
  -repository: App\Repository\EntryRepository {#269 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -mentionManager: App\Service\MentionManager {#388 …}
}
support_us_block App\Twig\Components\SupportUsBlock 14.0 MiB 1.92 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\SupportUsBlock {#11184
  +subject: ? App\Entity\Contracts\VotableInterface
  +url: ? string
  -twig: Twig\Environment {#1252 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -partnerBlockRepository: App\Repository\PartnerBlockRepository {#11185 …}
}
featured_magazines App\Twig\Components\FeaturedMagazinesComponent 14.0 MiB 10.99 ms
Input props
[
  "magazine" => App\Entity\Magazine {#264
    +icon: Proxies\__CG__\App\Entity\Image {#245 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#274
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#236 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
    +entries: Doctrine\ORM\PersistentCollection {#179 …}
    +posts: Doctrine\ORM\PersistentCollection {#137 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
    +bans: Doctrine\ORM\PersistentCollection {#116 …}
    +reports: Doctrine\ORM\PersistentCollection {#102 …}
    +badges: Doctrine\ORM\PersistentCollection {#80 …}
    +logs: Doctrine\ORM\PersistentCollection {#70 …}
    +awards: Doctrine\ORM\PersistentCollection {#1360 …}
    +categories: Doctrine\ORM\PersistentCollection {#1792 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#268
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#270
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\FeaturedMagazinesComponent {#11273
  +magazine: App\Entity\Magazine {#264
    +icon: Proxies\__CG__\App\Entity\Image {#245 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#274
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#236 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#232 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#221 …}
    +entries: Doctrine\ORM\PersistentCollection {#179 …}
    +posts: Doctrine\ORM\PersistentCollection {#137 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#199 …}
    +bans: Doctrine\ORM\PersistentCollection {#116 …}
    +reports: Doctrine\ORM\PersistentCollection {#102 …}
    +badges: Doctrine\ORM\PersistentCollection {#80 …}
    +logs: Doctrine\ORM\PersistentCollection {#70 …}
    +awards: Doctrine\ORM\PersistentCollection {#1360 …}
    +categories: Doctrine\ORM\PersistentCollection {#1792 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#268
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#270
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  -twig: Twig\Environment {#1252 …}
  -repository: App\Repository\MagazineRepository {#332 …}
}