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

Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_user_provider
context main
entry_point App\Security\KbinAuthenticator
user_checker App\Security\UserChecker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "two_factor"
  "remember_me"
  "App\Security\KbinAuthenticator"
  "App\Security\FacebookAuthenticator"
  "App\Security\GoogleAuthenticator"
  "App\Security\GithubAuthenticator"
  "App\Security\KeycloakAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
9.15 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.06 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

No authenticators have been recorded. Check previous profiles on your authentication endpoint.

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
4
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
5
"App\Security\Voter\EntryCommentVoter"
6
"App\Security\Voter\EntryVoter"
7
"App\Security\Voter\MagazineVoter"
8
"App\Security\Voter\MessageThreadVoter"
9
"App\Security\Voter\MessageVoter"
10
"App\Security\Voter\NotificationVoter"
11
"App\Security\Voter\OAuth2UserConsentVoter"
12
"App\Security\Voter\PostCommentVoter"
13
"App\Security\Voter\PostVoter"
14
"App\Security\Voter\UserVoter"

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\Entry {#2412
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
App\Entity\Entry {#2412
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
App\Entity\Entry {#2412
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
6 DENIED moderate
App\Entity\EntryComment {#4036
  +user: App\Entity\User {#3984 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
7 DENIED edit
App\Entity\EntryComment {#4036
  +user: App\Entity\User {#3984 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
8 DENIED moderate
App\Entity\EntryComment {#4036
  +user: App\Entity\User {#3984 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
9 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
10 DENIED moderate
App\Entity\EntryComment {#4159
  +user: Proxies\__CG__\App\Entity\User {#4167 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
11 DENIED edit
App\Entity\EntryComment {#4159
  +user: Proxies\__CG__\App\Entity\User {#4167 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
12 DENIED moderate
App\Entity\EntryComment {#4159
  +user: Proxies\__CG__\App\Entity\User {#4167 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
13 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
14 DENIED moderate
App\Entity\EntryComment {#4183
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
15 DENIED edit
App\Entity\EntryComment {#4183
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
16 DENIED moderate
App\Entity\EntryComment {#4183
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
17 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
18 DENIED moderate
App\Entity\EntryComment {#4197
  +user: App\Entity\User {#3984 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
19 DENIED edit
App\Entity\EntryComment {#4197
  +user: App\Entity\User {#3984 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
20 DENIED moderate
App\Entity\EntryComment {#4197
  +user: App\Entity\User {#3984 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
21 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
22 DENIED moderate
App\Entity\EntryComment {#4233
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +entry: App\Entity\Entry {#2412}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4183
      +user: Proxies\__CG__\App\Entity\User {#1978 …}
      +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
23 DENIED edit
App\Entity\EntryComment {#4233
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +entry: App\Entity\Entry {#2412}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4183
      +user: Proxies\__CG__\App\Entity\User {#1978 …}
      +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
24 DENIED moderate
App\Entity\EntryComment {#4233
  +user: Proxies\__CG__\App\Entity\User {#1978 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +entry: App\Entity\Entry {#2412}
    +magazine: App\Entity\Magazine {#264}
    +image: null
    +parent: App\Entity\EntryComment {#4183
      +user: Proxies\__CG__\App\Entity\User {#1978 …}
      +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
25 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
26 DENIED moderate
App\Entity\EntryComment {#4255
  +user: App\Entity\User {#3984 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +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 …}
        +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
27 DENIED edit
App\Entity\EntryComment {#4255
  +user: App\Entity\User {#3984 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +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 …}
        +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
28 DENIED moderate
App\Entity\EntryComment {#4255
  +user: App\Entity\User {#3984 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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 …}
    +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 …}
        +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
29 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
30 DENIED moderate
App\Entity\EntryComment {#4072
  +user: App\Entity\User {#4056 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
31 DENIED edit
App\Entity\EntryComment {#4072
  +user: App\Entity\User {#4056 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
32 DENIED moderate
App\Entity\EntryComment {#4072
  +user: App\Entity\User {#4056 …}
  +entry: App\Entity\Entry {#2412
    +user: Proxies\__CG__\App\Entity\User {#1978 …}
    +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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
33 DENIED edit
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
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS DENIED
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details