GET https://kbin.spritesserver.nl/index.php/m/linux@lemmy.ml/t/25525/What-is-the-point-of-dbus/top

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 …}
}
21.02 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.14 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 {#2419
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +magazine: App\Entity\Magazine {#265
    +icon: Proxies\__CG__\App\Entity\Image {#246 …}
    +name: "linux@lemmy.ml"
    +title: "linux"
    +description: """
      From Wikipedia, the free encyclopedia\n
      \n
      Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
      \n
      Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
      \n
      ### Rules\n
      \n
      - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
      - No misinformation\n
      - No NSFW content\n
      - No hate speech, bigotry, etc\n
      \n
      ### Related Communities\n
      \n
      - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
      - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
      - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
      - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
      \n
      Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 1406
    +entryCommentCount: 28632
    +postCount: 6
    +postCommentCount: 214
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729583542 {#275
      date: 2024-10-22 09:52:22.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#237 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
    +entries: Doctrine\ORM\PersistentCollection {#180 …}
    +posts: Doctrine\ORM\PersistentCollection {#138 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
    +bans: Doctrine\ORM\PersistentCollection {#117 …}
    +reports: Doctrine\ORM\PersistentCollection {#103 …}
    +badges: Doctrine\ORM\PersistentCollection {#81 …}
    +logs: Doctrine\ORM\PersistentCollection {#71 …}
    +awards: Doctrine\ORM\PersistentCollection {#1346 …}
    +categories: Doctrine\ORM\PersistentCollection {#1823 …}
    -id: 73
    +apId: "linux@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/linux"
    +apPublicUrl: "https://lemmy.ml/c/linux"
    +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "linux"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729583596 {#269
      date: 2024-10-22 09:53:16.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698929468 {#271
      date: 2023-11-02 13:51:08.0 +01:00
    }
  }
  +image: Proxies\__CG__\App\Entity\Image {#1943 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
  +slug: "What-is-the-point-of-dbus"
  +title: "What is the point of dbus?"
  +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
  +body: """
    Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
    \n
    You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
    \n
    Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
    \n
    For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
    \n
    So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
    """
  +type: "link"
  +lang: "en"
  +isOc: false
  +hasEmbed: true
  +commentCount: 76
  +favouriteCount: 264
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1712146891 {#2414
    date: 2024-04-03 14:21:31.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1866 …}
  +votes: Doctrine\ORM\PersistentCollection {#1966 …}
  +reports: Doctrine\ORM\PersistentCollection {#1946 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
  +badges: Doctrine\ORM\PersistentCollection {#2439 …}
  +children: []
  -id: 25525
  -titleTs: "'dbus':6 'point':4"
  -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1703893490
  +visibility: "visible             "
  +apId: "https://lemmy.world/post/10075662"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807090 {#1793
    date: 2023-12-29 00:44:50.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 {#2419
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +magazine: App\Entity\Magazine {#265
    +icon: Proxies\__CG__\App\Entity\Image {#246 …}
    +name: "linux@lemmy.ml"
    +title: "linux"
    +description: """
      From Wikipedia, the free encyclopedia\n
      \n
      Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
      \n
      Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
      \n
      ### Rules\n
      \n
      - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
      - No misinformation\n
      - No NSFW content\n
      - No hate speech, bigotry, etc\n
      \n
      ### Related Communities\n
      \n
      - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
      - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
      - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
      - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
      \n
      Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 1406
    +entryCommentCount: 28632
    +postCount: 6
    +postCommentCount: 214
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729583542 {#275
      date: 2024-10-22 09:52:22.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#237 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
    +entries: Doctrine\ORM\PersistentCollection {#180 …}
    +posts: Doctrine\ORM\PersistentCollection {#138 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
    +bans: Doctrine\ORM\PersistentCollection {#117 …}
    +reports: Doctrine\ORM\PersistentCollection {#103 …}
    +badges: Doctrine\ORM\PersistentCollection {#81 …}
    +logs: Doctrine\ORM\PersistentCollection {#71 …}
    +awards: Doctrine\ORM\PersistentCollection {#1346 …}
    +categories: Doctrine\ORM\PersistentCollection {#1823 …}
    -id: 73
    +apId: "linux@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/linux"
    +apPublicUrl: "https://lemmy.ml/c/linux"
    +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "linux"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729583596 {#269
      date: 2024-10-22 09:53:16.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698929468 {#271
      date: 2023-11-02 13:51:08.0 +01:00
    }
  }
  +image: Proxies\__CG__\App\Entity\Image {#1943 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
  +slug: "What-is-the-point-of-dbus"
  +title: "What is the point of dbus?"
  +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
  +body: """
    Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
    \n
    You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
    \n
    Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
    \n
    For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
    \n
    So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
    """
  +type: "link"
  +lang: "en"
  +isOc: false
  +hasEmbed: true
  +commentCount: 76
  +favouriteCount: 264
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1712146891 {#2414
    date: 2024-04-03 14:21:31.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1866 …}
  +votes: Doctrine\ORM\PersistentCollection {#1966 …}
  +reports: Doctrine\ORM\PersistentCollection {#1946 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
  +badges: Doctrine\ORM\PersistentCollection {#2439 …}
  +children: []
  -id: 25525
  -titleTs: "'dbus':6 'point':4"
  -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1703893490
  +visibility: "visible             "
  +apId: "https://lemmy.world/post/10075662"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807090 {#1793
    date: 2023-12-29 00:44:50.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 {#2419
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +magazine: App\Entity\Magazine {#265
    +icon: Proxies\__CG__\App\Entity\Image {#246 …}
    +name: "linux@lemmy.ml"
    +title: "linux"
    +description: """
      From Wikipedia, the free encyclopedia\n
      \n
      Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
      \n
      Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
      \n
      ### Rules\n
      \n
      - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
      - No misinformation\n
      - No NSFW content\n
      - No hate speech, bigotry, etc\n
      \n
      ### Related Communities\n
      \n
      - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
      - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
      - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
      - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
      \n
      Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 1406
    +entryCommentCount: 28632
    +postCount: 6
    +postCommentCount: 214
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729583542 {#275
      date: 2024-10-22 09:52:22.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#237 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
    +entries: Doctrine\ORM\PersistentCollection {#180 …}
    +posts: Doctrine\ORM\PersistentCollection {#138 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
    +bans: Doctrine\ORM\PersistentCollection {#117 …}
    +reports: Doctrine\ORM\PersistentCollection {#103 …}
    +badges: Doctrine\ORM\PersistentCollection {#81 …}
    +logs: Doctrine\ORM\PersistentCollection {#71 …}
    +awards: Doctrine\ORM\PersistentCollection {#1346 …}
    +categories: Doctrine\ORM\PersistentCollection {#1823 …}
    -id: 73
    +apId: "linux@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/linux"
    +apPublicUrl: "https://lemmy.ml/c/linux"
    +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "linux"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729583596 {#269
      date: 2024-10-22 09:53:16.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698929468 {#271
      date: 2023-11-02 13:51:08.0 +01:00
    }
  }
  +image: Proxies\__CG__\App\Entity\Image {#1943 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
  +slug: "What-is-the-point-of-dbus"
  +title: "What is the point of dbus?"
  +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
  +body: """
    Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
    \n
    You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
    \n
    Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
    \n
    For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
    \n
    So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
    """
  +type: "link"
  +lang: "en"
  +isOc: false
  +hasEmbed: true
  +commentCount: 76
  +favouriteCount: 264
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1712146891 {#2414
    date: 2024-04-03 14:21:31.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1866 …}
  +votes: Doctrine\ORM\PersistentCollection {#1966 …}
  +reports: Doctrine\ORM\PersistentCollection {#1946 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
  +badges: Doctrine\ORM\PersistentCollection {#2439 …}
  +children: []
  -id: 25525
  -titleTs: "'dbus':6 'point':4"
  -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1703893490
  +visibility: "visible             "
  +apId: "https://lemmy.world/post/10075662"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807090 {#1793
    date: 2023-12-29 00:44:50.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 {#4042
  +user: App\Entity\User {#3991 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
    \n
    To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
    \n
    With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
    \n
    It’s a bit similar to the role of an intermediate representation in compilers.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 147
  +score: 0
  +lastActive: DateTime @1709401973 {#4051
    date: 2024-03-02 18:52:53.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4040 …}
  +nested: Doctrine\ORM\PersistentCollection {#4038 …}
  +votes: Doctrine\ORM\PersistentCollection {#4036 …}
  +reports: Doctrine\ORM\PersistentCollection {#4034 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
  -id: 260994
  -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285059"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810258 {#3983
    date: 2023-12-29 01:37:38.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 {#4042
  +user: App\Entity\User {#3991 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
    \n
    To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
    \n
    With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
    \n
    It’s a bit similar to the role of an intermediate representation in compilers.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 147
  +score: 0
  +lastActive: DateTime @1709401973 {#4051
    date: 2024-03-02 18:52:53.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4040 …}
  +nested: Doctrine\ORM\PersistentCollection {#4038 …}
  +votes: Doctrine\ORM\PersistentCollection {#4036 …}
  +reports: Doctrine\ORM\PersistentCollection {#4034 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
  -id: 260994
  -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285059"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810258 {#3983
    date: 2023-12-29 01:37:38.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 {#4042
  +user: App\Entity\User {#3991 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
    \n
    To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
    \n
    With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
    \n
    It’s a bit similar to the role of an intermediate representation in compilers.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 147
  +score: 0
  +lastActive: DateTime @1709401973 {#4051
    date: 2024-03-02 18:52:53.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4040 …}
  +nested: Doctrine\ORM\PersistentCollection {#4038 …}
  +votes: Doctrine\ORM\PersistentCollection {#4036 …}
  +reports: Doctrine\ORM\PersistentCollection {#4034 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
  -id: 260994
  -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285059"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810258 {#3983
    date: 2023-12-29 01:37:38.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 {#5267
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4042
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
      \n
      To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
      \n
      With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
      \n
      It’s a bit similar to the role of an intermediate representation in compilers.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 147
    +score: 0
    +lastActive: DateTime @1709401973 {#4051
      date: 2024-03-02 18:52:53.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4040 …}
    +nested: Doctrine\ORM\PersistentCollection {#4038 …}
    +votes: Doctrine\ORM\PersistentCollection {#4036 …}
    +reports: Doctrine\ORM\PersistentCollection {#4034 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
    -id: 260994
    -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285059"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810258 {#3983
      date: 2023-12-29 01:37:38.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    > modular daemons\n
    \n
    A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
    \n
    > It can even start the receiving daemon if it is not yet running.\n
    \n
    We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703812179 {#5265
    date: 2023-12-29 02:09:39.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5268 …}
  +nested: Doctrine\ORM\PersistentCollection {#5270 …}
  +votes: Doctrine\ORM\PersistentCollection {#5272 …}
  +reports: Doctrine\ORM\PersistentCollection {#5274 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
  -id: 261055
  -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285454"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812179 {#5266
    date: 2023-12-29 02:09:39.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 {#5267
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4042
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
      \n
      To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
      \n
      With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
      \n
      It’s a bit similar to the role of an intermediate representation in compilers.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 147
    +score: 0
    +lastActive: DateTime @1709401973 {#4051
      date: 2024-03-02 18:52:53.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4040 …}
    +nested: Doctrine\ORM\PersistentCollection {#4038 …}
    +votes: Doctrine\ORM\PersistentCollection {#4036 …}
    +reports: Doctrine\ORM\PersistentCollection {#4034 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
    -id: 260994
    -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285059"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810258 {#3983
      date: 2023-12-29 01:37:38.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    > modular daemons\n
    \n
    A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
    \n
    > It can even start the receiving daemon if it is not yet running.\n
    \n
    We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703812179 {#5265
    date: 2023-12-29 02:09:39.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5268 …}
  +nested: Doctrine\ORM\PersistentCollection {#5270 …}
  +votes: Doctrine\ORM\PersistentCollection {#5272 …}
  +reports: Doctrine\ORM\PersistentCollection {#5274 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
  -id: 261055
  -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285454"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812179 {#5266
    date: 2023-12-29 02:09:39.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 {#5267
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4042
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
      \n
      To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
      \n
      With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
      \n
      It’s a bit similar to the role of an intermediate representation in compilers.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 147
    +score: 0
    +lastActive: DateTime @1709401973 {#4051
      date: 2024-03-02 18:52:53.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4040 …}
    +nested: Doctrine\ORM\PersistentCollection {#4038 …}
    +votes: Doctrine\ORM\PersistentCollection {#4036 …}
    +reports: Doctrine\ORM\PersistentCollection {#4034 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
    -id: 260994
    -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285059"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810258 {#3983
      date: 2023-12-29 01:37:38.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    > modular daemons\n
    \n
    A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
    \n
    > It can even start the receiving daemon if it is not yet running.\n
    \n
    We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703812179 {#5265
    date: 2023-12-29 02:09:39.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5268 …}
  +nested: Doctrine\ORM\PersistentCollection {#5270 …}
  +votes: Doctrine\ORM\PersistentCollection {#5272 …}
  +reports: Doctrine\ORM\PersistentCollection {#5274 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
  -id: 261055
  -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285454"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812179 {#5266
    date: 2023-12-29 02:09:39.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 {#5508
  +user: App\Entity\User {#3991 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5267
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4042
      +user: App\Entity\User {#3991 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
        \n
        To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
        \n
        With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
        \n
        It’s a bit similar to the role of an intermediate representation in compilers.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 147
      +score: 0
      +lastActive: DateTime @1709401973 {#4051
        date: 2024-03-02 18:52:53.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4040 …}
      +nested: Doctrine\ORM\PersistentCollection {#4038 …}
      +votes: Doctrine\ORM\PersistentCollection {#4036 …}
      +reports: Doctrine\ORM\PersistentCollection {#4034 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
      -id: 260994
      -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285059"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810258 {#3983
        date: 2023-12-29 01:37:38.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      > modular daemons\n
      \n
      A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
      \n
      > It can even start the receiving daemon if it is not yet running.\n
      \n
      We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 7
    +score: 0
    +lastActive: DateTime @1703812179 {#5265
      date: 2023-12-29 02:09:39.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5268 …}
    +nested: Doctrine\ORM\PersistentCollection {#5270 …}
    +votes: Doctrine\ORM\PersistentCollection {#5272 …}
    +reports: Doctrine\ORM\PersistentCollection {#5274 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
    -id: 261055
    -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285454"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812179 {#5266
      date: 2023-12-29 02:09:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    Let’s say you want to write a GUI for connecting to networks.\n
    \n
    In the backend, you have NetworkManager, systemd-networkd, ConnMann, netctl, dhcpcd, …\n
    \n
    Dbus could be a good way to expose a common API surface for clients.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 10
  +score: 0
  +lastActive: DateTime @1703814591 {#5506
    date: 2023-12-29 02:49:51.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5509 …}
  +nested: Doctrine\ORM\PersistentCollection {#5511 …}
  +votes: Doctrine\ORM\PersistentCollection {#5513 …}
  +reports: Doctrine\ORM\PersistentCollection {#5515 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5517 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5519 …}
  -id: 261138
  -bodyTs: "'api':36 'backend':16 'client':39 'common':35 'connect':11 'connmann':23 'could':27 'dbus':26 'dhcpcd':25 'expos':33 'good':30 'gui':9 'let':1 'netctl':24 'network':13 'networkd':22 'networkmanag':19 'say':3 'surfac':37 'systemd':21 'systemd-networkd':20 'want':5 'way':31 'write':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285926"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703814591 {#5507
    date: 2023-12-29 02:49: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
15 DENIED edit
App\Entity\EntryComment {#5508
  +user: App\Entity\User {#3991 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5267
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4042
      +user: App\Entity\User {#3991 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
        \n
        To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
        \n
        With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
        \n
        It’s a bit similar to the role of an intermediate representation in compilers.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 147
      +score: 0
      +lastActive: DateTime @1709401973 {#4051
        date: 2024-03-02 18:52:53.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4040 …}
      +nested: Doctrine\ORM\PersistentCollection {#4038 …}
      +votes: Doctrine\ORM\PersistentCollection {#4036 …}
      +reports: Doctrine\ORM\PersistentCollection {#4034 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
      -id: 260994
      -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285059"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810258 {#3983
        date: 2023-12-29 01:37:38.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      > modular daemons\n
      \n
      A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
      \n
      > It can even start the receiving daemon if it is not yet running.\n
      \n
      We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 7
    +score: 0
    +lastActive: DateTime @1703812179 {#5265
      date: 2023-12-29 02:09:39.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5268 …}
    +nested: Doctrine\ORM\PersistentCollection {#5270 …}
    +votes: Doctrine\ORM\PersistentCollection {#5272 …}
    +reports: Doctrine\ORM\PersistentCollection {#5274 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
    -id: 261055
    -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285454"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812179 {#5266
      date: 2023-12-29 02:09:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    Let’s say you want to write a GUI for connecting to networks.\n
    \n
    In the backend, you have NetworkManager, systemd-networkd, ConnMann, netctl, dhcpcd, …\n
    \n
    Dbus could be a good way to expose a common API surface for clients.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 10
  +score: 0
  +lastActive: DateTime @1703814591 {#5506
    date: 2023-12-29 02:49:51.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5509 …}
  +nested: Doctrine\ORM\PersistentCollection {#5511 …}
  +votes: Doctrine\ORM\PersistentCollection {#5513 …}
  +reports: Doctrine\ORM\PersistentCollection {#5515 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5517 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5519 …}
  -id: 261138
  -bodyTs: "'api':36 'backend':16 'client':39 'common':35 'connect':11 'connmann':23 'could':27 'dbus':26 'dhcpcd':25 'expos':33 'good':30 'gui':9 'let':1 'netctl':24 'network':13 'networkd':22 'networkmanag':19 'say':3 'surfac':37 'systemd':21 'systemd-networkd':20 'want':5 'way':31 'write':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285926"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703814591 {#5507
    date: 2023-12-29 02:49: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
16 DENIED moderate
App\Entity\EntryComment {#5508
  +user: App\Entity\User {#3991 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5267
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4042
      +user: App\Entity\User {#3991 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
        \n
        To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
        \n
        With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
        \n
        It’s a bit similar to the role of an intermediate representation in compilers.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 147
      +score: 0
      +lastActive: DateTime @1709401973 {#4051
        date: 2024-03-02 18:52:53.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4040 …}
      +nested: Doctrine\ORM\PersistentCollection {#4038 …}
      +votes: Doctrine\ORM\PersistentCollection {#4036 …}
      +reports: Doctrine\ORM\PersistentCollection {#4034 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
      -id: 260994
      -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285059"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810258 {#3983
        date: 2023-12-29 01:37:38.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      > modular daemons\n
      \n
      A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
      \n
      > It can even start the receiving daemon if it is not yet running.\n
      \n
      We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 7
    +score: 0
    +lastActive: DateTime @1703812179 {#5265
      date: 2023-12-29 02:09:39.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5268 …}
    +nested: Doctrine\ORM\PersistentCollection {#5270 …}
    +votes: Doctrine\ORM\PersistentCollection {#5272 …}
    +reports: Doctrine\ORM\PersistentCollection {#5274 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
    -id: 261055
    -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285454"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812179 {#5266
      date: 2023-12-29 02:09:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    Let’s say you want to write a GUI for connecting to networks.\n
    \n
    In the backend, you have NetworkManager, systemd-networkd, ConnMann, netctl, dhcpcd, …\n
    \n
    Dbus could be a good way to expose a common API surface for clients.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 10
  +score: 0
  +lastActive: DateTime @1703814591 {#5506
    date: 2023-12-29 02:49:51.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5509 …}
  +nested: Doctrine\ORM\PersistentCollection {#5511 …}
  +votes: Doctrine\ORM\PersistentCollection {#5513 …}
  +reports: Doctrine\ORM\PersistentCollection {#5515 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5517 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5519 …}
  -id: 261138
  -bodyTs: "'api':36 'backend':16 'client':39 'common':35 'connect':11 'connmann':23 'could':27 'dbus':26 'dhcpcd':25 'expos':33 'good':30 'gui':9 'let':1 'netctl':24 'network':13 'networkd':22 'networkmanag':19 'say':3 'surfac':37 'systemd':21 'systemd-networkd':20 'want':5 'way':31 'write':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285926"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703814591 {#5507
    date: 2023-12-29 02:49: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
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 {#5524
  +user: Proxies\__CG__\App\Entity\User {#5525 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5267
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4042
      +user: App\Entity\User {#3991 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
        \n
        To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
        \n
        With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
        \n
        It’s a bit similar to the role of an intermediate representation in compilers.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 147
      +score: 0
      +lastActive: DateTime @1709401973 {#4051
        date: 2024-03-02 18:52:53.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4040 …}
      +nested: Doctrine\ORM\PersistentCollection {#4038 …}
      +votes: Doctrine\ORM\PersistentCollection {#4036 …}
      +reports: Doctrine\ORM\PersistentCollection {#4034 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
      -id: 260994
      -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285059"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810258 {#3983
        date: 2023-12-29 01:37:38.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      > modular daemons\n
      \n
      A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
      \n
      > It can even start the receiving daemon if it is not yet running.\n
      \n
      We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 7
    +score: 0
    +lastActive: DateTime @1703812179 {#5265
      date: 2023-12-29 02:09:39.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5268 …}
    +nested: Doctrine\ORM\PersistentCollection {#5270 …}
    +votes: Doctrine\ORM\PersistentCollection {#5272 …}
    +reports: Doctrine\ORM\PersistentCollection {#5274 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
    -id: 261055
    -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285454"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812179 {#5266
      date: 2023-12-29 02:09:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    > > It can even start the receiving daemon if it is not yet running.\n
    > \n
    > We have a tool for that, it’s called an init system.\n
    \n
    The init system is for trusted system services that can talk directly to hardware. Unless you are working on a single-user system with no security concerns of any kind, you might consider using init to launch persistent user land or GUI processes.\n
    \n
    DBus is for establishing a standard publish/subscribe communication protocol between user applications, and in particular, GUI applications. And because it is standard, app developers using different GUI frameworks (Gtk, Qt, WxWidgets, FLTK, SDL2) can all publish/subscribe to each other using a common protocol.\n
    \n
    It would be certainly be possible to establish a standard place in the /tmp directory and a standard naming scheme for sockets and temporary files so that applications can obtain a view of other running applications and request to receive message from other applications using ordinary filesystem APIs, but DBus does this without needing the /tmp directory. A few simple C APIs replace the need for naming and creating your temporary files and sockets.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 36
  +score: 0
  +lastActive: DateTime @1703816134 {#5521
    date: 2023-12-29 03:15:34.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5526 …}
  +nested: Doctrine\ORM\PersistentCollection {#5528 …}
  +votes: Doctrine\ORM\PersistentCollection {#5530 …}
  +reports: Doctrine\ORM\PersistentCollection {#5532 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5534 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5536 …}
  -id: 261205
  -bodyTs: "'/tmp':126,168 'api':160,174 'app':92 'applic':81,86,140,148,156 'c':173 'call':22 'certain':116 'common':111 'communic':77 'concern':53 'consid':59 'creat':181 'daemon':7 'dbus':70,162 'develop':93 'differ':95 'direct':37 'directori':127,169 'establish':73,120 'even':3 'file':137,184 'filesystem':159 'fltk':101 'framework':97 'gtk':98 'gui':68,85,96 'hardwar':39 'init':24,27,61 'kind':56 'land':66 'launch':63 'messag':153 'might':58 'name':131,179 'need':166,177 'obtain':142 'ordinari':158 'particular':84 'persist':64 'place':123 'possibl':118 'process':69 'protocol':78,112 'publish/subscribe':76,105 'qt':99 'receiv':6,152 'replac':175 'request':150 'run':13,147 'scheme':132 'sdl2':102 'secur':52 'servic':33 'simpl':172 'singl':47 'single-us':46 'socket':134,186 'standard':75,91,122,130 'start':4 'system':25,28,32,49 'talk':36 'temporari':136,183 'tool':17 'trust':31 'unless':40 'use':60,94,109,157 'user':48,65,80 'view':144 'without':165 'work':43 'would':114 'wxwidget':100 'yet':12"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6933611"
  +editedAt: DateTimeImmutable @1708906606 {#5522
    date: 2024-02-26 01:16:46.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703816134 {#5523
    date: 2023-12-29 03:15:34.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 {#5524
  +user: Proxies\__CG__\App\Entity\User {#5525 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5267
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4042
      +user: App\Entity\User {#3991 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
        \n
        To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
        \n
        With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
        \n
        It’s a bit similar to the role of an intermediate representation in compilers.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 147
      +score: 0
      +lastActive: DateTime @1709401973 {#4051
        date: 2024-03-02 18:52:53.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4040 …}
      +nested: Doctrine\ORM\PersistentCollection {#4038 …}
      +votes: Doctrine\ORM\PersistentCollection {#4036 …}
      +reports: Doctrine\ORM\PersistentCollection {#4034 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
      -id: 260994
      -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285059"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810258 {#3983
        date: 2023-12-29 01:37:38.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      > modular daemons\n
      \n
      A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
      \n
      > It can even start the receiving daemon if it is not yet running.\n
      \n
      We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 7
    +score: 0
    +lastActive: DateTime @1703812179 {#5265
      date: 2023-12-29 02:09:39.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5268 …}
    +nested: Doctrine\ORM\PersistentCollection {#5270 …}
    +votes: Doctrine\ORM\PersistentCollection {#5272 …}
    +reports: Doctrine\ORM\PersistentCollection {#5274 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
    -id: 261055
    -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285454"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812179 {#5266
      date: 2023-12-29 02:09:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    > > It can even start the receiving daemon if it is not yet running.\n
    > \n
    > We have a tool for that, it’s called an init system.\n
    \n
    The init system is for trusted system services that can talk directly to hardware. Unless you are working on a single-user system with no security concerns of any kind, you might consider using init to launch persistent user land or GUI processes.\n
    \n
    DBus is for establishing a standard publish/subscribe communication protocol between user applications, and in particular, GUI applications. And because it is standard, app developers using different GUI frameworks (Gtk, Qt, WxWidgets, FLTK, SDL2) can all publish/subscribe to each other using a common protocol.\n
    \n
    It would be certainly be possible to establish a standard place in the /tmp directory and a standard naming scheme for sockets and temporary files so that applications can obtain a view of other running applications and request to receive message from other applications using ordinary filesystem APIs, but DBus does this without needing the /tmp directory. A few simple C APIs replace the need for naming and creating your temporary files and sockets.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 36
  +score: 0
  +lastActive: DateTime @1703816134 {#5521
    date: 2023-12-29 03:15:34.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5526 …}
  +nested: Doctrine\ORM\PersistentCollection {#5528 …}
  +votes: Doctrine\ORM\PersistentCollection {#5530 …}
  +reports: Doctrine\ORM\PersistentCollection {#5532 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5534 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5536 …}
  -id: 261205
  -bodyTs: "'/tmp':126,168 'api':160,174 'app':92 'applic':81,86,140,148,156 'c':173 'call':22 'certain':116 'common':111 'communic':77 'concern':53 'consid':59 'creat':181 'daemon':7 'dbus':70,162 'develop':93 'differ':95 'direct':37 'directori':127,169 'establish':73,120 'even':3 'file':137,184 'filesystem':159 'fltk':101 'framework':97 'gtk':98 'gui':68,85,96 'hardwar':39 'init':24,27,61 'kind':56 'land':66 'launch':63 'messag':153 'might':58 'name':131,179 'need':166,177 'obtain':142 'ordinari':158 'particular':84 'persist':64 'place':123 'possibl':118 'process':69 'protocol':78,112 'publish/subscribe':76,105 'qt':99 'receiv':6,152 'replac':175 'request':150 'run':13,147 'scheme':132 'sdl2':102 'secur':52 'servic':33 'simpl':172 'singl':47 'single-us':46 'socket':134,186 'standard':75,91,122,130 'start':4 'system':25,28,32,49 'talk':36 'temporari':136,183 'tool':17 'trust':31 'unless':40 'use':60,94,109,157 'user':48,65,80 'view':144 'without':165 'work':43 'would':114 'wxwidget':100 'yet':12"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6933611"
  +editedAt: DateTimeImmutable @1708906606 {#5522
    date: 2024-02-26 01:16:46.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703816134 {#5523
    date: 2023-12-29 03:15:34.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 {#5524
  +user: Proxies\__CG__\App\Entity\User {#5525 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5267
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4042
      +user: App\Entity\User {#3991 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
        \n
        To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
        \n
        With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
        \n
        It’s a bit similar to the role of an intermediate representation in compilers.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 147
      +score: 0
      +lastActive: DateTime @1709401973 {#4051
        date: 2024-03-02 18:52:53.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4040 …}
      +nested: Doctrine\ORM\PersistentCollection {#4038 …}
      +votes: Doctrine\ORM\PersistentCollection {#4036 …}
      +reports: Doctrine\ORM\PersistentCollection {#4034 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
      -id: 260994
      -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285059"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810258 {#3983
        date: 2023-12-29 01:37:38.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      > modular daemons\n
      \n
      A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
      \n
      > It can even start the receiving daemon if it is not yet running.\n
      \n
      We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 7
    +score: 0
    +lastActive: DateTime @1703812179 {#5265
      date: 2023-12-29 02:09:39.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5268 …}
    +nested: Doctrine\ORM\PersistentCollection {#5270 …}
    +votes: Doctrine\ORM\PersistentCollection {#5272 …}
    +reports: Doctrine\ORM\PersistentCollection {#5274 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
    -id: 261055
    -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285454"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812179 {#5266
      date: 2023-12-29 02:09:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    > > It can even start the receiving daemon if it is not yet running.\n
    > \n
    > We have a tool for that, it’s called an init system.\n
    \n
    The init system is for trusted system services that can talk directly to hardware. Unless you are working on a single-user system with no security concerns of any kind, you might consider using init to launch persistent user land or GUI processes.\n
    \n
    DBus is for establishing a standard publish/subscribe communication protocol between user applications, and in particular, GUI applications. And because it is standard, app developers using different GUI frameworks (Gtk, Qt, WxWidgets, FLTK, SDL2) can all publish/subscribe to each other using a common protocol.\n
    \n
    It would be certainly be possible to establish a standard place in the /tmp directory and a standard naming scheme for sockets and temporary files so that applications can obtain a view of other running applications and request to receive message from other applications using ordinary filesystem APIs, but DBus does this without needing the /tmp directory. A few simple C APIs replace the need for naming and creating your temporary files and sockets.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 36
  +score: 0
  +lastActive: DateTime @1703816134 {#5521
    date: 2023-12-29 03:15:34.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5526 …}
  +nested: Doctrine\ORM\PersistentCollection {#5528 …}
  +votes: Doctrine\ORM\PersistentCollection {#5530 …}
  +reports: Doctrine\ORM\PersistentCollection {#5532 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5534 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5536 …}
  -id: 261205
  -bodyTs: "'/tmp':126,168 'api':160,174 'app':92 'applic':81,86,140,148,156 'c':173 'call':22 'certain':116 'common':111 'communic':77 'concern':53 'consid':59 'creat':181 'daemon':7 'dbus':70,162 'develop':93 'differ':95 'direct':37 'directori':127,169 'establish':73,120 'even':3 'file':137,184 'filesystem':159 'fltk':101 'framework':97 'gtk':98 'gui':68,85,96 'hardwar':39 'init':24,27,61 'kind':56 'land':66 'launch':63 'messag':153 'might':58 'name':131,179 'need':166,177 'obtain':142 'ordinari':158 'particular':84 'persist':64 'place':123 'possibl':118 'process':69 'protocol':78,112 'publish/subscribe':76,105 'qt':99 'receiv':6,152 'replac':175 'request':150 'run':13,147 'scheme':132 'sdl2':102 'secur':52 'servic':33 'simpl':172 'singl':47 'single-us':46 'socket':134,186 'standard':75,91,122,130 'start':4 'system':25,28,32,49 'talk':36 'temporari':136,183 'tool':17 'trust':31 'unless':40 'use':60,94,109,157 'user':48,65,80 'view':144 'without':165 'work':43 'would':114 'wxwidget':100 'yet':12"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6933611"
  +editedAt: DateTimeImmutable @1708906606 {#5522
    date: 2024-02-26 01:16:46.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703816134 {#5523
    date: 2023-12-29 03:15:34.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 {#5719
  +user: Proxies\__CG__\App\Entity\User {#5299 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5524
    +user: Proxies\__CG__\App\Entity\User {#5525 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5267
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4042
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
          \n
          To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
          \n
          With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
          \n
          It’s a bit similar to the role of an intermediate representation in compilers.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 147
        +score: 0
        +lastActive: DateTime @1709401973 {#4051
          date: 2024-03-02 18:52:53.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4040 …}
        +nested: Doctrine\ORM\PersistentCollection {#4038 …}
        +votes: Doctrine\ORM\PersistentCollection {#4036 …}
        +reports: Doctrine\ORM\PersistentCollection {#4034 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
        -id: 260994
        -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285059"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810258 {#3983
          date: 2023-12-29 01:37:38.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4042}
      +body: """
        > modular daemons\n
        \n
        A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
        \n
        > It can even start the receiving daemon if it is not yet running.\n
        \n
        We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 7
      +score: 0
      +lastActive: DateTime @1703812179 {#5265
        date: 2023-12-29 02:09:39.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@cbarrick@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5268 …}
      +nested: Doctrine\ORM\PersistentCollection {#5270 …}
      +votes: Doctrine\ORM\PersistentCollection {#5272 …}
      +reports: Doctrine\ORM\PersistentCollection {#5274 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
      -id: 261055
      -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285454"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812179 {#5266
        date: 2023-12-29 02:09:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      > > It can even start the receiving daemon if it is not yet running.\n
      > \n
      > We have a tool for that, it’s called an init system.\n
      \n
      The init system is for trusted system services that can talk directly to hardware. Unless you are working on a single-user system with no security concerns of any kind, you might consider using init to launch persistent user land or GUI processes.\n
      \n
      DBus is for establishing a standard publish/subscribe communication protocol between user applications, and in particular, GUI applications. And because it is standard, app developers using different GUI frameworks (Gtk, Qt, WxWidgets, FLTK, SDL2) can all publish/subscribe to each other using a common protocol.\n
      \n
      It would be certainly be possible to establish a standard place in the /tmp directory and a standard naming scheme for sockets and temporary files so that applications can obtain a view of other running applications and request to receive message from other applications using ordinary filesystem APIs, but DBus does this without needing the /tmp directory. A few simple C APIs replace the need for naming and creating your temporary files and sockets.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 36
    +score: 0
    +lastActive: DateTime @1703816134 {#5521
      date: 2023-12-29 03:15:34.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5526 …}
    +nested: Doctrine\ORM\PersistentCollection {#5528 …}
    +votes: Doctrine\ORM\PersistentCollection {#5530 …}
    +reports: Doctrine\ORM\PersistentCollection {#5532 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5534 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5536 …}
    -id: 261205
    -bodyTs: "'/tmp':126,168 'api':160,174 'app':92 'applic':81,86,140,148,156 'c':173 'call':22 'certain':116 'common':111 'communic':77 'concern':53 'consid':59 'creat':181 'daemon':7 'dbus':70,162 'develop':93 'differ':95 'direct':37 'directori':127,169 'establish':73,120 'even':3 'file':137,184 'filesystem':159 'fltk':101 'framework':97 'gtk':98 'gui':68,85,96 'hardwar':39 'init':24,27,61 'kind':56 'land':66 'launch':63 'messag':153 'might':58 'name':131,179 'need':166,177 'obtain':142 'ordinari':158 'particular':84 'persist':64 'place':123 'possibl':118 'process':69 'protocol':78,112 'publish/subscribe':76,105 'qt':99 'receiv':6,152 'replac':175 'request':150 'run':13,147 'scheme':132 'sdl2':102 'secur':52 'servic':33 'simpl':172 'singl':47 'single-us':46 'socket':134,186 'standard':75,91,122,130 'start':4 'system':25,28,32,49 'talk':36 'temporari':136,183 'tool':17 'trust':31 'unless':40 'use':60,94,109,157 'user':48,65,80 'view':144 'without':165 'work':43 'would':114 'wxwidget':100 'yet':12"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/6933611"
    +editedAt: DateTimeImmutable @1708906606 {#5522
      date: 2024-02-26 01:16:46.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703816134 {#5523
      date: 2023-12-29 03:15:34.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    …systemd very much does use the init system to launch userland and GUI processes. That’s how GNOME works.\n
    \n
    Dbus is for interprocess communication. The fact that its primary use case is communication between desktop applications is hardly relevant to its design. I don’t see how GUI frameworks are at all relevant, or how it would be possible to create an interprocess communication mechanism that only worked with one GUI framework without some heroic levels of abstraction violation (which I would not put past Qt, but that’s another story).\n
    \n
    I don’t see why having an entire dbus daemon running in the background is better than having a cluttered /tmp or /run directory.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 4
  +score: 0
  +lastActive: DateTime @1703897438 {#5716
    date: 2023-12-30 01:50:38.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@Ramin_HAL9001@lemmy.ml"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@Ramin_HAL9001@lemmy.ml"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@Ramin_HAL9001@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5720 …}
  +nested: Doctrine\ORM\PersistentCollection {#5722 …}
  +votes: Doctrine\ORM\PersistentCollection {#5724 …}
  +reports: Doctrine\ORM\PersistentCollection {#5726 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5728 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5730 …}
  -id: 263629
  -bodyTs: "'/run':114 '/tmp':112 'abstract':78 'anoth':90 'applic':36 'background':105 'better':107 'case':31 'clutter':111 'communic':24,33,64 'creat':61 'daemon':101 'dbus':20,100 'design':42 'desktop':35 'directori':115 'entir':99 'fact':26 'framework':49,72 'gnome':18 'gui':13,48,71 'hard':38 'heroic':75 'init':7 'interprocess':23,63 'launch':10 'level':76 'mechan':65 'much':3 'one':70 'past':85 'possibl':59 'primari':29 'process':14 'put':84 'qt':86 'relev':39,53 'run':102 'see':46,95 'stori':91 'system':8 'systemd':1 'use':5,30 'userland':11 'violat':79 'without':73 'work':19,68 'would':57,82"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4973386"
  +editedAt: DateTimeImmutable @1709219663 {#5717
    date: 2024-02-29 16:14:23.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703897438 {#5718
    date: 2023-12-30 01:50:38.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 {#5719
  +user: Proxies\__CG__\App\Entity\User {#5299 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5524
    +user: Proxies\__CG__\App\Entity\User {#5525 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5267
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4042
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
          \n
          To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
          \n
          With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
          \n
          It’s a bit similar to the role of an intermediate representation in compilers.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 147
        +score: 0
        +lastActive: DateTime @1709401973 {#4051
          date: 2024-03-02 18:52:53.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4040 …}
        +nested: Doctrine\ORM\PersistentCollection {#4038 …}
        +votes: Doctrine\ORM\PersistentCollection {#4036 …}
        +reports: Doctrine\ORM\PersistentCollection {#4034 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
        -id: 260994
        -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285059"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810258 {#3983
          date: 2023-12-29 01:37:38.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4042}
      +body: """
        > modular daemons\n
        \n
        A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
        \n
        > It can even start the receiving daemon if it is not yet running.\n
        \n
        We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 7
      +score: 0
      +lastActive: DateTime @1703812179 {#5265
        date: 2023-12-29 02:09:39.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@cbarrick@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5268 …}
      +nested: Doctrine\ORM\PersistentCollection {#5270 …}
      +votes: Doctrine\ORM\PersistentCollection {#5272 …}
      +reports: Doctrine\ORM\PersistentCollection {#5274 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
      -id: 261055
      -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285454"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812179 {#5266
        date: 2023-12-29 02:09:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      > > It can even start the receiving daemon if it is not yet running.\n
      > \n
      > We have a tool for that, it’s called an init system.\n
      \n
      The init system is for trusted system services that can talk directly to hardware. Unless you are working on a single-user system with no security concerns of any kind, you might consider using init to launch persistent user land or GUI processes.\n
      \n
      DBus is for establishing a standard publish/subscribe communication protocol between user applications, and in particular, GUI applications. And because it is standard, app developers using different GUI frameworks (Gtk, Qt, WxWidgets, FLTK, SDL2) can all publish/subscribe to each other using a common protocol.\n
      \n
      It would be certainly be possible to establish a standard place in the /tmp directory and a standard naming scheme for sockets and temporary files so that applications can obtain a view of other running applications and request to receive message from other applications using ordinary filesystem APIs, but DBus does this without needing the /tmp directory. A few simple C APIs replace the need for naming and creating your temporary files and sockets.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 36
    +score: 0
    +lastActive: DateTime @1703816134 {#5521
      date: 2023-12-29 03:15:34.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5526 …}
    +nested: Doctrine\ORM\PersistentCollection {#5528 …}
    +votes: Doctrine\ORM\PersistentCollection {#5530 …}
    +reports: Doctrine\ORM\PersistentCollection {#5532 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5534 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5536 …}
    -id: 261205
    -bodyTs: "'/tmp':126,168 'api':160,174 'app':92 'applic':81,86,140,148,156 'c':173 'call':22 'certain':116 'common':111 'communic':77 'concern':53 'consid':59 'creat':181 'daemon':7 'dbus':70,162 'develop':93 'differ':95 'direct':37 'directori':127,169 'establish':73,120 'even':3 'file':137,184 'filesystem':159 'fltk':101 'framework':97 'gtk':98 'gui':68,85,96 'hardwar':39 'init':24,27,61 'kind':56 'land':66 'launch':63 'messag':153 'might':58 'name':131,179 'need':166,177 'obtain':142 'ordinari':158 'particular':84 'persist':64 'place':123 'possibl':118 'process':69 'protocol':78,112 'publish/subscribe':76,105 'qt':99 'receiv':6,152 'replac':175 'request':150 'run':13,147 'scheme':132 'sdl2':102 'secur':52 'servic':33 'simpl':172 'singl':47 'single-us':46 'socket':134,186 'standard':75,91,122,130 'start':4 'system':25,28,32,49 'talk':36 'temporari':136,183 'tool':17 'trust':31 'unless':40 'use':60,94,109,157 'user':48,65,80 'view':144 'without':165 'work':43 'would':114 'wxwidget':100 'yet':12"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/6933611"
    +editedAt: DateTimeImmutable @1708906606 {#5522
      date: 2024-02-26 01:16:46.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703816134 {#5523
      date: 2023-12-29 03:15:34.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    …systemd very much does use the init system to launch userland and GUI processes. That’s how GNOME works.\n
    \n
    Dbus is for interprocess communication. The fact that its primary use case is communication between desktop applications is hardly relevant to its design. I don’t see how GUI frameworks are at all relevant, or how it would be possible to create an interprocess communication mechanism that only worked with one GUI framework without some heroic levels of abstraction violation (which I would not put past Qt, but that’s another story).\n
    \n
    I don’t see why having an entire dbus daemon running in the background is better than having a cluttered /tmp or /run directory.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 4
  +score: 0
  +lastActive: DateTime @1703897438 {#5716
    date: 2023-12-30 01:50:38.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@Ramin_HAL9001@lemmy.ml"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@Ramin_HAL9001@lemmy.ml"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@Ramin_HAL9001@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5720 …}
  +nested: Doctrine\ORM\PersistentCollection {#5722 …}
  +votes: Doctrine\ORM\PersistentCollection {#5724 …}
  +reports: Doctrine\ORM\PersistentCollection {#5726 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5728 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5730 …}
  -id: 263629
  -bodyTs: "'/run':114 '/tmp':112 'abstract':78 'anoth':90 'applic':36 'background':105 'better':107 'case':31 'clutter':111 'communic':24,33,64 'creat':61 'daemon':101 'dbus':20,100 'design':42 'desktop':35 'directori':115 'entir':99 'fact':26 'framework':49,72 'gnome':18 'gui':13,48,71 'hard':38 'heroic':75 'init':7 'interprocess':23,63 'launch':10 'level':76 'mechan':65 'much':3 'one':70 'past':85 'possibl':59 'primari':29 'process':14 'put':84 'qt':86 'relev':39,53 'run':102 'see':46,95 'stori':91 'system':8 'systemd':1 'use':5,30 'userland':11 'violat':79 'without':73 'work':19,68 'would':57,82"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4973386"
  +editedAt: DateTimeImmutable @1709219663 {#5717
    date: 2024-02-29 16:14:23.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703897438 {#5718
    date: 2023-12-30 01:50:38.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 {#5719
  +user: Proxies\__CG__\App\Entity\User {#5299 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5524
    +user: Proxies\__CG__\App\Entity\User {#5525 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5267
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4042
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
          \n
          To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
          \n
          With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
          \n
          It’s a bit similar to the role of an intermediate representation in compilers.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 147
        +score: 0
        +lastActive: DateTime @1709401973 {#4051
          date: 2024-03-02 18:52:53.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4040 …}
        +nested: Doctrine\ORM\PersistentCollection {#4038 …}
        +votes: Doctrine\ORM\PersistentCollection {#4036 …}
        +reports: Doctrine\ORM\PersistentCollection {#4034 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
        -id: 260994
        -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285059"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810258 {#3983
          date: 2023-12-29 01:37:38.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4042}
      +body: """
        > modular daemons\n
        \n
        A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
        \n
        > It can even start the receiving daemon if it is not yet running.\n
        \n
        We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 7
      +score: 0
      +lastActive: DateTime @1703812179 {#5265
        date: 2023-12-29 02:09:39.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@cbarrick@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5268 …}
      +nested: Doctrine\ORM\PersistentCollection {#5270 …}
      +votes: Doctrine\ORM\PersistentCollection {#5272 …}
      +reports: Doctrine\ORM\PersistentCollection {#5274 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
      -id: 261055
      -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285454"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812179 {#5266
        date: 2023-12-29 02:09:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      > > It can even start the receiving daemon if it is not yet running.\n
      > \n
      > We have a tool for that, it’s called an init system.\n
      \n
      The init system is for trusted system services that can talk directly to hardware. Unless you are working on a single-user system with no security concerns of any kind, you might consider using init to launch persistent user land or GUI processes.\n
      \n
      DBus is for establishing a standard publish/subscribe communication protocol between user applications, and in particular, GUI applications. And because it is standard, app developers using different GUI frameworks (Gtk, Qt, WxWidgets, FLTK, SDL2) can all publish/subscribe to each other using a common protocol.\n
      \n
      It would be certainly be possible to establish a standard place in the /tmp directory and a standard naming scheme for sockets and temporary files so that applications can obtain a view of other running applications and request to receive message from other applications using ordinary filesystem APIs, but DBus does this without needing the /tmp directory. A few simple C APIs replace the need for naming and creating your temporary files and sockets.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 36
    +score: 0
    +lastActive: DateTime @1703816134 {#5521
      date: 2023-12-29 03:15:34.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5526 …}
    +nested: Doctrine\ORM\PersistentCollection {#5528 …}
    +votes: Doctrine\ORM\PersistentCollection {#5530 …}
    +reports: Doctrine\ORM\PersistentCollection {#5532 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5534 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5536 …}
    -id: 261205
    -bodyTs: "'/tmp':126,168 'api':160,174 'app':92 'applic':81,86,140,148,156 'c':173 'call':22 'certain':116 'common':111 'communic':77 'concern':53 'consid':59 'creat':181 'daemon':7 'dbus':70,162 'develop':93 'differ':95 'direct':37 'directori':127,169 'establish':73,120 'even':3 'file':137,184 'filesystem':159 'fltk':101 'framework':97 'gtk':98 'gui':68,85,96 'hardwar':39 'init':24,27,61 'kind':56 'land':66 'launch':63 'messag':153 'might':58 'name':131,179 'need':166,177 'obtain':142 'ordinari':158 'particular':84 'persist':64 'place':123 'possibl':118 'process':69 'protocol':78,112 'publish/subscribe':76,105 'qt':99 'receiv':6,152 'replac':175 'request':150 'run':13,147 'scheme':132 'sdl2':102 'secur':52 'servic':33 'simpl':172 'singl':47 'single-us':46 'socket':134,186 'standard':75,91,122,130 'start':4 'system':25,28,32,49 'talk':36 'temporari':136,183 'tool':17 'trust':31 'unless':40 'use':60,94,109,157 'user':48,65,80 'view':144 'without':165 'work':43 'would':114 'wxwidget':100 'yet':12"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/6933611"
    +editedAt: DateTimeImmutable @1708906606 {#5522
      date: 2024-02-26 01:16:46.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703816134 {#5523
      date: 2023-12-29 03:15:34.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    …systemd very much does use the init system to launch userland and GUI processes. That’s how GNOME works.\n
    \n
    Dbus is for interprocess communication. The fact that its primary use case is communication between desktop applications is hardly relevant to its design. I don’t see how GUI frameworks are at all relevant, or how it would be possible to create an interprocess communication mechanism that only worked with one GUI framework without some heroic levels of abstraction violation (which I would not put past Qt, but that’s another story).\n
    \n
    I don’t see why having an entire dbus daemon running in the background is better than having a cluttered /tmp or /run directory.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 4
  +score: 0
  +lastActive: DateTime @1703897438 {#5716
    date: 2023-12-30 01:50:38.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@Ramin_HAL9001@lemmy.ml"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@Ramin_HAL9001@lemmy.ml"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@Ramin_HAL9001@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5720 …}
  +nested: Doctrine\ORM\PersistentCollection {#5722 …}
  +votes: Doctrine\ORM\PersistentCollection {#5724 …}
  +reports: Doctrine\ORM\PersistentCollection {#5726 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5728 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5730 …}
  -id: 263629
  -bodyTs: "'/run':114 '/tmp':112 'abstract':78 'anoth':90 'applic':36 'background':105 'better':107 'case':31 'clutter':111 'communic':24,33,64 'creat':61 'daemon':101 'dbus':20,100 'design':42 'desktop':35 'directori':115 'entir':99 'fact':26 'framework':49,72 'gnome':18 'gui':13,48,71 'hard':38 'heroic':75 'init':7 'interprocess':23,63 'launch':10 'level':76 'mechan':65 'much':3 'one':70 'past':85 'possibl':59 'primari':29 'process':14 'put':84 'qt':86 'relev':39,53 'run':102 'see':46,95 'stori':91 'system':8 'systemd':1 'use':5,30 'userland':11 'violat':79 'without':73 'work':19,68 'would':57,82"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4973386"
  +editedAt: DateTimeImmutable @1709219663 {#5717
    date: 2024-02-29 16:14:23.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703897438 {#5718
    date: 2023-12-30 01:50:38.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 {#5540
  +user: Proxies\__CG__\App\Entity\User {#5541 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5267
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4042
      +user: App\Entity\User {#3991 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
        \n
        To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
        \n
        With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
        \n
        It’s a bit similar to the role of an intermediate representation in compilers.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 147
      +score: 0
      +lastActive: DateTime @1709401973 {#4051
        date: 2024-03-02 18:52:53.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4040 …}
      +nested: Doctrine\ORM\PersistentCollection {#4038 …}
      +votes: Doctrine\ORM\PersistentCollection {#4036 …}
      +reports: Doctrine\ORM\PersistentCollection {#4034 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
      -id: 260994
      -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285059"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810258 {#3983
        date: 2023-12-29 01:37:38.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      > modular daemons\n
      \n
      A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
      \n
      > It can even start the receiving daemon if it is not yet running.\n
      \n
      We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 7
    +score: 0
    +lastActive: DateTime @1703812179 {#5265
      date: 2023-12-29 02:09:39.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5268 …}
    +nested: Doctrine\ORM\PersistentCollection {#5270 …}
    +votes: Doctrine\ORM\PersistentCollection {#5272 …}
    +reports: Doctrine\ORM\PersistentCollection {#5274 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
    -id: 261055
    -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285454"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812179 {#5266
      date: 2023-12-29 02:09:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    “Bro just use sockets lol” completely misses the point. When you decide you want message based IPC, you need to then design and implement:\n
    \n
    - Message formatting\n
    - Service addressing\n
    - Data marshalling\n
    - Subscriptions and publishing\n
    - Method calling, marshalling of arguments and responses\n
    - Broadcast and 1:1 messaging\n
    \n
    And before you know it you’ve reimplemented dbus, but your solution is undocumented, full of bugs, has no library, no introspection, no debugging tools, can only be used from one language, and in general is most likely pure and complete garbage.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 107
  +score: 0
  +lastActive: DateTime @1703815905 {#5538
    date: 2023-12-29 03:11:45.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5542 …}
  +nested: Doctrine\ORM\PersistentCollection {#5544 …}
  +votes: Doctrine\ORM\PersistentCollection {#5546 …}
  +reports: Doctrine\ORM\PersistentCollection {#5548 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5550 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5552 …}
  -id: 261192
  -bodyTs: "'1':43,44 'address':28 'argument':38 'base':16 'bro':1 'broadcast':41 'bug':62 'call':35 'complet':6,86 'data':29 'dbus':54 'debug':69 'decid':12 'design':22 'format':26 'full':60 'garbag':87 'general':80 'implement':24 'introspect':67 'ipc':17 'know':49 'languag':77 'librari':65 'like':83 'lol':5 'marshal':30,36 'messag':15,25,45 'method':34 'miss':7 'need':19 'one':76 'point':9 'publish':33 'pure':84 'reimplement':53 'respons':40 'servic':27 'socket':4 'solut':57 'subscript':31 'tool':70 'undocu':59 'use':3,74 've':52 'want':14"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/5996231"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703815905 {#5539
    date: 2023-12-29 03:11: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
27 DENIED edit
App\Entity\EntryComment {#5540
  +user: Proxies\__CG__\App\Entity\User {#5541 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5267
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4042
      +user: App\Entity\User {#3991 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
        \n
        To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
        \n
        With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
        \n
        It’s a bit similar to the role of an intermediate representation in compilers.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 147
      +score: 0
      +lastActive: DateTime @1709401973 {#4051
        date: 2024-03-02 18:52:53.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4040 …}
      +nested: Doctrine\ORM\PersistentCollection {#4038 …}
      +votes: Doctrine\ORM\PersistentCollection {#4036 …}
      +reports: Doctrine\ORM\PersistentCollection {#4034 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
      -id: 260994
      -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285059"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810258 {#3983
        date: 2023-12-29 01:37:38.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      > modular daemons\n
      \n
      A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
      \n
      > It can even start the receiving daemon if it is not yet running.\n
      \n
      We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 7
    +score: 0
    +lastActive: DateTime @1703812179 {#5265
      date: 2023-12-29 02:09:39.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5268 …}
    +nested: Doctrine\ORM\PersistentCollection {#5270 …}
    +votes: Doctrine\ORM\PersistentCollection {#5272 …}
    +reports: Doctrine\ORM\PersistentCollection {#5274 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
    -id: 261055
    -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285454"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812179 {#5266
      date: 2023-12-29 02:09:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    “Bro just use sockets lol” completely misses the point. When you decide you want message based IPC, you need to then design and implement:\n
    \n
    - Message formatting\n
    - Service addressing\n
    - Data marshalling\n
    - Subscriptions and publishing\n
    - Method calling, marshalling of arguments and responses\n
    - Broadcast and 1:1 messaging\n
    \n
    And before you know it you’ve reimplemented dbus, but your solution is undocumented, full of bugs, has no library, no introspection, no debugging tools, can only be used from one language, and in general is most likely pure and complete garbage.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 107
  +score: 0
  +lastActive: DateTime @1703815905 {#5538
    date: 2023-12-29 03:11:45.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5542 …}
  +nested: Doctrine\ORM\PersistentCollection {#5544 …}
  +votes: Doctrine\ORM\PersistentCollection {#5546 …}
  +reports: Doctrine\ORM\PersistentCollection {#5548 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5550 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5552 …}
  -id: 261192
  -bodyTs: "'1':43,44 'address':28 'argument':38 'base':16 'bro':1 'broadcast':41 'bug':62 'call':35 'complet':6,86 'data':29 'dbus':54 'debug':69 'decid':12 'design':22 'format':26 'full':60 'garbag':87 'general':80 'implement':24 'introspect':67 'ipc':17 'know':49 'languag':77 'librari':65 'like':83 'lol':5 'marshal':30,36 'messag':15,25,45 'method':34 'miss':7 'need':19 'one':76 'point':9 'publish':33 'pure':84 'reimplement':53 'respons':40 'servic':27 'socket':4 'solut':57 'subscript':31 'tool':70 'undocu':59 'use':3,74 've':52 'want':14"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/5996231"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703815905 {#5539
    date: 2023-12-29 03:11: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
28 DENIED moderate
App\Entity\EntryComment {#5540
  +user: Proxies\__CG__\App\Entity\User {#5541 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5267
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4042
      +user: App\Entity\User {#3991 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
        \n
        To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
        \n
        With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
        \n
        It’s a bit similar to the role of an intermediate representation in compilers.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 147
      +score: 0
      +lastActive: DateTime @1709401973 {#4051
        date: 2024-03-02 18:52:53.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4040 …}
      +nested: Doctrine\ORM\PersistentCollection {#4038 …}
      +votes: Doctrine\ORM\PersistentCollection {#4036 …}
      +reports: Doctrine\ORM\PersistentCollection {#4034 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
      -id: 260994
      -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285059"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810258 {#3983
        date: 2023-12-29 01:37:38.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      > modular daemons\n
      \n
      A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
      \n
      > It can even start the receiving daemon if it is not yet running.\n
      \n
      We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 7
    +score: 0
    +lastActive: DateTime @1703812179 {#5265
      date: 2023-12-29 02:09:39.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5268 …}
    +nested: Doctrine\ORM\PersistentCollection {#5270 …}
    +votes: Doctrine\ORM\PersistentCollection {#5272 …}
    +reports: Doctrine\ORM\PersistentCollection {#5274 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
    -id: 261055
    -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285454"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812179 {#5266
      date: 2023-12-29 02:09:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    “Bro just use sockets lol” completely misses the point. When you decide you want message based IPC, you need to then design and implement:\n
    \n
    - Message formatting\n
    - Service addressing\n
    - Data marshalling\n
    - Subscriptions and publishing\n
    - Method calling, marshalling of arguments and responses\n
    - Broadcast and 1:1 messaging\n
    \n
    And before you know it you’ve reimplemented dbus, but your solution is undocumented, full of bugs, has no library, no introspection, no debugging tools, can only be used from one language, and in general is most likely pure and complete garbage.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 107
  +score: 0
  +lastActive: DateTime @1703815905 {#5538
    date: 2023-12-29 03:11:45.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5542 …}
  +nested: Doctrine\ORM\PersistentCollection {#5544 …}
  +votes: Doctrine\ORM\PersistentCollection {#5546 …}
  +reports: Doctrine\ORM\PersistentCollection {#5548 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5550 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5552 …}
  -id: 261192
  -bodyTs: "'1':43,44 'address':28 'argument':38 'base':16 'bro':1 'broadcast':41 'bug':62 'call':35 'complet':6,86 'data':29 'dbus':54 'debug':69 'decid':12 'design':22 'format':26 'full':60 'garbag':87 'general':80 'implement':24 'introspect':67 'ipc':17 'know':49 'languag':77 'librari':65 'like':83 'lol':5 'marshal':30,36 'messag':15,25,45 'method':34 'miss':7 'need':19 'one':76 'point':9 'publish':33 'pure':84 'reimplement':53 'respons':40 'servic':27 'socket':4 'solut':57 'subscript':31 'tool':70 'undocu':59 'use':3,74 've':52 'want':14"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/5996231"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703815905 {#5539
    date: 2023-12-29 03:11: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
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 {#5668
  +user: Proxies\__CG__\App\Entity\User {#5671 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5540
    +user: Proxies\__CG__\App\Entity\User {#5541 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5267
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4042
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
          \n
          To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
          \n
          With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
          \n
          It’s a bit similar to the role of an intermediate representation in compilers.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 147
        +score: 0
        +lastActive: DateTime @1709401973 {#4051
          date: 2024-03-02 18:52:53.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4040 …}
        +nested: Doctrine\ORM\PersistentCollection {#4038 …}
        +votes: Doctrine\ORM\PersistentCollection {#4036 …}
        +reports: Doctrine\ORM\PersistentCollection {#4034 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
        -id: 260994
        -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285059"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810258 {#3983
          date: 2023-12-29 01:37:38.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4042}
      +body: """
        > modular daemons\n
        \n
        A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
        \n
        > It can even start the receiving daemon if it is not yet running.\n
        \n
        We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 7
      +score: 0
      +lastActive: DateTime @1703812179 {#5265
        date: 2023-12-29 02:09:39.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@cbarrick@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5268 …}
      +nested: Doctrine\ORM\PersistentCollection {#5270 …}
      +votes: Doctrine\ORM\PersistentCollection {#5272 …}
      +reports: Doctrine\ORM\PersistentCollection {#5274 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
      -id: 261055
      -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285454"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812179 {#5266
        date: 2023-12-29 02:09:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      “Bro just use sockets lol” completely misses the point. When you decide you want message based IPC, you need to then design and implement:\n
      \n
      - Message formatting\n
      - Service addressing\n
      - Data marshalling\n
      - Subscriptions and publishing\n
      - Method calling, marshalling of arguments and responses\n
      - Broadcast and 1:1 messaging\n
      \n
      And before you know it you’ve reimplemented dbus, but your solution is undocumented, full of bugs, has no library, no introspection, no debugging tools, can only be used from one language, and in general is most likely pure and complete garbage.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 107
    +score: 0
    +lastActive: DateTime @1703815905 {#5538
      date: 2023-12-29 03:11:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5542 …}
    +nested: Doctrine\ORM\PersistentCollection {#5544 …}
    +votes: Doctrine\ORM\PersistentCollection {#5546 …}
    +reports: Doctrine\ORM\PersistentCollection {#5548 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5550 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5552 …}
    -id: 261192
    -bodyTs: "'1':43,44 'address':28 'argument':38 'base':16 'bro':1 'broadcast':41 'bug':62 'call':35 'complet':6,86 'data':29 'dbus':54 'debug':69 'decid':12 'design':22 'format':26 'full':60 'garbag':87 'general':80 'implement':24 'introspect':67 'ipc':17 'know':49 'languag':77 'librari':65 'like':83 'lol':5 'marshal':30,36 'messag':15,25,45 'method':34 'miss':7 'need':19 'one':76 'point':9 'publish':33 'pure':84 'reimplement':53 'respons':40 'servic':27 'socket':4 'solut':57 'subscript':31 'tool':70 'undocu':59 'use':3,74 've':52 'want':14"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5996231"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703815905 {#5539
      date: 2023-12-29 03:11:45.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: "Well said. There are so many details to making code work that can so often be avoided by using the right tooling. OP said it was harder to get started, which implies they did not handle the details and have code not actually robust to all kinds of edge cases. Maybe they don’t need it but they probably do."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703891935 {#5667
    date: 2023-12-30 00:18:55.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5675 …}
  +nested: Doctrine\ORM\PersistentCollection {#5677 …}
  +votes: Doctrine\ORM\PersistentCollection {#5673 …}
  +reports: Doctrine\ORM\PersistentCollection {#5679 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5681 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5683 …}
  -id: 263414
  -bodyTs: "'actual':43 'avoid':17 'case':50 'code':10,41 'detail':7,38 'edg':49 'get':29 'handl':36 'harder':27 'impli':32 'kind':47 'make':9 'mani':6 'mayb':51 'need':55 'often':15 'op':23 'probabl':59 'right':21 'robust':44 'said':2,24 'start':30 'tool':22 'use':19 'well':1 'work':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6947951"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703891935 {#5664
    date: 2023-12-30 00:18:55.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 {#5668
  +user: Proxies\__CG__\App\Entity\User {#5671 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5540
    +user: Proxies\__CG__\App\Entity\User {#5541 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5267
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4042
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
          \n
          To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
          \n
          With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
          \n
          It’s a bit similar to the role of an intermediate representation in compilers.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 147
        +score: 0
        +lastActive: DateTime @1709401973 {#4051
          date: 2024-03-02 18:52:53.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4040 …}
        +nested: Doctrine\ORM\PersistentCollection {#4038 …}
        +votes: Doctrine\ORM\PersistentCollection {#4036 …}
        +reports: Doctrine\ORM\PersistentCollection {#4034 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
        -id: 260994
        -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285059"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810258 {#3983
          date: 2023-12-29 01:37:38.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4042}
      +body: """
        > modular daemons\n
        \n
        A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
        \n
        > It can even start the receiving daemon if it is not yet running.\n
        \n
        We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 7
      +score: 0
      +lastActive: DateTime @1703812179 {#5265
        date: 2023-12-29 02:09:39.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@cbarrick@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5268 …}
      +nested: Doctrine\ORM\PersistentCollection {#5270 …}
      +votes: Doctrine\ORM\PersistentCollection {#5272 …}
      +reports: Doctrine\ORM\PersistentCollection {#5274 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
      -id: 261055
      -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285454"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812179 {#5266
        date: 2023-12-29 02:09:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      “Bro just use sockets lol” completely misses the point. When you decide you want message based IPC, you need to then design and implement:\n
      \n
      - Message formatting\n
      - Service addressing\n
      - Data marshalling\n
      - Subscriptions and publishing\n
      - Method calling, marshalling of arguments and responses\n
      - Broadcast and 1:1 messaging\n
      \n
      And before you know it you’ve reimplemented dbus, but your solution is undocumented, full of bugs, has no library, no introspection, no debugging tools, can only be used from one language, and in general is most likely pure and complete garbage.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 107
    +score: 0
    +lastActive: DateTime @1703815905 {#5538
      date: 2023-12-29 03:11:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5542 …}
    +nested: Doctrine\ORM\PersistentCollection {#5544 …}
    +votes: Doctrine\ORM\PersistentCollection {#5546 …}
    +reports: Doctrine\ORM\PersistentCollection {#5548 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5550 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5552 …}
    -id: 261192
    -bodyTs: "'1':43,44 'address':28 'argument':38 'base':16 'bro':1 'broadcast':41 'bug':62 'call':35 'complet':6,86 'data':29 'dbus':54 'debug':69 'decid':12 'design':22 'format':26 'full':60 'garbag':87 'general':80 'implement':24 'introspect':67 'ipc':17 'know':49 'languag':77 'librari':65 'like':83 'lol':5 'marshal':30,36 'messag':15,25,45 'method':34 'miss':7 'need':19 'one':76 'point':9 'publish':33 'pure':84 'reimplement':53 'respons':40 'servic':27 'socket':4 'solut':57 'subscript':31 'tool':70 'undocu':59 'use':3,74 've':52 'want':14"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5996231"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703815905 {#5539
      date: 2023-12-29 03:11:45.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: "Well said. There are so many details to making code work that can so often be avoided by using the right tooling. OP said it was harder to get started, which implies they did not handle the details and have code not actually robust to all kinds of edge cases. Maybe they don’t need it but they probably do."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703891935 {#5667
    date: 2023-12-30 00:18:55.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5675 …}
  +nested: Doctrine\ORM\PersistentCollection {#5677 …}
  +votes: Doctrine\ORM\PersistentCollection {#5673 …}
  +reports: Doctrine\ORM\PersistentCollection {#5679 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5681 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5683 …}
  -id: 263414
  -bodyTs: "'actual':43 'avoid':17 'case':50 'code':10,41 'detail':7,38 'edg':49 'get':29 'handl':36 'harder':27 'impli':32 'kind':47 'make':9 'mani':6 'mayb':51 'need':55 'often':15 'op':23 'probabl':59 'right':21 'robust':44 'said':2,24 'start':30 'tool':22 'use':19 'well':1 'work':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6947951"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703891935 {#5664
    date: 2023-12-30 00:18:55.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 {#5668
  +user: Proxies\__CG__\App\Entity\User {#5671 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5540
    +user: Proxies\__CG__\App\Entity\User {#5541 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5267
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4042
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
          \n
          To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
          \n
          With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
          \n
          It’s a bit similar to the role of an intermediate representation in compilers.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 147
        +score: 0
        +lastActive: DateTime @1709401973 {#4051
          date: 2024-03-02 18:52:53.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4040 …}
        +nested: Doctrine\ORM\PersistentCollection {#4038 …}
        +votes: Doctrine\ORM\PersistentCollection {#4036 …}
        +reports: Doctrine\ORM\PersistentCollection {#4034 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
        -id: 260994
        -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285059"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810258 {#3983
          date: 2023-12-29 01:37:38.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4042}
      +body: """
        > modular daemons\n
        \n
        A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
        \n
        > It can even start the receiving daemon if it is not yet running.\n
        \n
        We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 7
      +score: 0
      +lastActive: DateTime @1703812179 {#5265
        date: 2023-12-29 02:09:39.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@cbarrick@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5268 …}
      +nested: Doctrine\ORM\PersistentCollection {#5270 …}
      +votes: Doctrine\ORM\PersistentCollection {#5272 …}
      +reports: Doctrine\ORM\PersistentCollection {#5274 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
      -id: 261055
      -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285454"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812179 {#5266
        date: 2023-12-29 02:09:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      “Bro just use sockets lol” completely misses the point. When you decide you want message based IPC, you need to then design and implement:\n
      \n
      - Message formatting\n
      - Service addressing\n
      - Data marshalling\n
      - Subscriptions and publishing\n
      - Method calling, marshalling of arguments and responses\n
      - Broadcast and 1:1 messaging\n
      \n
      And before you know it you’ve reimplemented dbus, but your solution is undocumented, full of bugs, has no library, no introspection, no debugging tools, can only be used from one language, and in general is most likely pure and complete garbage.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 107
    +score: 0
    +lastActive: DateTime @1703815905 {#5538
      date: 2023-12-29 03:11:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5542 …}
    +nested: Doctrine\ORM\PersistentCollection {#5544 …}
    +votes: Doctrine\ORM\PersistentCollection {#5546 …}
    +reports: Doctrine\ORM\PersistentCollection {#5548 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5550 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5552 …}
    -id: 261192
    -bodyTs: "'1':43,44 'address':28 'argument':38 'base':16 'bro':1 'broadcast':41 'bug':62 'call':35 'complet':6,86 'data':29 'dbus':54 'debug':69 'decid':12 'design':22 'format':26 'full':60 'garbag':87 'general':80 'implement':24 'introspect':67 'ipc':17 'know':49 'languag':77 'librari':65 'like':83 'lol':5 'marshal':30,36 'messag':15,25,45 'method':34 'miss':7 'need':19 'one':76 'point':9 'publish':33 'pure':84 'reimplement':53 'respons':40 'servic':27 'socket':4 'solut':57 'subscript':31 'tool':70 'undocu':59 'use':3,74 've':52 'want':14"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5996231"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703815905 {#5539
      date: 2023-12-29 03:11:45.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: "Well said. There are so many details to making code work that can so often be avoided by using the right tooling. OP said it was harder to get started, which implies they did not handle the details and have code not actually robust to all kinds of edge cases. Maybe they don’t need it but they probably do."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703891935 {#5667
    date: 2023-12-30 00:18:55.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5675 …}
  +nested: Doctrine\ORM\PersistentCollection {#5677 …}
  +votes: Doctrine\ORM\PersistentCollection {#5673 …}
  +reports: Doctrine\ORM\PersistentCollection {#5679 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5681 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5683 …}
  -id: 263414
  -bodyTs: "'actual':43 'avoid':17 'case':50 'code':10,41 'detail':7,38 'edg':49 'get':29 'handl':36 'harder':27 'impli':32 'kind':47 'make':9 'mani':6 'mayb':51 'need':55 'often':15 'op':23 'probabl':59 'right':21 'robust':44 'said':2,24 'start':30 'tool':22 'use':19 'well':1 'work':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6947951"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703891935 {#5664
    date: 2023-12-30 00:18:55.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 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
34 DENIED moderate
App\Entity\EntryComment {#5688
  +user: Proxies\__CG__\App\Entity\User {#5299 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5540
    +user: Proxies\__CG__\App\Entity\User {#5541 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5267
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4042
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
          \n
          To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
          \n
          With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
          \n
          It’s a bit similar to the role of an intermediate representation in compilers.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 147
        +score: 0
        +lastActive: DateTime @1709401973 {#4051
          date: 2024-03-02 18:52:53.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4040 …}
        +nested: Doctrine\ORM\PersistentCollection {#4038 …}
        +votes: Doctrine\ORM\PersistentCollection {#4036 …}
        +reports: Doctrine\ORM\PersistentCollection {#4034 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
        -id: 260994
        -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285059"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810258 {#3983
          date: 2023-12-29 01:37:38.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4042}
      +body: """
        > modular daemons\n
        \n
        A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
        \n
        > It can even start the receiving daemon if it is not yet running.\n
        \n
        We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 7
      +score: 0
      +lastActive: DateTime @1703812179 {#5265
        date: 2023-12-29 02:09:39.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@cbarrick@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5268 …}
      +nested: Doctrine\ORM\PersistentCollection {#5270 …}
      +votes: Doctrine\ORM\PersistentCollection {#5272 …}
      +reports: Doctrine\ORM\PersistentCollection {#5274 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
      -id: 261055
      -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285454"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812179 {#5266
        date: 2023-12-29 02:09:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      “Bro just use sockets lol” completely misses the point. When you decide you want message based IPC, you need to then design and implement:\n
      \n
      - Message formatting\n
      - Service addressing\n
      - Data marshalling\n
      - Subscriptions and publishing\n
      - Method calling, marshalling of arguments and responses\n
      - Broadcast and 1:1 messaging\n
      \n
      And before you know it you’ve reimplemented dbus, but your solution is undocumented, full of bugs, has no library, no introspection, no debugging tools, can only be used from one language, and in general is most likely pure and complete garbage.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 107
    +score: 0
    +lastActive: DateTime @1703815905 {#5538
      date: 2023-12-29 03:11:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5542 …}
    +nested: Doctrine\ORM\PersistentCollection {#5544 …}
    +votes: Doctrine\ORM\PersistentCollection {#5546 …}
    +reports: Doctrine\ORM\PersistentCollection {#5548 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5550 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5552 …}
    -id: 261192
    -bodyTs: "'1':43,44 'address':28 'argument':38 'base':16 'bro':1 'broadcast':41 'bug':62 'call':35 'complet':6,86 'data':29 'dbus':54 'debug':69 'decid':12 'design':22 'format':26 'full':60 'garbag':87 'general':80 'implement':24 'introspect':67 'ipc':17 'know':49 'languag':77 'librari':65 'like':83 'lol':5 'marshal':30,36 'messag':15,25,45 'method':34 'miss':7 'need':19 'one':76 'point':9 'publish':33 'pure':84 'reimplement':53 'respons':40 'servic':27 'socket':4 'solut':57 'subscript':31 'tool':70 'undocu':59 'use':3,74 've':52 'want':14"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5996231"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703815905 {#5539
      date: 2023-12-29 03:11:45.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    > Message formatting\n
    \n
    still have to do that with dbus\n
    \n
    > Service addressing\n
    \n
    They’re Unix sockets, dude, they’re file paths in /run\n
    \n
    > Data marshalling\n
    \n
    Still have to do that with dbus, also that’s the same thing as message formatting\n
    \n
    > Pubsub\n
    \n
    Again, sockets. One application binds and many can connect (how often do you really need more than one application to respond to a method call? That’s a valid reason to use dbus in lieu of sockets, but how often do you need it?)\n
    \n
    > Method calling, marshalling of arguments and responses\n
    \n
    They’re called “unix doors”, and that’s the third time you’ve said marshalling. As for that, language agnostic data marshalling is kind of a solved problem. I’m personally a fan of msgpack but JSON works too if you want to maximize compatibility. Or XML if you really want to piss off the people who interact with your API.\n
    \n
    > Broadcast and 1:1 messaging\n
    \n
    Sockets and doors can only do 1:1, and that’s true enough, but it occurs to me that 99% of use cases don’t need that and thus don’t need dbus. dbus can still be used for those cases, but less load on dbus daemon = less load on system. Also you said that already with pubsub.\n
    \n
    As for that blob at the bottom, again, who said anything about there not being a language agnostic library? It’d be a lot of work to make one, sure, but that doesn’t mean it’s impossible. Besides, most of the work has been done for you in the form of language agnostic marshalling libraries which as you said are like 50% of the problem. The rest is just syscalls and minor protocol standardization (how to reference FDs passed through the door in the msgpack data etc.)\n
    \n
    And what I’ve just described isn’t a reimplementation of dbus without any of the good parts, it’s a reimplementation of dbus on top of the kernel instead of on top of a daemon that doesn’t need to be there.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 5
  +score: 0
  +lastActive: DateTime @1703896847 {#5685
    date: 2023-12-30 01:40:47.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5689 …}
  +nested: Doctrine\ORM\PersistentCollection {#5691 …}
  +votes: Doctrine\ORM\PersistentCollection {#5693 …}
  +reports: Doctrine\ORM\PersistentCollection {#5695 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5697 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5699 …}
  -id: 263613
  -bodyTs: "'/run':22 '1':156,157,165,166 '50':279 '99':178 'address':11 'agnost':112,234,270 'alreadi':214 'also':32,210 'anyth':227 'api':153 'applic':45,60 'argument':90 'besid':255 'bind':46 'blob':220 'bottom':223 'broadcast':154 'call':66,87,95 'case':181,199 'compat':137 'connect':50 'd':237 'daemon':205,340 'data':23,113,303 'dbus':9,31,74,191,192,204,316,328 'describ':310 'doesn':249,342 'done':262 'door':97,161,299 'dude':16 'enough':171 'etc':304 'fan':125 'fds':295 'file':19 'form':267 'format':2,40 'good':321 'imposs':254 'instead':334 'interact':150 'isn':311 'json':129 'kernel':333 'kind':116 'languag':111,233,269 'less':201,206 'librari':235,272 'lieu':76 'like':278 'load':202,207 'lot':240 'm':122 'make':244 'mani':48 'marshal':24,88,107,114,271 'maxim':136 'mean':251 'messag':1,39,158 'method':65,86 'minor':289 'msgpack':127,302 'need':56,84,184,190,344 'occur':174 'often':52,81 'one':44,59,245 'part':322 'pass':296 'path':20 'peopl':148 'person':123 'piss':145 'problem':120,282 'protocol':290 'pubsub':41,216 're':13,18,94 'realli':55,142 'reason':71 'refer':294 'reimplement':314,326 'respond':62 'respons':92 'rest':284 'said':106,212,226,276 'servic':10 'socket':15,43,78,159 'solv':119 'standard':291 'still':3,25,194 'sure':246 'syscal':287 'system':209 'thing':37 'third':102 'thus':187 'time':103 'top':330,337 'true':170 'unix':14,96 'use':73,180,196 'valid':70 've':105,308 'want':134,143 'without':317 'work':130,242,259 'xml':139"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4973298"
  +editedAt: DateTimeImmutable @1709222019 {#5686
    date: 2024-02-29 16:53:39.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703896847 {#5687
    date: 2023-12-30 01:40:47.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
35 DENIED edit
App\Entity\EntryComment {#5688
  +user: Proxies\__CG__\App\Entity\User {#5299 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5540
    +user: Proxies\__CG__\App\Entity\User {#5541 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5267
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4042
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
          \n
          To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
          \n
          With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
          \n
          It’s a bit similar to the role of an intermediate representation in compilers.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 147
        +score: 0
        +lastActive: DateTime @1709401973 {#4051
          date: 2024-03-02 18:52:53.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4040 …}
        +nested: Doctrine\ORM\PersistentCollection {#4038 …}
        +votes: Doctrine\ORM\PersistentCollection {#4036 …}
        +reports: Doctrine\ORM\PersistentCollection {#4034 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
        -id: 260994
        -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285059"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810258 {#3983
          date: 2023-12-29 01:37:38.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4042}
      +body: """
        > modular daemons\n
        \n
        A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
        \n
        > It can even start the receiving daemon if it is not yet running.\n
        \n
        We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 7
      +score: 0
      +lastActive: DateTime @1703812179 {#5265
        date: 2023-12-29 02:09:39.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@cbarrick@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5268 …}
      +nested: Doctrine\ORM\PersistentCollection {#5270 …}
      +votes: Doctrine\ORM\PersistentCollection {#5272 …}
      +reports: Doctrine\ORM\PersistentCollection {#5274 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
      -id: 261055
      -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285454"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812179 {#5266
        date: 2023-12-29 02:09:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      “Bro just use sockets lol” completely misses the point. When you decide you want message based IPC, you need to then design and implement:\n
      \n
      - Message formatting\n
      - Service addressing\n
      - Data marshalling\n
      - Subscriptions and publishing\n
      - Method calling, marshalling of arguments and responses\n
      - Broadcast and 1:1 messaging\n
      \n
      And before you know it you’ve reimplemented dbus, but your solution is undocumented, full of bugs, has no library, no introspection, no debugging tools, can only be used from one language, and in general is most likely pure and complete garbage.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 107
    +score: 0
    +lastActive: DateTime @1703815905 {#5538
      date: 2023-12-29 03:11:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5542 …}
    +nested: Doctrine\ORM\PersistentCollection {#5544 …}
    +votes: Doctrine\ORM\PersistentCollection {#5546 …}
    +reports: Doctrine\ORM\PersistentCollection {#5548 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5550 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5552 …}
    -id: 261192
    -bodyTs: "'1':43,44 'address':28 'argument':38 'base':16 'bro':1 'broadcast':41 'bug':62 'call':35 'complet':6,86 'data':29 'dbus':54 'debug':69 'decid':12 'design':22 'format':26 'full':60 'garbag':87 'general':80 'implement':24 'introspect':67 'ipc':17 'know':49 'languag':77 'librari':65 'like':83 'lol':5 'marshal':30,36 'messag':15,25,45 'method':34 'miss':7 'need':19 'one':76 'point':9 'publish':33 'pure':84 'reimplement':53 'respons':40 'servic':27 'socket':4 'solut':57 'subscript':31 'tool':70 'undocu':59 'use':3,74 've':52 'want':14"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5996231"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703815905 {#5539
      date: 2023-12-29 03:11:45.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    > Message formatting\n
    \n
    still have to do that with dbus\n
    \n
    > Service addressing\n
    \n
    They’re Unix sockets, dude, they’re file paths in /run\n
    \n
    > Data marshalling\n
    \n
    Still have to do that with dbus, also that’s the same thing as message formatting\n
    \n
    > Pubsub\n
    \n
    Again, sockets. One application binds and many can connect (how often do you really need more than one application to respond to a method call? That’s a valid reason to use dbus in lieu of sockets, but how often do you need it?)\n
    \n
    > Method calling, marshalling of arguments and responses\n
    \n
    They’re called “unix doors”, and that’s the third time you’ve said marshalling. As for that, language agnostic data marshalling is kind of a solved problem. I’m personally a fan of msgpack but JSON works too if you want to maximize compatibility. Or XML if you really want to piss off the people who interact with your API.\n
    \n
    > Broadcast and 1:1 messaging\n
    \n
    Sockets and doors can only do 1:1, and that’s true enough, but it occurs to me that 99% of use cases don’t need that and thus don’t need dbus. dbus can still be used for those cases, but less load on dbus daemon = less load on system. Also you said that already with pubsub.\n
    \n
    As for that blob at the bottom, again, who said anything about there not being a language agnostic library? It’d be a lot of work to make one, sure, but that doesn’t mean it’s impossible. Besides, most of the work has been done for you in the form of language agnostic marshalling libraries which as you said are like 50% of the problem. The rest is just syscalls and minor protocol standardization (how to reference FDs passed through the door in the msgpack data etc.)\n
    \n
    And what I’ve just described isn’t a reimplementation of dbus without any of the good parts, it’s a reimplementation of dbus on top of the kernel instead of on top of a daemon that doesn’t need to be there.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 5
  +score: 0
  +lastActive: DateTime @1703896847 {#5685
    date: 2023-12-30 01:40:47.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5689 …}
  +nested: Doctrine\ORM\PersistentCollection {#5691 …}
  +votes: Doctrine\ORM\PersistentCollection {#5693 …}
  +reports: Doctrine\ORM\PersistentCollection {#5695 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5697 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5699 …}
  -id: 263613
  -bodyTs: "'/run':22 '1':156,157,165,166 '50':279 '99':178 'address':11 'agnost':112,234,270 'alreadi':214 'also':32,210 'anyth':227 'api':153 'applic':45,60 'argument':90 'besid':255 'bind':46 'blob':220 'bottom':223 'broadcast':154 'call':66,87,95 'case':181,199 'compat':137 'connect':50 'd':237 'daemon':205,340 'data':23,113,303 'dbus':9,31,74,191,192,204,316,328 'describ':310 'doesn':249,342 'done':262 'door':97,161,299 'dude':16 'enough':171 'etc':304 'fan':125 'fds':295 'file':19 'form':267 'format':2,40 'good':321 'imposs':254 'instead':334 'interact':150 'isn':311 'json':129 'kernel':333 'kind':116 'languag':111,233,269 'less':201,206 'librari':235,272 'lieu':76 'like':278 'load':202,207 'lot':240 'm':122 'make':244 'mani':48 'marshal':24,88,107,114,271 'maxim':136 'mean':251 'messag':1,39,158 'method':65,86 'minor':289 'msgpack':127,302 'need':56,84,184,190,344 'occur':174 'often':52,81 'one':44,59,245 'part':322 'pass':296 'path':20 'peopl':148 'person':123 'piss':145 'problem':120,282 'protocol':290 'pubsub':41,216 're':13,18,94 'realli':55,142 'reason':71 'refer':294 'reimplement':314,326 'respond':62 'respons':92 'rest':284 'said':106,212,226,276 'servic':10 'socket':15,43,78,159 'solv':119 'standard':291 'still':3,25,194 'sure':246 'syscal':287 'system':209 'thing':37 'third':102 'thus':187 'time':103 'top':330,337 'true':170 'unix':14,96 'use':73,180,196 'valid':70 've':105,308 'want':134,143 'without':317 'work':130,242,259 'xml':139"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4973298"
  +editedAt: DateTimeImmutable @1709222019 {#5686
    date: 2024-02-29 16:53:39.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703896847 {#5687
    date: 2023-12-30 01:40:47.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
36 DENIED moderate
App\Entity\EntryComment {#5688
  +user: Proxies\__CG__\App\Entity\User {#5299 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5540
    +user: Proxies\__CG__\App\Entity\User {#5541 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5267
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4042
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
          \n
          To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
          \n
          With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
          \n
          It’s a bit similar to the role of an intermediate representation in compilers.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 147
        +score: 0
        +lastActive: DateTime @1709401973 {#4051
          date: 2024-03-02 18:52:53.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4040 …}
        +nested: Doctrine\ORM\PersistentCollection {#4038 …}
        +votes: Doctrine\ORM\PersistentCollection {#4036 …}
        +reports: Doctrine\ORM\PersistentCollection {#4034 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
        -id: 260994
        -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285059"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810258 {#3983
          date: 2023-12-29 01:37:38.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4042}
      +body: """
        > modular daemons\n
        \n
        A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
        \n
        > It can even start the receiving daemon if it is not yet running.\n
        \n
        We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 7
      +score: 0
      +lastActive: DateTime @1703812179 {#5265
        date: 2023-12-29 02:09:39.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@cbarrick@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5268 …}
      +nested: Doctrine\ORM\PersistentCollection {#5270 …}
      +votes: Doctrine\ORM\PersistentCollection {#5272 …}
      +reports: Doctrine\ORM\PersistentCollection {#5274 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
      -id: 261055
      -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285454"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812179 {#5266
        date: 2023-12-29 02:09:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      “Bro just use sockets lol” completely misses the point. When you decide you want message based IPC, you need to then design and implement:\n
      \n
      - Message formatting\n
      - Service addressing\n
      - Data marshalling\n
      - Subscriptions and publishing\n
      - Method calling, marshalling of arguments and responses\n
      - Broadcast and 1:1 messaging\n
      \n
      And before you know it you’ve reimplemented dbus, but your solution is undocumented, full of bugs, has no library, no introspection, no debugging tools, can only be used from one language, and in general is most likely pure and complete garbage.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 107
    +score: 0
    +lastActive: DateTime @1703815905 {#5538
      date: 2023-12-29 03:11:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5542 …}
    +nested: Doctrine\ORM\PersistentCollection {#5544 …}
    +votes: Doctrine\ORM\PersistentCollection {#5546 …}
    +reports: Doctrine\ORM\PersistentCollection {#5548 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5550 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5552 …}
    -id: 261192
    -bodyTs: "'1':43,44 'address':28 'argument':38 'base':16 'bro':1 'broadcast':41 'bug':62 'call':35 'complet':6,86 'data':29 'dbus':54 'debug':69 'decid':12 'design':22 'format':26 'full':60 'garbag':87 'general':80 'implement':24 'introspect':67 'ipc':17 'know':49 'languag':77 'librari':65 'like':83 'lol':5 'marshal':30,36 'messag':15,25,45 'method':34 'miss':7 'need':19 'one':76 'point':9 'publish':33 'pure':84 'reimplement':53 'respons':40 'servic':27 'socket':4 'solut':57 'subscript':31 'tool':70 'undocu':59 'use':3,74 've':52 'want':14"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5996231"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703815905 {#5539
      date: 2023-12-29 03:11:45.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    > Message formatting\n
    \n
    still have to do that with dbus\n
    \n
    > Service addressing\n
    \n
    They’re Unix sockets, dude, they’re file paths in /run\n
    \n
    > Data marshalling\n
    \n
    Still have to do that with dbus, also that’s the same thing as message formatting\n
    \n
    > Pubsub\n
    \n
    Again, sockets. One application binds and many can connect (how often do you really need more than one application to respond to a method call? That’s a valid reason to use dbus in lieu of sockets, but how often do you need it?)\n
    \n
    > Method calling, marshalling of arguments and responses\n
    \n
    They’re called “unix doors”, and that’s the third time you’ve said marshalling. As for that, language agnostic data marshalling is kind of a solved problem. I’m personally a fan of msgpack but JSON works too if you want to maximize compatibility. Or XML if you really want to piss off the people who interact with your API.\n
    \n
    > Broadcast and 1:1 messaging\n
    \n
    Sockets and doors can only do 1:1, and that’s true enough, but it occurs to me that 99% of use cases don’t need that and thus don’t need dbus. dbus can still be used for those cases, but less load on dbus daemon = less load on system. Also you said that already with pubsub.\n
    \n
    As for that blob at the bottom, again, who said anything about there not being a language agnostic library? It’d be a lot of work to make one, sure, but that doesn’t mean it’s impossible. Besides, most of the work has been done for you in the form of language agnostic marshalling libraries which as you said are like 50% of the problem. The rest is just syscalls and minor protocol standardization (how to reference FDs passed through the door in the msgpack data etc.)\n
    \n
    And what I’ve just described isn’t a reimplementation of dbus without any of the good parts, it’s a reimplementation of dbus on top of the kernel instead of on top of a daemon that doesn’t need to be there.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 5
  +score: 0
  +lastActive: DateTime @1703896847 {#5685
    date: 2023-12-30 01:40:47.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5689 …}
  +nested: Doctrine\ORM\PersistentCollection {#5691 …}
  +votes: Doctrine\ORM\PersistentCollection {#5693 …}
  +reports: Doctrine\ORM\PersistentCollection {#5695 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5697 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5699 …}
  -id: 263613
  -bodyTs: "'/run':22 '1':156,157,165,166 '50':279 '99':178 'address':11 'agnost':112,234,270 'alreadi':214 'also':32,210 'anyth':227 'api':153 'applic':45,60 'argument':90 'besid':255 'bind':46 'blob':220 'bottom':223 'broadcast':154 'call':66,87,95 'case':181,199 'compat':137 'connect':50 'd':237 'daemon':205,340 'data':23,113,303 'dbus':9,31,74,191,192,204,316,328 'describ':310 'doesn':249,342 'done':262 'door':97,161,299 'dude':16 'enough':171 'etc':304 'fan':125 'fds':295 'file':19 'form':267 'format':2,40 'good':321 'imposs':254 'instead':334 'interact':150 'isn':311 'json':129 'kernel':333 'kind':116 'languag':111,233,269 'less':201,206 'librari':235,272 'lieu':76 'like':278 'load':202,207 'lot':240 'm':122 'make':244 'mani':48 'marshal':24,88,107,114,271 'maxim':136 'mean':251 'messag':1,39,158 'method':65,86 'minor':289 'msgpack':127,302 'need':56,84,184,190,344 'occur':174 'often':52,81 'one':44,59,245 'part':322 'pass':296 'path':20 'peopl':148 'person':123 'piss':145 'problem':120,282 'protocol':290 'pubsub':41,216 're':13,18,94 'realli':55,142 'reason':71 'refer':294 'reimplement':314,326 'respond':62 'respons':92 'rest':284 'said':106,212,226,276 'servic':10 'socket':15,43,78,159 'solv':119 'standard':291 'still':3,25,194 'sure':246 'syscal':287 'system':209 'thing':37 'third':102 'thus':187 'time':103 'top':330,337 'true':170 'unix':14,96 'use':73,180,196 'valid':70 've':105,308 'want':134,143 'without':317 'work':130,242,259 'xml':139"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4973298"
  +editedAt: DateTimeImmutable @1709222019 {#5686
    date: 2024-02-29 16:53:39.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703896847 {#5687
    date: 2023-12-30 01:40:47.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
37 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
38 DENIED moderate
App\Entity\EntryComment {#5703
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5540
    +user: Proxies\__CG__\App\Entity\User {#5541 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5267
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4042
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
          \n
          To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
          \n
          With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
          \n
          It’s a bit similar to the role of an intermediate representation in compilers.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 147
        +score: 0
        +lastActive: DateTime @1709401973 {#4051
          date: 2024-03-02 18:52:53.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4040 …}
        +nested: Doctrine\ORM\PersistentCollection {#4038 …}
        +votes: Doctrine\ORM\PersistentCollection {#4036 …}
        +reports: Doctrine\ORM\PersistentCollection {#4034 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
        -id: 260994
        -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285059"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810258 {#3983
          date: 2023-12-29 01:37:38.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4042}
      +body: """
        > modular daemons\n
        \n
        A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
        \n
        > It can even start the receiving daemon if it is not yet running.\n
        \n
        We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 7
      +score: 0
      +lastActive: DateTime @1703812179 {#5265
        date: 2023-12-29 02:09:39.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@cbarrick@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5268 …}
      +nested: Doctrine\ORM\PersistentCollection {#5270 …}
      +votes: Doctrine\ORM\PersistentCollection {#5272 …}
      +reports: Doctrine\ORM\PersistentCollection {#5274 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
      -id: 261055
      -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285454"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812179 {#5266
        date: 2023-12-29 02:09:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      “Bro just use sockets lol” completely misses the point. When you decide you want message based IPC, you need to then design and implement:\n
      \n
      - Message formatting\n
      - Service addressing\n
      - Data marshalling\n
      - Subscriptions and publishing\n
      - Method calling, marshalling of arguments and responses\n
      - Broadcast and 1:1 messaging\n
      \n
      And before you know it you’ve reimplemented dbus, but your solution is undocumented, full of bugs, has no library, no introspection, no debugging tools, can only be used from one language, and in general is most likely pure and complete garbage.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 107
    +score: 0
    +lastActive: DateTime @1703815905 {#5538
      date: 2023-12-29 03:11:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5542 …}
    +nested: Doctrine\ORM\PersistentCollection {#5544 …}
    +votes: Doctrine\ORM\PersistentCollection {#5546 …}
    +reports: Doctrine\ORM\PersistentCollection {#5548 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5550 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5552 …}
    -id: 261192
    -bodyTs: "'1':43,44 'address':28 'argument':38 'base':16 'bro':1 'broadcast':41 'bug':62 'call':35 'complet':6,86 'data':29 'dbus':54 'debug':69 'decid':12 'design':22 'format':26 'full':60 'garbag':87 'general':80 'implement':24 'introspect':67 'ipc':17 'know':49 'languag':77 'librari':65 'like':83 'lol':5 'marshal':30,36 'messag':15,25,45 'method':34 'miss':7 'need':19 'one':76 'point':9 'publish':33 'pure':84 'reimplement':53 'respons':40 'servic':27 'socket':4 'solut':57 'subscript':31 'tool':70 'undocu':59 'use':3,74 've':52 'want':14"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5996231"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703815905 {#5539
      date: 2023-12-29 03:11:45.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: "You still have to do this with dbus"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703949710 {#5701
    date: 2023-12-30 16:21:50.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5704 …}
  +nested: Doctrine\ORM\PersistentCollection {#5706 …}
  +votes: Doctrine\ORM\PersistentCollection {#5708 …}
  +reports: Doctrine\ORM\PersistentCollection {#5710 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5712 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5714 …}
  -id: 264770
  -bodyTs: "'dbus':8 'still':2"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294323"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949710 {#5702
    date: 2023-12-30 16:21:50.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
39 DENIED edit
App\Entity\EntryComment {#5703
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5540
    +user: Proxies\__CG__\App\Entity\User {#5541 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5267
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4042
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
          \n
          To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
          \n
          With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
          \n
          It’s a bit similar to the role of an intermediate representation in compilers.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 147
        +score: 0
        +lastActive: DateTime @1709401973 {#4051
          date: 2024-03-02 18:52:53.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4040 …}
        +nested: Doctrine\ORM\PersistentCollection {#4038 …}
        +votes: Doctrine\ORM\PersistentCollection {#4036 …}
        +reports: Doctrine\ORM\PersistentCollection {#4034 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
        -id: 260994
        -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285059"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810258 {#3983
          date: 2023-12-29 01:37:38.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4042}
      +body: """
        > modular daemons\n
        \n
        A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
        \n
        > It can even start the receiving daemon if it is not yet running.\n
        \n
        We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 7
      +score: 0
      +lastActive: DateTime @1703812179 {#5265
        date: 2023-12-29 02:09:39.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@cbarrick@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5268 …}
      +nested: Doctrine\ORM\PersistentCollection {#5270 …}
      +votes: Doctrine\ORM\PersistentCollection {#5272 …}
      +reports: Doctrine\ORM\PersistentCollection {#5274 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
      -id: 261055
      -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285454"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812179 {#5266
        date: 2023-12-29 02:09:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      “Bro just use sockets lol” completely misses the point. When you decide you want message based IPC, you need to then design and implement:\n
      \n
      - Message formatting\n
      - Service addressing\n
      - Data marshalling\n
      - Subscriptions and publishing\n
      - Method calling, marshalling of arguments and responses\n
      - Broadcast and 1:1 messaging\n
      \n
      And before you know it you’ve reimplemented dbus, but your solution is undocumented, full of bugs, has no library, no introspection, no debugging tools, can only be used from one language, and in general is most likely pure and complete garbage.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 107
    +score: 0
    +lastActive: DateTime @1703815905 {#5538
      date: 2023-12-29 03:11:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5542 …}
    +nested: Doctrine\ORM\PersistentCollection {#5544 …}
    +votes: Doctrine\ORM\PersistentCollection {#5546 …}
    +reports: Doctrine\ORM\PersistentCollection {#5548 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5550 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5552 …}
    -id: 261192
    -bodyTs: "'1':43,44 'address':28 'argument':38 'base':16 'bro':1 'broadcast':41 'bug':62 'call':35 'complet':6,86 'data':29 'dbus':54 'debug':69 'decid':12 'design':22 'format':26 'full':60 'garbag':87 'general':80 'implement':24 'introspect':67 'ipc':17 'know':49 'languag':77 'librari':65 'like':83 'lol':5 'marshal':30,36 'messag':15,25,45 'method':34 'miss':7 'need':19 'one':76 'point':9 'publish':33 'pure':84 'reimplement':53 'respons':40 'servic':27 'socket':4 'solut':57 'subscript':31 'tool':70 'undocu':59 'use':3,74 've':52 'want':14"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5996231"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703815905 {#5539
      date: 2023-12-29 03:11:45.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: "You still have to do this with dbus"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703949710 {#5701
    date: 2023-12-30 16:21:50.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5704 …}
  +nested: Doctrine\ORM\PersistentCollection {#5706 …}
  +votes: Doctrine\ORM\PersistentCollection {#5708 …}
  +reports: Doctrine\ORM\PersistentCollection {#5710 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5712 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5714 …}
  -id: 264770
  -bodyTs: "'dbus':8 'still':2"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294323"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949710 {#5702
    date: 2023-12-30 16:21:50.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
40 DENIED moderate
App\Entity\EntryComment {#5703
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5540
    +user: Proxies\__CG__\App\Entity\User {#5541 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5267
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4042
        +user: App\Entity\User {#3991 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
          \n
          To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
          \n
          With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
          \n
          It’s a bit similar to the role of an intermediate representation in compilers.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 147
        +score: 0
        +lastActive: DateTime @1709401973 {#4051
          date: 2024-03-02 18:52:53.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4040 …}
        +nested: Doctrine\ORM\PersistentCollection {#4038 …}
        +votes: Doctrine\ORM\PersistentCollection {#4036 …}
        +reports: Doctrine\ORM\PersistentCollection {#4034 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
        -id: 260994
        -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285059"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810258 {#3983
          date: 2023-12-29 01:37:38.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4042}
      +body: """
        > modular daemons\n
        \n
        A message bus won’t magically remove the need for developers to sit down together and agree on how some API would work. And *not* having a message bus also doesn’t magically prevent you from allowing for alternative implementations. Pipewire is an alternative implementation of pulseaudio, and neither of those rely on dbus (pulse can optionally use dbus, but not for its core features). When using dbus, developers have to agree on which path the service owns and which methods it exposes. When using unix sockets, they have to agree where the socket lives and what data format it uses. It’s all the same.\n
        \n
        > It can even start the receiving daemon if it is not yet running.\n
        \n
        We have a tool for that, it’s called an init system. Init systems offer a large degree of control over daemons (centralized logging? making sure things are started in the correct order? letting the user disable and enable different daemons?). Dbus’ autostart mechanism is a poor substitute. Want to run daemons per-user instead of as root? Many init systems let you do that too (I know systemd and runit do).
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 7
      +score: 0
      +lastActive: DateTime @1703812179 {#5265
        date: 2023-12-29 02:09:39.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@cbarrick@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5268 …}
      +nested: Doctrine\ORM\PersistentCollection {#5270 …}
      +votes: Doctrine\ORM\PersistentCollection {#5272 …}
      +reports: Doctrine\ORM\PersistentCollection {#5274 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5276 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5278 …}
      -id: 261055
      -bodyTs: "'agre':19,74,93 'allow':39 'also':32 'altern':41,46 'api':23 'autostart':164 'bus':5,31 'call':130 'central':144 'control':141 'core':66 'correct':153 'daemon':2,115,143,162,173 'data':100 'dbus':56,61,70,163 'degre':139 'develop':13,71 'differ':161 'disabl':158 'doesn':33 'enabl':160 'even':111 'expos':85 'featur':67 'format':101 'implement':42,47 'init':132,134,182 'instead':177 'know':190 'larg':138 'let':155,184 'live':97 'log':145 'magic':8,35 'make':146 'mani':181 'mechan':165 'messag':4,30 'method':83 'modular':1 'need':11 'neither':51 'offer':136 'option':59 'order':154 'own':80 'path':77 'per':175 'per-us':174 'pipewir':43 'poor':168 'prevent':36 'puls':57 'pulseaudio':49 'receiv':114 'reli':54 'remov':9 'root':180 'run':121,172 'runit':193 'servic':79 'sit':15 'socket':89,96 'start':112,150 'substitut':169 'sure':147 'system':133,135,183 'systemd':191 'thing':148 'togeth':17 'tool':125 'unix':88 'use':60,69,87,103 'user':157,176 'want':170 'won':6 'work':25 'would':24 'yet':120"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285454"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812179 {#5266
        date: 2023-12-29 02:09:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4042}
    +body: """
      “Bro just use sockets lol” completely misses the point. When you decide you want message based IPC, you need to then design and implement:\n
      \n
      - Message formatting\n
      - Service addressing\n
      - Data marshalling\n
      - Subscriptions and publishing\n
      - Method calling, marshalling of arguments and responses\n
      - Broadcast and 1:1 messaging\n
      \n
      And before you know it you’ve reimplemented dbus, but your solution is undocumented, full of bugs, has no library, no introspection, no debugging tools, can only be used from one language, and in general is most likely pure and complete garbage.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 107
    +score: 0
    +lastActive: DateTime @1703815905 {#5538
      date: 2023-12-29 03:11:45.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@cbarrick@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5542 …}
    +nested: Doctrine\ORM\PersistentCollection {#5544 …}
    +votes: Doctrine\ORM\PersistentCollection {#5546 …}
    +reports: Doctrine\ORM\PersistentCollection {#5548 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5550 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5552 …}
    -id: 261192
    -bodyTs: "'1':43,44 'address':28 'argument':38 'base':16 'bro':1 'broadcast':41 'bug':62 'call':35 'complet':6,86 'data':29 'dbus':54 'debug':69 'decid':12 'design':22 'format':26 'full':60 'garbag':87 'general':80 'implement':24 'introspect':67 'ipc':17 'know':49 'languag':77 'librari':65 'like':83 'lol':5 'marshal':30,36 'messag':15,25,45 'method':34 'miss':7 'need':19 'one':76 'point':9 'publish':33 'pure':84 'reimplement':53 'respons':40 'servic':27 'socket':4 'solut':57 'subscript':31 'tool':70 'undocu':59 'use':3,74 've':52 'want':14"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5996231"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703815905 {#5539
      date: 2023-12-29 03:11:45.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: "You still have to do this with dbus"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703949710 {#5701
    date: 2023-12-30 16:21:50.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
    "@aport@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5704 …}
  +nested: Doctrine\ORM\PersistentCollection {#5706 …}
  +votes: Doctrine\ORM\PersistentCollection {#5708 …}
  +reports: Doctrine\ORM\PersistentCollection {#5710 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5712 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5714 …}
  -id: 264770
  -bodyTs: "'dbus':8 'still':2"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294323"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949710 {#5702
    date: 2023-12-30 16:21:50.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
41 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
42 DENIED moderate
App\Entity\EntryComment {#5282
  +user: Proxies\__CG__\App\Entity\User {#5283 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4042
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
      \n
      To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
      \n
      With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
      \n
      It’s a bit similar to the role of an intermediate representation in compilers.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 147
    +score: 0
    +lastActive: DateTime @1709401973 {#4051
      date: 2024-03-02 18:52:53.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4040 …}
    +nested: Doctrine\ORM\PersistentCollection {#4038 …}
    +votes: Doctrine\ORM\PersistentCollection {#4036 …}
    +reports: Doctrine\ORM\PersistentCollection {#4034 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
    -id: 260994
    -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285059"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810258 {#3983
      date: 2023-12-29 01:37:38.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    This reminds me of QT’s signal/slot system. I.e. instead of calling functions directly, you just emit a signal and then any number of functions may have the receiving slot enabled.\n
    \n
    Lot’s of similar systems in other frameworks too I’m sure.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703837452 {#5280
    date: 2023-12-29 09:10:52.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5284 …}
  +nested: Doctrine\ORM\PersistentCollection {#5286 …}
  +votes: Doctrine\ORM\PersistentCollection {#5288 …}
  +reports: Doctrine\ORM\PersistentCollection {#5290 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5292 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5294 …}
  -id: 261717
  -bodyTs: "'call':12 'direct':14 'emit':17 'enabl':31 'framework':39 'function':13,25 'i.e':9 'instead':10 'lot':32 'm':42 'may':26 'number':23 'qt':5 'receiv':29 'remind':2 'signal':19 'signal/slot':7 'similar':35 'slot':30 'sure':43 'system':8,36"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://sopuli.xyz/comment/5670510"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703837452 {#5281
    date: 2023-12-29 09:10: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
43 DENIED edit
App\Entity\EntryComment {#5282
  +user: Proxies\__CG__\App\Entity\User {#5283 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4042
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
      \n
      To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
      \n
      With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
      \n
      It’s a bit similar to the role of an intermediate representation in compilers.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 147
    +score: 0
    +lastActive: DateTime @1709401973 {#4051
      date: 2024-03-02 18:52:53.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4040 …}
    +nested: Doctrine\ORM\PersistentCollection {#4038 …}
    +votes: Doctrine\ORM\PersistentCollection {#4036 …}
    +reports: Doctrine\ORM\PersistentCollection {#4034 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
    -id: 260994
    -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285059"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810258 {#3983
      date: 2023-12-29 01:37:38.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    This reminds me of QT’s signal/slot system. I.e. instead of calling functions directly, you just emit a signal and then any number of functions may have the receiving slot enabled.\n
    \n
    Lot’s of similar systems in other frameworks too I’m sure.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703837452 {#5280
    date: 2023-12-29 09:10:52.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5284 …}
  +nested: Doctrine\ORM\PersistentCollection {#5286 …}
  +votes: Doctrine\ORM\PersistentCollection {#5288 …}
  +reports: Doctrine\ORM\PersistentCollection {#5290 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5292 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5294 …}
  -id: 261717
  -bodyTs: "'call':12 'direct':14 'emit':17 'enabl':31 'framework':39 'function':13,25 'i.e':9 'instead':10 'lot':32 'm':42 'may':26 'number':23 'qt':5 'receiv':29 'remind':2 'signal':19 'signal/slot':7 'similar':35 'slot':30 'sure':43 'system':8,36"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://sopuli.xyz/comment/5670510"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703837452 {#5281
    date: 2023-12-29 09:10: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
44 DENIED moderate
App\Entity\EntryComment {#5282
  +user: Proxies\__CG__\App\Entity\User {#5283 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4042
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
      \n
      To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
      \n
      With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
      \n
      It’s a bit similar to the role of an intermediate representation in compilers.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 147
    +score: 0
    +lastActive: DateTime @1709401973 {#4051
      date: 2024-03-02 18:52:53.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4040 …}
    +nested: Doctrine\ORM\PersistentCollection {#4038 …}
    +votes: Doctrine\ORM\PersistentCollection {#4036 …}
    +reports: Doctrine\ORM\PersistentCollection {#4034 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
    -id: 260994
    -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285059"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810258 {#3983
      date: 2023-12-29 01:37:38.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: """
    This reminds me of QT’s signal/slot system. I.e. instead of calling functions directly, you just emit a signal and then any number of functions may have the receiving slot enabled.\n
    \n
    Lot’s of similar systems in other frameworks too I’m sure.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703837452 {#5280
    date: 2023-12-29 09:10:52.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5284 …}
  +nested: Doctrine\ORM\PersistentCollection {#5286 …}
  +votes: Doctrine\ORM\PersistentCollection {#5288 …}
  +reports: Doctrine\ORM\PersistentCollection {#5290 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5292 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5294 …}
  -id: 261717
  -bodyTs: "'call':12 'direct':14 'emit':17 'enabl':31 'framework':39 'function':13,25 'i.e':9 'instead':10 'lot':32 'm':42 'may':26 'number':23 'qt':5 'receiv':29 'remind':2 'signal':19 'signal/slot':7 'similar':35 'slot':30 'sure':43 'system':8,36"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://sopuli.xyz/comment/5670510"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703837452 {#5281
    date: 2023-12-29 09:10: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
45 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
46 DENIED moderate
App\Entity\EntryComment {#5298
  +user: Proxies\__CG__\App\Entity\User {#5299 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4042
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
      \n
      To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
      \n
      With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
      \n
      It’s a bit similar to the role of an intermediate representation in compilers.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 147
    +score: 0
    +lastActive: DateTime @1709401973 {#4051
      date: 2024-03-02 18:52:53.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4040 …}
    +nested: Doctrine\ORM\PersistentCollection {#4038 …}
    +votes: Doctrine\ORM\PersistentCollection {#4036 …}
    +reports: Doctrine\ORM\PersistentCollection {#4034 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
    -id: 260994
    -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285059"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810258 {#3983
      date: 2023-12-29 01:37:38.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: "It occurs to me that sendmsg() is already kind of a standard, and the problem of drop in replacements could be solved by just making the replacement bind to the same file path and emulate the same protocol, and the problem of automatically starting the daemon could be handled by a systemd socket (or even inetd if you wanna go old school). The only advantage that I can see dbus really having over Unix sockets is allowing multiple programs to respond to the same message, which is a definite advantage but AFAIK not many things take advantage of that."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1703896135 {#5296
    date: 2023-12-30 01:28:55.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5300 …}
  +nested: Doctrine\ORM\PersistentCollection {#5302 …}
  +votes: Doctrine\ORM\PersistentCollection {#5304 …}
  +reports: Doctrine\ORM\PersistentCollection {#5306 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5308 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5310 …}
  -id: 263581
  -bodyTs: "'advantag':65,90,97 'afaik':92 'allow':77 'alreadi':8 'automat':43 'bind':28 'could':20,47 'daemon':46 'dbus':70 'definit':89 'drop':17 'emul':35 'even':55 'file':32 'go':60 'handl':49 'inetd':56 'kind':9 'make':25 'mani':94 'messag':85 'multipl':78 'occur':2 'old':61 'path':33 'problem':15,41 'program':79 'protocol':38 'realli':71 'replac':19,27 'respond':81 'school':62 'see':69 'sendmsg':6 'socket':53,75 'solv':22 'standard':12 'start':44 'systemd':52 'take':96 'thing':95 'unix':74 'wanna':59"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4973148"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703896135 {#5297
    date: 2023-12-30 01:28:55.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
47 DENIED edit
App\Entity\EntryComment {#5298
  +user: Proxies\__CG__\App\Entity\User {#5299 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4042
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
      \n
      To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
      \n
      With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
      \n
      It’s a bit similar to the role of an intermediate representation in compilers.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 147
    +score: 0
    +lastActive: DateTime @1709401973 {#4051
      date: 2024-03-02 18:52:53.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4040 …}
    +nested: Doctrine\ORM\PersistentCollection {#4038 …}
    +votes: Doctrine\ORM\PersistentCollection {#4036 …}
    +reports: Doctrine\ORM\PersistentCollection {#4034 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
    -id: 260994
    -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285059"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810258 {#3983
      date: 2023-12-29 01:37:38.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: "It occurs to me that sendmsg() is already kind of a standard, and the problem of drop in replacements could be solved by just making the replacement bind to the same file path and emulate the same protocol, and the problem of automatically starting the daemon could be handled by a systemd socket (or even inetd if you wanna go old school). The only advantage that I can see dbus really having over Unix sockets is allowing multiple programs to respond to the same message, which is a definite advantage but AFAIK not many things take advantage of that."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1703896135 {#5296
    date: 2023-12-30 01:28:55.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5300 …}
  +nested: Doctrine\ORM\PersistentCollection {#5302 …}
  +votes: Doctrine\ORM\PersistentCollection {#5304 …}
  +reports: Doctrine\ORM\PersistentCollection {#5306 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5308 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5310 …}
  -id: 263581
  -bodyTs: "'advantag':65,90,97 'afaik':92 'allow':77 'alreadi':8 'automat':43 'bind':28 'could':20,47 'daemon':46 'dbus':70 'definit':89 'drop':17 'emul':35 'even':55 'file':32 'go':60 'handl':49 'inetd':56 'kind':9 'make':25 'mani':94 'messag':85 'multipl':78 'occur':2 'old':61 'path':33 'problem':15,41 'program':79 'protocol':38 'realli':71 'replac':19,27 'respond':81 'school':62 'see':69 'sendmsg':6 'socket':53,75 'solv':22 'standard':12 'start':44 'systemd':52 'take':96 'thing':95 'unix':74 'wanna':59"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4973148"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703896135 {#5297
    date: 2023-12-30 01:28:55.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
48 DENIED moderate
App\Entity\EntryComment {#5298
  +user: Proxies\__CG__\App\Entity\User {#5299 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4042
    +user: App\Entity\User {#3991 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      With pipes/sockets, each program has to coordinate the establishment of the connection with the other program. This is especially problematic if you want to have modular daemons, e.g. to support drop-in replacements with alternative implementations, or if you have multiple programs that you need to communicate with (each with a potentially different protocol).\n
      \n
      To solve this problem, you want to standardize the connection establishment and message delivery, which is what dbus does.\n
      \n
      With dbus, you just write your message to the bus. Dbus will handle delivering the message to the right program. It can even start the receiving daemon if it is not yet running.\n
      \n
      It’s a bit similar to the role of an intermediate representation in compilers.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 147
    +score: 0
    +lastActive: DateTime @1709401973 {#4051
      date: 2024-03-02 18:52:53.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4040 …}
    +nested: Doctrine\ORM\PersistentCollection {#4038 …}
    +votes: Doctrine\ORM\PersistentCollection {#4036 …}
    +reports: Doctrine\ORM\PersistentCollection {#4034 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4002 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4006 …}
    -id: 260994
    -bodyTs: "'altern':36 'bit':111 'bus':84 'communic':48 'compil':121 'connect':12,65 'coordin':7 'daemon':27,101 'dbus':73,76,85 'deliv':88 'deliveri':69 'differ':54 'drop':32 'drop-in':31 'e.g':28 'especi':19 'establish':9,66 'even':97 'handl':87 'implement':37 'intermedi':118 'messag':68,81,90 'modular':26 'multipl':42 'need':46 'pipes/sockets':2 'potenti':53 'problem':59 'problemat':20 'program':4,16,43,94 'protocol':55 'receiv':100 'replac':34 'represent':119 'right':93 'role':115 'run':107 'similar':112 'solv':57 'standard':63 'start':98 'support':30 'want':23,61 'write':79 'yet':106"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285059"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810258 {#3983
      date: 2023-12-29 01:37:38.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4042}
  +body: "It occurs to me that sendmsg() is already kind of a standard, and the problem of drop in replacements could be solved by just making the replacement bind to the same file path and emulate the same protocol, and the problem of automatically starting the daemon could be handled by a systemd socket (or even inetd if you wanna go old school). The only advantage that I can see dbus really having over Unix sockets is allowing multiple programs to respond to the same message, which is a definite advantage but AFAIK not many things take advantage of that."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1703896135 {#5296
    date: 2023-12-30 01:28:55.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@cbarrick@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5300 …}
  +nested: Doctrine\ORM\PersistentCollection {#5302 …}
  +votes: Doctrine\ORM\PersistentCollection {#5304 …}
  +reports: Doctrine\ORM\PersistentCollection {#5306 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5308 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5310 …}
  -id: 263581
  -bodyTs: "'advantag':65,90,97 'afaik':92 'allow':77 'alreadi':8 'automat':43 'bind':28 'could':20,47 'daemon':46 'dbus':70 'definit':89 'drop':17 'emul':35 'even':55 'file':32 'go':60 'handl':49 'inetd':56 'kind':9 'make':25 'mani':94 'messag':85 'multipl':78 'occur':2 'old':61 'path':33 'problem':15,41 'program':79 'protocol':38 'realli':71 'replac':19,27 'respond':81 'school':62 'see':69 'sendmsg':6 'socket':53,75 'solv':22 'standard':12 'start':44 'systemd':52 'take':96 'thing':95 'unix':74 'wanna':59"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4973148"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703896135 {#5297
    date: 2023-12-30 01:28:55.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
49 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
50 DENIED moderate
App\Entity\EntryComment {#4088
  +user: App\Entity\User {#4072 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Easy… decoupling. You hit the pause button on your keyboard, it does not need to “know” (in code or compile time or at runtime) what your music player is, and it can still pause it. Similarly, you can write a new media player, and not have to convince 1000 different projects to support or implement your custom api. [en.m.wikipedia.org/wiki/Enterprise_service_bus](https://en.m.wikipedia.org/wiki/Enterprise_service_bus)"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 75
  +score: 0
  +lastActive: DateTime @1708906019 {#4094
    date: 2024-02-26 01:06:59.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4080 …}
  +nested: Doctrine\ORM\PersistentCollection {#4083 …}
  +votes: Doctrine\ORM\PersistentCollection {#4081 …}
  +reports: Doctrine\ORM\PersistentCollection {#4079 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4078 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4069 …}
  -id: 261059
  -bodyTs: "'/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':61 '1000':49 'api':58 'button':7 'code':18 'compil':20 'convinc':48 'custom':57 'decoupl':2 'differ':50 'easi':1 'en.m.wikipedia.org':60 'en.m.wikipedia.org/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':59 'hit':4 'implement':55 'keyboard':10 'know':16 'media':42 'music':27 'need':14 'new':41 'paus':6,34 'player':28,43 'project':51 'runtim':24 'similar':36 'still':33 'support':53 'time':21 'write':39"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.sdf.org/comment/6761932"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812333 {#4092
    date: 2023-12-29 02:12:13.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
51 DENIED edit
App\Entity\EntryComment {#4088
  +user: App\Entity\User {#4072 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Easy… decoupling. You hit the pause button on your keyboard, it does not need to “know” (in code or compile time or at runtime) what your music player is, and it can still pause it. Similarly, you can write a new media player, and not have to convince 1000 different projects to support or implement your custom api. [en.m.wikipedia.org/wiki/Enterprise_service_bus](https://en.m.wikipedia.org/wiki/Enterprise_service_bus)"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 75
  +score: 0
  +lastActive: DateTime @1708906019 {#4094
    date: 2024-02-26 01:06:59.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4080 …}
  +nested: Doctrine\ORM\PersistentCollection {#4083 …}
  +votes: Doctrine\ORM\PersistentCollection {#4081 …}
  +reports: Doctrine\ORM\PersistentCollection {#4079 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4078 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4069 …}
  -id: 261059
  -bodyTs: "'/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':61 '1000':49 'api':58 'button':7 'code':18 'compil':20 'convinc':48 'custom':57 'decoupl':2 'differ':50 'easi':1 'en.m.wikipedia.org':60 'en.m.wikipedia.org/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':59 'hit':4 'implement':55 'keyboard':10 'know':16 'media':42 'music':27 'need':14 'new':41 'paus':6,34 'player':28,43 'project':51 'runtim':24 'similar':36 'still':33 'support':53 'time':21 'write':39"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.sdf.org/comment/6761932"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812333 {#4092
    date: 2023-12-29 02:12:13.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
52 DENIED moderate
App\Entity\EntryComment {#4088
  +user: App\Entity\User {#4072 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Easy… decoupling. You hit the pause button on your keyboard, it does not need to “know” (in code or compile time or at runtime) what your music player is, and it can still pause it. Similarly, you can write a new media player, and not have to convince 1000 different projects to support or implement your custom api. [en.m.wikipedia.org/wiki/Enterprise_service_bus](https://en.m.wikipedia.org/wiki/Enterprise_service_bus)"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 75
  +score: 0
  +lastActive: DateTime @1708906019 {#4094
    date: 2024-02-26 01:06:59.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4080 …}
  +nested: Doctrine\ORM\PersistentCollection {#4083 …}
  +votes: Doctrine\ORM\PersistentCollection {#4081 …}
  +reports: Doctrine\ORM\PersistentCollection {#4079 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4078 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4069 …}
  -id: 261059
  -bodyTs: "'/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':61 '1000':49 'api':58 'button':7 'code':18 'compil':20 'convinc':48 'custom':57 'decoupl':2 'differ':50 'easi':1 'en.m.wikipedia.org':60 'en.m.wikipedia.org/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':59 'hit':4 'implement':55 'keyboard':10 'know':16 'media':42 'music':27 'need':14 'new':41 'paus':6,34 'player':28,43 'project':51 'runtim':24 'similar':36 'still':33 'support':53 'time':21 'write':39"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.sdf.org/comment/6761932"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812333 {#4092
    date: 2023-12-29 02:12:13.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
53 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
54 DENIED moderate
App\Entity\EntryComment {#5362
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4088
    +user: App\Entity\User {#4072 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "Easy… decoupling. You hit the pause button on your keyboard, it does not need to “know” (in code or compile time or at runtime) what your music player is, and it can still pause it. Similarly, you can write a new media player, and not have to convince 1000 different projects to support or implement your custom api. [en.m.wikipedia.org/wiki/Enterprise_service_bus](https://en.m.wikipedia.org/wiki/Enterprise_service_bus)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 75
    +score: 0
    +lastActive: DateTime @1708906019 {#4094
      date: 2024-02-26 01:06:59.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4080 …}
    +nested: Doctrine\ORM\PersistentCollection {#4083 …}
    +votes: Doctrine\ORM\PersistentCollection {#4081 …}
    +reports: Doctrine\ORM\PersistentCollection {#4079 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4078 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4069 …}
    -id: 261059
    -bodyTs: "'/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':61 '1000':49 'api':58 'button':7 'code':18 'compil':20 'convinc':48 'custom':57 'decoupl':2 'differ':50 'easi':1 'en.m.wikipedia.org':60 'en.m.wikipedia.org/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':59 'hit':4 'implement':55 'keyboard':10 'know':16 'media':42 'music':27 'need':14 'new':41 'paus':6,34 'player':28,43 'project':51 'runtim':24 'similar':36 'still':33 'support':53 'time':21 'write':39"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.sdf.org/comment/6761932"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812333 {#4092
      date: 2023-12-29 02:12:13.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4088}
  +body: "There’s nothing about dbus that makes decoupling easier, you can do it just as well with sockets. Pipewire and pulse both speak the same protocol, and they both rely on sockets, not dbus. The vast majority of the apps on my system don’t know or care that they’re speaking with pipewire instead of pulse. Read my comment here [lemmy.world/comment/6284859](https://lemmy.world/comment/6284859)"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1703812831 {#5360
    date: 2023-12-29 02:20:31.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@xia@lemmy.sdf.org"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5363 …}
  +nested: Doctrine\ORM\PersistentCollection {#5365 …}
  +votes: Doctrine\ORM\PersistentCollection {#5367 …}
  +reports: Doctrine\ORM\PersistentCollection {#5369 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5371 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5373 …}
  -id: 261078
  -bodyTs: "'/comment/6284859](https://lemmy.world/comment/6284859)':64 'app':40 'care':48 'comment':60 'dbus':5,34 'decoupl':8 'easier':9 'instead':55 'know':46 'lemmy.world':63 'lemmy.world/comment/6284859](https://lemmy.world/comment/6284859)':62 'major':37 'make':7 'noth':3 'pipewir':19,54 'protocol':26 'puls':21,57 're':51 'read':58 'reli':30 'socket':18,32 'speak':23,52 'system':43 'vast':36 'well':16"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285590"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812831 {#5361
    date: 2023-12-29 02:20:31.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
55 DENIED edit
App\Entity\EntryComment {#5362
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4088
    +user: App\Entity\User {#4072 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "Easy… decoupling. You hit the pause button on your keyboard, it does not need to “know” (in code or compile time or at runtime) what your music player is, and it can still pause it. Similarly, you can write a new media player, and not have to convince 1000 different projects to support or implement your custom api. [en.m.wikipedia.org/wiki/Enterprise_service_bus](https://en.m.wikipedia.org/wiki/Enterprise_service_bus)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 75
    +score: 0
    +lastActive: DateTime @1708906019 {#4094
      date: 2024-02-26 01:06:59.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4080 …}
    +nested: Doctrine\ORM\PersistentCollection {#4083 …}
    +votes: Doctrine\ORM\PersistentCollection {#4081 …}
    +reports: Doctrine\ORM\PersistentCollection {#4079 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4078 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4069 …}
    -id: 261059
    -bodyTs: "'/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':61 '1000':49 'api':58 'button':7 'code':18 'compil':20 'convinc':48 'custom':57 'decoupl':2 'differ':50 'easi':1 'en.m.wikipedia.org':60 'en.m.wikipedia.org/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':59 'hit':4 'implement':55 'keyboard':10 'know':16 'media':42 'music':27 'need':14 'new':41 'paus':6,34 'player':28,43 'project':51 'runtim':24 'similar':36 'still':33 'support':53 'time':21 'write':39"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.sdf.org/comment/6761932"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812333 {#4092
      date: 2023-12-29 02:12:13.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4088}
  +body: "There’s nothing about dbus that makes decoupling easier, you can do it just as well with sockets. Pipewire and pulse both speak the same protocol, and they both rely on sockets, not dbus. The vast majority of the apps on my system don’t know or care that they’re speaking with pipewire instead of pulse. Read my comment here [lemmy.world/comment/6284859](https://lemmy.world/comment/6284859)"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1703812831 {#5360
    date: 2023-12-29 02:20:31.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@xia@lemmy.sdf.org"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5363 …}
  +nested: Doctrine\ORM\PersistentCollection {#5365 …}
  +votes: Doctrine\ORM\PersistentCollection {#5367 …}
  +reports: Doctrine\ORM\PersistentCollection {#5369 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5371 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5373 …}
  -id: 261078
  -bodyTs: "'/comment/6284859](https://lemmy.world/comment/6284859)':64 'app':40 'care':48 'comment':60 'dbus':5,34 'decoupl':8 'easier':9 'instead':55 'know':46 'lemmy.world':63 'lemmy.world/comment/6284859](https://lemmy.world/comment/6284859)':62 'major':37 'make':7 'noth':3 'pipewir':19,54 'protocol':26 'puls':21,57 're':51 'read':58 'reli':30 'socket':18,32 'speak':23,52 'system':43 'vast':36 'well':16"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285590"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812831 {#5361
    date: 2023-12-29 02:20:31.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
56 DENIED moderate
App\Entity\EntryComment {#5362
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4088
    +user: App\Entity\User {#4072 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "Easy… decoupling. You hit the pause button on your keyboard, it does not need to “know” (in code or compile time or at runtime) what your music player is, and it can still pause it. Similarly, you can write a new media player, and not have to convince 1000 different projects to support or implement your custom api. [en.m.wikipedia.org/wiki/Enterprise_service_bus](https://en.m.wikipedia.org/wiki/Enterprise_service_bus)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 75
    +score: 0
    +lastActive: DateTime @1708906019 {#4094
      date: 2024-02-26 01:06:59.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4080 …}
    +nested: Doctrine\ORM\PersistentCollection {#4083 …}
    +votes: Doctrine\ORM\PersistentCollection {#4081 …}
    +reports: Doctrine\ORM\PersistentCollection {#4079 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4078 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4069 …}
    -id: 261059
    -bodyTs: "'/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':61 '1000':49 'api':58 'button':7 'code':18 'compil':20 'convinc':48 'custom':57 'decoupl':2 'differ':50 'easi':1 'en.m.wikipedia.org':60 'en.m.wikipedia.org/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':59 'hit':4 'implement':55 'keyboard':10 'know':16 'media':42 'music':27 'need':14 'new':41 'paus':6,34 'player':28,43 'project':51 'runtim':24 'similar':36 'still':33 'support':53 'time':21 'write':39"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.sdf.org/comment/6761932"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812333 {#4092
      date: 2023-12-29 02:12:13.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4088}
  +body: "There’s nothing about dbus that makes decoupling easier, you can do it just as well with sockets. Pipewire and pulse both speak the same protocol, and they both rely on sockets, not dbus. The vast majority of the apps on my system don’t know or care that they’re speaking with pipewire instead of pulse. Read my comment here [lemmy.world/comment/6284859](https://lemmy.world/comment/6284859)"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1703812831 {#5360
    date: 2023-12-29 02:20:31.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@xia@lemmy.sdf.org"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5363 …}
  +nested: Doctrine\ORM\PersistentCollection {#5365 …}
  +votes: Doctrine\ORM\PersistentCollection {#5367 …}
  +reports: Doctrine\ORM\PersistentCollection {#5369 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5371 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5373 …}
  -id: 261078
  -bodyTs: "'/comment/6284859](https://lemmy.world/comment/6284859)':64 'app':40 'care':48 'comment':60 'dbus':5,34 'decoupl':8 'easier':9 'instead':55 'know':46 'lemmy.world':63 'lemmy.world/comment/6284859](https://lemmy.world/comment/6284859)':62 'major':37 'make':7 'noth':3 'pipewir':19,54 'protocol':26 'puls':21,57 're':51 'read':58 'reli':30 'socket':18,32 'speak':23,52 'system':43 'vast':36 'well':16"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285590"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812831 {#5361
    date: 2023-12-29 02:20:31.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
57 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
58 DENIED moderate
App\Entity\EntryComment {#5602
  +user: App\Entity\User {#4072 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5362
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4088
      +user: App\Entity\User {#4072 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: "Easy… decoupling. You hit the pause button on your keyboard, it does not need to “know” (in code or compile time or at runtime) what your music player is, and it can still pause it. Similarly, you can write a new media player, and not have to convince 1000 different projects to support or implement your custom api. [en.m.wikipedia.org/wiki/Enterprise_service_bus](https://en.m.wikipedia.org/wiki/Enterprise_service_bus)"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 75
      +score: 0
      +lastActive: DateTime @1708906019 {#4094
        date: 2024-02-26 01:06:59.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4080 …}
      +nested: Doctrine\ORM\PersistentCollection {#4083 …}
      +votes: Doctrine\ORM\PersistentCollection {#4081 …}
      +reports: Doctrine\ORM\PersistentCollection {#4079 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4078 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4069 …}
      -id: 261059
      -bodyTs: "'/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':61 '1000':49 'api':58 'button':7 'code':18 'compil':20 'convinc':48 'custom':57 'decoupl':2 'differ':50 'easi':1 'en.m.wikipedia.org':60 'en.m.wikipedia.org/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':59 'hit':4 'implement':55 'keyboard':10 'know':16 'media':42 'music':27 'need':14 'new':41 'paus':6,34 'player':28,43 'project':51 'runtim':24 'similar':36 'still':33 'support':53 'time':21 'write':39"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.sdf.org/comment/6761932"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812333 {#4092
        date: 2023-12-29 02:12:13.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4088}
    +body: "There’s nothing about dbus that makes decoupling easier, you can do it just as well with sockets. Pipewire and pulse both speak the same protocol, and they both rely on sockets, not dbus. The vast majority of the apps on my system don’t know or care that they’re speaking with pipewire instead of pulse. Read my comment here [lemmy.world/comment/6284859](https://lemmy.world/comment/6284859)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703812831 {#5360
      date: 2023-12-29 02:20:31.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@xia@lemmy.sdf.org"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5363 …}
    +nested: Doctrine\ORM\PersistentCollection {#5365 …}
    +votes: Doctrine\ORM\PersistentCollection {#5367 …}
    +reports: Doctrine\ORM\PersistentCollection {#5369 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5371 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5373 …}
    -id: 261078
    -bodyTs: "'/comment/6284859](https://lemmy.world/comment/6284859)':64 'app':40 'care':48 'comment':60 'dbus':5,34 'decoupl':8 'easier':9 'instead':55 'know':46 'lemmy.world':63 'lemmy.world/comment/6284859](https://lemmy.world/comment/6284859)':62 'major':37 'make':7 'noth':3 'pipewir':19,54 'protocol':26 'puls':21,57 're':51 'read':58 'reli':30 'socket':18,32 'speak':23,52 'system':43 'vast':36 'well':16"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285590"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812831 {#5361
      date: 2023-12-29 02:20:31.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4088}
  +body: """
    Did you read more than the first two words of my post? [wiki.archlinux.org/title/MPRIS](https://wiki.archlinux.org/title/MPRIS)\n
    \n
    Also, that same logic would “prove” that p2p has no value b/c you can do just as well with fixed servers and http.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 49
  +score: 0
  +lastActive: DateTime @1703816456 {#5600
    date: 2023-12-29 03:20:56.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@xia@lemmy.sdf.org"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5603 …}
  +nested: Doctrine\ORM\PersistentCollection {#5605 …}
  +votes: Doctrine\ORM\PersistentCollection {#5607 …}
  +reports: Doctrine\ORM\PersistentCollection {#5609 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5611 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5613 …}
  -id: 261216
  -bodyTs: "'/title/mpris](https://wiki.archlinux.org/title/mpris)':15 'also':16 'b/c':27 'first':7 'fix':35 'http':38 'logic':19 'p2p':23 'post':12 'prove':21 'read':3 'server':36 'two':8 'valu':26 'well':33 'wiki.archlinux.org':14 'wiki.archlinux.org/title/mpris](https://wiki.archlinux.org/title/mpris)':13 'word':9 'would':20"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.sdf.org/comment/6763062"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703816456 {#5601
    date: 2023-12-29 03:20:56.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
59 DENIED edit
App\Entity\EntryComment {#5602
  +user: App\Entity\User {#4072 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5362
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4088
      +user: App\Entity\User {#4072 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: "Easy… decoupling. You hit the pause button on your keyboard, it does not need to “know” (in code or compile time or at runtime) what your music player is, and it can still pause it. Similarly, you can write a new media player, and not have to convince 1000 different projects to support or implement your custom api. [en.m.wikipedia.org/wiki/Enterprise_service_bus](https://en.m.wikipedia.org/wiki/Enterprise_service_bus)"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 75
      +score: 0
      +lastActive: DateTime @1708906019 {#4094
        date: 2024-02-26 01:06:59.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4080 …}
      +nested: Doctrine\ORM\PersistentCollection {#4083 …}
      +votes: Doctrine\ORM\PersistentCollection {#4081 …}
      +reports: Doctrine\ORM\PersistentCollection {#4079 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4078 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4069 …}
      -id: 261059
      -bodyTs: "'/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':61 '1000':49 'api':58 'button':7 'code':18 'compil':20 'convinc':48 'custom':57 'decoupl':2 'differ':50 'easi':1 'en.m.wikipedia.org':60 'en.m.wikipedia.org/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':59 'hit':4 'implement':55 'keyboard':10 'know':16 'media':42 'music':27 'need':14 'new':41 'paus':6,34 'player':28,43 'project':51 'runtim':24 'similar':36 'still':33 'support':53 'time':21 'write':39"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.sdf.org/comment/6761932"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812333 {#4092
        date: 2023-12-29 02:12:13.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4088}
    +body: "There’s nothing about dbus that makes decoupling easier, you can do it just as well with sockets. Pipewire and pulse both speak the same protocol, and they both rely on sockets, not dbus. The vast majority of the apps on my system don’t know or care that they’re speaking with pipewire instead of pulse. Read my comment here [lemmy.world/comment/6284859](https://lemmy.world/comment/6284859)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703812831 {#5360
      date: 2023-12-29 02:20:31.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@xia@lemmy.sdf.org"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5363 …}
    +nested: Doctrine\ORM\PersistentCollection {#5365 …}
    +votes: Doctrine\ORM\PersistentCollection {#5367 …}
    +reports: Doctrine\ORM\PersistentCollection {#5369 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5371 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5373 …}
    -id: 261078
    -bodyTs: "'/comment/6284859](https://lemmy.world/comment/6284859)':64 'app':40 'care':48 'comment':60 'dbus':5,34 'decoupl':8 'easier':9 'instead':55 'know':46 'lemmy.world':63 'lemmy.world/comment/6284859](https://lemmy.world/comment/6284859)':62 'major':37 'make':7 'noth':3 'pipewir':19,54 'protocol':26 'puls':21,57 're':51 'read':58 'reli':30 'socket':18,32 'speak':23,52 'system':43 'vast':36 'well':16"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285590"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812831 {#5361
      date: 2023-12-29 02:20:31.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4088}
  +body: """
    Did you read more than the first two words of my post? [wiki.archlinux.org/title/MPRIS](https://wiki.archlinux.org/title/MPRIS)\n
    \n
    Also, that same logic would “prove” that p2p has no value b/c you can do just as well with fixed servers and http.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 49
  +score: 0
  +lastActive: DateTime @1703816456 {#5600
    date: 2023-12-29 03:20:56.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@xia@lemmy.sdf.org"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5603 …}
  +nested: Doctrine\ORM\PersistentCollection {#5605 …}
  +votes: Doctrine\ORM\PersistentCollection {#5607 …}
  +reports: Doctrine\ORM\PersistentCollection {#5609 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5611 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5613 …}
  -id: 261216
  -bodyTs: "'/title/mpris](https://wiki.archlinux.org/title/mpris)':15 'also':16 'b/c':27 'first':7 'fix':35 'http':38 'logic':19 'p2p':23 'post':12 'prove':21 'read':3 'server':36 'two':8 'valu':26 'well':33 'wiki.archlinux.org':14 'wiki.archlinux.org/title/mpris](https://wiki.archlinux.org/title/mpris)':13 'word':9 'would':20"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.sdf.org/comment/6763062"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703816456 {#5601
    date: 2023-12-29 03:20:56.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
60 DENIED moderate
App\Entity\EntryComment {#5602
  +user: App\Entity\User {#4072 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5362
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4088
      +user: App\Entity\User {#4072 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: "Easy… decoupling. You hit the pause button on your keyboard, it does not need to “know” (in code or compile time or at runtime) what your music player is, and it can still pause it. Similarly, you can write a new media player, and not have to convince 1000 different projects to support or implement your custom api. [en.m.wikipedia.org/wiki/Enterprise_service_bus](https://en.m.wikipedia.org/wiki/Enterprise_service_bus)"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 75
      +score: 0
      +lastActive: DateTime @1708906019 {#4094
        date: 2024-02-26 01:06:59.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4080 …}
      +nested: Doctrine\ORM\PersistentCollection {#4083 …}
      +votes: Doctrine\ORM\PersistentCollection {#4081 …}
      +reports: Doctrine\ORM\PersistentCollection {#4079 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4078 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4069 …}
      -id: 261059
      -bodyTs: "'/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':61 '1000':49 'api':58 'button':7 'code':18 'compil':20 'convinc':48 'custom':57 'decoupl':2 'differ':50 'easi':1 'en.m.wikipedia.org':60 'en.m.wikipedia.org/wiki/enterprise_service_bus](https://en.m.wikipedia.org/wiki/enterprise_service_bus)':59 'hit':4 'implement':55 'keyboard':10 'know':16 'media':42 'music':27 'need':14 'new':41 'paus':6,34 'player':28,43 'project':51 'runtim':24 'similar':36 'still':33 'support':53 'time':21 'write':39"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.sdf.org/comment/6761932"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812333 {#4092
        date: 2023-12-29 02:12:13.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4088}
    +body: "There’s nothing about dbus that makes decoupling easier, you can do it just as well with sockets. Pipewire and pulse both speak the same protocol, and they both rely on sockets, not dbus. The vast majority of the apps on my system don’t know or care that they’re speaking with pipewire instead of pulse. Read my comment here [lemmy.world/comment/6284859](https://lemmy.world/comment/6284859)"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703812831 {#5360
      date: 2023-12-29 02:20:31.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@xia@lemmy.sdf.org"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5363 …}
    +nested: Doctrine\ORM\PersistentCollection {#5365 …}
    +votes: Doctrine\ORM\PersistentCollection {#5367 …}
    +reports: Doctrine\ORM\PersistentCollection {#5369 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5371 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5373 …}
    -id: 261078
    -bodyTs: "'/comment/6284859](https://lemmy.world/comment/6284859)':64 'app':40 'care':48 'comment':60 'dbus':5,34 'decoupl':8 'easier':9 'instead':55 'know':46 'lemmy.world':63 'lemmy.world/comment/6284859](https://lemmy.world/comment/6284859)':62 'major':37 'make':7 'noth':3 'pipewir':19,54 'protocol':26 'puls':21,57 're':51 'read':58 'reli':30 'socket':18,32 'speak':23,52 'system':43 'vast':36 'well':16"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285590"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812831 {#5361
      date: 2023-12-29 02:20:31.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4088}
  +body: """
    Did you read more than the first two words of my post? [wiki.archlinux.org/title/MPRIS](https://wiki.archlinux.org/title/MPRIS)\n
    \n
    Also, that same logic would “prove” that p2p has no value b/c you can do just as well with fixed servers and http.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 49
  +score: 0
  +lastActive: DateTime @1703816456 {#5600
    date: 2023-12-29 03:20:56.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@xia@lemmy.sdf.org"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5603 …}
  +nested: Doctrine\ORM\PersistentCollection {#5605 …}
  +votes: Doctrine\ORM\PersistentCollection {#5607 …}
  +reports: Doctrine\ORM\PersistentCollection {#5609 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5611 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5613 …}
  -id: 261216
  -bodyTs: "'/title/mpris](https://wiki.archlinux.org/title/mpris)':15 'also':16 'b/c':27 'first':7 'fix':35 'http':38 'logic':19 'p2p':23 'post':12 'prove':21 'read':3 'server':36 'two':8 'valu':26 'well':33 'wiki.archlinux.org':14 'wiki.archlinux.org/title/mpris](https://wiki.archlinux.org/title/mpris)':13 'word':9 'would':20"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.sdf.org/comment/6763062"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703816456 {#5601
    date: 2023-12-29 03:20:56.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
61 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
62 DENIED moderate
App\Entity\EntryComment {#4155
  +user: App\Entity\User {#4168 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    Because this\n
    \n
    ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
    \n
    potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
    \n
    ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 74
  +score: 0
  +lastActive: DateTime @1709402231 {#4150
    date: 2024-03-02 18:57:11.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4156 …}
  +nested: Doctrine\ORM\PersistentCollection {#4158 …}
  +votes: Doctrine\ORM\PersistentCollection {#4160 …}
  +reports: Doctrine\ORM\PersistentCollection {#4162 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
  -id: 261008
  -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285161"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810658 {#4151
    date: 2023-12-29 01:44:18.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
63 DENIED edit
App\Entity\EntryComment {#4155
  +user: App\Entity\User {#4168 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    Because this\n
    \n
    ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
    \n
    potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
    \n
    ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 74
  +score: 0
  +lastActive: DateTime @1709402231 {#4150
    date: 2024-03-02 18:57:11.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4156 …}
  +nested: Doctrine\ORM\PersistentCollection {#4158 …}
  +votes: Doctrine\ORM\PersistentCollection {#4160 …}
  +reports: Doctrine\ORM\PersistentCollection {#4162 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
  -id: 261008
  -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285161"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810658 {#4151
    date: 2023-12-29 01:44:18.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
64 DENIED moderate
App\Entity\EntryComment {#4155
  +user: App\Entity\User {#4168 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    Because this\n
    \n
    ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
    \n
    potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
    \n
    ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 74
  +score: 0
  +lastActive: DateTime @1709402231 {#4150
    date: 2024-03-02 18:57:11.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4156 …}
  +nested: Doctrine\ORM\PersistentCollection {#4158 …}
  +votes: Doctrine\ORM\PersistentCollection {#4160 …}
  +reports: Doctrine\ORM\PersistentCollection {#4162 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
  -id: 261008
  -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285161"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810658 {#4151
    date: 2023-12-29 01:44:18.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
65 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
66 DENIED moderate
App\Entity\EntryComment {#5314
  +user: Proxies\__CG__\App\Entity\User {#5315 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4155
    +user: App\Entity\User {#4168 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Because this\n
      \n
      ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
      \n
      potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
      \n
      ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 74
    +score: 0
    +lastActive: DateTime @1709402231 {#4150
      date: 2024-03-02 18:57:11.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4156 …}
    +nested: Doctrine\ORM\PersistentCollection {#4158 …}
    +votes: Doctrine\ORM\PersistentCollection {#4160 …}
    +reports: Doctrine\ORM\PersistentCollection {#4162 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
    -id: 261008
    -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285161"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810658 {#4151
      date: 2023-12-29 01:44:18.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4155}
  +body: "/thread"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 13
  +score: 0
  +lastActive: DateTime @1703821218 {#5312
    date: 2023-12-29 04:40:18.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5316 …}
  +nested: Doctrine\ORM\PersistentCollection {#5318 …}
  +votes: Doctrine\ORM\PersistentCollection {#5320 …}
  +reports: Doctrine\ORM\PersistentCollection {#5322 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5324 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5326 …}
  -id: 261354
  -bodyTs: "'/thread':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6934617"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703821218 {#5313
    date: 2023-12-29 04:40:18.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
67 DENIED edit
App\Entity\EntryComment {#5314
  +user: Proxies\__CG__\App\Entity\User {#5315 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4155
    +user: App\Entity\User {#4168 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Because this\n
      \n
      ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
      \n
      potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
      \n
      ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 74
    +score: 0
    +lastActive: DateTime @1709402231 {#4150
      date: 2024-03-02 18:57:11.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4156 …}
    +nested: Doctrine\ORM\PersistentCollection {#4158 …}
    +votes: Doctrine\ORM\PersistentCollection {#4160 …}
    +reports: Doctrine\ORM\PersistentCollection {#4162 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
    -id: 261008
    -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285161"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810658 {#4151
      date: 2023-12-29 01:44:18.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4155}
  +body: "/thread"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 13
  +score: 0
  +lastActive: DateTime @1703821218 {#5312
    date: 2023-12-29 04:40:18.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5316 …}
  +nested: Doctrine\ORM\PersistentCollection {#5318 …}
  +votes: Doctrine\ORM\PersistentCollection {#5320 …}
  +reports: Doctrine\ORM\PersistentCollection {#5322 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5324 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5326 …}
  -id: 261354
  -bodyTs: "'/thread':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6934617"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703821218 {#5313
    date: 2023-12-29 04:40:18.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
68 DENIED moderate
App\Entity\EntryComment {#5314
  +user: Proxies\__CG__\App\Entity\User {#5315 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4155
    +user: App\Entity\User {#4168 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Because this\n
      \n
      ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
      \n
      potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
      \n
      ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 74
    +score: 0
    +lastActive: DateTime @1709402231 {#4150
      date: 2024-03-02 18:57:11.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4156 …}
    +nested: Doctrine\ORM\PersistentCollection {#4158 …}
    +votes: Doctrine\ORM\PersistentCollection {#4160 …}
    +reports: Doctrine\ORM\PersistentCollection {#4162 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
    -id: 261008
    -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285161"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810658 {#4151
      date: 2023-12-29 01:44:18.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4155}
  +body: "/thread"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 13
  +score: 0
  +lastActive: DateTime @1703821218 {#5312
    date: 2023-12-29 04:40:18.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5316 …}
  +nested: Doctrine\ORM\PersistentCollection {#5318 …}
  +votes: Doctrine\ORM\PersistentCollection {#5320 …}
  +reports: Doctrine\ORM\PersistentCollection {#5322 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5324 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5326 …}
  -id: 261354
  -bodyTs: "'/thread':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6934617"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703821218 {#5313
    date: 2023-12-29 04:40:18.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
69 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
70 DENIED moderate
App\Entity\EntryComment {#5617
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5314
    +user: Proxies\__CG__\App\Entity\User {#5315 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4155
      +user: App\Entity\User {#4168 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Because this\n
        \n
        ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
        \n
        potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
        \n
        ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 74
      +score: 0
      +lastActive: DateTime @1709402231 {#4150
        date: 2024-03-02 18:57:11.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4156 …}
      +nested: Doctrine\ORM\PersistentCollection {#4158 …}
      +votes: Doctrine\ORM\PersistentCollection {#4160 …}
      +reports: Doctrine\ORM\PersistentCollection {#4162 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
      -id: 261008
      -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285161"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810658 {#4151
        date: 2023-12-29 01:44:18.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4155}
    +body: "/thread"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 13
    +score: 0
    +lastActive: DateTime @1703821218 {#5312
      date: 2023-12-29 04:40:18.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@grue@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5316 …}
    +nested: Doctrine\ORM\PersistentCollection {#5318 …}
    +votes: Doctrine\ORM\PersistentCollection {#5320 …}
    +reports: Doctrine\ORM\PersistentCollection {#5322 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5324 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5326 …}
    -id: 261354
    -bodyTs: "'/thread':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/6934617"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703821218 {#5313
      date: 2023-12-29 04:40:18.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4155}
  +body: "But it’s not. Why is it better to have a different degree distribution?"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1703949791 {#5615
    date: 2023-12-30 16:23:11.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
    "@Atemu@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5618 …}
  +nested: Doctrine\ORM\PersistentCollection {#5620 …}
  +votes: Doctrine\ORM\PersistentCollection {#5622 …}
  +reports: Doctrine\ORM\PersistentCollection {#5624 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5626 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5628 …}
  -id: 264771
  -bodyTs: "'better':8 'degre':13 'differ':12 'distribut':14"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294341"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949791 {#5616
    date: 2023-12-30 16:23:11.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
71 DENIED edit
App\Entity\EntryComment {#5617
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5314
    +user: Proxies\__CG__\App\Entity\User {#5315 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4155
      +user: App\Entity\User {#4168 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Because this\n
        \n
        ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
        \n
        potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
        \n
        ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 74
      +score: 0
      +lastActive: DateTime @1709402231 {#4150
        date: 2024-03-02 18:57:11.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4156 …}
      +nested: Doctrine\ORM\PersistentCollection {#4158 …}
      +votes: Doctrine\ORM\PersistentCollection {#4160 …}
      +reports: Doctrine\ORM\PersistentCollection {#4162 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
      -id: 261008
      -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285161"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810658 {#4151
        date: 2023-12-29 01:44:18.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4155}
    +body: "/thread"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 13
    +score: 0
    +lastActive: DateTime @1703821218 {#5312
      date: 2023-12-29 04:40:18.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@grue@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5316 …}
    +nested: Doctrine\ORM\PersistentCollection {#5318 …}
    +votes: Doctrine\ORM\PersistentCollection {#5320 …}
    +reports: Doctrine\ORM\PersistentCollection {#5322 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5324 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5326 …}
    -id: 261354
    -bodyTs: "'/thread':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/6934617"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703821218 {#5313
      date: 2023-12-29 04:40:18.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4155}
  +body: "But it’s not. Why is it better to have a different degree distribution?"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1703949791 {#5615
    date: 2023-12-30 16:23:11.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
    "@Atemu@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5618 …}
  +nested: Doctrine\ORM\PersistentCollection {#5620 …}
  +votes: Doctrine\ORM\PersistentCollection {#5622 …}
  +reports: Doctrine\ORM\PersistentCollection {#5624 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5626 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5628 …}
  -id: 264771
  -bodyTs: "'better':8 'degre':13 'differ':12 'distribut':14"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294341"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949791 {#5616
    date: 2023-12-30 16:23:11.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
72 DENIED moderate
App\Entity\EntryComment {#5617
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5314
    +user: Proxies\__CG__\App\Entity\User {#5315 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4155
      +user: App\Entity\User {#4168 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Because this\n
        \n
        ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
        \n
        potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
        \n
        ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 74
      +score: 0
      +lastActive: DateTime @1709402231 {#4150
        date: 2024-03-02 18:57:11.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4156 …}
      +nested: Doctrine\ORM\PersistentCollection {#4158 …}
      +votes: Doctrine\ORM\PersistentCollection {#4160 …}
      +reports: Doctrine\ORM\PersistentCollection {#4162 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
      -id: 261008
      -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285161"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810658 {#4151
        date: 2023-12-29 01:44:18.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4155}
    +body: "/thread"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 13
    +score: 0
    +lastActive: DateTime @1703821218 {#5312
      date: 2023-12-29 04:40:18.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@grue@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5316 …}
    +nested: Doctrine\ORM\PersistentCollection {#5318 …}
    +votes: Doctrine\ORM\PersistentCollection {#5320 …}
    +reports: Doctrine\ORM\PersistentCollection {#5322 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5324 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5326 …}
    -id: 261354
    -bodyTs: "'/thread':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/6934617"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703821218 {#5313
      date: 2023-12-29 04:40:18.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4155}
  +body: "But it’s not. Why is it better to have a different degree distribution?"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1703949791 {#5615
    date: 2023-12-30 16:23:11.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
    "@Atemu@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5618 …}
  +nested: Doctrine\ORM\PersistentCollection {#5620 …}
  +votes: Doctrine\ORM\PersistentCollection {#5622 …}
  +reports: Doctrine\ORM\PersistentCollection {#5624 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5626 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5628 …}
  -id: 264771
  -bodyTs: "'better':8 'degre':13 'differ':12 'distribut':14"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294341"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949791 {#5616
    date: 2023-12-30 16:23:11.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
73 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
74 DENIED moderate
App\Entity\EntryComment {#5331
  +user: Proxies\__CG__\App\Entity\User {#5299 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4155
    +user: App\Entity\User {#4168 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Because this\n
      \n
      ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
      \n
      potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
      \n
      ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 74
    +score: 0
    +lastActive: DateTime @1709402231 {#4150
      date: 2024-03-02 18:57:11.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4156 …}
    +nested: Doctrine\ORM\PersistentCollection {#4158 …}
    +votes: Doctrine\ORM\PersistentCollection {#4160 …}
    +reports: Doctrine\ORM\PersistentCollection {#4162 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
    -id: 261008
    -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285161"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810658 {#4151
      date: 2023-12-29 01:44:18.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4155}
  +body: """
    …and why is that…better?\n
    \n
    Programs still have to be written to accommodate the specific protocol that the program on the other end speaks, and dbus paths could translate pretty directly to subdirectories of /run. All adding dbus in the middle does is add a daemon where there doesn’t need to be one and force the programs to talk to each other through that rather than directly to each other
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 3
  +score: 0
  +lastActive: DateTime @1703895743 {#5328
    date: 2023-12-30 01:22:23.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5332 …}
  +nested: Doctrine\ORM\PersistentCollection {#5334 …}
  +votes: Doctrine\ORM\PersistentCollection {#5336 …}
  +reports: Doctrine\ORM\PersistentCollection {#5338 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5340 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5342 …}
  -id: 263564
  -bodyTs: "'/run':35 'accommod':13 'ad':37 'add':44 'better':5 'could':28 'daemon':46 'dbus':26,38 'direct':31,68 'doesn':49 'end':23 'forc':56 'middl':41 'need':51 'one':54 'path':27 'pretti':30 'program':6,19,58 'protocol':16 'rather':66 'speak':24 'specif':15 'still':7 'subdirectori':33 'talk':60 'translat':29 'written':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4973062"
  +editedAt: DateTimeImmutable @1709212314 {#5329
    date: 2024-02-29 14:11:54.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703895743 {#5330
    date: 2023-12-30 01:22:23.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
75 DENIED edit
App\Entity\EntryComment {#5331
  +user: Proxies\__CG__\App\Entity\User {#5299 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4155
    +user: App\Entity\User {#4168 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Because this\n
      \n
      ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
      \n
      potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
      \n
      ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 74
    +score: 0
    +lastActive: DateTime @1709402231 {#4150
      date: 2024-03-02 18:57:11.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4156 …}
    +nested: Doctrine\ORM\PersistentCollection {#4158 …}
    +votes: Doctrine\ORM\PersistentCollection {#4160 …}
    +reports: Doctrine\ORM\PersistentCollection {#4162 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
    -id: 261008
    -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285161"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810658 {#4151
      date: 2023-12-29 01:44:18.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4155}
  +body: """
    …and why is that…better?\n
    \n
    Programs still have to be written to accommodate the specific protocol that the program on the other end speaks, and dbus paths could translate pretty directly to subdirectories of /run. All adding dbus in the middle does is add a daemon where there doesn’t need to be one and force the programs to talk to each other through that rather than directly to each other
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 3
  +score: 0
  +lastActive: DateTime @1703895743 {#5328
    date: 2023-12-30 01:22:23.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5332 …}
  +nested: Doctrine\ORM\PersistentCollection {#5334 …}
  +votes: Doctrine\ORM\PersistentCollection {#5336 …}
  +reports: Doctrine\ORM\PersistentCollection {#5338 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5340 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5342 …}
  -id: 263564
  -bodyTs: "'/run':35 'accommod':13 'ad':37 'add':44 'better':5 'could':28 'daemon':46 'dbus':26,38 'direct':31,68 'doesn':49 'end':23 'forc':56 'middl':41 'need':51 'one':54 'path':27 'pretti':30 'program':6,19,58 'protocol':16 'rather':66 'speak':24 'specif':15 'still':7 'subdirectori':33 'talk':60 'translat':29 'written':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4973062"
  +editedAt: DateTimeImmutable @1709212314 {#5329
    date: 2024-02-29 14:11:54.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703895743 {#5330
    date: 2023-12-30 01:22:23.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
76 DENIED moderate
App\Entity\EntryComment {#5331
  +user: Proxies\__CG__\App\Entity\User {#5299 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4155
    +user: App\Entity\User {#4168 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Because this\n
      \n
      ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
      \n
      potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
      \n
      ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 74
    +score: 0
    +lastActive: DateTime @1709402231 {#4150
      date: 2024-03-02 18:57:11.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4156 …}
    +nested: Doctrine\ORM\PersistentCollection {#4158 …}
    +votes: Doctrine\ORM\PersistentCollection {#4160 …}
    +reports: Doctrine\ORM\PersistentCollection {#4162 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
    -id: 261008
    -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285161"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810658 {#4151
      date: 2023-12-29 01:44:18.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4155}
  +body: """
    …and why is that…better?\n
    \n
    Programs still have to be written to accommodate the specific protocol that the program on the other end speaks, and dbus paths could translate pretty directly to subdirectories of /run. All adding dbus in the middle does is add a daemon where there doesn’t need to be one and force the programs to talk to each other through that rather than directly to each other
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 3
  +score: 0
  +lastActive: DateTime @1703895743 {#5328
    date: 2023-12-30 01:22:23.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5332 …}
  +nested: Doctrine\ORM\PersistentCollection {#5334 …}
  +votes: Doctrine\ORM\PersistentCollection {#5336 …}
  +reports: Doctrine\ORM\PersistentCollection {#5338 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5340 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5342 …}
  -id: 263564
  -bodyTs: "'/run':35 'accommod':13 'ad':37 'add':44 'better':5 'could':28 'daemon':46 'dbus':26,38 'direct':31,68 'doesn':49 'end':23 'forc':56 'middl':41 'need':51 'one':54 'path':27 'pretti':30 'program':6,19,58 'protocol':16 'rather':66 'speak':24 'specif':15 'still':7 'subdirectori':33 'talk':60 'translat':29 'written':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4973062"
  +editedAt: DateTimeImmutable @1709212314 {#5329
    date: 2024-02-29 14:11:54.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703895743 {#5330
    date: 2023-12-30 01:22:23.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
77 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
78 DENIED moderate
App\Entity\EntryComment {#5648
  +user: Proxies\__CG__\App\Entity\User {#5649 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5331
    +user: Proxies\__CG__\App\Entity\User {#5299 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4155
      +user: App\Entity\User {#4168 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Because this\n
        \n
        ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
        \n
        potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
        \n
        ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 74
      +score: 0
      +lastActive: DateTime @1709402231 {#4150
        date: 2024-03-02 18:57:11.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4156 …}
      +nested: Doctrine\ORM\PersistentCollection {#4158 …}
      +votes: Doctrine\ORM\PersistentCollection {#4160 …}
      +reports: Doctrine\ORM\PersistentCollection {#4162 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
      -id: 261008
      -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285161"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810658 {#4151
        date: 2023-12-29 01:44:18.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4155}
    +body: """
      …and why is that…better?\n
      \n
      Programs still have to be written to accommodate the specific protocol that the program on the other end speaks, and dbus paths could translate pretty directly to subdirectories of /run. All adding dbus in the middle does is add a daemon where there doesn’t need to be one and force the programs to talk to each other through that rather than directly to each other
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1703895743 {#5328
      date: 2023-12-30 01:22:23.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@grue@lemmy.world"
      "@renzev@lemmy.world"
      "@grue@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5332 …}
    +nested: Doctrine\ORM\PersistentCollection {#5334 …}
    +votes: Doctrine\ORM\PersistentCollection {#5336 …}
    +reports: Doctrine\ORM\PersistentCollection {#5338 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5340 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5342 …}
    -id: 263564
    -bodyTs: "'/run':35 'accommod':13 'ad':37 'add':44 'better':5 'could':28 'daemon':46 'dbus':26,38 'direct':31,68 'doesn':49 'end':23 'forc':56 'middl':41 'need':51 'one':54 'path':27 'pretti':30 'program':6,19,58 'protocol':16 'rather':66 'speak':24 'specif':15 'still':7 'subdirectori':33 'talk':60 'translat':29 'written':11"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://pawb.social/comment/4973062"
    +editedAt: DateTimeImmutable @1709212314 {#5329
      date: 2024-02-29 14:11:54.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703895743 {#5330
      date: 2023-12-30 01:22:23.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4155}
  +body: "No, you see, additional layers of abstraction are **always a good thing.** Haven’t you been paying attention to the latest software memes? /s"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1703926975 {#5646
    date: 2023-12-30 10:02:55.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
    "@AVincentInSpace@pawb.social"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5650 …}
  +nested: Doctrine\ORM\PersistentCollection {#5652 …}
  +votes: Doctrine\ORM\PersistentCollection {#5654 …}
  +reports: Doctrine\ORM\PersistentCollection {#5656 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5658 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5660 …}
  -id: 264315
  -bodyTs: "'/s':24 'abstract':7 'addit':4 'alway':9 'attent':18 'good':11 'haven':13 'latest':21 'layer':5 'meme':23 'pay':17 'see':3 'softwar':22 'thing':12"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6302770"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703926975 {#5647
    date: 2023-12-30 10:02:55.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
79 DENIED edit
App\Entity\EntryComment {#5648
  +user: Proxies\__CG__\App\Entity\User {#5649 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5331
    +user: Proxies\__CG__\App\Entity\User {#5299 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4155
      +user: App\Entity\User {#4168 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Because this\n
        \n
        ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
        \n
        potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
        \n
        ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 74
      +score: 0
      +lastActive: DateTime @1709402231 {#4150
        date: 2024-03-02 18:57:11.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4156 …}
      +nested: Doctrine\ORM\PersistentCollection {#4158 …}
      +votes: Doctrine\ORM\PersistentCollection {#4160 …}
      +reports: Doctrine\ORM\PersistentCollection {#4162 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
      -id: 261008
      -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285161"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810658 {#4151
        date: 2023-12-29 01:44:18.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4155}
    +body: """
      …and why is that…better?\n
      \n
      Programs still have to be written to accommodate the specific protocol that the program on the other end speaks, and dbus paths could translate pretty directly to subdirectories of /run. All adding dbus in the middle does is add a daemon where there doesn’t need to be one and force the programs to talk to each other through that rather than directly to each other
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1703895743 {#5328
      date: 2023-12-30 01:22:23.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@grue@lemmy.world"
      "@renzev@lemmy.world"
      "@grue@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5332 …}
    +nested: Doctrine\ORM\PersistentCollection {#5334 …}
    +votes: Doctrine\ORM\PersistentCollection {#5336 …}
    +reports: Doctrine\ORM\PersistentCollection {#5338 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5340 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5342 …}
    -id: 263564
    -bodyTs: "'/run':35 'accommod':13 'ad':37 'add':44 'better':5 'could':28 'daemon':46 'dbus':26,38 'direct':31,68 'doesn':49 'end':23 'forc':56 'middl':41 'need':51 'one':54 'path':27 'pretti':30 'program':6,19,58 'protocol':16 'rather':66 'speak':24 'specif':15 'still':7 'subdirectori':33 'talk':60 'translat':29 'written':11"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://pawb.social/comment/4973062"
    +editedAt: DateTimeImmutable @1709212314 {#5329
      date: 2024-02-29 14:11:54.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703895743 {#5330
      date: 2023-12-30 01:22:23.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4155}
  +body: "No, you see, additional layers of abstraction are **always a good thing.** Haven’t you been paying attention to the latest software memes? /s"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1703926975 {#5646
    date: 2023-12-30 10:02:55.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
    "@AVincentInSpace@pawb.social"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5650 …}
  +nested: Doctrine\ORM\PersistentCollection {#5652 …}
  +votes: Doctrine\ORM\PersistentCollection {#5654 …}
  +reports: Doctrine\ORM\PersistentCollection {#5656 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5658 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5660 …}
  -id: 264315
  -bodyTs: "'/s':24 'abstract':7 'addit':4 'alway':9 'attent':18 'good':11 'haven':13 'latest':21 'layer':5 'meme':23 'pay':17 'see':3 'softwar':22 'thing':12"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6302770"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703926975 {#5647
    date: 2023-12-30 10:02:55.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
80 DENIED moderate
App\Entity\EntryComment {#5648
  +user: Proxies\__CG__\App\Entity\User {#5649 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5331
    +user: Proxies\__CG__\App\Entity\User {#5299 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4155
      +user: App\Entity\User {#4168 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Because this\n
        \n
        ![](https://upload.wikimedia.org/wikipedia/commons/3/34/Processes_without_D-Bus.svg)\n
        \n
        potentially has a much larger average [degree distribution](https://en.wikipedia.org/wiki/Degree_distribution) than this\n
        \n
        ![](https://upload.wikimedia.org/wikipedia/commons/6/6d/Processes_with_D-Bus.svg)
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 74
      +score: 0
      +lastActive: DateTime @1709402231 {#4150
        date: 2024-03-02 18:57:11.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4156 …}
      +nested: Doctrine\ORM\PersistentCollection {#4158 …}
      +votes: Doctrine\ORM\PersistentCollection {#4160 …}
      +reports: Doctrine\ORM\PersistentCollection {#4162 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4164 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4166 …}
      -id: 261008
      -bodyTs: "'/wiki/degree_distribution)':16 '/wikipedia/commons/3/34/processes_without_d-bus.svg)':5 '/wikipedia/commons/6/6d/processes_with_d-bus.svg)':21 'averag':11 'degre':12 'distribut':13 'en.wikipedia.org':15 'en.wikipedia.org/wiki/degree_distribution)':14 'larger':10 'much':9 'potenti':6 'upload.wikimedia.org':4,20 'upload.wikimedia.org/wikipedia/commons/3/34/processes_without_d-bus.svg)':3 'upload.wikimedia.org/wikipedia/commons/6/6d/processes_with_d-bus.svg)':19"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285161"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810658 {#4151
        date: 2023-12-29 01:44:18.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4155}
    +body: """
      …and why is that…better?\n
      \n
      Programs still have to be written to accommodate the specific protocol that the program on the other end speaks, and dbus paths could translate pretty directly to subdirectories of /run. All adding dbus in the middle does is add a daemon where there doesn’t need to be one and force the programs to talk to each other through that rather than directly to each other
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 3
    +score: 0
    +lastActive: DateTime @1703895743 {#5328
      date: 2023-12-30 01:22:23.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@grue@lemmy.world"
      "@renzev@lemmy.world"
      "@grue@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5332 …}
    +nested: Doctrine\ORM\PersistentCollection {#5334 …}
    +votes: Doctrine\ORM\PersistentCollection {#5336 …}
    +reports: Doctrine\ORM\PersistentCollection {#5338 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5340 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5342 …}
    -id: 263564
    -bodyTs: "'/run':35 'accommod':13 'ad':37 'add':44 'better':5 'could':28 'daemon':46 'dbus':26,38 'direct':31,68 'doesn':49 'end':23 'forc':56 'middl':41 'need':51 'one':54 'path':27 'pretti':30 'program':6,19,58 'protocol':16 'rather':66 'speak':24 'specif':15 'still':7 'subdirectori':33 'talk':60 'translat':29 'written':11"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://pawb.social/comment/4973062"
    +editedAt: DateTimeImmutable @1709212314 {#5329
      date: 2024-02-29 14:11:54.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703895743 {#5330
      date: 2023-12-30 01:22:23.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4155}
  +body: "No, you see, additional layers of abstraction are **always a good thing.** Haven’t you been paying attention to the latest software memes? /s"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1703926975 {#5646
    date: 2023-12-30 10:02:55.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@grue@lemmy.world"
    "@AVincentInSpace@pawb.social"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5650 …}
  +nested: Doctrine\ORM\PersistentCollection {#5652 …}
  +votes: Doctrine\ORM\PersistentCollection {#5654 …}
  +reports: Doctrine\ORM\PersistentCollection {#5656 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5658 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5660 …}
  -id: 264315
  -bodyTs: "'/s':24 'abstract':7 'addit':4 'alway':9 'attent':18 'good':11 'haven':13 'latest':21 'layer':5 'meme':23 'pay':17 'see':3 'softwar':22 'thing':12"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6302770"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703926975 {#5647
    date: 2023-12-30 10:02:55.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
81 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
82 DENIED moderate
App\Entity\EntryComment {#4229
  +user: App\Entity\User {#4242 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Sockets are effectively point-to-point communication. Dbus is a bus. Your question is similar to “what is the point of I2, or an ATA bus when directly wiring ICs gets the job done”. Both have different strengths and weaknesses."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 63
  +score: 0
  +lastActive: DateTime @1703817689 {#4223
    date: 2023-12-29 03:41:29.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4230 …}
  +nested: Doctrine\ORM\PersistentCollection {#4232 …}
  +votes: Doctrine\ORM\PersistentCollection {#4234 …}
  +reports: Doctrine\ORM\PersistentCollection {#4236 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4238 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4240 …}
  -id: 261262
  -bodyTs: "'ata':26 'bus':12,27 'communic':8 'dbus':9 'differ':38 'direct':29 'done':35 'effect':3 'get':32 'i2':23 'ic':31 'job':34 'point':5,7,21 'point-to-point':4 'question':14 'similar':16 'socket':1 'strength':39 'weak':41 'wire':30"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.sdf.org/comment/6763393"
  +editedAt: DateTimeImmutable @1708920762 {#4224
    date: 2024-02-26 05:12:42.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703817689 {#4225
    date: 2023-12-29 03:41:29.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
83 DENIED edit
App\Entity\EntryComment {#4229
  +user: App\Entity\User {#4242 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Sockets are effectively point-to-point communication. Dbus is a bus. Your question is similar to “what is the point of I2, or an ATA bus when directly wiring ICs gets the job done”. Both have different strengths and weaknesses."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 63
  +score: 0
  +lastActive: DateTime @1703817689 {#4223
    date: 2023-12-29 03:41:29.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4230 …}
  +nested: Doctrine\ORM\PersistentCollection {#4232 …}
  +votes: Doctrine\ORM\PersistentCollection {#4234 …}
  +reports: Doctrine\ORM\PersistentCollection {#4236 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4238 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4240 …}
  -id: 261262
  -bodyTs: "'ata':26 'bus':12,27 'communic':8 'dbus':9 'differ':38 'direct':29 'done':35 'effect':3 'get':32 'i2':23 'ic':31 'job':34 'point':5,7,21 'point-to-point':4 'question':14 'similar':16 'socket':1 'strength':39 'weak':41 'wire':30"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.sdf.org/comment/6763393"
  +editedAt: DateTimeImmutable @1708920762 {#4224
    date: 2024-02-26 05:12:42.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703817689 {#4225
    date: 2023-12-29 03:41:29.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
84 DENIED moderate
App\Entity\EntryComment {#4229
  +user: App\Entity\User {#4242 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Sockets are effectively point-to-point communication. Dbus is a bus. Your question is similar to “what is the point of I2, or an ATA bus when directly wiring ICs gets the job done”. Both have different strengths and weaknesses."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 63
  +score: 0
  +lastActive: DateTime @1703817689 {#4223
    date: 2023-12-29 03:41:29.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4230 …}
  +nested: Doctrine\ORM\PersistentCollection {#4232 …}
  +votes: Doctrine\ORM\PersistentCollection {#4234 …}
  +reports: Doctrine\ORM\PersistentCollection {#4236 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4238 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4240 …}
  -id: 261262
  -bodyTs: "'ata':26 'bus':12,27 'communic':8 'dbus':9 'differ':38 'direct':29 'done':35 'effect':3 'get':32 'i2':23 'ic':31 'job':34 'point':5,7,21 'point-to-point':4 'question':14 'similar':16 'socket':1 'strength':39 'weak':41 'wire':30"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.sdf.org/comment/6763393"
  +editedAt: DateTimeImmutable @1708920762 {#4224
    date: 2024-02-26 05:12:42.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703817689 {#4225
    date: 2023-12-29 03:41:29.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
85 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
86 DENIED moderate
App\Entity\EntryComment {#4302
  +user: App\Entity\User {#4315 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    My serious answer, not an argument: Use d-feet to inspect what’s available on the system and session buses. That’ll show the benefit of introspection and a common serialization mechanism.\n
    \n
    About the security comments: Some access control mechanisms aren’t just allow/deny, and many need more than socket permissions. Those benefit from DBus policies, and PolicyKit integration helps for more complex needs. You can always DIY it, that’s Linux/FOSS life, but these are great tools to have in your toolbox. I’ll avoid credential passing via sockets whenever I can and have something else do it.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 60
  +score: 0
  +lastActive: DateTime @1708991191 {#4297
    date: 2024-02-27 00:46:31.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4303 …}
  +nested: Doctrine\ORM\PersistentCollection {#4305 …}
  +votes: Doctrine\ORM\PersistentCollection {#4307 …}
  +reports: Doctrine\ORM\PersistentCollection {#4309 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4311 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4313 …}
  -id: 261698
  -bodyTs: "'access':39 'allow/deny':45 'alway':68 'answer':3 'aren':42 'argument':6 'avail':15 'avoid':87 'benefit':26,54 'buse':21 'comment':37 'common':31 'complex':64 'control':40 'credenti':88 'd':9 'd-feet':8 'dbus':56 'diy':69 'els':98 'feet':10 'great':78 'help':61 'inspect':12 'integr':60 'introspect':28 'life':74 'linux/foss':73 'll':23,86 'mani':47 'mechan':33,41 'need':48,65 'pass':89 'permiss':52 'polici':57 'policykit':59 'secur':36 'serial':32 'serious':2 'session':20 'show':24 'socket':51,91 'someth':97 'system':18 'tool':79 'toolbox':84 'use':7 'via':90 'whenev':92"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.blahaj.zone/comment/5283577"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703836481 {#4298
    date: 2023-12-29 08:54:41.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
87 DENIED edit
App\Entity\EntryComment {#4302
  +user: App\Entity\User {#4315 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    My serious answer, not an argument: Use d-feet to inspect what’s available on the system and session buses. That’ll show the benefit of introspection and a common serialization mechanism.\n
    \n
    About the security comments: Some access control mechanisms aren’t just allow/deny, and many need more than socket permissions. Those benefit from DBus policies, and PolicyKit integration helps for more complex needs. You can always DIY it, that’s Linux/FOSS life, but these are great tools to have in your toolbox. I’ll avoid credential passing via sockets whenever I can and have something else do it.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 60
  +score: 0
  +lastActive: DateTime @1708991191 {#4297
    date: 2024-02-27 00:46:31.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4303 …}
  +nested: Doctrine\ORM\PersistentCollection {#4305 …}
  +votes: Doctrine\ORM\PersistentCollection {#4307 …}
  +reports: Doctrine\ORM\PersistentCollection {#4309 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4311 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4313 …}
  -id: 261698
  -bodyTs: "'access':39 'allow/deny':45 'alway':68 'answer':3 'aren':42 'argument':6 'avail':15 'avoid':87 'benefit':26,54 'buse':21 'comment':37 'common':31 'complex':64 'control':40 'credenti':88 'd':9 'd-feet':8 'dbus':56 'diy':69 'els':98 'feet':10 'great':78 'help':61 'inspect':12 'integr':60 'introspect':28 'life':74 'linux/foss':73 'll':23,86 'mani':47 'mechan':33,41 'need':48,65 'pass':89 'permiss':52 'polici':57 'policykit':59 'secur':36 'serial':32 'serious':2 'session':20 'show':24 'socket':51,91 'someth':97 'system':18 'tool':79 'toolbox':84 'use':7 'via':90 'whenev':92"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.blahaj.zone/comment/5283577"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703836481 {#4298
    date: 2023-12-29 08:54:41.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
88 DENIED moderate
App\Entity\EntryComment {#4302
  +user: App\Entity\User {#4315 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    My serious answer, not an argument: Use d-feet to inspect what’s available on the system and session buses. That’ll show the benefit of introspection and a common serialization mechanism.\n
    \n
    About the security comments: Some access control mechanisms aren’t just allow/deny, and many need more than socket permissions. Those benefit from DBus policies, and PolicyKit integration helps for more complex needs. You can always DIY it, that’s Linux/FOSS life, but these are great tools to have in your toolbox. I’ll avoid credential passing via sockets whenever I can and have something else do it.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 60
  +score: 0
  +lastActive: DateTime @1708991191 {#4297
    date: 2024-02-27 00:46:31.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4303 …}
  +nested: Doctrine\ORM\PersistentCollection {#4305 …}
  +votes: Doctrine\ORM\PersistentCollection {#4307 …}
  +reports: Doctrine\ORM\PersistentCollection {#4309 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4311 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4313 …}
  -id: 261698
  -bodyTs: "'access':39 'allow/deny':45 'alway':68 'answer':3 'aren':42 'argument':6 'avail':15 'avoid':87 'benefit':26,54 'buse':21 'comment':37 'common':31 'complex':64 'control':40 'credenti':88 'd':9 'd-feet':8 'dbus':56 'diy':69 'els':98 'feet':10 'great':78 'help':61 'inspect':12 'integr':60 'introspect':28 'life':74 'linux/foss':73 'll':23,86 'mani':47 'mechan':33,41 'need':48,65 'pass':89 'permiss':52 'polici':57 'policykit':59 'secur':36 'serial':32 'serious':2 'session':20 'show':24 'socket':51,91 'someth':97 'system':18 'tool':79 'toolbox':84 'use':7 'via':90 'whenev':92"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.blahaj.zone/comment/5283577"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703836481 {#4298
    date: 2023-12-29 08:54:41.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
89 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
90 DENIED moderate
App\Entity\EntryComment {#5377
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4302
    +user: App\Entity\User {#4315 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      My serious answer, not an argument: Use d-feet to inspect what’s available on the system and session buses. That’ll show the benefit of introspection and a common serialization mechanism.\n
      \n
      About the security comments: Some access control mechanisms aren’t just allow/deny, and many need more than socket permissions. Those benefit from DBus policies, and PolicyKit integration helps for more complex needs. You can always DIY it, that’s Linux/FOSS life, but these are great tools to have in your toolbox. I’ll avoid credential passing via sockets whenever I can and have something else do it.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 60
    +score: 0
    +lastActive: DateTime @1708991191 {#4297
      date: 2024-02-27 00:46:31.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4303 …}
    +nested: Doctrine\ORM\PersistentCollection {#4305 …}
    +votes: Doctrine\ORM\PersistentCollection {#4307 …}
    +reports: Doctrine\ORM\PersistentCollection {#4309 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4311 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4313 …}
    -id: 261698
    -bodyTs: "'access':39 'allow/deny':45 'alway':68 'answer':3 'aren':42 'argument':6 'avail':15 'avoid':87 'benefit':26,54 'buse':21 'comment':37 'common':31 'complex':64 'control':40 'credenti':88 'd':9 'd-feet':8 'dbus':56 'diy':69 'els':98 'feet':10 'great':78 'help':61 'inspect':12 'integr':60 'introspect':28 'life':74 'linux/foss':73 'll':23,86 'mani':47 'mechan':33,41 'need':48,65 'pass':89 'permiss':52 'polici':57 'policykit':59 'secur':36 'serial':32 'serious':2 'session':20 'show':24 'socket':51,91 'someth':97 'system':18 'tool':79 'toolbox':84 'use':7 'via':90 'whenev':92"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.blahaj.zone/comment/5283577"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703836481 {#4298
      date: 2023-12-29 08:54:41.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4302}
  +body: "Great point about policies! Setting permissions on sockets only gets you so far… I guess if you really wanted to, you could create an individual socket for every method of every resource, and have granular permissions that way. But that would be quite messy"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 21
  +score: 0
  +lastActive: DateTime @1703842212 {#5375
    date: 2023-12-29 10:30:12.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@fiohnah@lemmy.blahaj.zone"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5378 …}
  +nested: Doctrine\ORM\PersistentCollection {#5380 …}
  +votes: Doctrine\ORM\PersistentCollection {#5382 …}
  +reports: Doctrine\ORM\PersistentCollection {#5384 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5386 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5388 …}
  -id: 261816
  -bodyTs: "'could':22 'creat':23 'everi':28,31 'far':13 'get':10 'granular':35 'great':1 'guess':15 'individu':25 'messi':44 'method':29 'permiss':6,36 'point':2 'polici':4 'quit':43 'realli':18 'resourc':32 'set':5 'socket':8,26 'want':19 'way':38 'would':41"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6289446"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703842212 {#5376
    date: 2023-12-29 10:30:12.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
91 DENIED edit
App\Entity\EntryComment {#5377
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4302
    +user: App\Entity\User {#4315 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      My serious answer, not an argument: Use d-feet to inspect what’s available on the system and session buses. That’ll show the benefit of introspection and a common serialization mechanism.\n
      \n
      About the security comments: Some access control mechanisms aren’t just allow/deny, and many need more than socket permissions. Those benefit from DBus policies, and PolicyKit integration helps for more complex needs. You can always DIY it, that’s Linux/FOSS life, but these are great tools to have in your toolbox. I’ll avoid credential passing via sockets whenever I can and have something else do it.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 60
    +score: 0
    +lastActive: DateTime @1708991191 {#4297
      date: 2024-02-27 00:46:31.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4303 …}
    +nested: Doctrine\ORM\PersistentCollection {#4305 …}
    +votes: Doctrine\ORM\PersistentCollection {#4307 …}
    +reports: Doctrine\ORM\PersistentCollection {#4309 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4311 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4313 …}
    -id: 261698
    -bodyTs: "'access':39 'allow/deny':45 'alway':68 'answer':3 'aren':42 'argument':6 'avail':15 'avoid':87 'benefit':26,54 'buse':21 'comment':37 'common':31 'complex':64 'control':40 'credenti':88 'd':9 'd-feet':8 'dbus':56 'diy':69 'els':98 'feet':10 'great':78 'help':61 'inspect':12 'integr':60 'introspect':28 'life':74 'linux/foss':73 'll':23,86 'mani':47 'mechan':33,41 'need':48,65 'pass':89 'permiss':52 'polici':57 'policykit':59 'secur':36 'serial':32 'serious':2 'session':20 'show':24 'socket':51,91 'someth':97 'system':18 'tool':79 'toolbox':84 'use':7 'via':90 'whenev':92"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.blahaj.zone/comment/5283577"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703836481 {#4298
      date: 2023-12-29 08:54:41.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4302}
  +body: "Great point about policies! Setting permissions on sockets only gets you so far… I guess if you really wanted to, you could create an individual socket for every method of every resource, and have granular permissions that way. But that would be quite messy"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 21
  +score: 0
  +lastActive: DateTime @1703842212 {#5375
    date: 2023-12-29 10:30:12.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@fiohnah@lemmy.blahaj.zone"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5378 …}
  +nested: Doctrine\ORM\PersistentCollection {#5380 …}
  +votes: Doctrine\ORM\PersistentCollection {#5382 …}
  +reports: Doctrine\ORM\PersistentCollection {#5384 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5386 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5388 …}
  -id: 261816
  -bodyTs: "'could':22 'creat':23 'everi':28,31 'far':13 'get':10 'granular':35 'great':1 'guess':15 'individu':25 'messi':44 'method':29 'permiss':6,36 'point':2 'polici':4 'quit':43 'realli':18 'resourc':32 'set':5 'socket':8,26 'want':19 'way':38 'would':41"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6289446"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703842212 {#5376
    date: 2023-12-29 10:30:12.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
92 DENIED moderate
App\Entity\EntryComment {#5377
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4302
    +user: App\Entity\User {#4315 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      My serious answer, not an argument: Use d-feet to inspect what’s available on the system and session buses. That’ll show the benefit of introspection and a common serialization mechanism.\n
      \n
      About the security comments: Some access control mechanisms aren’t just allow/deny, and many need more than socket permissions. Those benefit from DBus policies, and PolicyKit integration helps for more complex needs. You can always DIY it, that’s Linux/FOSS life, but these are great tools to have in your toolbox. I’ll avoid credential passing via sockets whenever I can and have something else do it.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 60
    +score: 0
    +lastActive: DateTime @1708991191 {#4297
      date: 2024-02-27 00:46:31.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4303 …}
    +nested: Doctrine\ORM\PersistentCollection {#4305 …}
    +votes: Doctrine\ORM\PersistentCollection {#4307 …}
    +reports: Doctrine\ORM\PersistentCollection {#4309 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4311 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4313 …}
    -id: 261698
    -bodyTs: "'access':39 'allow/deny':45 'alway':68 'answer':3 'aren':42 'argument':6 'avail':15 'avoid':87 'benefit':26,54 'buse':21 'comment':37 'common':31 'complex':64 'control':40 'credenti':88 'd':9 'd-feet':8 'dbus':56 'diy':69 'els':98 'feet':10 'great':78 'help':61 'inspect':12 'integr':60 'introspect':28 'life':74 'linux/foss':73 'll':23,86 'mani':47 'mechan':33,41 'need':48,65 'pass':89 'permiss':52 'polici':57 'policykit':59 'secur':36 'serial':32 'serious':2 'session':20 'show':24 'socket':51,91 'someth':97 'system':18 'tool':79 'toolbox':84 'use':7 'via':90 'whenev':92"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.blahaj.zone/comment/5283577"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703836481 {#4298
      date: 2023-12-29 08:54:41.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4302}
  +body: "Great point about policies! Setting permissions on sockets only gets you so far… I guess if you really wanted to, you could create an individual socket for every method of every resource, and have granular permissions that way. But that would be quite messy"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 21
  +score: 0
  +lastActive: DateTime @1703842212 {#5375
    date: 2023-12-29 10:30:12.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@fiohnah@lemmy.blahaj.zone"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5378 …}
  +nested: Doctrine\ORM\PersistentCollection {#5380 …}
  +votes: Doctrine\ORM\PersistentCollection {#5382 …}
  +reports: Doctrine\ORM\PersistentCollection {#5384 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5386 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5388 …}
  -id: 261816
  -bodyTs: "'could':22 'creat':23 'everi':28,31 'far':13 'get':10 'granular':35 'great':1 'guess':15 'individu':25 'messi':44 'method':29 'permiss':6,36 'point':2 'polici':4 'quit':43 'realli':18 'resourc':32 'set':5 'socket':8,26 'want':19 'way':38 'would':41"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6289446"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703842212 {#5376
    date: 2023-12-29 10:30:12.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
93 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
94 DENIED moderate
App\Entity\EntryComment {#4375
  +user: App\Entity\User {#4388 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Some heavy schooling happening in this thread. Glad to see it. Learning is a good thing. 🙌"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 60
  +score: 0
  +lastActive: DateTime @1709538300 {#4370
    date: 2024-03-04 08:45:00.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4376 …}
  +nested: Doctrine\ORM\PersistentCollection {#4378 …}
  +votes: Doctrine\ORM\PersistentCollection {#4380 …}
  +reports: Doctrine\ORM\PersistentCollection {#4382 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4384 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4386 …}
  -id: 261037
  -bodyTs: "'glad':8 'good':15 'happen':4 'heavi':2 'learn':12 'school':3 'see':10 'thing':16 'thread':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/5931882"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703811472 {#4371
    date: 2023-12-29 01:57: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
95 DENIED edit
App\Entity\EntryComment {#4375
  +user: App\Entity\User {#4388 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Some heavy schooling happening in this thread. Glad to see it. Learning is a good thing. 🙌"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 60
  +score: 0
  +lastActive: DateTime @1709538300 {#4370
    date: 2024-03-04 08:45:00.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4376 …}
  +nested: Doctrine\ORM\PersistentCollection {#4378 …}
  +votes: Doctrine\ORM\PersistentCollection {#4380 …}
  +reports: Doctrine\ORM\PersistentCollection {#4382 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4384 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4386 …}
  -id: 261037
  -bodyTs: "'glad':8 'good':15 'happen':4 'heavi':2 'learn':12 'school':3 'see':10 'thing':16 'thread':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/5931882"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703811472 {#4371
    date: 2023-12-29 01:57: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
96 DENIED moderate
App\Entity\EntryComment {#4375
  +user: App\Entity\User {#4388 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Some heavy schooling happening in this thread. Glad to see it. Learning is a good thing. 🙌"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 60
  +score: 0
  +lastActive: DateTime @1709538300 {#4370
    date: 2024-03-04 08:45:00.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4376 …}
  +nested: Doctrine\ORM\PersistentCollection {#4378 …}
  +votes: Doctrine\ORM\PersistentCollection {#4380 …}
  +reports: Doctrine\ORM\PersistentCollection {#4382 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4384 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4386 …}
  -id: 261037
  -bodyTs: "'glad':8 'good':15 'happen':4 'heavi':2 'learn':12 'school':3 'see':10 'thing':16 'thread':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/5931882"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703811472 {#4371
    date: 2023-12-29 01:57: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
97 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
98 DENIED moderate
App\Entity\EntryComment {#5346
  +user: Proxies\__CG__\App\Entity\User {#5347 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4375
    +user: App\Entity\User {#4388 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "Some heavy schooling happening in this thread. Glad to see it. Learning is a good thing. 🙌"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 60
    +score: 0
    +lastActive: DateTime @1709538300 {#4370
      date: 2024-03-04 08:45:00.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4376 …}
    +nested: Doctrine\ORM\PersistentCollection {#4378 …}
    +votes: Doctrine\ORM\PersistentCollection {#4380 …}
    +reports: Doctrine\ORM\PersistentCollection {#4382 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4384 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4386 …}
    -id: 261037
    -bodyTs: "'glad':8 'good':15 'happen':4 'heavi':2 'learn':12 'school':3 'see':10 'thing':16 'thread':7"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/5931882"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703811472 {#4371
      date: 2023-12-29 01:57:52.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4375}
  +body: "I’m learning a lot, so I’m not a fan of the people flaming and downvoting OP for having genuine confusion. I want us to incentivize more posts like this."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 12
  +score: 0
  +lastActive: DateTime @1703871013 {#5344
    date: 2023-12-29 18:30:13.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@avidamoeba@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5348 …}
  +nested: Doctrine\ORM\PersistentCollection {#5350 …}
  +votes: Doctrine\ORM\PersistentCollection {#5352 …}
  +reports: Doctrine\ORM\PersistentCollection {#5354 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5356 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5358 …}
  -id: 262533
  -bodyTs: "'confus':22 'downvot':17 'fan':11 'flame':15 'genuin':21 'incentiv':27 'learn':3 'like':30 'lot':5 'm':2,8 'op':18 'peopl':14 'post':29 'us':25 'want':24"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://sopuli.xyz/comment/5677681"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703871013 {#5345
    date: 2023-12-29 18:30:13.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
99 DENIED edit
App\Entity\EntryComment {#5346
  +user: Proxies\__CG__\App\Entity\User {#5347 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4375
    +user: App\Entity\User {#4388 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "Some heavy schooling happening in this thread. Glad to see it. Learning is a good thing. 🙌"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 60
    +score: 0
    +lastActive: DateTime @1709538300 {#4370
      date: 2024-03-04 08:45:00.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4376 …}
    +nested: Doctrine\ORM\PersistentCollection {#4378 …}
    +votes: Doctrine\ORM\PersistentCollection {#4380 …}
    +reports: Doctrine\ORM\PersistentCollection {#4382 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4384 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4386 …}
    -id: 261037
    -bodyTs: "'glad':8 'good':15 'happen':4 'heavi':2 'learn':12 'school':3 'see':10 'thing':16 'thread':7"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/5931882"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703811472 {#4371
      date: 2023-12-29 01:57:52.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4375}
  +body: "I’m learning a lot, so I’m not a fan of the people flaming and downvoting OP for having genuine confusion. I want us to incentivize more posts like this."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 12
  +score: 0
  +lastActive: DateTime @1703871013 {#5344
    date: 2023-12-29 18:30:13.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@avidamoeba@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5348 …}
  +nested: Doctrine\ORM\PersistentCollection {#5350 …}
  +votes: Doctrine\ORM\PersistentCollection {#5352 …}
  +reports: Doctrine\ORM\PersistentCollection {#5354 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5356 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5358 …}
  -id: 262533
  -bodyTs: "'confus':22 'downvot':17 'fan':11 'flame':15 'genuin':21 'incentiv':27 'learn':3 'like':30 'lot':5 'm':2,8 'op':18 'peopl':14 'post':29 'us':25 'want':24"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://sopuli.xyz/comment/5677681"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703871013 {#5345
    date: 2023-12-29 18:30:13.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
100 DENIED moderate
App\Entity\EntryComment {#5346
  +user: Proxies\__CG__\App\Entity\User {#5347 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4375
    +user: App\Entity\User {#4388 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "Some heavy schooling happening in this thread. Glad to see it. Learning is a good thing. 🙌"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 60
    +score: 0
    +lastActive: DateTime @1709538300 {#4370
      date: 2024-03-04 08:45:00.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4376 …}
    +nested: Doctrine\ORM\PersistentCollection {#4378 …}
    +votes: Doctrine\ORM\PersistentCollection {#4380 …}
    +reports: Doctrine\ORM\PersistentCollection {#4382 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4384 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4386 …}
    -id: 261037
    -bodyTs: "'glad':8 'good':15 'happen':4 'heavi':2 'learn':12 'school':3 'see':10 'thing':16 'thread':7"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/5931882"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703811472 {#4371
      date: 2023-12-29 01:57:52.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4375}
  +body: "I’m learning a lot, so I’m not a fan of the people flaming and downvoting OP for having genuine confusion. I want us to incentivize more posts like this."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 12
  +score: 0
  +lastActive: DateTime @1703871013 {#5344
    date: 2023-12-29 18:30:13.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@avidamoeba@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5348 …}
  +nested: Doctrine\ORM\PersistentCollection {#5350 …}
  +votes: Doctrine\ORM\PersistentCollection {#5352 …}
  +reports: Doctrine\ORM\PersistentCollection {#5354 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5356 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5358 …}
  -id: 262533
  -bodyTs: "'confus':22 'downvot':17 'fan':11 'flame':15 'genuin':21 'incentiv':27 'learn':3 'like':30 'lot':5 'm':2,8 'op':18 'peopl':14 'post':29 'us':25 'want':24"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://sopuli.xyz/comment/5677681"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703871013 {#5345
    date: 2023-12-29 18:30:13.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
101 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
102 DENIED moderate
App\Entity\EntryComment {#5632
  +user: Proxies\__CG__\App\Entity\User {#5633 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5346
    +user: Proxies\__CG__\App\Entity\User {#5347 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4375
      +user: App\Entity\User {#4388 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: "Some heavy schooling happening in this thread. Glad to see it. Learning is a good thing. 🙌"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 60
      +score: 0
      +lastActive: DateTime @1709538300 {#4370
        date: 2024-03-04 08:45:00.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4376 …}
      +nested: Doctrine\ORM\PersistentCollection {#4378 …}
      +votes: Doctrine\ORM\PersistentCollection {#4380 …}
      +reports: Doctrine\ORM\PersistentCollection {#4382 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4384 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4386 …}
      -id: 261037
      -bodyTs: "'glad':8 'good':15 'happen':4 'heavi':2 'learn':12 'school':3 'see':10 'thing':16 'thread':7"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/5931882"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703811472 {#4371
        date: 2023-12-29 01:57:52.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4375}
    +body: "I’m learning a lot, so I’m not a fan of the people flaming and downvoting OP for having genuine confusion. I want us to incentivize more posts like this."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 12
    +score: 0
    +lastActive: DateTime @1703871013 {#5344
      date: 2023-12-29 18:30:13.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@avidamoeba@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5348 …}
    +nested: Doctrine\ORM\PersistentCollection {#5350 …}
    +votes: Doctrine\ORM\PersistentCollection {#5352 …}
    +reports: Doctrine\ORM\PersistentCollection {#5354 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5356 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5358 …}
    -id: 262533
    -bodyTs: "'confus':22 'downvot':17 'fan':11 'flame':15 'genuin':21 'incentiv':27 'learn':3 'like':30 'lot':5 'm':2,8 'op':18 'peopl':14 'post':29 'us':25 'want':24"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://sopuli.xyz/comment/5677681"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703871013 {#5345
      date: 2023-12-29 18:30:13.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4375}
  +body: "Same here. I’ve always wondered what dbus actually was and I’m glad OP asked"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703973943 {#5630
    date: 2023-12-30 23:05:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@avidamoeba@lemmy.ca"
    "@teawrecks@sopuli.xyz"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5634 …}
  +nested: Doctrine\ORM\PersistentCollection {#5636 …}
  +votes: Doctrine\ORM\PersistentCollection {#5638 …}
  +reports: Doctrine\ORM\PersistentCollection {#5640 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5642 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5644 …}
  -id: 265723
  -bodyTs: "'actual':9 'alway':5 'ask':16 'dbus':8 'glad':14 'm':13 'op':15 've':4 'wonder':6"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6963589"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703973943 {#5631
    date: 2023-12-30 23:05:43.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
103 DENIED edit
App\Entity\EntryComment {#5632
  +user: Proxies\__CG__\App\Entity\User {#5633 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5346
    +user: Proxies\__CG__\App\Entity\User {#5347 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4375
      +user: App\Entity\User {#4388 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: "Some heavy schooling happening in this thread. Glad to see it. Learning is a good thing. 🙌"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 60
      +score: 0
      +lastActive: DateTime @1709538300 {#4370
        date: 2024-03-04 08:45:00.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4376 …}
      +nested: Doctrine\ORM\PersistentCollection {#4378 …}
      +votes: Doctrine\ORM\PersistentCollection {#4380 …}
      +reports: Doctrine\ORM\PersistentCollection {#4382 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4384 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4386 …}
      -id: 261037
      -bodyTs: "'glad':8 'good':15 'happen':4 'heavi':2 'learn':12 'school':3 'see':10 'thing':16 'thread':7"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/5931882"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703811472 {#4371
        date: 2023-12-29 01:57:52.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4375}
    +body: "I’m learning a lot, so I’m not a fan of the people flaming and downvoting OP for having genuine confusion. I want us to incentivize more posts like this."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 12
    +score: 0
    +lastActive: DateTime @1703871013 {#5344
      date: 2023-12-29 18:30:13.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@avidamoeba@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5348 …}
    +nested: Doctrine\ORM\PersistentCollection {#5350 …}
    +votes: Doctrine\ORM\PersistentCollection {#5352 …}
    +reports: Doctrine\ORM\PersistentCollection {#5354 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5356 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5358 …}
    -id: 262533
    -bodyTs: "'confus':22 'downvot':17 'fan':11 'flame':15 'genuin':21 'incentiv':27 'learn':3 'like':30 'lot':5 'm':2,8 'op':18 'peopl':14 'post':29 'us':25 'want':24"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://sopuli.xyz/comment/5677681"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703871013 {#5345
      date: 2023-12-29 18:30:13.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4375}
  +body: "Same here. I’ve always wondered what dbus actually was and I’m glad OP asked"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703973943 {#5630
    date: 2023-12-30 23:05:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@avidamoeba@lemmy.ca"
    "@teawrecks@sopuli.xyz"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5634 …}
  +nested: Doctrine\ORM\PersistentCollection {#5636 …}
  +votes: Doctrine\ORM\PersistentCollection {#5638 …}
  +reports: Doctrine\ORM\PersistentCollection {#5640 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5642 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5644 …}
  -id: 265723
  -bodyTs: "'actual':9 'alway':5 'ask':16 'dbus':8 'glad':14 'm':13 'op':15 've':4 'wonder':6"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6963589"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703973943 {#5631
    date: 2023-12-30 23:05:43.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
104 DENIED moderate
App\Entity\EntryComment {#5632
  +user: Proxies\__CG__\App\Entity\User {#5633 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5346
    +user: Proxies\__CG__\App\Entity\User {#5347 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4375
      +user: App\Entity\User {#4388 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: "Some heavy schooling happening in this thread. Glad to see it. Learning is a good thing. 🙌"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 60
      +score: 0
      +lastActive: DateTime @1709538300 {#4370
        date: 2024-03-04 08:45:00.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4376 …}
      +nested: Doctrine\ORM\PersistentCollection {#4378 …}
      +votes: Doctrine\ORM\PersistentCollection {#4380 …}
      +reports: Doctrine\ORM\PersistentCollection {#4382 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4384 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4386 …}
      -id: 261037
      -bodyTs: "'glad':8 'good':15 'happen':4 'heavi':2 'learn':12 'school':3 'see':10 'thing':16 'thread':7"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ca/comment/5931882"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703811472 {#4371
        date: 2023-12-29 01:57:52.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4375}
    +body: "I’m learning a lot, so I’m not a fan of the people flaming and downvoting OP for having genuine confusion. I want us to incentivize more posts like this."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 12
    +score: 0
    +lastActive: DateTime @1703871013 {#5344
      date: 2023-12-29 18:30:13.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@avidamoeba@lemmy.ca"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5348 …}
    +nested: Doctrine\ORM\PersistentCollection {#5350 …}
    +votes: Doctrine\ORM\PersistentCollection {#5352 …}
    +reports: Doctrine\ORM\PersistentCollection {#5354 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5356 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5358 …}
    -id: 262533
    -bodyTs: "'confus':22 'downvot':17 'fan':11 'flame':15 'genuin':21 'incentiv':27 'learn':3 'like':30 'lot':5 'm':2,8 'op':18 'peopl':14 'post':29 'us':25 'want':24"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://sopuli.xyz/comment/5677681"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703871013 {#5345
      date: 2023-12-29 18:30:13.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4375}
  +body: "Same here. I’ve always wondered what dbus actually was and I’m glad OP asked"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703973943 {#5630
    date: 2023-12-30 23:05:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@avidamoeba@lemmy.ca"
    "@teawrecks@sopuli.xyz"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5634 …}
  +nested: Doctrine\ORM\PersistentCollection {#5636 …}
  +votes: Doctrine\ORM\PersistentCollection {#5638 …}
  +reports: Doctrine\ORM\PersistentCollection {#5640 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5642 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5644 …}
  -id: 265723
  -bodyTs: "'actual':9 'alway':5 'ask':16 'dbus':8 'glad':14 'm':13 'op':15 've':4 'wonder':6"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6963589"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703973943 {#5631
    date: 2023-12-30 23:05:43.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
105 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
106 DENIED moderate
App\Entity\EntryComment {#4450
  +user: App\Entity\User {#4463 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
    \n
    This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 54
  +score: 0
  +lastActive: DateTime @1710869230 {#4445
    date: 2024-03-19 18:27:10.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4451 …}
  +nested: Doctrine\ORM\PersistentCollection {#4453 …}
  +votes: Doctrine\ORM\PersistentCollection {#4455 …}
  +reports: Doctrine\ORM\PersistentCollection {#4457 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
  -id: 260991
  -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285057"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810246 {#4446
    date: 2023-12-29 01:37:26.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
107 DENIED edit
App\Entity\EntryComment {#4450
  +user: App\Entity\User {#4463 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
    \n
    This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 54
  +score: 0
  +lastActive: DateTime @1710869230 {#4445
    date: 2024-03-19 18:27:10.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4451 …}
  +nested: Doctrine\ORM\PersistentCollection {#4453 …}
  +votes: Doctrine\ORM\PersistentCollection {#4455 …}
  +reports: Doctrine\ORM\PersistentCollection {#4457 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
  -id: 260991
  -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285057"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810246 {#4446
    date: 2023-12-29 01:37:26.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
108 DENIED moderate
App\Entity\EntryComment {#4450
  +user: App\Entity\User {#4463 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
    \n
    This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 54
  +score: 0
  +lastActive: DateTime @1710869230 {#4445
    date: 2024-03-19 18:27:10.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4451 …}
  +nested: Doctrine\ORM\PersistentCollection {#4453 …}
  +votes: Doctrine\ORM\PersistentCollection {#4455 …}
  +reports: Doctrine\ORM\PersistentCollection {#4457 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
  -id: 260991
  -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285057"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810246 {#4446
    date: 2023-12-29 01:37:26.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
109 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
110 DENIED moderate
App\Entity\EntryComment {#5252
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4450
    +user: App\Entity\User {#4463 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
      \n
      This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 54
    +score: 0
    +lastActive: DateTime @1710869230 {#4445
      date: 2024-03-19 18:27:10.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4451 …}
    +nested: Doctrine\ORM\PersistentCollection {#4453 …}
    +votes: Doctrine\ORM\PersistentCollection {#4455 …}
    +reports: Doctrine\ORM\PersistentCollection {#4457 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
    -id: 260991
    -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285057"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810246 {#4446
      date: 2023-12-29 01:37:26.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1703812423 {#5250
    date: 2023-12-29 02:13:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5253 …}
  +nested: Doctrine\ORM\PersistentCollection {#5255 …}
  +votes: Doctrine\ORM\PersistentCollection {#5257 …}
  +reports: Doctrine\ORM\PersistentCollection {#5259 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
  -id: 261063
  -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285506"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812423 {#5251
    date: 2023-12-29 02:13:43.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
111 DENIED edit
App\Entity\EntryComment {#5252
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4450
    +user: App\Entity\User {#4463 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
      \n
      This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 54
    +score: 0
    +lastActive: DateTime @1710869230 {#4445
      date: 2024-03-19 18:27:10.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4451 …}
    +nested: Doctrine\ORM\PersistentCollection {#4453 …}
    +votes: Doctrine\ORM\PersistentCollection {#4455 …}
    +reports: Doctrine\ORM\PersistentCollection {#4457 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
    -id: 260991
    -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285057"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810246 {#4446
      date: 2023-12-29 01:37:26.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1703812423 {#5250
    date: 2023-12-29 02:13:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5253 …}
  +nested: Doctrine\ORM\PersistentCollection {#5255 …}
  +votes: Doctrine\ORM\PersistentCollection {#5257 …}
  +reports: Doctrine\ORM\PersistentCollection {#5259 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
  -id: 261063
  -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285506"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812423 {#5251
    date: 2023-12-29 02:13:43.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
112 DENIED moderate
App\Entity\EntryComment {#5252
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4450
    +user: App\Entity\User {#4463 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
      \n
      This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 54
    +score: 0
    +lastActive: DateTime @1710869230 {#4445
      date: 2024-03-19 18:27:10.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4451 …}
    +nested: Doctrine\ORM\PersistentCollection {#4453 …}
    +votes: Doctrine\ORM\PersistentCollection {#4455 …}
    +reports: Doctrine\ORM\PersistentCollection {#4457 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
    -id: 260991
    -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285057"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810246 {#4446
      date: 2023-12-29 01:37:26.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1703812423 {#5250
    date: 2023-12-29 02:13:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5253 …}
  +nested: Doctrine\ORM\PersistentCollection {#5255 …}
  +votes: Doctrine\ORM\PersistentCollection {#5257 …}
  +reports: Doctrine\ORM\PersistentCollection {#5259 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
  -id: 261063
  -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285506"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812423 {#5251
    date: 2023-12-29 02:13:43.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
113 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
114 DENIED moderate
App\Entity\EntryComment {#5556
  +user: Proxies\__CG__\App\Entity\User {#5541 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5252
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4450
      +user: App\Entity\User {#4463 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
        \n
        This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 54
      +score: 0
      +lastActive: DateTime @1710869230 {#4445
        date: 2024-03-19 18:27:10.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4451 …}
      +nested: Doctrine\ORM\PersistentCollection {#4453 …}
      +votes: Doctrine\ORM\PersistentCollection {#4455 …}
      +reports: Doctrine\ORM\PersistentCollection {#4457 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
      -id: 260991
      -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285057"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810246 {#4446
        date: 2023-12-29 01:37:26.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703812423 {#5250
      date: 2023-12-29 02:13:43.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5253 …}
    +nested: Doctrine\ORM\PersistentCollection {#5255 …}
    +votes: Doctrine\ORM\PersistentCollection {#5257 …}
    +reports: Doctrine\ORM\PersistentCollection {#5259 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
    -id: 261063
    -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285506"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812423 {#5251
      date: 2023-12-29 02:13:43.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: """
    This makes no sense because dbus uses unix domain sockets.\n
    \n
    It sounds like you don’t actually understand what dbus is.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 48
  +score: 0
  +lastActive: DateTime @1703816063 {#5554
    date: 2023-12-29 03:14:23.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5557 …}
  +nested: Doctrine\ORM\PersistentCollection {#5559 …}
  +votes: Doctrine\ORM\PersistentCollection {#5561 …}
  +reports: Doctrine\ORM\PersistentCollection {#5563 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5565 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5567 …}
  -id: 261201
  -bodyTs: "'actual':17 'dbus':6,20 'domain':9 'like':13 'make':2 'sens':4 'socket':10 'sound':12 'understand':18 'unix':8 'use':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/5996267"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703816063 {#5555
    date: 2023-12-29 03:14:23.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
115 DENIED edit
App\Entity\EntryComment {#5556
  +user: Proxies\__CG__\App\Entity\User {#5541 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5252
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4450
      +user: App\Entity\User {#4463 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
        \n
        This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 54
      +score: 0
      +lastActive: DateTime @1710869230 {#4445
        date: 2024-03-19 18:27:10.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4451 …}
      +nested: Doctrine\ORM\PersistentCollection {#4453 …}
      +votes: Doctrine\ORM\PersistentCollection {#4455 …}
      +reports: Doctrine\ORM\PersistentCollection {#4457 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
      -id: 260991
      -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285057"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810246 {#4446
        date: 2023-12-29 01:37:26.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703812423 {#5250
      date: 2023-12-29 02:13:43.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5253 …}
    +nested: Doctrine\ORM\PersistentCollection {#5255 …}
    +votes: Doctrine\ORM\PersistentCollection {#5257 …}
    +reports: Doctrine\ORM\PersistentCollection {#5259 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
    -id: 261063
    -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285506"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812423 {#5251
      date: 2023-12-29 02:13:43.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: """
    This makes no sense because dbus uses unix domain sockets.\n
    \n
    It sounds like you don’t actually understand what dbus is.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 48
  +score: 0
  +lastActive: DateTime @1703816063 {#5554
    date: 2023-12-29 03:14:23.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5557 …}
  +nested: Doctrine\ORM\PersistentCollection {#5559 …}
  +votes: Doctrine\ORM\PersistentCollection {#5561 …}
  +reports: Doctrine\ORM\PersistentCollection {#5563 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5565 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5567 …}
  -id: 261201
  -bodyTs: "'actual':17 'dbus':6,20 'domain':9 'like':13 'make':2 'sens':4 'socket':10 'sound':12 'understand':18 'unix':8 'use':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/5996267"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703816063 {#5555
    date: 2023-12-29 03:14:23.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
116 DENIED moderate
App\Entity\EntryComment {#5556
  +user: Proxies\__CG__\App\Entity\User {#5541 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5252
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4450
      +user: App\Entity\User {#4463 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
        \n
        This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 54
      +score: 0
      +lastActive: DateTime @1710869230 {#4445
        date: 2024-03-19 18:27:10.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4451 …}
      +nested: Doctrine\ORM\PersistentCollection {#4453 …}
      +votes: Doctrine\ORM\PersistentCollection {#4455 …}
      +reports: Doctrine\ORM\PersistentCollection {#4457 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
      -id: 260991
      -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285057"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810246 {#4446
        date: 2023-12-29 01:37:26.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703812423 {#5250
      date: 2023-12-29 02:13:43.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5253 …}
    +nested: Doctrine\ORM\PersistentCollection {#5255 …}
    +votes: Doctrine\ORM\PersistentCollection {#5257 …}
    +reports: Doctrine\ORM\PersistentCollection {#5259 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
    -id: 261063
    -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285506"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812423 {#5251
      date: 2023-12-29 02:13:43.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: """
    This makes no sense because dbus uses unix domain sockets.\n
    \n
    It sounds like you don’t actually understand what dbus is.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 48
  +score: 0
  +lastActive: DateTime @1703816063 {#5554
    date: 2023-12-29 03:14:23.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5557 …}
  +nested: Doctrine\ORM\PersistentCollection {#5559 …}
  +votes: Doctrine\ORM\PersistentCollection {#5561 …}
  +reports: Doctrine\ORM\PersistentCollection {#5563 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5565 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5567 …}
  -id: 261201
  -bodyTs: "'actual':17 'dbus':6,20 'domain':9 'like':13 'make':2 'sens':4 'socket':10 'sound':12 'understand':18 'unix':8 'use':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/5996267"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703816063 {#5555
    date: 2023-12-29 03:14:23.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
117 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
118 DENIED moderate
App\Entity\EntryComment {#5571
  +user: Proxies\__CG__\App\Entity\User {#5572 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5252
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4450
      +user: App\Entity\User {#4463 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
        \n
        This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 54
      +score: 0
      +lastActive: DateTime @1710869230 {#4445
        date: 2024-03-19 18:27:10.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4451 …}
      +nested: Doctrine\ORM\PersistentCollection {#4453 …}
      +votes: Doctrine\ORM\PersistentCollection {#4455 …}
      +reports: Doctrine\ORM\PersistentCollection {#4457 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
      -id: 260991
      -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285057"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810246 {#4446
        date: 2023-12-29 01:37:26.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703812423 {#5250
      date: 2023-12-29 02:13:43.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5253 …}
    +nested: Doctrine\ORM\PersistentCollection {#5255 …}
    +votes: Doctrine\ORM\PersistentCollection {#5257 …}
    +reports: Doctrine\ORM\PersistentCollection {#5259 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
    -id: 261063
    -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285506"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812423 {#5251
      date: 2023-12-29 02:13:43.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: "It’s much easier to understand how dbus works once than to understand how every daemon you connect to works every time you interface with a new daemon."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 4
  +score: 0
  +lastActive: DateTime @1703896071 {#5569
    date: 2023-12-30 01:27:51.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5573 …}
  +nested: Doctrine\ORM\PersistentCollection {#5575 …}
  +votes: Doctrine\ORM\PersistentCollection {#5577 …}
  +reports: Doctrine\ORM\PersistentCollection {#5579 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5581 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5583 …}
  -id: 263578
  -bodyTs: "'connect':18 'daemon':16,28 'dbus':8 'easier':4 'everi':15,21 'interfac':24 'much':3 'new':27 'time':22 'understand':6,13 'work':9,20"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6948768"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703896071 {#5570
    date: 2023-12-30 01:27: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
119 DENIED edit
App\Entity\EntryComment {#5571
  +user: Proxies\__CG__\App\Entity\User {#5572 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5252
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4450
      +user: App\Entity\User {#4463 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
        \n
        This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 54
      +score: 0
      +lastActive: DateTime @1710869230 {#4445
        date: 2024-03-19 18:27:10.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4451 …}
      +nested: Doctrine\ORM\PersistentCollection {#4453 …}
      +votes: Doctrine\ORM\PersistentCollection {#4455 …}
      +reports: Doctrine\ORM\PersistentCollection {#4457 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
      -id: 260991
      -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285057"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810246 {#4446
        date: 2023-12-29 01:37:26.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703812423 {#5250
      date: 2023-12-29 02:13:43.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5253 …}
    +nested: Doctrine\ORM\PersistentCollection {#5255 …}
    +votes: Doctrine\ORM\PersistentCollection {#5257 …}
    +reports: Doctrine\ORM\PersistentCollection {#5259 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
    -id: 261063
    -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285506"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812423 {#5251
      date: 2023-12-29 02:13:43.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: "It’s much easier to understand how dbus works once than to understand how every daemon you connect to works every time you interface with a new daemon."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 4
  +score: 0
  +lastActive: DateTime @1703896071 {#5569
    date: 2023-12-30 01:27:51.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5573 …}
  +nested: Doctrine\ORM\PersistentCollection {#5575 …}
  +votes: Doctrine\ORM\PersistentCollection {#5577 …}
  +reports: Doctrine\ORM\PersistentCollection {#5579 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5581 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5583 …}
  -id: 263578
  -bodyTs: "'connect':18 'daemon':16,28 'dbus':8 'easier':4 'everi':15,21 'interfac':24 'much':3 'new':27 'time':22 'understand':6,13 'work':9,20"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6948768"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703896071 {#5570
    date: 2023-12-30 01:27: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
120 DENIED moderate
App\Entity\EntryComment {#5571
  +user: Proxies\__CG__\App\Entity\User {#5572 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5252
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4450
      +user: App\Entity\User {#4463 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
        \n
        This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 54
      +score: 0
      +lastActive: DateTime @1710869230 {#4445
        date: 2024-03-19 18:27:10.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4451 …}
      +nested: Doctrine\ORM\PersistentCollection {#4453 …}
      +votes: Doctrine\ORM\PersistentCollection {#4455 …}
      +reports: Doctrine\ORM\PersistentCollection {#4457 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
      -id: 260991
      -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285057"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810246 {#4446
        date: 2023-12-29 01:37:26.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703812423 {#5250
      date: 2023-12-29 02:13:43.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5253 …}
    +nested: Doctrine\ORM\PersistentCollection {#5255 …}
    +votes: Doctrine\ORM\PersistentCollection {#5257 …}
    +reports: Doctrine\ORM\PersistentCollection {#5259 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
    -id: 261063
    -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285506"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812423 {#5251
      date: 2023-12-29 02:13:43.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: "It’s much easier to understand how dbus works once than to understand how every daemon you connect to works every time you interface with a new daemon."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 4
  +score: 0
  +lastActive: DateTime @1703896071 {#5569
    date: 2023-12-30 01:27:51.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5573 …}
  +nested: Doctrine\ORM\PersistentCollection {#5575 …}
  +votes: Doctrine\ORM\PersistentCollection {#5577 …}
  +reports: Doctrine\ORM\PersistentCollection {#5579 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5581 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5583 …}
  -id: 263578
  -bodyTs: "'connect':18 'daemon':16,28 'dbus':8 'easier':4 'everi':15,21 'interfac':24 'much':3 'new':27 'time':22 'understand':6,13 'work':9,20"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6948768"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703896071 {#5570
    date: 2023-12-30 01:27: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
121 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
122 DENIED moderate
App\Entity\EntryComment {#5749
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5571
    +user: Proxies\__CG__\App\Entity\User {#5572 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5252
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4450
        +user: App\Entity\User {#4463 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
          \n
          This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 54
        +score: 0
        +lastActive: DateTime @1710869230 {#4445
          date: 2024-03-19 18:27:10.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4451 …}
        +nested: Doctrine\ORM\PersistentCollection {#4453 …}
        +votes: Doctrine\ORM\PersistentCollection {#4455 …}
        +reports: Doctrine\ORM\PersistentCollection {#4457 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
        -id: 260991
        -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285057"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810246 {#4446
          date: 2023-12-29 01:37:26.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4450}
      +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 6
      +score: 0
      +lastActive: DateTime @1703812423 {#5250
        date: 2023-12-29 02:13:43.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@aberrate_junior_beatnik@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5253 …}
      +nested: Doctrine\ORM\PersistentCollection {#5255 …}
      +votes: Doctrine\ORM\PersistentCollection {#5257 …}
      +reports: Doctrine\ORM\PersistentCollection {#5259 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
      -id: 261063
      -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285506"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812423 {#5251
        date: 2023-12-29 02:13:43.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "It’s much easier to understand how dbus works once than to understand how every daemon you connect to works every time you interface with a new daemon."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1703896071 {#5569
      date: 2023-12-30 01:27:51.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5573 …}
    +nested: Doctrine\ORM\PersistentCollection {#5575 …}
    +votes: Doctrine\ORM\PersistentCollection {#5577 …}
    +reports: Doctrine\ORM\PersistentCollection {#5579 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5581 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5583 …}
    -id: 263578
    -bodyTs: "'connect':18 'daemon':16,28 'dbus':8 'easier':4 'everi':15,21 'interfac':24 'much':3 'new':27 'time':22 'understand':6,13 'work':9,20"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/6948768"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703896071 {#5570
      date: 2023-12-30 01:27:51.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: "but you still have to understand the methods available in every daemon"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1703949847 {#5747
    date: 2023-12-30 16:24:07.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
    "@WetBeardHairs@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5750 …}
  +nested: Doctrine\ORM\PersistentCollection {#5752 …}
  +votes: Doctrine\ORM\PersistentCollection {#5754 …}
  +reports: Doctrine\ORM\PersistentCollection {#5756 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5758 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5760 …}
  -id: 264777
  -bodyTs: "'avail':9 'daemon':12 'everi':11 'method':8 'still':3 'understand':6"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294359"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949847 {#5748
    date: 2023-12-30 16:24:07.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
123 DENIED edit
App\Entity\EntryComment {#5749
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5571
    +user: Proxies\__CG__\App\Entity\User {#5572 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5252
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4450
        +user: App\Entity\User {#4463 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
          \n
          This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 54
        +score: 0
        +lastActive: DateTime @1710869230 {#4445
          date: 2024-03-19 18:27:10.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4451 …}
        +nested: Doctrine\ORM\PersistentCollection {#4453 …}
        +votes: Doctrine\ORM\PersistentCollection {#4455 …}
        +reports: Doctrine\ORM\PersistentCollection {#4457 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
        -id: 260991
        -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285057"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810246 {#4446
          date: 2023-12-29 01:37:26.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4450}
      +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 6
      +score: 0
      +lastActive: DateTime @1703812423 {#5250
        date: 2023-12-29 02:13:43.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@aberrate_junior_beatnik@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5253 …}
      +nested: Doctrine\ORM\PersistentCollection {#5255 …}
      +votes: Doctrine\ORM\PersistentCollection {#5257 …}
      +reports: Doctrine\ORM\PersistentCollection {#5259 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
      -id: 261063
      -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285506"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812423 {#5251
        date: 2023-12-29 02:13:43.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "It’s much easier to understand how dbus works once than to understand how every daemon you connect to works every time you interface with a new daemon."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1703896071 {#5569
      date: 2023-12-30 01:27:51.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5573 …}
    +nested: Doctrine\ORM\PersistentCollection {#5575 …}
    +votes: Doctrine\ORM\PersistentCollection {#5577 …}
    +reports: Doctrine\ORM\PersistentCollection {#5579 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5581 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5583 …}
    -id: 263578
    -bodyTs: "'connect':18 'daemon':16,28 'dbus':8 'easier':4 'everi':15,21 'interfac':24 'much':3 'new':27 'time':22 'understand':6,13 'work':9,20"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/6948768"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703896071 {#5570
      date: 2023-12-30 01:27:51.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: "but you still have to understand the methods available in every daemon"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1703949847 {#5747
    date: 2023-12-30 16:24:07.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
    "@WetBeardHairs@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5750 …}
  +nested: Doctrine\ORM\PersistentCollection {#5752 …}
  +votes: Doctrine\ORM\PersistentCollection {#5754 …}
  +reports: Doctrine\ORM\PersistentCollection {#5756 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5758 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5760 …}
  -id: 264777
  -bodyTs: "'avail':9 'daemon':12 'everi':11 'method':8 'still':3 'understand':6"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294359"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949847 {#5748
    date: 2023-12-30 16:24:07.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
124 DENIED moderate
App\Entity\EntryComment {#5749
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5571
    +user: Proxies\__CG__\App\Entity\User {#5572 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5252
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4450
        +user: App\Entity\User {#4463 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
          \n
          This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 54
        +score: 0
        +lastActive: DateTime @1710869230 {#4445
          date: 2024-03-19 18:27:10.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4451 …}
        +nested: Doctrine\ORM\PersistentCollection {#4453 …}
        +votes: Doctrine\ORM\PersistentCollection {#4455 …}
        +reports: Doctrine\ORM\PersistentCollection {#4457 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
        -id: 260991
        -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285057"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703810246 {#4446
          date: 2023-12-29 01:37:26.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4450}
      +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 6
      +score: 0
      +lastActive: DateTime @1703812423 {#5250
        date: 2023-12-29 02:13:43.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@aberrate_junior_beatnik@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5253 …}
      +nested: Doctrine\ORM\PersistentCollection {#5255 …}
      +votes: Doctrine\ORM\PersistentCollection {#5257 …}
      +reports: Doctrine\ORM\PersistentCollection {#5259 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
      -id: 261063
      -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285506"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703812423 {#5251
        date: 2023-12-29 02:13:43.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "It’s much easier to understand how dbus works once than to understand how every daemon you connect to works every time you interface with a new daemon."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 4
    +score: 0
    +lastActive: DateTime @1703896071 {#5569
      date: 2023-12-30 01:27:51.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5573 …}
    +nested: Doctrine\ORM\PersistentCollection {#5575 …}
    +votes: Doctrine\ORM\PersistentCollection {#5577 …}
    +reports: Doctrine\ORM\PersistentCollection {#5579 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5581 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5583 …}
    -id: 263578
    -bodyTs: "'connect':18 'daemon':16,28 'dbus':8 'easier':4 'everi':15,21 'interfac':24 'much':3 'new':27 'time':22 'understand':6,13 'work':9,20"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/6948768"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703896071 {#5570
      date: 2023-12-30 01:27:51.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: "but you still have to understand the methods available in every daemon"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1703949847 {#5747
    date: 2023-12-30 16:24:07.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
    "@WetBeardHairs@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5750 …}
  +nested: Doctrine\ORM\PersistentCollection {#5752 …}
  +votes: Doctrine\ORM\PersistentCollection {#5754 …}
  +reports: Doctrine\ORM\PersistentCollection {#5756 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5758 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5760 …}
  -id: 264777
  -bodyTs: "'avail':9 'daemon':12 'everi':11 'method':8 'still':3 'understand':6"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294359"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949847 {#5748
    date: 2023-12-30 16:24:07.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
125 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
126 DENIED moderate
App\Entity\EntryComment {#5767
  +user: Proxies\__CG__\App\Entity\User {#5572 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5749
    +user: Proxies\__CG__\App\Entity\User {#5221 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5571
      +user: Proxies\__CG__\App\Entity\User {#5572 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#5252
        +user: Proxies\__CG__\App\Entity\User {#1970 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: App\Entity\EntryComment {#4450
          +user: App\Entity\User {#4463 …}
          +entry: App\Entity\Entry {#2419}
          +magazine: App\Entity\Magazine {#265}
          +image: null
          +parent: null
          +root: null
          +body: """
            > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
            \n
            This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
            """
          +lang: "en"
          +isAdult: false
          +favouriteCount: 54
          +score: 0
          +lastActive: DateTime @1710869230 {#4445
            date: 2024-03-19 18:27:10.0 +01:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@renzev@lemmy.world"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4451 …}
          +nested: Doctrine\ORM\PersistentCollection {#4453 …}
          +votes: Doctrine\ORM\PersistentCollection {#4455 …}
          +reports: Doctrine\ORM\PersistentCollection {#4457 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
          -id: 260991
          -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemmy.world/comment/6285057"
          +editedAt: null
          +createdAt: DateTimeImmutable @1703810246 {#4446
            date: 2023-12-29 01:37:26.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4450}
        +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
        +lang: "en"
        +isAdult: false
        +favouriteCount: 6
        +score: 0
        +lastActive: DateTime @1703812423 {#5250
          date: 2023-12-29 02:13:43.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
          "@aberrate_junior_beatnik@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#5253 …}
        +nested: Doctrine\ORM\PersistentCollection {#5255 …}
        +votes: Doctrine\ORM\PersistentCollection {#5257 …}
        +reports: Doctrine\ORM\PersistentCollection {#5259 …}
        +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
        +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
        -id: 261063
        -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285506"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703812423 {#5251
          date: 2023-12-29 02:13:43.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4450}
      +body: "It’s much easier to understand how dbus works once than to understand how every daemon you connect to works every time you interface with a new daemon."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 4
      +score: 0
      +lastActive: DateTime @1703896071 {#5569
        date: 2023-12-30 01:27:51.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@aberrate_junior_beatnik@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5573 …}
      +nested: Doctrine\ORM\PersistentCollection {#5575 …}
      +votes: Doctrine\ORM\PersistentCollection {#5577 …}
      +reports: Doctrine\ORM\PersistentCollection {#5579 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5581 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5583 …}
      -id: 263578
      -bodyTs: "'connect':18 'daemon':16,28 'dbus':8 'easier':4 'everi':15,21 'interfac':24 'much':3 'new':27 'time':22 'understand':6,13 'work':9,20"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ml/comment/6948768"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703896071 {#5570
        date: 2023-12-30 01:27:51.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "but you still have to understand the methods available in every daemon"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 0
    +score: 0
    +lastActive: DateTime @1703949847 {#5747
      date: 2023-12-30 16:24:07.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
      "@WetBeardHairs@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5750 …}
    +nested: Doctrine\ORM\PersistentCollection {#5752 …}
    +votes: Doctrine\ORM\PersistentCollection {#5754 …}
    +reports: Doctrine\ORM\PersistentCollection {#5756 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5758 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5760 …}
    -id: 264777
    -bodyTs: "'avail':9 'daemon':12 'everi':11 'method':8 'still':3 'understand':6"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.dbzer0.com/comment/6294359"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703949847 {#5748
      date: 2023-12-30 16:24:07.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: """
    Yeah that’s the case with programming… well anything. This at least gives you a way to automatically receive all of that data from any app without excessive prior knowledge. With a small amount of info you can filter for specific events and create all kinds of robust functionality. That’s the power of a set protocol - it is to make things widely compatible with one another by only depending on the dbus protocol and app name. Otherwise you may need to depend on some shared objects which makes deployment and maintenance a total clusterfuck.\n
    \n
    [en.wikipedia.org/…/Coupling_(computer_programming…](https://en.wikipedia.org/wiki/Coupling_(computer_programming))
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1704205053 {#5766
    date: 2024-01-02 15:17:33.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
    "@WetBeardHairs@lemmy.ml"
    "@WarmApplePieShrek@lemmy.dbzer0.com"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5771 …}
  +nested: Doctrine\ORM\PersistentCollection {#5777 …}
  +votes: Doctrine\ORM\PersistentCollection {#5773 …}
  +reports: Doctrine\ORM\PersistentCollection {#5778 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5780 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5782 …}
  -id: 273487
  -bodyTs: "'/coupling_':97 '/wiki/coupling_(computer_programming))':102 'amount':34 'anoth':67 'anyth':9 'app':26,76 'automat':18 'case':5 'clusterfuck':95 'compat':64 'comput':98 'creat':44 'data':23 'dbus':73 'depend':70,83 'deploy':90 'en.wikipedia.org':96,101 'en.wikipedia.org/wiki/coupling_(computer_programming))':100 'event':42 'excess':28 'filter':39 'function':49 'give':13 'info':36 'kind':46 'knowledg':30 'least':12 'mainten':92 'make':61,89 'may':80 'name':77 'need':81 'object':87 'one':66 'otherwis':78 'power':53 'prior':29 'program':7,99 'protocol':57,74 'receiv':19 'robust':48 'set':56 'share':86 'small':33 'specif':41 'thing':62 'total':94 'way':16 'well':8 'wide':63 'without':27 'yeah':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7011052"
  +editedAt: null
  +createdAt: DateTimeImmutable @1704205053 {#5763
    date: 2024-01-02 15:17: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
127 DENIED edit
App\Entity\EntryComment {#5767
  +user: Proxies\__CG__\App\Entity\User {#5572 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5749
    +user: Proxies\__CG__\App\Entity\User {#5221 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5571
      +user: Proxies\__CG__\App\Entity\User {#5572 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#5252
        +user: Proxies\__CG__\App\Entity\User {#1970 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: App\Entity\EntryComment {#4450
          +user: App\Entity\User {#4463 …}
          +entry: App\Entity\Entry {#2419}
          +magazine: App\Entity\Magazine {#265}
          +image: null
          +parent: null
          +root: null
          +body: """
            > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
            \n
            This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
            """
          +lang: "en"
          +isAdult: false
          +favouriteCount: 54
          +score: 0
          +lastActive: DateTime @1710869230 {#4445
            date: 2024-03-19 18:27:10.0 +01:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@renzev@lemmy.world"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4451 …}
          +nested: Doctrine\ORM\PersistentCollection {#4453 …}
          +votes: Doctrine\ORM\PersistentCollection {#4455 …}
          +reports: Doctrine\ORM\PersistentCollection {#4457 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
          -id: 260991
          -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemmy.world/comment/6285057"
          +editedAt: null
          +createdAt: DateTimeImmutable @1703810246 {#4446
            date: 2023-12-29 01:37:26.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4450}
        +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
        +lang: "en"
        +isAdult: false
        +favouriteCount: 6
        +score: 0
        +lastActive: DateTime @1703812423 {#5250
          date: 2023-12-29 02:13:43.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
          "@aberrate_junior_beatnik@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#5253 …}
        +nested: Doctrine\ORM\PersistentCollection {#5255 …}
        +votes: Doctrine\ORM\PersistentCollection {#5257 …}
        +reports: Doctrine\ORM\PersistentCollection {#5259 …}
        +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
        +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
        -id: 261063
        -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285506"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703812423 {#5251
          date: 2023-12-29 02:13:43.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4450}
      +body: "It’s much easier to understand how dbus works once than to understand how every daemon you connect to works every time you interface with a new daemon."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 4
      +score: 0
      +lastActive: DateTime @1703896071 {#5569
        date: 2023-12-30 01:27:51.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@aberrate_junior_beatnik@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5573 …}
      +nested: Doctrine\ORM\PersistentCollection {#5575 …}
      +votes: Doctrine\ORM\PersistentCollection {#5577 …}
      +reports: Doctrine\ORM\PersistentCollection {#5579 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5581 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5583 …}
      -id: 263578
      -bodyTs: "'connect':18 'daemon':16,28 'dbus':8 'easier':4 'everi':15,21 'interfac':24 'much':3 'new':27 'time':22 'understand':6,13 'work':9,20"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ml/comment/6948768"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703896071 {#5570
        date: 2023-12-30 01:27:51.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "but you still have to understand the methods available in every daemon"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 0
    +score: 0
    +lastActive: DateTime @1703949847 {#5747
      date: 2023-12-30 16:24:07.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
      "@WetBeardHairs@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5750 …}
    +nested: Doctrine\ORM\PersistentCollection {#5752 …}
    +votes: Doctrine\ORM\PersistentCollection {#5754 …}
    +reports: Doctrine\ORM\PersistentCollection {#5756 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5758 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5760 …}
    -id: 264777
    -bodyTs: "'avail':9 'daemon':12 'everi':11 'method':8 'still':3 'understand':6"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.dbzer0.com/comment/6294359"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703949847 {#5748
      date: 2023-12-30 16:24:07.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: """
    Yeah that’s the case with programming… well anything. This at least gives you a way to automatically receive all of that data from any app without excessive prior knowledge. With a small amount of info you can filter for specific events and create all kinds of robust functionality. That’s the power of a set protocol - it is to make things widely compatible with one another by only depending on the dbus protocol and app name. Otherwise you may need to depend on some shared objects which makes deployment and maintenance a total clusterfuck.\n
    \n
    [en.wikipedia.org/…/Coupling_(computer_programming…](https://en.wikipedia.org/wiki/Coupling_(computer_programming))
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1704205053 {#5766
    date: 2024-01-02 15:17:33.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
    "@WetBeardHairs@lemmy.ml"
    "@WarmApplePieShrek@lemmy.dbzer0.com"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5771 …}
  +nested: Doctrine\ORM\PersistentCollection {#5777 …}
  +votes: Doctrine\ORM\PersistentCollection {#5773 …}
  +reports: Doctrine\ORM\PersistentCollection {#5778 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5780 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5782 …}
  -id: 273487
  -bodyTs: "'/coupling_':97 '/wiki/coupling_(computer_programming))':102 'amount':34 'anoth':67 'anyth':9 'app':26,76 'automat':18 'case':5 'clusterfuck':95 'compat':64 'comput':98 'creat':44 'data':23 'dbus':73 'depend':70,83 'deploy':90 'en.wikipedia.org':96,101 'en.wikipedia.org/wiki/coupling_(computer_programming))':100 'event':42 'excess':28 'filter':39 'function':49 'give':13 'info':36 'kind':46 'knowledg':30 'least':12 'mainten':92 'make':61,89 'may':80 'name':77 'need':81 'object':87 'one':66 'otherwis':78 'power':53 'prior':29 'program':7,99 'protocol':57,74 'receiv':19 'robust':48 'set':56 'share':86 'small':33 'specif':41 'thing':62 'total':94 'way':16 'well':8 'wide':63 'without':27 'yeah':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7011052"
  +editedAt: null
  +createdAt: DateTimeImmutable @1704205053 {#5763
    date: 2024-01-02 15:17: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
128 DENIED moderate
App\Entity\EntryComment {#5767
  +user: Proxies\__CG__\App\Entity\User {#5572 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5749
    +user: Proxies\__CG__\App\Entity\User {#5221 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5571
      +user: Proxies\__CG__\App\Entity\User {#5572 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#5252
        +user: Proxies\__CG__\App\Entity\User {#1970 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: App\Entity\EntryComment {#4450
          +user: App\Entity\User {#4463 …}
          +entry: App\Entity\Entry {#2419}
          +magazine: App\Entity\Magazine {#265}
          +image: null
          +parent: null
          +root: null
          +body: """
            > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
            \n
            This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
            """
          +lang: "en"
          +isAdult: false
          +favouriteCount: 54
          +score: 0
          +lastActive: DateTime @1710869230 {#4445
            date: 2024-03-19 18:27:10.0 +01:00
          }
          +ip: null
          +tags: null
          +mentions: [
            "@renzev@lemmy.world"
          ]
          +children: Doctrine\ORM\PersistentCollection {#4451 …}
          +nested: Doctrine\ORM\PersistentCollection {#4453 …}
          +votes: Doctrine\ORM\PersistentCollection {#4455 …}
          +reports: Doctrine\ORM\PersistentCollection {#4457 …}
          +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
          +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
          -id: 260991
          -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
          +ranking: 0
          +commentCount: 0
          +upVotes: 0
          +downVotes: 0
          +visibility: "visible             "
          +apId: "https://lemmy.world/comment/6285057"
          +editedAt: null
          +createdAt: DateTimeImmutable @1703810246 {#4446
            date: 2023-12-29 01:37:26.0 +01:00
          }
        }
        +root: App\Entity\EntryComment {#4450}
        +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
        +lang: "en"
        +isAdult: false
        +favouriteCount: 6
        +score: 0
        +lastActive: DateTime @1703812423 {#5250
          date: 2023-12-29 02:13:43.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
          "@aberrate_junior_beatnik@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#5253 …}
        +nested: Doctrine\ORM\PersistentCollection {#5255 …}
        +votes: Doctrine\ORM\PersistentCollection {#5257 …}
        +reports: Doctrine\ORM\PersistentCollection {#5259 …}
        +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
        +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
        -id: 261063
        -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://lemmy.world/comment/6285506"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703812423 {#5251
          date: 2023-12-29 02:13:43.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4450}
      +body: "It’s much easier to understand how dbus works once than to understand how every daemon you connect to works every time you interface with a new daemon."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 4
      +score: 0
      +lastActive: DateTime @1703896071 {#5569
        date: 2023-12-30 01:27:51.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@aberrate_junior_beatnik@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5573 …}
      +nested: Doctrine\ORM\PersistentCollection {#5575 …}
      +votes: Doctrine\ORM\PersistentCollection {#5577 …}
      +reports: Doctrine\ORM\PersistentCollection {#5579 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5581 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5583 …}
      -id: 263578
      -bodyTs: "'connect':18 'daemon':16,28 'dbus':8 'easier':4 'everi':15,21 'interfac':24 'much':3 'new':27 'time':22 'understand':6,13 'work':9,20"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ml/comment/6948768"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703896071 {#5570
        date: 2023-12-30 01:27:51.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "but you still have to understand the methods available in every daemon"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 0
    +score: 0
    +lastActive: DateTime @1703949847 {#5747
      date: 2023-12-30 16:24:07.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
      "@WetBeardHairs@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5750 …}
    +nested: Doctrine\ORM\PersistentCollection {#5752 …}
    +votes: Doctrine\ORM\PersistentCollection {#5754 …}
    +reports: Doctrine\ORM\PersistentCollection {#5756 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5758 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5760 …}
    -id: 264777
    -bodyTs: "'avail':9 'daemon':12 'everi':11 'method':8 'still':3 'understand':6"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.dbzer0.com/comment/6294359"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703949847 {#5748
      date: 2023-12-30 16:24:07.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: """
    Yeah that’s the case with programming… well anything. This at least gives you a way to automatically receive all of that data from any app without excessive prior knowledge. With a small amount of info you can filter for specific events and create all kinds of robust functionality. That’s the power of a set protocol - it is to make things widely compatible with one another by only depending on the dbus protocol and app name. Otherwise you may need to depend on some shared objects which makes deployment and maintenance a total clusterfuck.\n
    \n
    [en.wikipedia.org/…/Coupling_(computer_programming…](https://en.wikipedia.org/wiki/Coupling_(computer_programming))
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1704205053 {#5766
    date: 2024-01-02 15:17:33.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
    "@WetBeardHairs@lemmy.ml"
    "@WarmApplePieShrek@lemmy.dbzer0.com"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5771 …}
  +nested: Doctrine\ORM\PersistentCollection {#5777 …}
  +votes: Doctrine\ORM\PersistentCollection {#5773 …}
  +reports: Doctrine\ORM\PersistentCollection {#5778 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5780 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5782 …}
  -id: 273487
  -bodyTs: "'/coupling_':97 '/wiki/coupling_(computer_programming))':102 'amount':34 'anoth':67 'anyth':9 'app':26,76 'automat':18 'case':5 'clusterfuck':95 'compat':64 'comput':98 'creat':44 'data':23 'dbus':73 'depend':70,83 'deploy':90 'en.wikipedia.org':96,101 'en.wikipedia.org/wiki/coupling_(computer_programming))':100 'event':42 'excess':28 'filter':39 'function':49 'give':13 'info':36 'kind':46 'knowledg':30 'least':12 'mainten':92 'make':61,89 'may':80 'name':77 'need':81 'object':87 'one':66 'otherwis':78 'power':53 'prior':29 'program':7,99 'protocol':57,74 'receiv':19 'robust':48 'set':56 'share':86 'small':33 'specif':41 'thing':62 'total':94 'way':16 'well':8 'wide':63 'without':27 'yeah':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/7011052"
  +editedAt: null
  +createdAt: DateTimeImmutable @1704205053 {#5763
    date: 2024-01-02 15:17: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
129 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
130 DENIED moderate
App\Entity\EntryComment {#5587
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5252
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4450
      +user: App\Entity\User {#4463 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
        \n
        This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 54
      +score: 0
      +lastActive: DateTime @1710869230 {#4445
        date: 2024-03-19 18:27:10.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4451 …}
      +nested: Doctrine\ORM\PersistentCollection {#4453 …}
      +votes: Doctrine\ORM\PersistentCollection {#4455 …}
      +reports: Doctrine\ORM\PersistentCollection {#4457 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
      -id: 260991
      -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285057"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810246 {#4446
        date: 2023-12-29 01:37:26.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703812423 {#5250
      date: 2023-12-29 02:13:43.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5253 …}
    +nested: Doctrine\ORM\PersistentCollection {#5255 …}
    +votes: Doctrine\ORM\PersistentCollection {#5257 …}
    +reports: Doctrine\ORM\PersistentCollection {#5259 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
    -id: 261063
    -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285506"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812423 {#5251
      date: 2023-12-29 02:13:43.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: "You got downvoted for speaking the truth. You can’t talk to a dbus app without understanding how it communicates. You can’t talk to a sockets app without understanding how it communicates."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703949828 {#5585
    date: 2023-12-30 16:23:48.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5588 …}
  +nested: Doctrine\ORM\PersistentCollection {#5590 …}
  +votes: Doctrine\ORM\PersistentCollection {#5592 …}
  +reports: Doctrine\ORM\PersistentCollection {#5594 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5596 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5598 …}
  -id: 264774
  -bodyTs: "'app':15,28 'communic':20,33 'dbus':14 'downvot':3 'got':2 'socket':27 'speak':5 'talk':11,24 'truth':7 'understand':17,30 'without':16,29"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294352"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949828 {#5586
    date: 2023-12-30 16:23:48.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
131 DENIED edit
App\Entity\EntryComment {#5587
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5252
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4450
      +user: App\Entity\User {#4463 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
        \n
        This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 54
      +score: 0
      +lastActive: DateTime @1710869230 {#4445
        date: 2024-03-19 18:27:10.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4451 …}
      +nested: Doctrine\ORM\PersistentCollection {#4453 …}
      +votes: Doctrine\ORM\PersistentCollection {#4455 …}
      +reports: Doctrine\ORM\PersistentCollection {#4457 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
      -id: 260991
      -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285057"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810246 {#4446
        date: 2023-12-29 01:37:26.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703812423 {#5250
      date: 2023-12-29 02:13:43.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5253 …}
    +nested: Doctrine\ORM\PersistentCollection {#5255 …}
    +votes: Doctrine\ORM\PersistentCollection {#5257 …}
    +reports: Doctrine\ORM\PersistentCollection {#5259 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
    -id: 261063
    -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285506"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812423 {#5251
      date: 2023-12-29 02:13:43.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: "You got downvoted for speaking the truth. You can’t talk to a dbus app without understanding how it communicates. You can’t talk to a sockets app without understanding how it communicates."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703949828 {#5585
    date: 2023-12-30 16:23:48.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5588 …}
  +nested: Doctrine\ORM\PersistentCollection {#5590 …}
  +votes: Doctrine\ORM\PersistentCollection {#5592 …}
  +reports: Doctrine\ORM\PersistentCollection {#5594 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5596 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5598 …}
  -id: 264774
  -bodyTs: "'app':15,28 'communic':20,33 'dbus':14 'downvot':3 'got':2 'socket':27 'speak':5 'talk':11,24 'truth':7 'understand':17,30 'without':16,29"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294352"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949828 {#5586
    date: 2023-12-30 16:23:48.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
132 DENIED moderate
App\Entity\EntryComment {#5587
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5252
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4450
      +user: App\Entity\User {#4463 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        > Want to exchange information in json? plaintext? binary data? Sockets can do it.\n
        \n
        This is exactly why you need something like dbus. If you just have a socket, you know nothing about how the data is structured, what the communication protocol is, etc. dbus defines all this.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 54
      +score: 0
      +lastActive: DateTime @1710869230 {#4445
        date: 2024-03-19 18:27:10.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4451 …}
      +nested: Doctrine\ORM\PersistentCollection {#4453 …}
      +votes: Doctrine\ORM\PersistentCollection {#4455 …}
      +reports: Doctrine\ORM\PersistentCollection {#4457 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4459 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4461 …}
      -id: 260991
      -bodyTs: "'binari':8 'communic':40 'data':9,35 'dbus':22,44 'defin':45 'etc':43 'exact':16 'exchang':3 'inform':4 'json':6 'know':30 'like':21 'need':19 'noth':31 'plaintext':7 'protocol':41 'socket':10,28 'someth':20 'structur':37 'want':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285057"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703810246 {#4446
        date: 2023-12-29 01:37:26.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4450}
    +body: "In either case you still need to read the documentation of whatever daemon you’re trying to interface with to understand how it actually works. Dbus just adds the extra overhead of *also* needing to understand how dbus itself works. Meanwhile sockets can be explained in sixteen words: “It’s like a TCP server, but listening on a path instead of an ip and port”."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703812423 {#5250
      date: 2023-12-29 02:13:43.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@aberrate_junior_beatnik@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5253 …}
    +nested: Doctrine\ORM\PersistentCollection {#5255 …}
    +votes: Doctrine\ORM\PersistentCollection {#5257 …}
    +reports: Doctrine\ORM\PersistentCollection {#5259 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5261 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5263 …}
    -id: 261063
    -bodyTs: "'actual':24 'add':28 'also':33 'case':3 'daemon':13 'dbus':26,38 'document':10 'either':2 'explain':45 'extra':30 'instead':60 'interfac':18 'ip':63 'like':51 'listen':56 'meanwhil':41 'need':6,34 'overhead':31 'path':59 'port':65 're':15 'read':8 'server':54 'sixteen':47 'socket':42 'still':5 'tcp':53 'tri':16 'understand':21,36 'whatev':12 'word':48 'work':25,40"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285506"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703812423 {#5251
      date: 2023-12-29 02:13:43.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4450}
  +body: "You got downvoted for speaking the truth. You can’t talk to a dbus app without understanding how it communicates. You can’t talk to a sockets app without understanding how it communicates."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703949828 {#5585
    date: 2023-12-30 16:23:48.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@aberrate_junior_beatnik@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5588 …}
  +nested: Doctrine\ORM\PersistentCollection {#5590 …}
  +votes: Doctrine\ORM\PersistentCollection {#5592 …}
  +reports: Doctrine\ORM\PersistentCollection {#5594 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5596 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5598 …}
  -id: 264774
  -bodyTs: "'app':15,28 'communic':20,33 'dbus':14 'downvot':3 'got':2 'socket':27 'speak':5 'talk':11,24 'truth':7 'understand':17,30 'without':16,29"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294352"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949828 {#5586
    date: 2023-12-30 16:23:48.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
133 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
134 DENIED moderate
App\Entity\EntryComment {#4523
  +user: App\Entity\User {#4536 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    Look into history of object brokering in object oriented environments. I was around when KDE went from CORBA to DCOP to DBUS, but not involved in the decisions. Basically: object sharing between processes with security, type translation, and a few other things. In the Microsoft world, this was called “component object model” if my memory is correct.\n
    \n
    DBUS is pretty nice for complex interactions.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 42
  +score: 0
  +lastActive: DateTime @1708892480 {#4518
    date: 2024-02-25 21:21:20.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4524 …}
  +nested: Doctrine\ORM\PersistentCollection {#4526 …}
  +votes: Doctrine\ORM\PersistentCollection {#4528 …}
  +reports: Doctrine\ORM\PersistentCollection {#4530 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4532 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4534 …}
  -id: 260883
  -bodyTs: "'around':13 'basic':29 'broker':6 'call':49 'complex':63 'compon':50 'corba':18 'correct':57 'dbus':22,58 'dcop':20 'decis':28 'environ':10 'histori':3 'interact':64 'involv':25 'kde':15 'look':1 'memori':55 'microsoft':45 'model':52 'nice':61 'object':5,8,30,51 'orient':9 'pretti':60 'process':33 'secur':35 'share':31 'thing':42 'translat':37 'type':36 'went':16 'world':46"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/5931063"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807851 {#4519
    date: 2023-12-29 00:57:31.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
135 DENIED edit
App\Entity\EntryComment {#4523
  +user: App\Entity\User {#4536 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    Look into history of object brokering in object oriented environments. I was around when KDE went from CORBA to DCOP to DBUS, but not involved in the decisions. Basically: object sharing between processes with security, type translation, and a few other things. In the Microsoft world, this was called “component object model” if my memory is correct.\n
    \n
    DBUS is pretty nice for complex interactions.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 42
  +score: 0
  +lastActive: DateTime @1708892480 {#4518
    date: 2024-02-25 21:21:20.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4524 …}
  +nested: Doctrine\ORM\PersistentCollection {#4526 …}
  +votes: Doctrine\ORM\PersistentCollection {#4528 …}
  +reports: Doctrine\ORM\PersistentCollection {#4530 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4532 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4534 …}
  -id: 260883
  -bodyTs: "'around':13 'basic':29 'broker':6 'call':49 'complex':63 'compon':50 'corba':18 'correct':57 'dbus':22,58 'dcop':20 'decis':28 'environ':10 'histori':3 'interact':64 'involv':25 'kde':15 'look':1 'memori':55 'microsoft':45 'model':52 'nice':61 'object':5,8,30,51 'orient':9 'pretti':60 'process':33 'secur':35 'share':31 'thing':42 'translat':37 'type':36 'went':16 'world':46"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/5931063"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807851 {#4519
    date: 2023-12-29 00:57:31.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
136 DENIED moderate
App\Entity\EntryComment {#4523
  +user: App\Entity\User {#4536 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    Look into history of object brokering in object oriented environments. I was around when KDE went from CORBA to DCOP to DBUS, but not involved in the decisions. Basically: object sharing between processes with security, type translation, and a few other things. In the Microsoft world, this was called “component object model” if my memory is correct.\n
    \n
    DBUS is pretty nice for complex interactions.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 42
  +score: 0
  +lastActive: DateTime @1708892480 {#4518
    date: 2024-02-25 21:21:20.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4524 …}
  +nested: Doctrine\ORM\PersistentCollection {#4526 …}
  +votes: Doctrine\ORM\PersistentCollection {#4528 …}
  +reports: Doctrine\ORM\PersistentCollection {#4530 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4532 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4534 …}
  -id: 260883
  -bodyTs: "'around':13 'basic':29 'broker':6 'call':49 'complex':63 'compon':50 'corba':18 'correct':57 'dbus':22,58 'dcop':20 'decis':28 'environ':10 'histori':3 'interact':64 'involv':25 'kde':15 'look':1 'memori':55 'microsoft':45 'model':52 'nice':61 'object':5,8,30,51 'orient':9 'pretti':60 'process':33 'secur':35 'share':31 'thing':42 'translat':37 'type':36 'went':16 'world':46"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/5931063"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807851 {#4519
    date: 2023-12-29 00:57:31.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
137 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
138 DENIED moderate
App\Entity\EntryComment {#5172
  +user: Proxies\__CG__\App\Entity\User {#5173 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4523
    +user: App\Entity\User {#4536 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Look into history of object brokering in object oriented environments. I was around when KDE went from CORBA to DCOP to DBUS, but not involved in the decisions. Basically: object sharing between processes with security, type translation, and a few other things. In the Microsoft world, this was called “component object model” if my memory is correct.\n
      \n
      DBUS is pretty nice for complex interactions.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 42
    +score: 0
    +lastActive: DateTime @1708892480 {#4518
      date: 2024-02-25 21:21:20.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4524 …}
    +nested: Doctrine\ORM\PersistentCollection {#4526 …}
    +votes: Doctrine\ORM\PersistentCollection {#4528 …}
    +reports: Doctrine\ORM\PersistentCollection {#4530 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4532 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4534 …}
    -id: 260883
    -bodyTs: "'around':13 'basic':29 'broker':6 'call':49 'complex':63 'compon':50 'corba':18 'correct':57 'dbus':22,58 'dcop':20 'decis':28 'environ':10 'histori':3 'interact':64 'involv':25 'kde':15 'look':1 'memori':55 'microsoft':45 'model':52 'nice':61 'object':5,8,30,51 'orient':9 'pretti':60 'process':33 'secur':35 'share':31 'thing':42 'translat':37 'type':36 'went':16 'world':46"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/5931063"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807851 {#4519
      date: 2023-12-29 00:57:31.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4523}
  +body: "Based on the various other descriptions of the DBUS features, I kept thinking “this sounds like a message passing model with a bit of CORBA hiding in there”. It’s got a bit of SLP and AMQP/MQTT to it, just on a local machine instead of a distributed network. It’s solving a lot of problems with service discovery, message passing structure, and separating transmission layer details from service API design. Raw sockets/pipes can always be used to pass data (it’s how DBUS does it!), but there’s additional problems of where to send the data and how to ensure data formatting that sockets/pipes do not have the capability of solving by design since they’re simple and foundational to how interprocess communication works in the kernel."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 15
  +score: 0
  +lastActive: DateTime @1703813310 {#5170
    date: 2023-12-29 02:28:30.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@troyunrau@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5174 …}
  +nested: Doctrine\ORM\PersistentCollection {#5176 …}
  +votes: Doctrine\ORM\PersistentCollection {#5178 …}
  +reports: Doctrine\ORM\PersistentCollection {#5180 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5182 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5184 …}
  -id: 261098
  -bodyTs: "'addit':90 'alway':75 'amqp/mqtt':37 'api':70 'base':1 'bit':23,33 'capabl':110 'communic':124 'corba':25 'data':80,97,102 'dbus':9,84 'descript':6 'design':71,114 'detail':67 'discoveri':59 'distribut':48 'ensur':101 'featur':10 'format':103 'foundat':120 'got':31 'hide':26 'instead':45 'interprocess':123 'kept':12 'kernel':128 'layer':66 'like':16 'local':43 'lot':54 'machin':44 'messag':18,60 'model':20 'network':49 'pass':19,61,79 'problem':56,91 'raw':72 're':117 'send':95 'separ':64 'servic':58,69 'simpl':118 'sinc':115 'slp':35 'sockets/pipes':73,105 'solv':52,112 'sound':15 'structur':62 'think':13 'transmiss':65 'use':77 'various':4 'work':125"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6932913"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703813310 {#5171
    date: 2023-12-29 02:28: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
139 DENIED edit
App\Entity\EntryComment {#5172
  +user: Proxies\__CG__\App\Entity\User {#5173 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4523
    +user: App\Entity\User {#4536 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Look into history of object brokering in object oriented environments. I was around when KDE went from CORBA to DCOP to DBUS, but not involved in the decisions. Basically: object sharing between processes with security, type translation, and a few other things. In the Microsoft world, this was called “component object model” if my memory is correct.\n
      \n
      DBUS is pretty nice for complex interactions.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 42
    +score: 0
    +lastActive: DateTime @1708892480 {#4518
      date: 2024-02-25 21:21:20.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4524 …}
    +nested: Doctrine\ORM\PersistentCollection {#4526 …}
    +votes: Doctrine\ORM\PersistentCollection {#4528 …}
    +reports: Doctrine\ORM\PersistentCollection {#4530 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4532 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4534 …}
    -id: 260883
    -bodyTs: "'around':13 'basic':29 'broker':6 'call':49 'complex':63 'compon':50 'corba':18 'correct':57 'dbus':22,58 'dcop':20 'decis':28 'environ':10 'histori':3 'interact':64 'involv':25 'kde':15 'look':1 'memori':55 'microsoft':45 'model':52 'nice':61 'object':5,8,30,51 'orient':9 'pretti':60 'process':33 'secur':35 'share':31 'thing':42 'translat':37 'type':36 'went':16 'world':46"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/5931063"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807851 {#4519
      date: 2023-12-29 00:57:31.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4523}
  +body: "Based on the various other descriptions of the DBUS features, I kept thinking “this sounds like a message passing model with a bit of CORBA hiding in there”. It’s got a bit of SLP and AMQP/MQTT to it, just on a local machine instead of a distributed network. It’s solving a lot of problems with service discovery, message passing structure, and separating transmission layer details from service API design. Raw sockets/pipes can always be used to pass data (it’s how DBUS does it!), but there’s additional problems of where to send the data and how to ensure data formatting that sockets/pipes do not have the capability of solving by design since they’re simple and foundational to how interprocess communication works in the kernel."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 15
  +score: 0
  +lastActive: DateTime @1703813310 {#5170
    date: 2023-12-29 02:28:30.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@troyunrau@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5174 …}
  +nested: Doctrine\ORM\PersistentCollection {#5176 …}
  +votes: Doctrine\ORM\PersistentCollection {#5178 …}
  +reports: Doctrine\ORM\PersistentCollection {#5180 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5182 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5184 …}
  -id: 261098
  -bodyTs: "'addit':90 'alway':75 'amqp/mqtt':37 'api':70 'base':1 'bit':23,33 'capabl':110 'communic':124 'corba':25 'data':80,97,102 'dbus':9,84 'descript':6 'design':71,114 'detail':67 'discoveri':59 'distribut':48 'ensur':101 'featur':10 'format':103 'foundat':120 'got':31 'hide':26 'instead':45 'interprocess':123 'kept':12 'kernel':128 'layer':66 'like':16 'local':43 'lot':54 'machin':44 'messag':18,60 'model':20 'network':49 'pass':19,61,79 'problem':56,91 'raw':72 're':117 'send':95 'separ':64 'servic':58,69 'simpl':118 'sinc':115 'slp':35 'sockets/pipes':73,105 'solv':52,112 'sound':15 'structur':62 'think':13 'transmiss':65 'use':77 'various':4 'work':125"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6932913"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703813310 {#5171
    date: 2023-12-29 02:28: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
140 DENIED moderate
App\Entity\EntryComment {#5172
  +user: Proxies\__CG__\App\Entity\User {#5173 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4523
    +user: App\Entity\User {#4536 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Look into history of object brokering in object oriented environments. I was around when KDE went from CORBA to DCOP to DBUS, but not involved in the decisions. Basically: object sharing between processes with security, type translation, and a few other things. In the Microsoft world, this was called “component object model” if my memory is correct.\n
      \n
      DBUS is pretty nice for complex interactions.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 42
    +score: 0
    +lastActive: DateTime @1708892480 {#4518
      date: 2024-02-25 21:21:20.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4524 …}
    +nested: Doctrine\ORM\PersistentCollection {#4526 …}
    +votes: Doctrine\ORM\PersistentCollection {#4528 …}
    +reports: Doctrine\ORM\PersistentCollection {#4530 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4532 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4534 …}
    -id: 260883
    -bodyTs: "'around':13 'basic':29 'broker':6 'call':49 'complex':63 'compon':50 'corba':18 'correct':57 'dbus':22,58 'dcop':20 'decis':28 'environ':10 'histori':3 'interact':64 'involv':25 'kde':15 'look':1 'memori':55 'microsoft':45 'model':52 'nice':61 'object':5,8,30,51 'orient':9 'pretti':60 'process':33 'secur':35 'share':31 'thing':42 'translat':37 'type':36 'went':16 'world':46"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/5931063"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807851 {#4519
      date: 2023-12-29 00:57:31.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4523}
  +body: "Based on the various other descriptions of the DBUS features, I kept thinking “this sounds like a message passing model with a bit of CORBA hiding in there”. It’s got a bit of SLP and AMQP/MQTT to it, just on a local machine instead of a distributed network. It’s solving a lot of problems with service discovery, message passing structure, and separating transmission layer details from service API design. Raw sockets/pipes can always be used to pass data (it’s how DBUS does it!), but there’s additional problems of where to send the data and how to ensure data formatting that sockets/pipes do not have the capability of solving by design since they’re simple and foundational to how interprocess communication works in the kernel."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 15
  +score: 0
  +lastActive: DateTime @1703813310 {#5170
    date: 2023-12-29 02:28:30.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@troyunrau@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5174 …}
  +nested: Doctrine\ORM\PersistentCollection {#5176 …}
  +votes: Doctrine\ORM\PersistentCollection {#5178 …}
  +reports: Doctrine\ORM\PersistentCollection {#5180 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5182 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5184 …}
  -id: 261098
  -bodyTs: "'addit':90 'alway':75 'amqp/mqtt':37 'api':70 'base':1 'bit':23,33 'capabl':110 'communic':124 'corba':25 'data':80,97,102 'dbus':9,84 'descript':6 'design':71,114 'detail':67 'discoveri':59 'distribut':48 'ensur':101 'featur':10 'format':103 'foundat':120 'got':31 'hide':26 'instead':45 'interprocess':123 'kept':12 'kernel':128 'layer':66 'like':16 'local':43 'lot':54 'machin':44 'messag':18,60 'model':20 'network':49 'pass':19,61,79 'problem':56,91 'raw':72 're':117 'send':95 'separ':64 'servic':58,69 'simpl':118 'sinc':115 'slp':35 'sockets/pipes':73,105 'solv':52,112 'sound':15 'structur':62 'think':13 'transmiss':65 'use':77 'various':4 'work':125"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6932913"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703813310 {#5171
    date: 2023-12-29 02:28: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
141 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
142 DENIED moderate
App\Entity\EntryComment {#4598
  +user: App\Entity\User {#4611 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "I don’t know but I’m interested in the answer."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 35
  +score: 0
  +lastActive: DateTime @1708948765 {#4593
    date: 2024-02-26 12:59:25.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4599 …}
  +nested: Doctrine\ORM\PersistentCollection {#4601 …}
  +votes: Doctrine\ORM\PersistentCollection {#4603 …}
  +reports: Doctrine\ORM\PersistentCollection {#4605 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4607 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4609 …}
  -id: 260857
  -bodyTs: "'answer':11 'interest':8 'know':4 'm':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/5930981"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807458 {#4594
    date: 2023-12-29 00:50:58.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
143 DENIED edit
App\Entity\EntryComment {#4598
  +user: App\Entity\User {#4611 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "I don’t know but I’m interested in the answer."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 35
  +score: 0
  +lastActive: DateTime @1708948765 {#4593
    date: 2024-02-26 12:59:25.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4599 …}
  +nested: Doctrine\ORM\PersistentCollection {#4601 …}
  +votes: Doctrine\ORM\PersistentCollection {#4603 …}
  +reports: Doctrine\ORM\PersistentCollection {#4605 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4607 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4609 …}
  -id: 260857
  -bodyTs: "'answer':11 'interest':8 'know':4 'm':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/5930981"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807458 {#4594
    date: 2023-12-29 00:50:58.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
144 DENIED moderate
App\Entity\EntryComment {#4598
  +user: App\Entity\User {#4611 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "I don’t know but I’m interested in the answer."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 35
  +score: 0
  +lastActive: DateTime @1708948765 {#4593
    date: 2024-02-26 12:59:25.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4599 …}
  +nested: Doctrine\ORM\PersistentCollection {#4601 …}
  +votes: Doctrine\ORM\PersistentCollection {#4603 …}
  +reports: Doctrine\ORM\PersistentCollection {#4605 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4607 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4609 …}
  -id: 260857
  -bodyTs: "'answer':11 'interest':8 'know':4 'm':7"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ca/comment/5930981"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807458 {#4594
    date: 2023-12-29 00:50:58.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
145 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
146 DENIED moderate
App\Entity\EntryComment {#5125
  +user: Proxies\__CG__\App\Entity\User {#5122 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4598
    +user: App\Entity\User {#4611 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "I don’t know but I’m interested in the answer."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 35
    +score: 0
    +lastActive: DateTime @1708948765 {#4593
      date: 2024-02-26 12:59:25.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4599 …}
    +nested: Doctrine\ORM\PersistentCollection {#4601 …}
    +votes: Doctrine\ORM\PersistentCollection {#4603 …}
    +reports: Doctrine\ORM\PersistentCollection {#4605 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4607 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4609 …}
    -id: 260857
    -bodyTs: "'answer':11 'interest':8 'know':4 'm':7"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/5930981"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807458 {#4594
      date: 2023-12-29 00:50:58.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4598}
  +body: "New comments have appeared"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703829386 {#5126
    date: 2023-12-29 06:56:26.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@UntouchedWagons@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5119 …}
  +nested: Doctrine\ORM\PersistentCollection {#5117 …}
  +votes: Doctrine\ORM\PersistentCollection {#5121 …}
  +reports: Doctrine\ORM\PersistentCollection {#5132 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5134 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5136 …}
  -id: 261536
  -bodyTs: "'appear':4 'comment':2 'new':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6935847"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703829386 {#5129
    date: 2023-12-29 06:56:26.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
147 DENIED edit
App\Entity\EntryComment {#5125
  +user: Proxies\__CG__\App\Entity\User {#5122 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4598
    +user: App\Entity\User {#4611 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "I don’t know but I’m interested in the answer."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 35
    +score: 0
    +lastActive: DateTime @1708948765 {#4593
      date: 2024-02-26 12:59:25.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4599 …}
    +nested: Doctrine\ORM\PersistentCollection {#4601 …}
    +votes: Doctrine\ORM\PersistentCollection {#4603 …}
    +reports: Doctrine\ORM\PersistentCollection {#4605 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4607 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4609 …}
    -id: 260857
    -bodyTs: "'answer':11 'interest':8 'know':4 'm':7"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/5930981"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807458 {#4594
      date: 2023-12-29 00:50:58.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4598}
  +body: "New comments have appeared"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703829386 {#5126
    date: 2023-12-29 06:56:26.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@UntouchedWagons@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5119 …}
  +nested: Doctrine\ORM\PersistentCollection {#5117 …}
  +votes: Doctrine\ORM\PersistentCollection {#5121 …}
  +reports: Doctrine\ORM\PersistentCollection {#5132 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5134 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5136 …}
  -id: 261536
  -bodyTs: "'appear':4 'comment':2 'new':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6935847"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703829386 {#5129
    date: 2023-12-29 06:56:26.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
148 DENIED moderate
App\Entity\EntryComment {#5125
  +user: Proxies\__CG__\App\Entity\User {#5122 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4598
    +user: App\Entity\User {#4611 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "I don’t know but I’m interested in the answer."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 35
    +score: 0
    +lastActive: DateTime @1708948765 {#4593
      date: 2024-02-26 12:59:25.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4599 …}
    +nested: Doctrine\ORM\PersistentCollection {#4601 …}
    +votes: Doctrine\ORM\PersistentCollection {#4603 …}
    +reports: Doctrine\ORM\PersistentCollection {#4605 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4607 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4609 …}
    -id: 260857
    -bodyTs: "'answer':11 'interest':8 'know':4 'm':7"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ca/comment/5930981"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807458 {#4594
      date: 2023-12-29 00:50:58.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4598}
  +body: "New comments have appeared"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703829386 {#5126
    date: 2023-12-29 06:56:26.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@UntouchedWagons@lemmy.ca"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5119 …}
  +nested: Doctrine\ORM\PersistentCollection {#5117 …}
  +votes: Doctrine\ORM\PersistentCollection {#5121 …}
  +reports: Doctrine\ORM\PersistentCollection {#5132 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5134 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5136 …}
  -id: 261536
  -bodyTs: "'appear':4 'comment':2 'new':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6935847"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703829386 {#5129
    date: 2023-12-29 06:56:26.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
149 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
150 DENIED moderate
App\Entity\EntryComment {#4672
  +user: App\Entity\User {#4685 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    Dbus attempts to provide a standardized system for inter process communication (IPC) without the complexity of managing individual connections between each and every process that needs to share certain types of data.\n
    \n
    <https://en.m.wikipedia.org/wiki/D-Bus>
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 34
  +score: 0
  +lastActive: DateTime @1711564032 {#4667
    date: 2024-03-27 19:27:12.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4673 …}
  +nested: Doctrine\ORM\PersistentCollection {#4675 …}
  +votes: Doctrine\ORM\PersistentCollection {#4677 …}
  +reports: Doctrine\ORM\PersistentCollection {#4679 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4681 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4683 …}
  -id: 260902
  -bodyTs: "'/wiki/d-bus':35 'attempt':2 'certain':29 'communic':11 'complex':15 'connect':19 'data':32 'dbus':1 'en.m.wikipedia.org':34 'en.m.wikipedia.org/wiki/d-bus':33 'everi':23 'individu':18 'inter':9 'ipc':12 'manag':17 'need':26 'process':10,24 'provid':4 'share':28 'standard':6 'system':7 'type':30 'without':13"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6284667"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703808509 {#4668
    date: 2023-12-29 01:08:29.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
151 DENIED edit
App\Entity\EntryComment {#4672
  +user: App\Entity\User {#4685 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    Dbus attempts to provide a standardized system for inter process communication (IPC) without the complexity of managing individual connections between each and every process that needs to share certain types of data.\n
    \n
    <https://en.m.wikipedia.org/wiki/D-Bus>
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 34
  +score: 0
  +lastActive: DateTime @1711564032 {#4667
    date: 2024-03-27 19:27:12.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4673 …}
  +nested: Doctrine\ORM\PersistentCollection {#4675 …}
  +votes: Doctrine\ORM\PersistentCollection {#4677 …}
  +reports: Doctrine\ORM\PersistentCollection {#4679 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4681 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4683 …}
  -id: 260902
  -bodyTs: "'/wiki/d-bus':35 'attempt':2 'certain':29 'communic':11 'complex':15 'connect':19 'data':32 'dbus':1 'en.m.wikipedia.org':34 'en.m.wikipedia.org/wiki/d-bus':33 'everi':23 'individu':18 'inter':9 'ipc':12 'manag':17 'need':26 'process':10,24 'provid':4 'share':28 'standard':6 'system':7 'type':30 'without':13"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6284667"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703808509 {#4668
    date: 2023-12-29 01:08:29.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
152 DENIED moderate
App\Entity\EntryComment {#4672
  +user: App\Entity\User {#4685 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    Dbus attempts to provide a standardized system for inter process communication (IPC) without the complexity of managing individual connections between each and every process that needs to share certain types of data.\n
    \n
    <https://en.m.wikipedia.org/wiki/D-Bus>
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 34
  +score: 0
  +lastActive: DateTime @1711564032 {#4667
    date: 2024-03-27 19:27:12.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4673 …}
  +nested: Doctrine\ORM\PersistentCollection {#4675 …}
  +votes: Doctrine\ORM\PersistentCollection {#4677 …}
  +reports: Doctrine\ORM\PersistentCollection {#4679 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4681 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4683 …}
  -id: 260902
  -bodyTs: "'/wiki/d-bus':35 'attempt':2 'certain':29 'communic':11 'complex':15 'connect':19 'data':32 'dbus':1 'en.m.wikipedia.org':34 'en.m.wikipedia.org/wiki/d-bus':33 'everi':23 'individu':18 'inter':9 'ipc':12 'manag':17 'need':26 'process':10,24 'provid':4 'share':28 'standard':6 'system':7 'type':30 'without':13"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6284667"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703808509 {#4668
    date: 2023-12-29 01:08:29.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
153 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
154 DENIED moderate
App\Entity\EntryComment {#5188
  +user: Proxies\__CG__\App\Entity\User {#5189 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4672
    +user: App\Entity\User {#4685 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Dbus attempts to provide a standardized system for inter process communication (IPC) without the complexity of managing individual connections between each and every process that needs to share certain types of data.\n
      \n
      <https://en.m.wikipedia.org/wiki/D-Bus>
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 34
    +score: 0
    +lastActive: DateTime @1711564032 {#4667
      date: 2024-03-27 19:27:12.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4673 …}
    +nested: Doctrine\ORM\PersistentCollection {#4675 …}
    +votes: Doctrine\ORM\PersistentCollection {#4677 …}
    +reports: Doctrine\ORM\PersistentCollection {#4679 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4681 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4683 …}
    -id: 260902
    -bodyTs: "'/wiki/d-bus':35 'attempt':2 'certain':29 'communic':11 'complex':15 'connect':19 'data':32 'dbus':1 'en.m.wikipedia.org':34 'en.m.wikipedia.org/wiki/d-bus':33 'everi':23 'individu':18 'inter':9 'ipc':12 'manag':17 'need':26 'process':10,24 'provid':4 'share':28 'standard':6 'system':7 'type':30 'without':13"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6284667"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703808509 {#4668
      date: 2023-12-29 01:08:29.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4672}
  +body: """
    But the implemenation has it’s fair share of issues and the attempted reimplementation even more so, because it wants to leverage everything important to Systemd instead.\n
    \n
    Is the dbus spec too big?
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1703854601 {#5186
    date: 2023-12-29 13:56:41.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@dave881@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5190 …}
  +nested: Doctrine\ORM\PersistentCollection {#5192 …}
  +votes: Doctrine\ORM\PersistentCollection {#5194 …}
  +reports: Doctrine\ORM\PersistentCollection {#5196 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5198 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5200 …}
  -id: 279401
  -bodyTs: "'attempt':13 'big':33 'dbus':30 'even':15 'everyth':23 'fair':7 'implemen':3 'import':24 'instead':27 'issu':10 'leverag':22 'reimplement':14 'share':8 'spec':31 'systemd':26 'want':20"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://feddit.ch/comment/4327117"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703854601 {#5187
    date: 2023-12-29 13:56:41.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
155 DENIED edit
App\Entity\EntryComment {#5188
  +user: Proxies\__CG__\App\Entity\User {#5189 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4672
    +user: App\Entity\User {#4685 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Dbus attempts to provide a standardized system for inter process communication (IPC) without the complexity of managing individual connections between each and every process that needs to share certain types of data.\n
      \n
      <https://en.m.wikipedia.org/wiki/D-Bus>
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 34
    +score: 0
    +lastActive: DateTime @1711564032 {#4667
      date: 2024-03-27 19:27:12.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4673 …}
    +nested: Doctrine\ORM\PersistentCollection {#4675 …}
    +votes: Doctrine\ORM\PersistentCollection {#4677 …}
    +reports: Doctrine\ORM\PersistentCollection {#4679 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4681 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4683 …}
    -id: 260902
    -bodyTs: "'/wiki/d-bus':35 'attempt':2 'certain':29 'communic':11 'complex':15 'connect':19 'data':32 'dbus':1 'en.m.wikipedia.org':34 'en.m.wikipedia.org/wiki/d-bus':33 'everi':23 'individu':18 'inter':9 'ipc':12 'manag':17 'need':26 'process':10,24 'provid':4 'share':28 'standard':6 'system':7 'type':30 'without':13"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6284667"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703808509 {#4668
      date: 2023-12-29 01:08:29.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4672}
  +body: """
    But the implemenation has it’s fair share of issues and the attempted reimplementation even more so, because it wants to leverage everything important to Systemd instead.\n
    \n
    Is the dbus spec too big?
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1703854601 {#5186
    date: 2023-12-29 13:56:41.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@dave881@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5190 …}
  +nested: Doctrine\ORM\PersistentCollection {#5192 …}
  +votes: Doctrine\ORM\PersistentCollection {#5194 …}
  +reports: Doctrine\ORM\PersistentCollection {#5196 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5198 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5200 …}
  -id: 279401
  -bodyTs: "'attempt':13 'big':33 'dbus':30 'even':15 'everyth':23 'fair':7 'implemen':3 'import':24 'instead':27 'issu':10 'leverag':22 'reimplement':14 'share':8 'spec':31 'systemd':26 'want':20"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://feddit.ch/comment/4327117"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703854601 {#5187
    date: 2023-12-29 13:56:41.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
156 DENIED moderate
App\Entity\EntryComment {#5188
  +user: Proxies\__CG__\App\Entity\User {#5189 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4672
    +user: App\Entity\User {#4685 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Dbus attempts to provide a standardized system for inter process communication (IPC) without the complexity of managing individual connections between each and every process that needs to share certain types of data.\n
      \n
      <https://en.m.wikipedia.org/wiki/D-Bus>
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 34
    +score: 0
    +lastActive: DateTime @1711564032 {#4667
      date: 2024-03-27 19:27:12.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4673 …}
    +nested: Doctrine\ORM\PersistentCollection {#4675 …}
    +votes: Doctrine\ORM\PersistentCollection {#4677 …}
    +reports: Doctrine\ORM\PersistentCollection {#4679 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4681 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4683 …}
    -id: 260902
    -bodyTs: "'/wiki/d-bus':35 'attempt':2 'certain':29 'communic':11 'complex':15 'connect':19 'data':32 'dbus':1 'en.m.wikipedia.org':34 'en.m.wikipedia.org/wiki/d-bus':33 'everi':23 'individu':18 'inter':9 'ipc':12 'manag':17 'need':26 'process':10,24 'provid':4 'share':28 'standard':6 'system':7 'type':30 'without':13"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6284667"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703808509 {#4668
      date: 2023-12-29 01:08:29.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4672}
  +body: """
    But the implemenation has it’s fair share of issues and the attempted reimplementation even more so, because it wants to leverage everything important to Systemd instead.\n
    \n
    Is the dbus spec too big?
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1703854601 {#5186
    date: 2023-12-29 13:56:41.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@dave881@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5190 …}
  +nested: Doctrine\ORM\PersistentCollection {#5192 …}
  +votes: Doctrine\ORM\PersistentCollection {#5194 …}
  +reports: Doctrine\ORM\PersistentCollection {#5196 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5198 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5200 …}
  -id: 279401
  -bodyTs: "'attempt':13 'big':33 'dbus':30 'even':15 'everyth':23 'fair':7 'implemen':3 'import':24 'instead':27 'issu':10 'leverag':22 'reimplement':14 'share':8 'spec':31 'systemd':26 'want':20"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://feddit.ch/comment/4327117"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703854601 {#5187
    date: 2023-12-29 13:56:41.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
157 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
158 DENIED moderate
App\Entity\EntryComment {#4745
  +user: App\Entity\User {#4758 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Sometimes you want loose coupling."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 31
  +score: 0
  +lastActive: DateTime @1703838283 {#4740
    date: 2023-12-29 09:24:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4746 …}
  +nested: Doctrine\ORM\PersistentCollection {#4748 …}
  +votes: Doctrine\ORM\PersistentCollection {#4750 …}
  +reports: Doctrine\ORM\PersistentCollection {#4752 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4754 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4756 …}
  -id: 261730
  -bodyTs: "'coupl':5 'loos':4 'sometim':1 'want':3"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6289029"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703838283 {#4741
    date: 2023-12-29 09:24:43.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
159 DENIED edit
App\Entity\EntryComment {#4745
  +user: App\Entity\User {#4758 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Sometimes you want loose coupling."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 31
  +score: 0
  +lastActive: DateTime @1703838283 {#4740
    date: 2023-12-29 09:24:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4746 …}
  +nested: Doctrine\ORM\PersistentCollection {#4748 …}
  +votes: Doctrine\ORM\PersistentCollection {#4750 …}
  +reports: Doctrine\ORM\PersistentCollection {#4752 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4754 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4756 …}
  -id: 261730
  -bodyTs: "'coupl':5 'loos':4 'sometim':1 'want':3"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6289029"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703838283 {#4741
    date: 2023-12-29 09:24:43.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
160 DENIED moderate
App\Entity\EntryComment {#4745
  +user: App\Entity\User {#4758 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Sometimes you want loose coupling."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 31
  +score: 0
  +lastActive: DateTime @1703838283 {#4740
    date: 2023-12-29 09:24:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4746 …}
  +nested: Doctrine\ORM\PersistentCollection {#4748 …}
  +votes: Doctrine\ORM\PersistentCollection {#4750 …}
  +reports: Doctrine\ORM\PersistentCollection {#4752 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4754 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4756 …}
  -id: 261730
  -bodyTs: "'coupl':5 'loos':4 'sometim':1 'want':3"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6289029"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703838283 {#4741
    date: 2023-12-29 09:24:43.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
161 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
162 DENIED moderate
App\Entity\EntryComment {#4818
  +user: App\Entity\User {#4831 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    It would not be created if existing plumbing covered all use cases.\n
    \n
    Don’t assume you know better and that developers are simply reinventing the wheel.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 29
  +score: 0
  +lastActive: DateTime @1709067149 {#4813
    date: 2024-02-27 21:52:29.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4819 …}
  +nested: Doctrine\ORM\PersistentCollection {#4821 …}
  +votes: Doctrine\ORM\PersistentCollection {#4823 …}
  +reports: Doctrine\ORM\PersistentCollection {#4825 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4827 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4829 …}
  -id: 260878
  -bodyTs: "'assum':15 'better':18 'case':12 'cover':9 'creat':5 'develop':21 'exist':7 'know':17 'plumb':8 'reinvent':24 'simpli':23 'use':11 'wheel':26 'would':2"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6284549"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807832 {#4814
    date: 2023-12-29 00:57:12.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
163 DENIED edit
App\Entity\EntryComment {#4818
  +user: App\Entity\User {#4831 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    It would not be created if existing plumbing covered all use cases.\n
    \n
    Don’t assume you know better and that developers are simply reinventing the wheel.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 29
  +score: 0
  +lastActive: DateTime @1709067149 {#4813
    date: 2024-02-27 21:52:29.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4819 …}
  +nested: Doctrine\ORM\PersistentCollection {#4821 …}
  +votes: Doctrine\ORM\PersistentCollection {#4823 …}
  +reports: Doctrine\ORM\PersistentCollection {#4825 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4827 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4829 …}
  -id: 260878
  -bodyTs: "'assum':15 'better':18 'case':12 'cover':9 'creat':5 'develop':21 'exist':7 'know':17 'plumb':8 'reinvent':24 'simpli':23 'use':11 'wheel':26 'would':2"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6284549"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807832 {#4814
    date: 2023-12-29 00:57:12.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
164 DENIED moderate
App\Entity\EntryComment {#4818
  +user: App\Entity\User {#4831 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    It would not be created if existing plumbing covered all use cases.\n
    \n
    Don’t assume you know better and that developers are simply reinventing the wheel.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 29
  +score: 0
  +lastActive: DateTime @1709067149 {#4813
    date: 2024-02-27 21:52:29.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4819 …}
  +nested: Doctrine\ORM\PersistentCollection {#4821 …}
  +votes: Doctrine\ORM\PersistentCollection {#4823 …}
  +reports: Doctrine\ORM\PersistentCollection {#4825 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4827 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4829 …}
  -id: 260878
  -bodyTs: "'assum':15 'better':18 'case':12 'cover':9 'creat':5 'develop':21 'exist':7 'know':17 'plumb':8 'reinvent':24 'simpli':23 'use':11 'wheel':26 'would':2"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6284549"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807832 {#4814
    date: 2023-12-29 00:57:12.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
165 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
166 DENIED moderate
App\Entity\EntryComment {#5156
  +user: Proxies\__CG__\App\Entity\User {#5157 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4818
    +user: App\Entity\User {#4831 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      It would not be created if existing plumbing covered all use cases.\n
      \n
      Don’t assume you know better and that developers are simply reinventing the wheel.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 29
    +score: 0
    +lastActive: DateTime @1709067149 {#4813
      date: 2024-02-27 21:52:29.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4819 …}
    +nested: Doctrine\ORM\PersistentCollection {#4821 …}
    +votes: Doctrine\ORM\PersistentCollection {#4823 …}
    +reports: Doctrine\ORM\PersistentCollection {#4825 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4827 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4829 …}
    -id: 260878
    -bodyTs: "'assum':15 'better':18 'case':12 'cover':9 'creat':5 'develop':21 'exist':7 'know':17 'plumb':8 'reinvent':24 'simpli':23 'use':11 'wheel':26 'would':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6284549"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807832 {#4814
      date: 2023-12-29 00:57:12.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4818}
  +body: """
    Reinventing the wheel? Making new systems which create more problems than they solve? Adding abstractions which actually make things more complex?\n
    \n
    Nah, those things have never happened in software
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 18
  +score: 0
  +lastActive: DateTime @1703809916 {#5154
    date: 2023-12-29 01:31:56.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@Quazatron@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5158 …}
  +nested: Doctrine\ORM\PersistentCollection {#5160 …}
  +votes: Doctrine\ORM\PersistentCollection {#5162 …}
  +reports: Doctrine\ORM\PersistentCollection {#5164 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5166 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5168 …}
  -id: 260976
  -bodyTs: "'abstract':15 'actual':17 'ad':14 'complex':21 'creat':8 'happen':27 'make':4,18 'nah':22 'never':26 'new':5 'problem':10 'reinvent':1 'softwar':29 'solv':13 'system':6 'thing':19,24 'wheel':3"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.yachts/comment/435163"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703809916 {#5155
    date: 2023-12-29 01:31:56.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
167 DENIED edit
App\Entity\EntryComment {#5156
  +user: Proxies\__CG__\App\Entity\User {#5157 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4818
    +user: App\Entity\User {#4831 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      It would not be created if existing plumbing covered all use cases.\n
      \n
      Don’t assume you know better and that developers are simply reinventing the wheel.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 29
    +score: 0
    +lastActive: DateTime @1709067149 {#4813
      date: 2024-02-27 21:52:29.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4819 …}
    +nested: Doctrine\ORM\PersistentCollection {#4821 …}
    +votes: Doctrine\ORM\PersistentCollection {#4823 …}
    +reports: Doctrine\ORM\PersistentCollection {#4825 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4827 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4829 …}
    -id: 260878
    -bodyTs: "'assum':15 'better':18 'case':12 'cover':9 'creat':5 'develop':21 'exist':7 'know':17 'plumb':8 'reinvent':24 'simpli':23 'use':11 'wheel':26 'would':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6284549"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807832 {#4814
      date: 2023-12-29 00:57:12.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4818}
  +body: """
    Reinventing the wheel? Making new systems which create more problems than they solve? Adding abstractions which actually make things more complex?\n
    \n
    Nah, those things have never happened in software
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 18
  +score: 0
  +lastActive: DateTime @1703809916 {#5154
    date: 2023-12-29 01:31:56.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@Quazatron@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5158 …}
  +nested: Doctrine\ORM\PersistentCollection {#5160 …}
  +votes: Doctrine\ORM\PersistentCollection {#5162 …}
  +reports: Doctrine\ORM\PersistentCollection {#5164 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5166 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5168 …}
  -id: 260976
  -bodyTs: "'abstract':15 'actual':17 'ad':14 'complex':21 'creat':8 'happen':27 'make':4,18 'nah':22 'never':26 'new':5 'problem':10 'reinvent':1 'softwar':29 'solv':13 'system':6 'thing':19,24 'wheel':3"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.yachts/comment/435163"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703809916 {#5155
    date: 2023-12-29 01:31:56.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
168 DENIED moderate
App\Entity\EntryComment {#5156
  +user: Proxies\__CG__\App\Entity\User {#5157 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4818
    +user: App\Entity\User {#4831 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      It would not be created if existing plumbing covered all use cases.\n
      \n
      Don’t assume you know better and that developers are simply reinventing the wheel.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 29
    +score: 0
    +lastActive: DateTime @1709067149 {#4813
      date: 2024-02-27 21:52:29.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4819 …}
    +nested: Doctrine\ORM\PersistentCollection {#4821 …}
    +votes: Doctrine\ORM\PersistentCollection {#4823 …}
    +reports: Doctrine\ORM\PersistentCollection {#4825 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4827 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4829 …}
    -id: 260878
    -bodyTs: "'assum':15 'better':18 'case':12 'cover':9 'creat':5 'develop':21 'exist':7 'know':17 'plumb':8 'reinvent':24 'simpli':23 'use':11 'wheel':26 'would':2"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6284549"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807832 {#4814
      date: 2023-12-29 00:57:12.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4818}
  +body: """
    Reinventing the wheel? Making new systems which create more problems than they solve? Adding abstractions which actually make things more complex?\n
    \n
    Nah, those things have never happened in software
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 18
  +score: 0
  +lastActive: DateTime @1703809916 {#5154
    date: 2023-12-29 01:31:56.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@Quazatron@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5158 …}
  +nested: Doctrine\ORM\PersistentCollection {#5160 …}
  +votes: Doctrine\ORM\PersistentCollection {#5162 …}
  +reports: Doctrine\ORM\PersistentCollection {#5164 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5166 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5168 …}
  -id: 260976
  -bodyTs: "'abstract':15 'actual':17 'ad':14 'complex':21 'creat':8 'happen':27 'make':4,18 'nah':22 'never':26 'new':5 'problem':10 'reinvent':1 'softwar':29 'solv':13 'system':6 'thing':19,24 'wheel':3"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.yachts/comment/435163"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703809916 {#5155
    date: 2023-12-29 01:31:56.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
169 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
170 DENIED moderate
App\Entity\EntryComment {#5410
  +user: Proxies\__CG__\App\Entity\User {#5414 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5156
    +user: Proxies\__CG__\App\Entity\User {#5157 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4818
      +user: App\Entity\User {#4831 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        It would not be created if existing plumbing covered all use cases.\n
        \n
        Don’t assume you know better and that developers are simply reinventing the wheel.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 29
      +score: 0
      +lastActive: DateTime @1709067149 {#4813
        date: 2024-02-27 21:52:29.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4819 …}
      +nested: Doctrine\ORM\PersistentCollection {#4821 …}
      +votes: Doctrine\ORM\PersistentCollection {#4823 …}
      +reports: Doctrine\ORM\PersistentCollection {#4825 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4827 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4829 …}
      -id: 260878
      -bodyTs: "'assum':15 'better':18 'case':12 'cover':9 'creat':5 'develop':21 'exist':7 'know':17 'plumb':8 'reinvent':24 'simpli':23 'use':11 'wheel':26 'would':2"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6284549"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703807832 {#4814
        date: 2023-12-29 00:57:12.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4818}
    +body: """
      Reinventing the wheel? Making new systems which create more problems than they solve? Adding abstractions which actually make things more complex?\n
      \n
      Nah, those things have never happened in software
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 18
    +score: 0
    +lastActive: DateTime @1703809916 {#5154
      date: 2023-12-29 01:31:56.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@Quazatron@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5158 …}
    +nested: Doctrine\ORM\PersistentCollection {#5160 …}
    +votes: Doctrine\ORM\PersistentCollection {#5162 …}
    +reports: Doctrine\ORM\PersistentCollection {#5164 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5166 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5168 …}
    -id: 260976
    -bodyTs: "'abstract':15 'actual':17 'ad':14 'complex':21 'creat':8 'happen':27 'make':4,18 'nah':22 'never':26 'new':5 'problem':10 'reinvent':1 'softwar':29 'solv':13 'system':6 'thing':19,24 'wheel':3"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.yachts/comment/435163"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809916 {#5155
      date: 2023-12-29 01:31:56.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4818}
  +body: "Every 10 years, a new abstraction layer will be added to the system. I wonder how an average linux desktop would look like under the hood in 100 years."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 8
  +score: 0
  +lastActive: DateTime @1703813746 {#5409
    date: 2023-12-29 02:35:46.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@Quazatron@lemmy.world"
    "@turkalino@lemmy.yachts"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5419 …}
  +nested: Doctrine\ORM\PersistentCollection {#5415 …}
  +votes: Doctrine\ORM\PersistentCollection {#5417 …}
  +reports: Doctrine\ORM\PersistentCollection {#5422 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5424 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5426 …}
  -id: 261115
  -bodyTs: "'10':2 '100':28 'abstract':6 'ad':10 'averag':18 'desktop':20 'everi':1 'hood':26 'layer':7 'like':23 'linux':19 'look':22 'new':5 'system':13 'wonder':15 'would':21 'year':3,29"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.institute/comment/1874628"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703813746 {#5406
    date: 2023-12-29 02:35:46.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
171 DENIED edit
App\Entity\EntryComment {#5410
  +user: Proxies\__CG__\App\Entity\User {#5414 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5156
    +user: Proxies\__CG__\App\Entity\User {#5157 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4818
      +user: App\Entity\User {#4831 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        It would not be created if existing plumbing covered all use cases.\n
        \n
        Don’t assume you know better and that developers are simply reinventing the wheel.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 29
      +score: 0
      +lastActive: DateTime @1709067149 {#4813
        date: 2024-02-27 21:52:29.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4819 …}
      +nested: Doctrine\ORM\PersistentCollection {#4821 …}
      +votes: Doctrine\ORM\PersistentCollection {#4823 …}
      +reports: Doctrine\ORM\PersistentCollection {#4825 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4827 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4829 …}
      -id: 260878
      -bodyTs: "'assum':15 'better':18 'case':12 'cover':9 'creat':5 'develop':21 'exist':7 'know':17 'plumb':8 'reinvent':24 'simpli':23 'use':11 'wheel':26 'would':2"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6284549"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703807832 {#4814
        date: 2023-12-29 00:57:12.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4818}
    +body: """
      Reinventing the wheel? Making new systems which create more problems than they solve? Adding abstractions which actually make things more complex?\n
      \n
      Nah, those things have never happened in software
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 18
    +score: 0
    +lastActive: DateTime @1703809916 {#5154
      date: 2023-12-29 01:31:56.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@Quazatron@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5158 …}
    +nested: Doctrine\ORM\PersistentCollection {#5160 …}
    +votes: Doctrine\ORM\PersistentCollection {#5162 …}
    +reports: Doctrine\ORM\PersistentCollection {#5164 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5166 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5168 …}
    -id: 260976
    -bodyTs: "'abstract':15 'actual':17 'ad':14 'complex':21 'creat':8 'happen':27 'make':4,18 'nah':22 'never':26 'new':5 'problem':10 'reinvent':1 'softwar':29 'solv':13 'system':6 'thing':19,24 'wheel':3"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.yachts/comment/435163"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809916 {#5155
      date: 2023-12-29 01:31:56.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4818}
  +body: "Every 10 years, a new abstraction layer will be added to the system. I wonder how an average linux desktop would look like under the hood in 100 years."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 8
  +score: 0
  +lastActive: DateTime @1703813746 {#5409
    date: 2023-12-29 02:35:46.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@Quazatron@lemmy.world"
    "@turkalino@lemmy.yachts"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5419 …}
  +nested: Doctrine\ORM\PersistentCollection {#5415 …}
  +votes: Doctrine\ORM\PersistentCollection {#5417 …}
  +reports: Doctrine\ORM\PersistentCollection {#5422 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5424 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5426 …}
  -id: 261115
  -bodyTs: "'10':2 '100':28 'abstract':6 'ad':10 'averag':18 'desktop':20 'everi':1 'hood':26 'layer':7 'like':23 'linux':19 'look':22 'new':5 'system':13 'wonder':15 'would':21 'year':3,29"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.institute/comment/1874628"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703813746 {#5406
    date: 2023-12-29 02:35:46.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
172 DENIED moderate
App\Entity\EntryComment {#5410
  +user: Proxies\__CG__\App\Entity\User {#5414 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5156
    +user: Proxies\__CG__\App\Entity\User {#5157 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4818
      +user: App\Entity\User {#4831 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        It would not be created if existing plumbing covered all use cases.\n
        \n
        Don’t assume you know better and that developers are simply reinventing the wheel.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 29
      +score: 0
      +lastActive: DateTime @1709067149 {#4813
        date: 2024-02-27 21:52:29.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4819 …}
      +nested: Doctrine\ORM\PersistentCollection {#4821 …}
      +votes: Doctrine\ORM\PersistentCollection {#4823 …}
      +reports: Doctrine\ORM\PersistentCollection {#4825 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4827 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4829 …}
      -id: 260878
      -bodyTs: "'assum':15 'better':18 'case':12 'cover':9 'creat':5 'develop':21 'exist':7 'know':17 'plumb':8 'reinvent':24 'simpli':23 'use':11 'wheel':26 'would':2"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6284549"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703807832 {#4814
        date: 2023-12-29 00:57:12.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4818}
    +body: """
      Reinventing the wheel? Making new systems which create more problems than they solve? Adding abstractions which actually make things more complex?\n
      \n
      Nah, those things have never happened in software
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 18
    +score: 0
    +lastActive: DateTime @1703809916 {#5154
      date: 2023-12-29 01:31:56.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@Quazatron@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5158 …}
    +nested: Doctrine\ORM\PersistentCollection {#5160 …}
    +votes: Doctrine\ORM\PersistentCollection {#5162 …}
    +reports: Doctrine\ORM\PersistentCollection {#5164 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5166 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5168 …}
    -id: 260976
    -bodyTs: "'abstract':15 'actual':17 'ad':14 'complex':21 'creat':8 'happen':27 'make':4,18 'nah':22 'never':26 'new':5 'problem':10 'reinvent':1 'softwar':29 'solv':13 'system':6 'thing':19,24 'wheel':3"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.yachts/comment/435163"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809916 {#5155
      date: 2023-12-29 01:31:56.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4818}
  +body: "Every 10 years, a new abstraction layer will be added to the system. I wonder how an average linux desktop would look like under the hood in 100 years."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 8
  +score: 0
  +lastActive: DateTime @1703813746 {#5409
    date: 2023-12-29 02:35:46.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@Quazatron@lemmy.world"
    "@turkalino@lemmy.yachts"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5419 …}
  +nested: Doctrine\ORM\PersistentCollection {#5415 …}
  +votes: Doctrine\ORM\PersistentCollection {#5417 …}
  +reports: Doctrine\ORM\PersistentCollection {#5422 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5424 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5426 …}
  -id: 261115
  -bodyTs: "'10':2 '100':28 'abstract':6 'ad':10 'averag':18 'desktop':20 'everi':1 'hood':26 'layer':7 'like':23 'linux':19 'look':22 'new':5 'system':13 'wonder':15 'would':21 'year':3,29"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.institute/comment/1874628"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703813746 {#5406
    date: 2023-12-29 02:35:46.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
173 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
174 DENIED moderate
App\Entity\EntryComment {#5430
  +user: App\Entity\User {#4831 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5156
    +user: Proxies\__CG__\App\Entity\User {#5157 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4818
      +user: App\Entity\User {#4831 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        It would not be created if existing plumbing covered all use cases.\n
        \n
        Don’t assume you know better and that developers are simply reinventing the wheel.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 29
      +score: 0
      +lastActive: DateTime @1709067149 {#4813
        date: 2024-02-27 21:52:29.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4819 …}
      +nested: Doctrine\ORM\PersistentCollection {#4821 …}
      +votes: Doctrine\ORM\PersistentCollection {#4823 …}
      +reports: Doctrine\ORM\PersistentCollection {#4825 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4827 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4829 …}
      -id: 260878
      -bodyTs: "'assum':15 'better':18 'case':12 'cover':9 'creat':5 'develop':21 'exist':7 'know':17 'plumb':8 'reinvent':24 'simpli':23 'use':11 'wheel':26 'would':2"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6284549"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703807832 {#4814
        date: 2023-12-29 00:57:12.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4818}
    +body: """
      Reinventing the wheel? Making new systems which create more problems than they solve? Adding abstractions which actually make things more complex?\n
      \n
      Nah, those things have never happened in software
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 18
    +score: 0
    +lastActive: DateTime @1703809916 {#5154
      date: 2023-12-29 01:31:56.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@Quazatron@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5158 …}
    +nested: Doctrine\ORM\PersistentCollection {#5160 …}
    +votes: Doctrine\ORM\PersistentCollection {#5162 …}
    +reports: Doctrine\ORM\PersistentCollection {#5164 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5166 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5168 …}
    -id: 260976
    -bodyTs: "'abstract':15 'actual':17 'ad':14 'complex':21 'creat':8 'happen':27 'make':4,18 'nah':22 'never':26 'new':5 'problem':10 'reinvent':1 'softwar':29 'solv':13 'system':6 'thing':19,24 'wheel':3"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.yachts/comment/435163"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809916 {#5155
      date: 2023-12-29 01:31:56.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4818}
  +body: """
    There is a lot of ‘reinventing the wheel’ in software, and I did not claim otherwise.\n
    \n
    When new abstractions are beneficial, other programs take advantage of them and the whole ecosystem moves forward. When they are not, nobody cares and they are ignored and die. In that respect, open source software development is very much like evolution.\n
    \n
    Judging by apps using it, looks like this abstraction is indeed useful.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 3
  +score: 0
  +lastActive: DateTime @1703863050 {#5428
    date: 2023-12-29 16:17:30.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@Quazatron@lemmy.world"
    "@turkalino@lemmy.yachts"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5431 …}
  +nested: Doctrine\ORM\PersistentCollection {#5433 …}
  +votes: Doctrine\ORM\PersistentCollection {#5435 …}
  +reports: Doctrine\ORM\PersistentCollection {#5437 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5439 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5441 …}
  -id: 262288
  -bodyTs: "'abstract':19,66 'advantag':25 'app':60 'benefici':21 'care':39 'claim':15 'develop':52 'die':45 'ecosystem':31 'evolut':57 'forward':33 'ignor':43 'inde':68 'judg':58 'like':56,64 'look':63 'lot':4 'move':32 'much':55 'new':18 'nobodi':38 'open':49 'otherwis':16 'program':23 'reinvent':6 'respect':48 'softwar':10,51 'sourc':50 'take':24 'use':61,69 'wheel':8 'whole':30"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6292131"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703863050 {#5429
    date: 2023-12-29 16:17: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
175 DENIED edit
App\Entity\EntryComment {#5430
  +user: App\Entity\User {#4831 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5156
    +user: Proxies\__CG__\App\Entity\User {#5157 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4818
      +user: App\Entity\User {#4831 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        It would not be created if existing plumbing covered all use cases.\n
        \n
        Don’t assume you know better and that developers are simply reinventing the wheel.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 29
      +score: 0
      +lastActive: DateTime @1709067149 {#4813
        date: 2024-02-27 21:52:29.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4819 …}
      +nested: Doctrine\ORM\PersistentCollection {#4821 …}
      +votes: Doctrine\ORM\PersistentCollection {#4823 …}
      +reports: Doctrine\ORM\PersistentCollection {#4825 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4827 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4829 …}
      -id: 260878
      -bodyTs: "'assum':15 'better':18 'case':12 'cover':9 'creat':5 'develop':21 'exist':7 'know':17 'plumb':8 'reinvent':24 'simpli':23 'use':11 'wheel':26 'would':2"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6284549"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703807832 {#4814
        date: 2023-12-29 00:57:12.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4818}
    +body: """
      Reinventing the wheel? Making new systems which create more problems than they solve? Adding abstractions which actually make things more complex?\n
      \n
      Nah, those things have never happened in software
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 18
    +score: 0
    +lastActive: DateTime @1703809916 {#5154
      date: 2023-12-29 01:31:56.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@Quazatron@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5158 …}
    +nested: Doctrine\ORM\PersistentCollection {#5160 …}
    +votes: Doctrine\ORM\PersistentCollection {#5162 …}
    +reports: Doctrine\ORM\PersistentCollection {#5164 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5166 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5168 …}
    -id: 260976
    -bodyTs: "'abstract':15 'actual':17 'ad':14 'complex':21 'creat':8 'happen':27 'make':4,18 'nah':22 'never':26 'new':5 'problem':10 'reinvent':1 'softwar':29 'solv':13 'system':6 'thing':19,24 'wheel':3"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.yachts/comment/435163"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809916 {#5155
      date: 2023-12-29 01:31:56.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4818}
  +body: """
    There is a lot of ‘reinventing the wheel’ in software, and I did not claim otherwise.\n
    \n
    When new abstractions are beneficial, other programs take advantage of them and the whole ecosystem moves forward. When they are not, nobody cares and they are ignored and die. In that respect, open source software development is very much like evolution.\n
    \n
    Judging by apps using it, looks like this abstraction is indeed useful.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 3
  +score: 0
  +lastActive: DateTime @1703863050 {#5428
    date: 2023-12-29 16:17:30.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@Quazatron@lemmy.world"
    "@turkalino@lemmy.yachts"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5431 …}
  +nested: Doctrine\ORM\PersistentCollection {#5433 …}
  +votes: Doctrine\ORM\PersistentCollection {#5435 …}
  +reports: Doctrine\ORM\PersistentCollection {#5437 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5439 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5441 …}
  -id: 262288
  -bodyTs: "'abstract':19,66 'advantag':25 'app':60 'benefici':21 'care':39 'claim':15 'develop':52 'die':45 'ecosystem':31 'evolut':57 'forward':33 'ignor':43 'inde':68 'judg':58 'like':56,64 'look':63 'lot':4 'move':32 'much':55 'new':18 'nobodi':38 'open':49 'otherwis':16 'program':23 'reinvent':6 'respect':48 'softwar':10,51 'sourc':50 'take':24 'use':61,69 'wheel':8 'whole':30"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6292131"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703863050 {#5429
    date: 2023-12-29 16:17: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
176 DENIED moderate
App\Entity\EntryComment {#5430
  +user: App\Entity\User {#4831 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5156
    +user: Proxies\__CG__\App\Entity\User {#5157 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4818
      +user: App\Entity\User {#4831 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        It would not be created if existing plumbing covered all use cases.\n
        \n
        Don’t assume you know better and that developers are simply reinventing the wheel.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 29
      +score: 0
      +lastActive: DateTime @1709067149 {#4813
        date: 2024-02-27 21:52:29.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4819 …}
      +nested: Doctrine\ORM\PersistentCollection {#4821 …}
      +votes: Doctrine\ORM\PersistentCollection {#4823 …}
      +reports: Doctrine\ORM\PersistentCollection {#4825 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4827 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4829 …}
      -id: 260878
      -bodyTs: "'assum':15 'better':18 'case':12 'cover':9 'creat':5 'develop':21 'exist':7 'know':17 'plumb':8 'reinvent':24 'simpli':23 'use':11 'wheel':26 'would':2"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6284549"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703807832 {#4814
        date: 2023-12-29 00:57:12.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4818}
    +body: """
      Reinventing the wheel? Making new systems which create more problems than they solve? Adding abstractions which actually make things more complex?\n
      \n
      Nah, those things have never happened in software
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 18
    +score: 0
    +lastActive: DateTime @1703809916 {#5154
      date: 2023-12-29 01:31:56.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@Quazatron@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5158 …}
    +nested: Doctrine\ORM\PersistentCollection {#5160 …}
    +votes: Doctrine\ORM\PersistentCollection {#5162 …}
    +reports: Doctrine\ORM\PersistentCollection {#5164 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5166 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5168 …}
    -id: 260976
    -bodyTs: "'abstract':15 'actual':17 'ad':14 'complex':21 'creat':8 'happen':27 'make':4,18 'nah':22 'never':26 'new':5 'problem':10 'reinvent':1 'softwar':29 'solv':13 'system':6 'thing':19,24 'wheel':3"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.yachts/comment/435163"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809916 {#5155
      date: 2023-12-29 01:31:56.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4818}
  +body: """
    There is a lot of ‘reinventing the wheel’ in software, and I did not claim otherwise.\n
    \n
    When new abstractions are beneficial, other programs take advantage of them and the whole ecosystem moves forward. When they are not, nobody cares and they are ignored and die. In that respect, open source software development is very much like evolution.\n
    \n
    Judging by apps using it, looks like this abstraction is indeed useful.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 3
  +score: 0
  +lastActive: DateTime @1703863050 {#5428
    date: 2023-12-29 16:17:30.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@Quazatron@lemmy.world"
    "@turkalino@lemmy.yachts"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5431 …}
  +nested: Doctrine\ORM\PersistentCollection {#5433 …}
  +votes: Doctrine\ORM\PersistentCollection {#5435 …}
  +reports: Doctrine\ORM\PersistentCollection {#5437 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5439 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5441 …}
  -id: 262288
  -bodyTs: "'abstract':19,66 'advantag':25 'app':60 'benefici':21 'care':39 'claim':15 'develop':52 'die':45 'ecosystem':31 'evolut':57 'forward':33 'ignor':43 'inde':68 'judg':58 'like':56,64 'look':63 'lot':4 'move':32 'much':55 'new':18 'nobodi':38 'open':49 'otherwis':16 'program':23 'reinvent':6 'respect':48 'softwar':10,51 'sourc':50 'take':24 'use':61,69 'wheel':8 'whole':30"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6292131"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703863050 {#5429
    date: 2023-12-29 16:17: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
177 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
178 DENIED moderate
App\Entity\EntryComment {#4892
  +user: App\Entity\User {#4905 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
    \n
    At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
    \n
    A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 26
  +score: 0
  +lastActive: DateTime @1709402975 {#4887
    date: 2024-03-02 19:09:35.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4893 …}
  +nested: Doctrine\ORM\PersistentCollection {#4895 …}
  +votes: Doctrine\ORM\PersistentCollection {#4897 …}
  +reports: Doctrine\ORM\PersistentCollection {#4899 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
  -id: 260950
  -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/5994695"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703809539 {#4888
    date: 2023-12-29 01:25:39.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
179 DENIED edit
App\Entity\EntryComment {#4892
  +user: App\Entity\User {#4905 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
    \n
    At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
    \n
    A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 26
  +score: 0
  +lastActive: DateTime @1709402975 {#4887
    date: 2024-03-02 19:09:35.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4893 …}
  +nested: Doctrine\ORM\PersistentCollection {#4895 …}
  +votes: Doctrine\ORM\PersistentCollection {#4897 …}
  +reports: Doctrine\ORM\PersistentCollection {#4899 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
  -id: 260950
  -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/5994695"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703809539 {#4888
    date: 2023-12-29 01:25:39.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
180 DENIED moderate
App\Entity\EntryComment {#4892
  +user: App\Entity\User {#4905 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: """
    Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
    \n
    At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
    \n
    A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 26
  +score: 0
  +lastActive: DateTime @1709402975 {#4887
    date: 2024-03-02 19:09:35.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4893 …}
  +nested: Doctrine\ORM\PersistentCollection {#4895 …}
  +votes: Doctrine\ORM\PersistentCollection {#4897 …}
  +reports: Doctrine\ORM\PersistentCollection {#4899 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
  -id: 260950
  -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/5994695"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703809539 {#4888
    date: 2023-12-29 01:25:39.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
181 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
182 DENIED moderate
App\Entity\EntryComment {#5204
  +user: Proxies\__CG__\App\Entity\User {#5205 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4892
    +user: App\Entity\User {#4905 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
      \n
      At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
      \n
      A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 26
    +score: 0
    +lastActive: DateTime @1709402975 {#4887
      date: 2024-03-02 19:09:35.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4893 …}
    +nested: Doctrine\ORM\PersistentCollection {#4895 …}
    +votes: Doctrine\ORM\PersistentCollection {#4897 …}
    +reports: Doctrine\ORM\PersistentCollection {#4899 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
    -id: 260950
    -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5994695"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809539 {#4888
      date: 2023-12-29 01:25:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: "But isn’t this the reason why client libraries to talk to programs behind sockets exist? Kinda like an SDK library behind an HTTP protocol API?"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 4
  +score: 0
  +lastActive: DateTime @1703810846 {#5202
    date: 2023-12-29 01:47:26.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5206 …}
  +nested: Doctrine\ORM\PersistentCollection {#5208 …}
  +votes: Doctrine\ORM\PersistentCollection {#5210 …}
  +reports: Doctrine\ORM\PersistentCollection {#5212 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5214 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5216 …}
  -id: 261017
  -bodyTs: "'api':26 'behind':14,22 'client':8 'exist':16 'http':24 'isn':2 'kinda':17 'librari':9,21 'like':18 'program':13 'protocol':25 'reason':6 'sdk':20 'socket':15 'talk':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285220"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810846 {#5203
    date: 2023-12-29 01:47:26.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
183 DENIED edit
App\Entity\EntryComment {#5204
  +user: Proxies\__CG__\App\Entity\User {#5205 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4892
    +user: App\Entity\User {#4905 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
      \n
      At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
      \n
      A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 26
    +score: 0
    +lastActive: DateTime @1709402975 {#4887
      date: 2024-03-02 19:09:35.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4893 …}
    +nested: Doctrine\ORM\PersistentCollection {#4895 …}
    +votes: Doctrine\ORM\PersistentCollection {#4897 …}
    +reports: Doctrine\ORM\PersistentCollection {#4899 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
    -id: 260950
    -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5994695"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809539 {#4888
      date: 2023-12-29 01:25:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: "But isn’t this the reason why client libraries to talk to programs behind sockets exist? Kinda like an SDK library behind an HTTP protocol API?"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 4
  +score: 0
  +lastActive: DateTime @1703810846 {#5202
    date: 2023-12-29 01:47:26.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5206 …}
  +nested: Doctrine\ORM\PersistentCollection {#5208 …}
  +votes: Doctrine\ORM\PersistentCollection {#5210 …}
  +reports: Doctrine\ORM\PersistentCollection {#5212 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5214 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5216 …}
  -id: 261017
  -bodyTs: "'api':26 'behind':14,22 'client':8 'exist':16 'http':24 'isn':2 'kinda':17 'librari':9,21 'like':18 'program':13 'protocol':25 'reason':6 'sdk':20 'socket':15 'talk':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285220"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810846 {#5203
    date: 2023-12-29 01:47:26.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
184 DENIED moderate
App\Entity\EntryComment {#5204
  +user: Proxies\__CG__\App\Entity\User {#5205 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4892
    +user: App\Entity\User {#4905 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
      \n
      At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
      \n
      A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 26
    +score: 0
    +lastActive: DateTime @1709402975 {#4887
      date: 2024-03-02 19:09:35.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4893 …}
    +nested: Doctrine\ORM\PersistentCollection {#4895 …}
    +votes: Doctrine\ORM\PersistentCollection {#4897 …}
    +reports: Doctrine\ORM\PersistentCollection {#4899 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
    -id: 260950
    -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5994695"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809539 {#4888
      date: 2023-12-29 01:25:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: "But isn’t this the reason why client libraries to talk to programs behind sockets exist? Kinda like an SDK library behind an HTTP protocol API?"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 4
  +score: 0
  +lastActive: DateTime @1703810846 {#5202
    date: 2023-12-29 01:47:26.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5206 …}
  +nested: Doctrine\ORM\PersistentCollection {#5208 …}
  +votes: Doctrine\ORM\PersistentCollection {#5210 …}
  +reports: Doctrine\ORM\PersistentCollection {#5212 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5214 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5216 …}
  -id: 261017
  -bodyTs: "'api':26 'behind':14,22 'client':8 'exist':16 'http':24 'isn':2 'kinda':17 'librari':9,21 'like':18 'program':13 'protocol':25 'reason':6 'sdk':20 'socket':15 'talk':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285220"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810846 {#5203
    date: 2023-12-29 01:47:26.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
185 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
186 DENIED moderate
App\Entity\EntryComment {#5220
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4892
    +user: App\Entity\User {#4905 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
      \n
      At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
      \n
      A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 26
    +score: 0
    +lastActive: DateTime @1709402975 {#4887
      date: 2024-03-02 19:09:35.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4893 …}
    +nested: Doctrine\ORM\PersistentCollection {#4895 …}
    +votes: Doctrine\ORM\PersistentCollection {#4897 …}
    +reports: Doctrine\ORM\PersistentCollection {#4899 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
    -id: 260950
    -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5994695"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809539 {#4888
      date: 2023-12-29 01:25:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: "The Linux kernel is already a central event bus of sockets, btw"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703949894 {#5218
    date: 2023-12-30 16:24:54.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5222 …}
  +nested: Doctrine\ORM\PersistentCollection {#5224 …}
  +votes: Doctrine\ORM\PersistentCollection {#5226 …}
  +reports: Doctrine\ORM\PersistentCollection {#5228 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5230 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5232 …}
  -id: 264779
  -bodyTs: "'alreadi':5 'btw':12 'bus':9 'central':7 'event':8 'kernel':3 'linux':2 'socket':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294372"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949894 {#5219
    date: 2023-12-30 16:24:54.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
187 DENIED edit
App\Entity\EntryComment {#5220
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4892
    +user: App\Entity\User {#4905 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
      \n
      At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
      \n
      A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 26
    +score: 0
    +lastActive: DateTime @1709402975 {#4887
      date: 2024-03-02 19:09:35.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4893 …}
    +nested: Doctrine\ORM\PersistentCollection {#4895 …}
    +votes: Doctrine\ORM\PersistentCollection {#4897 …}
    +reports: Doctrine\ORM\PersistentCollection {#4899 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
    -id: 260950
    -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5994695"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809539 {#4888
      date: 2023-12-29 01:25:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: "The Linux kernel is already a central event bus of sockets, btw"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703949894 {#5218
    date: 2023-12-30 16:24:54.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5222 …}
  +nested: Doctrine\ORM\PersistentCollection {#5224 …}
  +votes: Doctrine\ORM\PersistentCollection {#5226 …}
  +reports: Doctrine\ORM\PersistentCollection {#5228 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5230 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5232 …}
  -id: 264779
  -bodyTs: "'alreadi':5 'btw':12 'bus':9 'central':7 'event':8 'kernel':3 'linux':2 'socket':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294372"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949894 {#5219
    date: 2023-12-30 16:24:54.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
188 DENIED moderate
App\Entity\EntryComment {#5220
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4892
    +user: App\Entity\User {#4905 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
      \n
      At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
      \n
      A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 26
    +score: 0
    +lastActive: DateTime @1709402975 {#4887
      date: 2024-03-02 19:09:35.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4893 …}
    +nested: Doctrine\ORM\PersistentCollection {#4895 …}
    +votes: Doctrine\ORM\PersistentCollection {#4897 …}
    +reports: Doctrine\ORM\PersistentCollection {#4899 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
    -id: 260950
    -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5994695"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809539 {#4888
      date: 2023-12-29 01:25:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: "The Linux kernel is already a central event bus of sockets, btw"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703949894 {#5218
    date: 2023-12-30 16:24:54.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5222 …}
  +nested: Doctrine\ORM\PersistentCollection {#5224 …}
  +votes: Doctrine\ORM\PersistentCollection {#5226 …}
  +reports: Doctrine\ORM\PersistentCollection {#5228 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5230 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5232 …}
  -id: 264779
  -bodyTs: "'alreadi':5 'btw':12 'bus':9 'central':7 'event':8 'kernel':3 'linux':2 'socket':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294372"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949894 {#5219
    date: 2023-12-30 16:24:54.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
189 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
190 DENIED moderate
App\Entity\EntryComment {#5237
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4892
    +user: App\Entity\User {#4905 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
      \n
      At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
      \n
      A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 26
    +score: 0
    +lastActive: DateTime @1709402975 {#4887
      date: 2024-03-02 19:09:35.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4893 …}
    +nested: Doctrine\ORM\PersistentCollection {#4895 …}
    +votes: Doctrine\ORM\PersistentCollection {#4897 …}
    +reports: Doctrine\ORM\PersistentCollection {#4899 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
    -id: 260950
    -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5994695"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809539 {#4888
      date: 2023-12-29 01:25:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: """
    Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
    \n
    I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1703810839 {#5234
    date: 2023-12-29 01:47:19.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5238 …}
  +nested: Doctrine\ORM\PersistentCollection {#5240 …}
  +votes: Doctrine\ORM\PersistentCollection {#5242 …}
  +reports: Doctrine\ORM\PersistentCollection {#5244 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
  -id: 261016
  -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285216"
  +editedAt: DateTimeImmutable @1708890333 {#5235
    date: 2024-02-25 20:45:33.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703810839 {#5236
    date: 2023-12-29 01:47:19.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
191 DENIED edit
App\Entity\EntryComment {#5237
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4892
    +user: App\Entity\User {#4905 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
      \n
      At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
      \n
      A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 26
    +score: 0
    +lastActive: DateTime @1709402975 {#4887
      date: 2024-03-02 19:09:35.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4893 …}
    +nested: Doctrine\ORM\PersistentCollection {#4895 …}
    +votes: Doctrine\ORM\PersistentCollection {#4897 …}
    +reports: Doctrine\ORM\PersistentCollection {#4899 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
    -id: 260950
    -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5994695"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809539 {#4888
      date: 2023-12-29 01:25:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: """
    Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
    \n
    I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1703810839 {#5234
    date: 2023-12-29 01:47:19.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5238 …}
  +nested: Doctrine\ORM\PersistentCollection {#5240 …}
  +votes: Doctrine\ORM\PersistentCollection {#5242 …}
  +reports: Doctrine\ORM\PersistentCollection {#5244 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
  -id: 261016
  -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285216"
  +editedAt: DateTimeImmutable @1708890333 {#5235
    date: 2024-02-25 20:45:33.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703810839 {#5236
    date: 2023-12-29 01:47:19.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
192 DENIED moderate
App\Entity\EntryComment {#5237
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4892
    +user: App\Entity\User {#4905 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: """
      Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
      \n
      At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
      \n
      A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 26
    +score: 0
    +lastActive: DateTime @1709402975 {#4887
      date: 2024-03-02 19:09:35.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4893 …}
    +nested: Doctrine\ORM\PersistentCollection {#4895 …}
    +votes: Doctrine\ORM\PersistentCollection {#4897 …}
    +reports: Doctrine\ORM\PersistentCollection {#4899 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
    -id: 260950
    -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://programming.dev/comment/5994695"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703809539 {#4888
      date: 2023-12-29 01:25:39.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: """
    Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
    \n
    I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1703810839 {#5234
    date: 2023-12-29 01:47:19.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5238 …}
  +nested: Doctrine\ORM\PersistentCollection {#5240 …}
  +votes: Doctrine\ORM\PersistentCollection {#5242 …}
  +reports: Doctrine\ORM\PersistentCollection {#5244 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
  -id: 261016
  -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285216"
  +editedAt: DateTimeImmutable @1708890333 {#5235
    date: 2024-02-25 20:45:33.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703810839 {#5236
    date: 2023-12-29 01:47:19.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
193 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
194 DENIED moderate
App\Entity\EntryComment {#5460
  +user: Proxies\__CG__\App\Entity\User {#5461 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5237
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4892
      +user: App\Entity\User {#4905 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
        \n
        At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
        \n
        A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 26
      +score: 0
      +lastActive: DateTime @1709402975 {#4887
        date: 2024-03-02 19:09:35.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4893 …}
      +nested: Doctrine\ORM\PersistentCollection {#4895 …}
      +votes: Doctrine\ORM\PersistentCollection {#4897 …}
      +reports: Doctrine\ORM\PersistentCollection {#4899 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
      -id: 260950
      -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/5994695"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703809539 {#4888
        date: 2023-12-29 01:25:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4892}
    +body: """
      Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
      \n
      I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703810839 {#5234
      date: 2023-12-29 01:47:19.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@nous@programming.dev"
      "@renzev@lemmy.world"
      "@nous@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5238 …}
    +nested: Doctrine\ORM\PersistentCollection {#5240 …}
    +votes: Doctrine\ORM\PersistentCollection {#5242 …}
    +reports: Doctrine\ORM\PersistentCollection {#5244 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
    -id: 261016
    -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285216"
    +editedAt: DateTimeImmutable @1708890333 {#5235
      date: 2024-02-25 20:45:33.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703810839 {#5236
      date: 2023-12-29 01:47:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: """
    Many toolkits make dbus usage simple. It’s also introspectable so very easy to explore or generate bindings for dynamically.\n
    \n
    It’s pretty nice to use IME.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 10
  +score: 0
  +lastActive: DateTime @1703828824 {#5458
    date: 2023-12-29 06:47:04.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5462 …}
  +nested: Doctrine\ORM\PersistentCollection {#5464 …}
  +votes: Doctrine\ORM\PersistentCollection {#5466 …}
  +reports: Doctrine\ORM\PersistentCollection {#5468 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5470 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5472 …}
  -id: 261522
  -bodyTs: "'also':9 'bind':18 'dbus':4 'dynam':20 'easi':13 'explor':15 'generat':17 'ime':27 'introspect':10 'make':3 'mani':1 'nice':24 'pretti':23 'simpl':6 'toolkit':2 'usag':5 'use':26"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6287887"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703828824 {#5459
    date: 2023-12-29 06:47:04.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
195 DENIED edit
App\Entity\EntryComment {#5460
  +user: Proxies\__CG__\App\Entity\User {#5461 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5237
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4892
      +user: App\Entity\User {#4905 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
        \n
        At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
        \n
        A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 26
      +score: 0
      +lastActive: DateTime @1709402975 {#4887
        date: 2024-03-02 19:09:35.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4893 …}
      +nested: Doctrine\ORM\PersistentCollection {#4895 …}
      +votes: Doctrine\ORM\PersistentCollection {#4897 …}
      +reports: Doctrine\ORM\PersistentCollection {#4899 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
      -id: 260950
      -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/5994695"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703809539 {#4888
        date: 2023-12-29 01:25:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4892}
    +body: """
      Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
      \n
      I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703810839 {#5234
      date: 2023-12-29 01:47:19.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@nous@programming.dev"
      "@renzev@lemmy.world"
      "@nous@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5238 …}
    +nested: Doctrine\ORM\PersistentCollection {#5240 …}
    +votes: Doctrine\ORM\PersistentCollection {#5242 …}
    +reports: Doctrine\ORM\PersistentCollection {#5244 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
    -id: 261016
    -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285216"
    +editedAt: DateTimeImmutable @1708890333 {#5235
      date: 2024-02-25 20:45:33.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703810839 {#5236
      date: 2023-12-29 01:47:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: """
    Many toolkits make dbus usage simple. It’s also introspectable so very easy to explore or generate bindings for dynamically.\n
    \n
    It’s pretty nice to use IME.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 10
  +score: 0
  +lastActive: DateTime @1703828824 {#5458
    date: 2023-12-29 06:47:04.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5462 …}
  +nested: Doctrine\ORM\PersistentCollection {#5464 …}
  +votes: Doctrine\ORM\PersistentCollection {#5466 …}
  +reports: Doctrine\ORM\PersistentCollection {#5468 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5470 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5472 …}
  -id: 261522
  -bodyTs: "'also':9 'bind':18 'dbus':4 'dynam':20 'easi':13 'explor':15 'generat':17 'ime':27 'introspect':10 'make':3 'mani':1 'nice':24 'pretti':23 'simpl':6 'toolkit':2 'usag':5 'use':26"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6287887"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703828824 {#5459
    date: 2023-12-29 06:47:04.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
196 DENIED moderate
App\Entity\EntryComment {#5460
  +user: Proxies\__CG__\App\Entity\User {#5461 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5237
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4892
      +user: App\Entity\User {#4905 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
        \n
        At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
        \n
        A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 26
      +score: 0
      +lastActive: DateTime @1709402975 {#4887
        date: 2024-03-02 19:09:35.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4893 …}
      +nested: Doctrine\ORM\PersistentCollection {#4895 …}
      +votes: Doctrine\ORM\PersistentCollection {#4897 …}
      +reports: Doctrine\ORM\PersistentCollection {#4899 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
      -id: 260950
      -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/5994695"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703809539 {#4888
        date: 2023-12-29 01:25:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4892}
    +body: """
      Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
      \n
      I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703810839 {#5234
      date: 2023-12-29 01:47:19.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@nous@programming.dev"
      "@renzev@lemmy.world"
      "@nous@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5238 …}
    +nested: Doctrine\ORM\PersistentCollection {#5240 …}
    +votes: Doctrine\ORM\PersistentCollection {#5242 …}
    +reports: Doctrine\ORM\PersistentCollection {#5244 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
    -id: 261016
    -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285216"
    +editedAt: DateTimeImmutable @1708890333 {#5235
      date: 2024-02-25 20:45:33.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703810839 {#5236
      date: 2023-12-29 01:47:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: """
    Many toolkits make dbus usage simple. It’s also introspectable so very easy to explore or generate bindings for dynamically.\n
    \n
    It’s pretty nice to use IME.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 10
  +score: 0
  +lastActive: DateTime @1703828824 {#5458
    date: 2023-12-29 06:47:04.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5462 …}
  +nested: Doctrine\ORM\PersistentCollection {#5464 …}
  +votes: Doctrine\ORM\PersistentCollection {#5466 …}
  +reports: Doctrine\ORM\PersistentCollection {#5468 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5470 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5472 …}
  -id: 261522
  -bodyTs: "'also':9 'bind':18 'dbus':4 'dynam':20 'easi':13 'explor':15 'generat':17 'ime':27 'introspect':10 'make':3 'mani':1 'nice':24 'pretti':23 'simpl':6 'toolkit':2 'usag':5 'use':26"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6287887"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703828824 {#5459
    date: 2023-12-29 06:47:04.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
197 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
198 DENIED moderate
App\Entity\EntryComment {#5734
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5460
    +user: Proxies\__CG__\App\Entity\User {#5461 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5237
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4892
        +user: App\Entity\User {#4905 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
          \n
          At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
          \n
          A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 26
        +score: 0
        +lastActive: DateTime @1709402975 {#4887
          date: 2024-03-02 19:09:35.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4893 …}
        +nested: Doctrine\ORM\PersistentCollection {#4895 …}
        +votes: Doctrine\ORM\PersistentCollection {#4897 …}
        +reports: Doctrine\ORM\PersistentCollection {#4899 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
        -id: 260950
        -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/5994695"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703809539 {#4888
          date: 2023-12-29 01:25:39.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4892}
      +body: """
        Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
        \n
        I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 6
      +score: 0
      +lastActive: DateTime @1703810839 {#5234
        date: 2023-12-29 01:47:19.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@nous@programming.dev"
        "@renzev@lemmy.world"
        "@nous@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5238 …}
      +nested: Doctrine\ORM\PersistentCollection {#5240 …}
      +votes: Doctrine\ORM\PersistentCollection {#5242 …}
      +reports: Doctrine\ORM\PersistentCollection {#5244 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
      -id: 261016
      -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285216"
      +editedAt: DateTimeImmutable @1708890333 {#5235
        date: 2024-02-25 20:45:33.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703810839 {#5236
        date: 2023-12-29 01:47:19.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4892}
    +body: """
      Many toolkits make dbus usage simple. It’s also introspectable so very easy to explore or generate bindings for dynamically.\n
      \n
      It’s pretty nice to use IME.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 10
    +score: 0
    +lastActive: DateTime @1703828824 {#5458
      date: 2023-12-29 06:47:04.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@nous@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5462 …}
    +nested: Doctrine\ORM\PersistentCollection {#5464 …}
    +votes: Doctrine\ORM\PersistentCollection {#5466 …}
    +reports: Doctrine\ORM\PersistentCollection {#5468 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5470 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5472 …}
    -id: 261522
    -bodyTs: "'also':9 'bind':18 'dbus':4 'dynam':20 'easi':13 'explor':15 'generat':17 'ime':27 'introspect':10 'make':3 'mani':1 'nice':24 'pretti':23 'simpl':6 'toolkit':2 'usag':5 'use':26"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6287887"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703828824 {#5459
      date: 2023-12-29 06:47:04.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: "this is the real answer - programming language bindings"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1703949930 {#5732
    date: 2023-12-30 16:25:30.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
    "@AProfessional@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5735 …}
  +nested: Doctrine\ORM\PersistentCollection {#5737 …}
  +votes: Doctrine\ORM\PersistentCollection {#5739 …}
  +reports: Doctrine\ORM\PersistentCollection {#5741 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5743 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5745 …}
  -id: 264780
  -bodyTs: "'answer':5 'bind':8 'languag':7 'program':6 'real':4"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294382"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949930 {#5733
    date: 2023-12-30 16:25: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
199 DENIED edit
App\Entity\EntryComment {#5734
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5460
    +user: Proxies\__CG__\App\Entity\User {#5461 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5237
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4892
        +user: App\Entity\User {#4905 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
          \n
          At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
          \n
          A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 26
        +score: 0
        +lastActive: DateTime @1709402975 {#4887
          date: 2024-03-02 19:09:35.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4893 …}
        +nested: Doctrine\ORM\PersistentCollection {#4895 …}
        +votes: Doctrine\ORM\PersistentCollection {#4897 …}
        +reports: Doctrine\ORM\PersistentCollection {#4899 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
        -id: 260950
        -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/5994695"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703809539 {#4888
          date: 2023-12-29 01:25:39.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4892}
      +body: """
        Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
        \n
        I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 6
      +score: 0
      +lastActive: DateTime @1703810839 {#5234
        date: 2023-12-29 01:47:19.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@nous@programming.dev"
        "@renzev@lemmy.world"
        "@nous@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5238 …}
      +nested: Doctrine\ORM\PersistentCollection {#5240 …}
      +votes: Doctrine\ORM\PersistentCollection {#5242 …}
      +reports: Doctrine\ORM\PersistentCollection {#5244 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
      -id: 261016
      -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285216"
      +editedAt: DateTimeImmutable @1708890333 {#5235
        date: 2024-02-25 20:45:33.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703810839 {#5236
        date: 2023-12-29 01:47:19.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4892}
    +body: """
      Many toolkits make dbus usage simple. It’s also introspectable so very easy to explore or generate bindings for dynamically.\n
      \n
      It’s pretty nice to use IME.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 10
    +score: 0
    +lastActive: DateTime @1703828824 {#5458
      date: 2023-12-29 06:47:04.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@nous@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5462 …}
    +nested: Doctrine\ORM\PersistentCollection {#5464 …}
    +votes: Doctrine\ORM\PersistentCollection {#5466 …}
    +reports: Doctrine\ORM\PersistentCollection {#5468 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5470 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5472 …}
    -id: 261522
    -bodyTs: "'also':9 'bind':18 'dbus':4 'dynam':20 'easi':13 'explor':15 'generat':17 'ime':27 'introspect':10 'make':3 'mani':1 'nice':24 'pretti':23 'simpl':6 'toolkit':2 'usag':5 'use':26"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6287887"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703828824 {#5459
      date: 2023-12-29 06:47:04.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: "this is the real answer - programming language bindings"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1703949930 {#5732
    date: 2023-12-30 16:25:30.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
    "@AProfessional@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5735 …}
  +nested: Doctrine\ORM\PersistentCollection {#5737 …}
  +votes: Doctrine\ORM\PersistentCollection {#5739 …}
  +reports: Doctrine\ORM\PersistentCollection {#5741 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5743 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5745 …}
  -id: 264780
  -bodyTs: "'answer':5 'bind':8 'languag':7 'program':6 'real':4"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294382"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949930 {#5733
    date: 2023-12-30 16:25: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
200 DENIED moderate
App\Entity\EntryComment {#5734
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5460
    +user: Proxies\__CG__\App\Entity\User {#5461 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5237
      +user: Proxies\__CG__\App\Entity\User {#1970 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: App\Entity\EntryComment {#4892
        +user: App\Entity\User {#4905 …}
        +entry: App\Entity\Entry {#2419}
        +magazine: App\Entity\Magazine {#265}
        +image: null
        +parent: null
        +root: null
        +body: """
          Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
          \n
          At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
          \n
          A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
          """
        +lang: "en"
        +isAdult: false
        +favouriteCount: 26
        +score: 0
        +lastActive: DateTime @1709402975 {#4887
          date: 2024-03-02 19:09:35.0 +01:00
        }
        +ip: null
        +tags: null
        +mentions: [
          "@renzev@lemmy.world"
        ]
        +children: Doctrine\ORM\PersistentCollection {#4893 …}
        +nested: Doctrine\ORM\PersistentCollection {#4895 …}
        +votes: Doctrine\ORM\PersistentCollection {#4897 …}
        +reports: Doctrine\ORM\PersistentCollection {#4899 …}
        +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
        +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
        -id: 260950
        -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
        +ranking: 0
        +commentCount: 0
        +upVotes: 0
        +downVotes: 0
        +visibility: "visible             "
        +apId: "https://programming.dev/comment/5994695"
        +editedAt: null
        +createdAt: DateTimeImmutable @1703809539 {#4888
          date: 2023-12-29 01:25:39.0 +01:00
        }
      }
      +root: App\Entity\EntryComment {#4892}
      +body: """
        Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
        \n
        I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 6
      +score: 0
      +lastActive: DateTime @1703810839 {#5234
        date: 2023-12-29 01:47:19.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
        "@nous@programming.dev"
        "@renzev@lemmy.world"
        "@nous@programming.dev"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5238 …}
      +nested: Doctrine\ORM\PersistentCollection {#5240 …}
      +votes: Doctrine\ORM\PersistentCollection {#5242 …}
      +reports: Doctrine\ORM\PersistentCollection {#5244 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
      -id: 261016
      -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6285216"
      +editedAt: DateTimeImmutable @1708890333 {#5235
        date: 2024-02-25 20:45:33.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703810839 {#5236
        date: 2023-12-29 01:47:19.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4892}
    +body: """
      Many toolkits make dbus usage simple. It’s also introspectable so very easy to explore or generate bindings for dynamically.\n
      \n
      It’s pretty nice to use IME.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 10
    +score: 0
    +lastActive: DateTime @1703828824 {#5458
      date: 2023-12-29 06:47:04.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@nous@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5462 …}
    +nested: Doctrine\ORM\PersistentCollection {#5464 …}
    +votes: Doctrine\ORM\PersistentCollection {#5466 …}
    +reports: Doctrine\ORM\PersistentCollection {#5468 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5470 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5472 …}
    -id: 261522
    -bodyTs: "'also':9 'bind':18 'dbus':4 'dynam':20 'easi':13 'explor':15 'generat':17 'ime':27 'introspect':10 'make':3 'mani':1 'nice':24 'pretti':23 'simpl':6 'toolkit':2 'usag':5 'use':26"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6287887"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703828824 {#5459
      date: 2023-12-29 06:47:04.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: "this is the real answer - programming language bindings"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 2
  +score: 0
  +lastActive: DateTime @1703949930 {#5732
    date: 2023-12-30 16:25:30.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
    "@AProfessional@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5735 …}
  +nested: Doctrine\ORM\PersistentCollection {#5737 …}
  +votes: Doctrine\ORM\PersistentCollection {#5739 …}
  +reports: Doctrine\ORM\PersistentCollection {#5741 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5743 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5745 …}
  -id: 264780
  -bodyTs: "'answer':5 'bind':8 'languag':7 'program':6 'real':4"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294382"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949930 {#5733
    date: 2023-12-30 16:25: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
201 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
202 DENIED moderate
App\Entity\EntryComment {#5476
  +user: Proxies\__CG__\App\Entity\User {#5477 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5237
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4892
      +user: App\Entity\User {#4905 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
        \n
        At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
        \n
        A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 26
      +score: 0
      +lastActive: DateTime @1709402975 {#4887
        date: 2024-03-02 19:09:35.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4893 …}
      +nested: Doctrine\ORM\PersistentCollection {#4895 …}
      +votes: Doctrine\ORM\PersistentCollection {#4897 …}
      +reports: Doctrine\ORM\PersistentCollection {#4899 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
      -id: 260950
      -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/5994695"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703809539 {#4888
        date: 2023-12-29 01:25:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4892}
    +body: """
      Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
      \n
      I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703810839 {#5234
      date: 2023-12-29 01:47:19.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@nous@programming.dev"
      "@renzev@lemmy.world"
      "@nous@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5238 …}
    +nested: Doctrine\ORM\PersistentCollection {#5240 …}
    +votes: Doctrine\ORM\PersistentCollection {#5242 …}
    +reports: Doctrine\ORM\PersistentCollection {#5244 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
    -id: 261016
    -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285216"
    +editedAt: DateTimeImmutable @1708890333 {#5235
      date: 2024-02-25 20:45:33.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703810839 {#5236
      date: 2023-12-29 01:47:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: """
    > Wouldn’t this also be possible with plain sockets tho?\n
    \n
    You keep using this phrase. Given time and money anything is possible. Technically we don’t need to use http - every server could implement their own standard using raw sockets. You then could download a simple client library for every site!\n
    \n
    With a well defined dbus interface your application can talk to any number of applications that implement that interface. Even those you didn’t know about it at time of development. It provides a structure for ipc other than “go fetch libblah” and also “libblarg” and “libfloob” and read all of their docs and implement each one separately.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 11
  +score: 0
  +lastActive: DateTime @1703845875 {#5474
    date: 2023-12-29 11:31:15.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5478 …}
  +nested: Doctrine\ORM\PersistentCollection {#5480 …}
  +votes: Doctrine\ORM\PersistentCollection {#5482 …}
  +reports: Doctrine\ORM\PersistentCollection {#5484 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5486 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5488 …}
  -id: 261878
  -bodyTs: "'also':4,95 'anyth':20 'applic':59,66 'client':47 'could':33,43 'dbus':56 'defin':55 'develop':82 'didn':74 'doc':104 'download':44 'even':71 'everi':31,50 'fetch':92 'given':16 'go':91 'http':30 'implement':34,68,106 'interfac':57,70 'ipc':88 'keep':12 'know':76 'libblah':93 'libblarg':96 'libfloob':98 'librari':48 'money':19 'need':27 'number':64 'one':108 'phrase':15 'plain':8 'possibl':6,22 'provid':84 'raw':39 'read':100 'separ':109 'server':32 'simpl':46 'site':51 'socket':9,40 'standard':37 'structur':86 'talk':61 'technic':23 'tho':10 'time':17,80 'use':13,29,38 'well':54 'wouldn':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://sh.itjust.works/comment/6911519"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703845875 {#5475
    date: 2023-12-29 11:31:15.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
203 DENIED edit
App\Entity\EntryComment {#5476
  +user: Proxies\__CG__\App\Entity\User {#5477 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5237
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4892
      +user: App\Entity\User {#4905 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
        \n
        At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
        \n
        A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 26
      +score: 0
      +lastActive: DateTime @1709402975 {#4887
        date: 2024-03-02 19:09:35.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4893 …}
      +nested: Doctrine\ORM\PersistentCollection {#4895 …}
      +votes: Doctrine\ORM\PersistentCollection {#4897 …}
      +reports: Doctrine\ORM\PersistentCollection {#4899 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
      -id: 260950
      -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/5994695"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703809539 {#4888
        date: 2023-12-29 01:25:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4892}
    +body: """
      Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
      \n
      I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703810839 {#5234
      date: 2023-12-29 01:47:19.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@nous@programming.dev"
      "@renzev@lemmy.world"
      "@nous@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5238 …}
    +nested: Doctrine\ORM\PersistentCollection {#5240 …}
    +votes: Doctrine\ORM\PersistentCollection {#5242 …}
    +reports: Doctrine\ORM\PersistentCollection {#5244 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
    -id: 261016
    -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285216"
    +editedAt: DateTimeImmutable @1708890333 {#5235
      date: 2024-02-25 20:45:33.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703810839 {#5236
      date: 2023-12-29 01:47:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: """
    > Wouldn’t this also be possible with plain sockets tho?\n
    \n
    You keep using this phrase. Given time and money anything is possible. Technically we don’t need to use http - every server could implement their own standard using raw sockets. You then could download a simple client library for every site!\n
    \n
    With a well defined dbus interface your application can talk to any number of applications that implement that interface. Even those you didn’t know about it at time of development. It provides a structure for ipc other than “go fetch libblah” and also “libblarg” and “libfloob” and read all of their docs and implement each one separately.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 11
  +score: 0
  +lastActive: DateTime @1703845875 {#5474
    date: 2023-12-29 11:31:15.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5478 …}
  +nested: Doctrine\ORM\PersistentCollection {#5480 …}
  +votes: Doctrine\ORM\PersistentCollection {#5482 …}
  +reports: Doctrine\ORM\PersistentCollection {#5484 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5486 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5488 …}
  -id: 261878
  -bodyTs: "'also':4,95 'anyth':20 'applic':59,66 'client':47 'could':33,43 'dbus':56 'defin':55 'develop':82 'didn':74 'doc':104 'download':44 'even':71 'everi':31,50 'fetch':92 'given':16 'go':91 'http':30 'implement':34,68,106 'interfac':57,70 'ipc':88 'keep':12 'know':76 'libblah':93 'libblarg':96 'libfloob':98 'librari':48 'money':19 'need':27 'number':64 'one':108 'phrase':15 'plain':8 'possibl':6,22 'provid':84 'raw':39 'read':100 'separ':109 'server':32 'simpl':46 'site':51 'socket':9,40 'standard':37 'structur':86 'talk':61 'technic':23 'tho':10 'time':17,80 'use':13,29,38 'well':54 'wouldn':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://sh.itjust.works/comment/6911519"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703845875 {#5475
    date: 2023-12-29 11:31:15.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
204 DENIED moderate
App\Entity\EntryComment {#5476
  +user: Proxies\__CG__\App\Entity\User {#5477 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5237
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4892
      +user: App\Entity\User {#4905 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
        \n
        At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
        \n
        A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 26
      +score: 0
      +lastActive: DateTime @1709402975 {#4887
        date: 2024-03-02 19:09:35.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4893 …}
      +nested: Doctrine\ORM\PersistentCollection {#4895 …}
      +votes: Doctrine\ORM\PersistentCollection {#4897 …}
      +reports: Doctrine\ORM\PersistentCollection {#4899 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
      -id: 260950
      -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/5994695"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703809539 {#4888
        date: 2023-12-29 01:25:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4892}
    +body: """
      Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
      \n
      I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703810839 {#5234
      date: 2023-12-29 01:47:19.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@nous@programming.dev"
      "@renzev@lemmy.world"
      "@nous@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5238 …}
    +nested: Doctrine\ORM\PersistentCollection {#5240 …}
    +votes: Doctrine\ORM\PersistentCollection {#5242 …}
    +reports: Doctrine\ORM\PersistentCollection {#5244 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
    -id: 261016
    -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285216"
    +editedAt: DateTimeImmutable @1708890333 {#5235
      date: 2024-02-25 20:45:33.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703810839 {#5236
      date: 2023-12-29 01:47:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: """
    > Wouldn’t this also be possible with plain sockets tho?\n
    \n
    You keep using this phrase. Given time and money anything is possible. Technically we don’t need to use http - every server could implement their own standard using raw sockets. You then could download a simple client library for every site!\n
    \n
    With a well defined dbus interface your application can talk to any number of applications that implement that interface. Even those you didn’t know about it at time of development. It provides a structure for ipc other than “go fetch libblah” and also “libblarg” and “libfloob” and read all of their docs and implement each one separately.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 11
  +score: 0
  +lastActive: DateTime @1703845875 {#5474
    date: 2023-12-29 11:31:15.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5478 …}
  +nested: Doctrine\ORM\PersistentCollection {#5480 …}
  +votes: Doctrine\ORM\PersistentCollection {#5482 …}
  +reports: Doctrine\ORM\PersistentCollection {#5484 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5486 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5488 …}
  -id: 261878
  -bodyTs: "'also':4,95 'anyth':20 'applic':59,66 'client':47 'could':33,43 'dbus':56 'defin':55 'develop':82 'didn':74 'doc':104 'download':44 'even':71 'everi':31,50 'fetch':92 'given':16 'go':91 'http':30 'implement':34,68,106 'interfac':57,70 'ipc':88 'keep':12 'know':76 'libblah':93 'libblarg':96 'libfloob':98 'librari':48 'money':19 'need':27 'number':64 'one':108 'phrase':15 'plain':8 'possibl':6,22 'provid':84 'raw':39 'read':100 'separ':109 'server':32 'simpl':46 'site':51 'socket':9,40 'standard':37 'structur':86 'talk':61 'technic':23 'tho':10 'time':17,80 'use':13,29,38 'well':54 'wouldn':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://sh.itjust.works/comment/6911519"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703845875 {#5475
    date: 2023-12-29 11:31:15.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
205 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
206 DENIED moderate
App\Entity\EntryComment {#5493
  +user: App\Entity\User {#4905 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5237
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4892
      +user: App\Entity\User {#4905 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
        \n
        At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
        \n
        A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 26
      +score: 0
      +lastActive: DateTime @1709402975 {#4887
        date: 2024-03-02 19:09:35.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4893 …}
      +nested: Doctrine\ORM\PersistentCollection {#4895 …}
      +votes: Doctrine\ORM\PersistentCollection {#4897 …}
      +reports: Doctrine\ORM\PersistentCollection {#4899 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
      -id: 260950
      -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/5994695"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703809539 {#4888
        date: 2023-12-29 01:25:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4892}
    +body: """
      Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
      \n
      I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703810839 {#5234
      date: 2023-12-29 01:47:19.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@nous@programming.dev"
      "@renzev@lemmy.world"
      "@nous@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5238 …}
    +nested: Doctrine\ORM\PersistentCollection {#5240 …}
    +votes: Doctrine\ORM\PersistentCollection {#5242 …}
    +reports: Doctrine\ORM\PersistentCollection {#5244 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
    -id: 261016
    -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285216"
    +editedAt: DateTimeImmutable @1708890333 {#5235
      date: 2024-02-25 20:45:33.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703810839 {#5236
      date: 2023-12-29 01:47:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: """
    Anything is possible with sockets… and that is a meaningless statement. It is like saying you can build anything with bricks. Technically true, but missing all the important details of how.\n
    \n
    In an alternative universe we could have done so many things differently to solve the same problems. But we don’t live there and in our universe dbus was the attempt to solve that problem among others. And yes you can create a standardization for music players easily enough - but what about notifications, and everything else? DBus *tries* to be a generic interface anything can talk over at a logical level - rather that just being the basic way two process can physically send bytes between each other.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 5
  +score: 0
  +lastActive: DateTime @1703843743 {#5490
    date: 2023-12-29 10:55:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5494 …}
  +nested: Doctrine\ORM\PersistentCollection {#5496 …}
  +votes: Doctrine\ORM\PersistentCollection {#5498 …}
  +reports: Doctrine\ORM\PersistentCollection {#5500 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5502 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5504 …}
  -id: 261843
  -bodyTs: "'altern':34 'among':67 'anyth':1,19,95 'attempt':62 'basic':108 'brick':21 'build':18 'byte':115 'could':37 'creat':73 'dbus':59,88 'detail':29 'differ':43 'done':39 'easili':79 'els':87 'enough':80 'everyth':86 'generic':93 'import':28 'interfac':94 'level':102 'like':14 'live':53 'logic':101 'mani':41 'meaningless':10 'miss':25 'music':77 'notif':84 'other':68 'physic':113 'player':78 'possibl':3 'problem':48,66 'process':111 'rather':103 'say':15 'send':114 'socket':5 'solv':45,64 'standard':75 'statement':11 'talk':97 'technic':22 'thing':42 'tri':89 'true':23 'two':110 'univers':35,58 'way':109 'yes':70"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/6000395"
  +editedAt: DateTimeImmutable @1708997191 {#5491
    date: 2024-02-27 02:26:31.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703843743 {#5492
    date: 2023-12-29 10:55:43.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
207 DENIED edit
App\Entity\EntryComment {#5493
  +user: App\Entity\User {#4905 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5237
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4892
      +user: App\Entity\User {#4905 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
        \n
        At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
        \n
        A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 26
      +score: 0
      +lastActive: DateTime @1709402975 {#4887
        date: 2024-03-02 19:09:35.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4893 …}
      +nested: Doctrine\ORM\PersistentCollection {#4895 …}
      +votes: Doctrine\ORM\PersistentCollection {#4897 …}
      +reports: Doctrine\ORM\PersistentCollection {#4899 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
      -id: 260950
      -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/5994695"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703809539 {#4888
        date: 2023-12-29 01:25:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4892}
    +body: """
      Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
      \n
      I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703810839 {#5234
      date: 2023-12-29 01:47:19.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@nous@programming.dev"
      "@renzev@lemmy.world"
      "@nous@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5238 …}
    +nested: Doctrine\ORM\PersistentCollection {#5240 …}
    +votes: Doctrine\ORM\PersistentCollection {#5242 …}
    +reports: Doctrine\ORM\PersistentCollection {#5244 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
    -id: 261016
    -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285216"
    +editedAt: DateTimeImmutable @1708890333 {#5235
      date: 2024-02-25 20:45:33.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703810839 {#5236
      date: 2023-12-29 01:47:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: """
    Anything is possible with sockets… and that is a meaningless statement. It is like saying you can build anything with bricks. Technically true, but missing all the important details of how.\n
    \n
    In an alternative universe we could have done so many things differently to solve the same problems. But we don’t live there and in our universe dbus was the attempt to solve that problem among others. And yes you can create a standardization for music players easily enough - but what about notifications, and everything else? DBus *tries* to be a generic interface anything can talk over at a logical level - rather that just being the basic way two process can physically send bytes between each other.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 5
  +score: 0
  +lastActive: DateTime @1703843743 {#5490
    date: 2023-12-29 10:55:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5494 …}
  +nested: Doctrine\ORM\PersistentCollection {#5496 …}
  +votes: Doctrine\ORM\PersistentCollection {#5498 …}
  +reports: Doctrine\ORM\PersistentCollection {#5500 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5502 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5504 …}
  -id: 261843
  -bodyTs: "'altern':34 'among':67 'anyth':1,19,95 'attempt':62 'basic':108 'brick':21 'build':18 'byte':115 'could':37 'creat':73 'dbus':59,88 'detail':29 'differ':43 'done':39 'easili':79 'els':87 'enough':80 'everyth':86 'generic':93 'import':28 'interfac':94 'level':102 'like':14 'live':53 'logic':101 'mani':41 'meaningless':10 'miss':25 'music':77 'notif':84 'other':68 'physic':113 'player':78 'possibl':3 'problem':48,66 'process':111 'rather':103 'say':15 'send':114 'socket':5 'solv':45,64 'standard':75 'statement':11 'talk':97 'technic':22 'thing':42 'tri':89 'true':23 'two':110 'univers':35,58 'way':109 'yes':70"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/6000395"
  +editedAt: DateTimeImmutable @1708997191 {#5491
    date: 2024-02-27 02:26:31.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703843743 {#5492
    date: 2023-12-29 10:55:43.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
208 DENIED moderate
App\Entity\EntryComment {#5493
  +user: App\Entity\User {#4905 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5237
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#4892
      +user: App\Entity\User {#4905 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: """
        Sockets are just streams of bytes - no defined structure to them at all. Dbus is about defining a common interface that everything can talk. That means when writing a program you don’t need to learn how every program you want to talk to talks over its own socket - just can just use a dbus library and query what is available on the system.\n
        \n
        At least that is the idea - IMO its implementation has a lot to be desired but a central event bus IMO is a good idea. Just needs to be easy to integrate with which I think is what dbus fails at.\n
        \n
        A great example is music player software - rather than every music player software creating its own socket and each having its own API to basically all do the same operations. So anything that want to just play/pause some music would need to understand all the differences between all the various different music applications. Instead with a central event bus system each music app could integrate with that and each application that wants to talk to a music app would just need to talk to the event bus and not need to understand every single music app out there.
        """
      +lang: "en"
      +isAdult: false
      +favouriteCount: 26
      +score: 0
      +lastActive: DateTime @1709402975 {#4887
        date: 2024-03-02 19:09:35.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#4893 …}
      +nested: Doctrine\ORM\PersistentCollection {#4895 …}
      +votes: Doctrine\ORM\PersistentCollection {#4897 …}
      +reports: Doctrine\ORM\PersistentCollection {#4899 …}
      +favourites: Doctrine\ORM\PersistentCollection {#4901 …}
      +notifications: Doctrine\ORM\PersistentCollection {#4903 …}
      -id: 260950
      -bodyTs: "'anyth':137 'api':128 'app':168,183,201 'applic':158,175 'avail':61 'basic':130 'bus':84,164,192 'byte':6 'central':82,162 'common':19 'could':169 'creat':119 'dbus':14,55,103 'defin':8,17 'desir':79 'differ':151,156 'easi':94 'event':83,163,191 'everi':38,115,198 'everyth':22 'exampl':108 'fail':104 'good':88 'great':107 'idea':70,89 'imo':71,85 'implement':73 'instead':159 'integr':96,170 'interfac':20 'learn':36 'least':66 'librari':56 'lot':76 'mean':26 'music':110,116,144,157,167,182,200 'need':34,91,146,186,195 'oper':135 'play/pause':142 'player':111,117 'program':30,39 'queri':58 'rather':113 'singl':199 'socket':1,49,122 'softwar':112,118 'stream':4 'structur':9 'system':64,165 'talk':24,43,45,179,188 'think':100 'understand':148,197 'use':53 'various':155 'want':41,139,177 'would':145,184 'write':28"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://programming.dev/comment/5994695"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703809539 {#4888
        date: 2023-12-29 01:25:39.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#4892}
    +body: """
      Wouldn’t this also be possible with plain sockets tho? To continue with your example of music players, the current standard is MPRIS, which uses dbus. But in an alternate universe, the people behind MPRIS could just have decided that music players shall create sockets at `/run/user/1000/mpris/[player name]` that all speak the same standardized protocol. If a player wanted to add functionality beyond MPRIS, it could accept nonstandard requests on its socket, or create a new socket altogether for extended control.\n
      \n
      I just don’t see how this would require any more coordination between developers than the current solution. And I don’t see how dbus can save you from having to “understanding every single […] app out there”. If anything, it adds the overhead of learning how dbus itself works, on top of how a specific app’s dbus interface works.
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 6
    +score: 0
    +lastActive: DateTime @1703810839 {#5234
      date: 2023-12-29 01:47:19.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@nous@programming.dev"
      "@renzev@lemmy.world"
      "@nous@programming.dev"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5238 …}
    +nested: Doctrine\ORM\PersistentCollection {#5240 …}
    +votes: Doctrine\ORM\PersistentCollection {#5242 …}
    +reports: Doctrine\ORM\PersistentCollection {#5244 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5246 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5248 …}
    -id: 261016
    -bodyTs: "'/run/user/1000/mpris':47 'accept':68 'add':62,123 'also':4 'altern':30 'altogeth':79 'anyth':121 'app':117,138 'behind':34 'beyond':64 'continu':12 'control':82 'coordin':94 'could':36,67 'creat':44,75 'current':20,99 'dbus':26,107,129,140 'decid':39 'develop':96 'everi':115 'exampl':15 'extend':81 'function':63 'interfac':141 'learn':127 'mpris':23,35,65 'music':17,41 'name':49 'new':77 'nonstandard':69 'overhead':125 'peopl':33 'plain':8 'player':18,42,48,59 'possibl':6 'protocol':56 'request':70 'requir':91 'save':109 'see':87,105 'shall':43 'singl':116 'socket':9,45,73,78 'solut':100 'speak':52 'specif':137 'standard':21,55 'tho':10 'top':133 'understand':114 'univers':31 'use':25 'want':60 'work':131,142 'would':90 'wouldn':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6285216"
    +editedAt: DateTimeImmutable @1708890333 {#5235
      date: 2024-02-25 20:45:33.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703810839 {#5236
      date: 2023-12-29 01:47:19.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4892}
  +body: """
    Anything is possible with sockets… and that is a meaningless statement. It is like saying you can build anything with bricks. Technically true, but missing all the important details of how.\n
    \n
    In an alternative universe we could have done so many things differently to solve the same problems. But we don’t live there and in our universe dbus was the attempt to solve that problem among others. And yes you can create a standardization for music players easily enough - but what about notifications, and everything else? DBus *tries* to be a generic interface anything can talk over at a logical level - rather that just being the basic way two process can physically send bytes between each other.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 5
  +score: 0
  +lastActive: DateTime @1703843743 {#5490
    date: 2023-12-29 10:55:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@nous@programming.dev"
    "@renzev@lemmy.world"
    "@nous@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5494 …}
  +nested: Doctrine\ORM\PersistentCollection {#5496 …}
  +votes: Doctrine\ORM\PersistentCollection {#5498 …}
  +reports: Doctrine\ORM\PersistentCollection {#5500 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5502 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5504 …}
  -id: 261843
  -bodyTs: "'altern':34 'among':67 'anyth':1,19,95 'attempt':62 'basic':108 'brick':21 'build':18 'byte':115 'could':37 'creat':73 'dbus':59,88 'detail':29 'differ':43 'done':39 'easili':79 'els':87 'enough':80 'everyth':86 'generic':93 'import':28 'interfac':94 'level':102 'like':14 'live':53 'logic':101 'mani':41 'meaningless':10 'miss':25 'music':77 'notif':84 'other':68 'physic':113 'player':78 'possibl':3 'problem':48,66 'process':111 'rather':103 'say':15 'send':114 'socket':5 'solv':45,64 'standard':75 'statement':11 'talk':97 'technic':22 'thing':42 'tri':89 'true':23 'two':110 'univers':35,58 'way':109 'yes':70"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/6000395"
  +editedAt: DateTimeImmutable @1708997191 {#5491
    date: 2024-02-27 02:26:31.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703843743 {#5492
    date: 2023-12-29 10:55:43.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
209 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
210 DENIED moderate
App\Entity\EntryComment {#4966
  +user: App\Entity\User {#4979 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Yes, of course, the sockets are the answer to everything (and BTW, d-bus uses sockets as well, e.g. `/run/dbus/system_bus_socket` on my current system), but the problem is no standard for the communication over these sockets (or where is the socket located). For example, X11 developed one system of communicating over their socket, but it was used just by few X11 programs, and everybody else had their other system of communication. And even if an app found some socket, there was absolutely no standard how exactly should programs communicate over it. How to send more than just plain ASCII strings? Each program had to write their own serialization/deserialization code, their own format for marshalling binary data, etc. Now there is just one standard for those protocols, and even libraries with the standard (and well tested) code for it."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 25
  +score: 0
  +lastActive: DateTime @1709401663 {#4960
    date: 2024-03-02 18:47:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4967 …}
  +nested: Doctrine\ORM\PersistentCollection {#4969 …}
  +votes: Doctrine\ORM\PersistentCollection {#4971 …}
  +reports: Doctrine\ORM\PersistentCollection {#4973 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4975 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4977 …}
  -id: 263555
  -bodyTs: "'/run/dbus/system_bus_socket':21 'absolut':83 'answer':8 'app':77 'ascii':100 'binari':116 'btw':12 'bus':15 'code':110,137 'communic':34,51,72,90 'cours':3 'current':24 'd':14 'd-bus':13 'data':117 'develop':47 'e.g':20 'els':66 'etc':118 'even':74,129 'everybodi':65 'everyth':10 'exact':87 'exampl':45 'format':113 'found':78 'librari':130 'locat':43 'marshal':115 'one':48,123 'plain':99 'problem':28 'program':63,89,103 'protocol':127 'send':95 'serialization/deserialization':109 'socket':5,17,37,42,54,80 'standard':31,85,124,133 'string':101 'system':25,49,70 'test':136 'use':16,58 'well':19,135 'write':106 'x11':46,62 'yes':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6298399"
  +editedAt: DateTimeImmutable @1709211851 {#4961
    date: 2024-02-29 14:04:11.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703895621 {#4962
    date: 2023-12-30 01:20:21.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
211 DENIED edit
App\Entity\EntryComment {#4966
  +user: App\Entity\User {#4979 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Yes, of course, the sockets are the answer to everything (and BTW, d-bus uses sockets as well, e.g. `/run/dbus/system_bus_socket` on my current system), but the problem is no standard for the communication over these sockets (or where is the socket located). For example, X11 developed one system of communicating over their socket, but it was used just by few X11 programs, and everybody else had their other system of communication. And even if an app found some socket, there was absolutely no standard how exactly should programs communicate over it. How to send more than just plain ASCII strings? Each program had to write their own serialization/deserialization code, their own format for marshalling binary data, etc. Now there is just one standard for those protocols, and even libraries with the standard (and well tested) code for it."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 25
  +score: 0
  +lastActive: DateTime @1709401663 {#4960
    date: 2024-03-02 18:47:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4967 …}
  +nested: Doctrine\ORM\PersistentCollection {#4969 …}
  +votes: Doctrine\ORM\PersistentCollection {#4971 …}
  +reports: Doctrine\ORM\PersistentCollection {#4973 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4975 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4977 …}
  -id: 263555
  -bodyTs: "'/run/dbus/system_bus_socket':21 'absolut':83 'answer':8 'app':77 'ascii':100 'binari':116 'btw':12 'bus':15 'code':110,137 'communic':34,51,72,90 'cours':3 'current':24 'd':14 'd-bus':13 'data':117 'develop':47 'e.g':20 'els':66 'etc':118 'even':74,129 'everybodi':65 'everyth':10 'exact':87 'exampl':45 'format':113 'found':78 'librari':130 'locat':43 'marshal':115 'one':48,123 'plain':99 'problem':28 'program':63,89,103 'protocol':127 'send':95 'serialization/deserialization':109 'socket':5,17,37,42,54,80 'standard':31,85,124,133 'string':101 'system':25,49,70 'test':136 'use':16,58 'well':19,135 'write':106 'x11':46,62 'yes':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6298399"
  +editedAt: DateTimeImmutable @1709211851 {#4961
    date: 2024-02-29 14:04:11.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703895621 {#4962
    date: 2023-12-30 01:20:21.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
212 DENIED moderate
App\Entity\EntryComment {#4966
  +user: App\Entity\User {#4979 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "Yes, of course, the sockets are the answer to everything (and BTW, d-bus uses sockets as well, e.g. `/run/dbus/system_bus_socket` on my current system), but the problem is no standard for the communication over these sockets (or where is the socket located). For example, X11 developed one system of communicating over their socket, but it was used just by few X11 programs, and everybody else had their other system of communication. And even if an app found some socket, there was absolutely no standard how exactly should programs communicate over it. How to send more than just plain ASCII strings? Each program had to write their own serialization/deserialization code, their own format for marshalling binary data, etc. Now there is just one standard for those protocols, and even libraries with the standard (and well tested) code for it."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 25
  +score: 0
  +lastActive: DateTime @1709401663 {#4960
    date: 2024-03-02 18:47:43.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#4967 …}
  +nested: Doctrine\ORM\PersistentCollection {#4969 …}
  +votes: Doctrine\ORM\PersistentCollection {#4971 …}
  +reports: Doctrine\ORM\PersistentCollection {#4973 …}
  +favourites: Doctrine\ORM\PersistentCollection {#4975 …}
  +notifications: Doctrine\ORM\PersistentCollection {#4977 …}
  -id: 263555
  -bodyTs: "'/run/dbus/system_bus_socket':21 'absolut':83 'answer':8 'app':77 'ascii':100 'binari':116 'btw':12 'bus':15 'code':110,137 'communic':34,51,72,90 'cours':3 'current':24 'd':14 'd-bus':13 'data':117 'develop':47 'e.g':20 'els':66 'etc':118 'even':74,129 'everybodi':65 'everyth':10 'exact':87 'exampl':45 'format':113 'found':78 'librari':130 'locat':43 'marshal':115 'one':48,123 'plain':99 'problem':28 'program':63,89,103 'protocol':127 'send':95 'serialization/deserialization':109 'socket':5,17,37,42,54,80 'standard':31,85,124,133 'string':101 'system':25,49,70 'test':136 'use':16,58 'well':19,135 'write':106 'x11':46,62 'yes':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6298399"
  +editedAt: DateTimeImmutable @1709211851 {#4961
    date: 2024-02-29 14:04:11.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703895621 {#4962
    date: 2023-12-30 01:20:21.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
213 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
214 DENIED moderate
App\Entity\EntryComment {#5392
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4966
    +user: App\Entity\User {#4979 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "Yes, of course, the sockets are the answer to everything (and BTW, d-bus uses sockets as well, e.g. `/run/dbus/system_bus_socket` on my current system), but the problem is no standard for the communication over these sockets (or where is the socket located). For example, X11 developed one system of communicating over their socket, but it was used just by few X11 programs, and everybody else had their other system of communication. And even if an app found some socket, there was absolutely no standard how exactly should programs communicate over it. How to send more than just plain ASCII strings? Each program had to write their own serialization/deserialization code, their own format for marshalling binary data, etc. Now there is just one standard for those protocols, and even libraries with the standard (and well tested) code for it."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 25
    +score: 0
    +lastActive: DateTime @1709401663 {#4960
      date: 2024-03-02 18:47:43.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4967 …}
    +nested: Doctrine\ORM\PersistentCollection {#4969 …}
    +votes: Doctrine\ORM\PersistentCollection {#4971 …}
    +reports: Doctrine\ORM\PersistentCollection {#4973 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4975 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4977 …}
    -id: 263555
    -bodyTs: "'/run/dbus/system_bus_socket':21 'absolut':83 'answer':8 'app':77 'ascii':100 'binari':116 'btw':12 'bus':15 'code':110,137 'communic':34,51,72,90 'cours':3 'current':24 'd':14 'd-bus':13 'data':117 'develop':47 'e.g':20 'els':66 'etc':118 'even':74,129 'everybodi':65 'everyth':10 'exact':87 'exampl':45 'format':113 'found':78 'librari':130 'locat':43 'marshal':115 'one':48,123 'plain':99 'problem':28 'program':63,89,103 'protocol':127 'send':95 'serialization/deserialization':109 'socket':5,17,37,42,54,80 'standard':31,85,124,133 'string':101 'system':25,49,70 'test':136 'use':16,58 'well':19,135 'write':106 'x11':46,62 'yes':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6298399"
    +editedAt: DateTimeImmutable @1709211851 {#4961
      date: 2024-02-29 14:04:11.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703895621 {#4962
      date: 2023-12-30 01:20:21.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4966}
  +body: "There’s still no standard on how to use dbus so I don’t get your point"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703949659 {#5390
    date: 2023-12-30 16:20:59.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@mcepl@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5393 …}
  +nested: Doctrine\ORM\PersistentCollection {#5395 …}
  +votes: Doctrine\ORM\PersistentCollection {#5397 …}
  +reports: Doctrine\ORM\PersistentCollection {#5399 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5401 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5403 …}
  -id: 264768
  -bodyTs: "'dbus':10 'get':15 'point':17 'standard':5 'still':3 'use':9"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294314"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949659 {#5391
    date: 2023-12-30 16:20:59.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
215 DENIED edit
App\Entity\EntryComment {#5392
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4966
    +user: App\Entity\User {#4979 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "Yes, of course, the sockets are the answer to everything (and BTW, d-bus uses sockets as well, e.g. `/run/dbus/system_bus_socket` on my current system), but the problem is no standard for the communication over these sockets (or where is the socket located). For example, X11 developed one system of communicating over their socket, but it was used just by few X11 programs, and everybody else had their other system of communication. And even if an app found some socket, there was absolutely no standard how exactly should programs communicate over it. How to send more than just plain ASCII strings? Each program had to write their own serialization/deserialization code, their own format for marshalling binary data, etc. Now there is just one standard for those protocols, and even libraries with the standard (and well tested) code for it."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 25
    +score: 0
    +lastActive: DateTime @1709401663 {#4960
      date: 2024-03-02 18:47:43.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4967 …}
    +nested: Doctrine\ORM\PersistentCollection {#4969 …}
    +votes: Doctrine\ORM\PersistentCollection {#4971 …}
    +reports: Doctrine\ORM\PersistentCollection {#4973 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4975 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4977 …}
    -id: 263555
    -bodyTs: "'/run/dbus/system_bus_socket':21 'absolut':83 'answer':8 'app':77 'ascii':100 'binari':116 'btw':12 'bus':15 'code':110,137 'communic':34,51,72,90 'cours':3 'current':24 'd':14 'd-bus':13 'data':117 'develop':47 'e.g':20 'els':66 'etc':118 'even':74,129 'everybodi':65 'everyth':10 'exact':87 'exampl':45 'format':113 'found':78 'librari':130 'locat':43 'marshal':115 'one':48,123 'plain':99 'problem':28 'program':63,89,103 'protocol':127 'send':95 'serialization/deserialization':109 'socket':5,17,37,42,54,80 'standard':31,85,124,133 'string':101 'system':25,49,70 'test':136 'use':16,58 'well':19,135 'write':106 'x11':46,62 'yes':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6298399"
    +editedAt: DateTimeImmutable @1709211851 {#4961
      date: 2024-02-29 14:04:11.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703895621 {#4962
      date: 2023-12-30 01:20:21.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4966}
  +body: "There’s still no standard on how to use dbus so I don’t get your point"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703949659 {#5390
    date: 2023-12-30 16:20:59.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@mcepl@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5393 …}
  +nested: Doctrine\ORM\PersistentCollection {#5395 …}
  +votes: Doctrine\ORM\PersistentCollection {#5397 …}
  +reports: Doctrine\ORM\PersistentCollection {#5399 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5401 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5403 …}
  -id: 264768
  -bodyTs: "'dbus':10 'get':15 'point':17 'standard':5 'still':3 'use':9"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294314"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949659 {#5391
    date: 2023-12-30 16:20:59.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
216 DENIED moderate
App\Entity\EntryComment {#5392
  +user: Proxies\__CG__\App\Entity\User {#5221 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#4966
    +user: App\Entity\User {#4979 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "Yes, of course, the sockets are the answer to everything (and BTW, d-bus uses sockets as well, e.g. `/run/dbus/system_bus_socket` on my current system), but the problem is no standard for the communication over these sockets (or where is the socket located). For example, X11 developed one system of communicating over their socket, but it was used just by few X11 programs, and everybody else had their other system of communication. And even if an app found some socket, there was absolutely no standard how exactly should programs communicate over it. How to send more than just plain ASCII strings? Each program had to write their own serialization/deserialization code, their own format for marshalling binary data, etc. Now there is just one standard for those protocols, and even libraries with the standard (and well tested) code for it."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 25
    +score: 0
    +lastActive: DateTime @1709401663 {#4960
      date: 2024-03-02 18:47:43.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#4967 …}
    +nested: Doctrine\ORM\PersistentCollection {#4969 …}
    +votes: Doctrine\ORM\PersistentCollection {#4971 …}
    +reports: Doctrine\ORM\PersistentCollection {#4973 …}
    +favourites: Doctrine\ORM\PersistentCollection {#4975 …}
    +notifications: Doctrine\ORM\PersistentCollection {#4977 …}
    -id: 263555
    -bodyTs: "'/run/dbus/system_bus_socket':21 'absolut':83 'answer':8 'app':77 'ascii':100 'binari':116 'btw':12 'bus':15 'code':110,137 'communic':34,51,72,90 'cours':3 'current':24 'd':14 'd-bus':13 'data':117 'develop':47 'e.g':20 'els':66 'etc':118 'even':74,129 'everybodi':65 'everyth':10 'exact':87 'exampl':45 'format':113 'found':78 'librari':130 'locat':43 'marshal':115 'one':48,123 'plain':99 'problem':28 'program':63,89,103 'protocol':127 'send':95 'serialization/deserialization':109 'socket':5,17,37,42,54,80 'standard':31,85,124,133 'string':101 'system':25,49,70 'test':136 'use':16,58 'well':19,135 'write':106 'x11':46,62 'yes':1"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.world/comment/6298399"
    +editedAt: DateTimeImmutable @1709211851 {#4961
      date: 2024-02-29 14:04:11.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703895621 {#4962
      date: 2023-12-30 01:20:21.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#4966}
  +body: "There’s still no standard on how to use dbus so I don’t get your point"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1703949659 {#5390
    date: 2023-12-30 16:20:59.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@mcepl@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5393 …}
  +nested: Doctrine\ORM\PersistentCollection {#5395 …}
  +votes: Doctrine\ORM\PersistentCollection {#5397 …}
  +reports: Doctrine\ORM\PersistentCollection {#5399 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5401 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5403 …}
  -id: 264768
  -bodyTs: "'dbus':10 'get':15 'point':17 'standard':5 'still':3 'use':9"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.dbzer0.com/comment/6294314"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703949659 {#5391
    date: 2023-12-30 16:20:59.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
217 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
218 DENIED moderate
App\Entity\EntryComment {#5040
  +user: App\Entity\User {#5053 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "dbus can also start a program. For example when one notification was generated and no notification daemon is running, then dbus launch one to handle the request."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 21
  +score: 0
  +lastActive: DateTime @1708889038 {#5035
    date: 2024-02-25 20:23:58.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5041 …}
  +nested: Doctrine\ORM\PersistentCollection {#5043 …}
  +votes: Doctrine\ORM\PersistentCollection {#5045 …}
  +reports: Doctrine\ORM\PersistentCollection {#5047 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5049 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5051 …}
  -id: 260868
  -bodyTs: "'also':3 'daemon':17 'dbus':1,21 'exampl':8 'generat':13 'handl':25 'launch':22 'notif':11,16 'one':10,23 'program':6 'request':27 'run':19 'start':4"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6931527"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807653 {#5036
    date: 2023-12-29 00:54:13.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
219 DENIED edit
App\Entity\EntryComment {#5040
  +user: App\Entity\User {#5053 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "dbus can also start a program. For example when one notification was generated and no notification daemon is running, then dbus launch one to handle the request."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 21
  +score: 0
  +lastActive: DateTime @1708889038 {#5035
    date: 2024-02-25 20:23:58.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5041 …}
  +nested: Doctrine\ORM\PersistentCollection {#5043 …}
  +votes: Doctrine\ORM\PersistentCollection {#5045 …}
  +reports: Doctrine\ORM\PersistentCollection {#5047 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5049 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5051 …}
  -id: 260868
  -bodyTs: "'also':3 'daemon':17 'dbus':1,21 'exampl':8 'generat':13 'handl':25 'launch':22 'notif':11,16 'one':10,23 'program':6 'request':27 'run':19 'start':4"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6931527"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807653 {#5036
    date: 2023-12-29 00:54:13.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
220 DENIED moderate
App\Entity\EntryComment {#5040
  +user: App\Entity\User {#5053 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: null
  +root: null
  +body: "dbus can also start a program. For example when one notification was generated and no notification daemon is running, then dbus launch one to handle the request."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 21
  +score: 0
  +lastActive: DateTime @1708889038 {#5035
    date: 2024-02-25 20:23:58.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5041 …}
  +nested: Doctrine\ORM\PersistentCollection {#5043 …}
  +votes: Doctrine\ORM\PersistentCollection {#5045 …}
  +reports: Doctrine\ORM\PersistentCollection {#5047 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5049 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5051 …}
  -id: 260868
  -bodyTs: "'also':3 'daemon':17 'dbus':1,21 'exampl':8 'generat':13 'handl':25 'launch':22 'notif':11,16 'one':10,23 'program':6 'request':27 'run':19 'start':4"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.ml/comment/6931527"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703807653 {#5036
    date: 2023-12-29 00:54:13.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
221 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
222 DENIED moderate
App\Entity\EntryComment {#5140
  +user: Proxies\__CG__\App\Entity\User {#5141 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5040
    +user: App\Entity\User {#5053 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "dbus can also start a program. For example when one notification was generated and no notification daemon is running, then dbus launch one to handle the request."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 21
    +score: 0
    +lastActive: DateTime @1708889038 {#5035
      date: 2024-02-25 20:23:58.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5041 …}
    +nested: Doctrine\ORM\PersistentCollection {#5043 …}
    +votes: Doctrine\ORM\PersistentCollection {#5045 …}
    +reports: Doctrine\ORM\PersistentCollection {#5047 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5049 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5051 …}
    -id: 260868
    -bodyTs: "'also':3 'daemon':17 'dbus':1,21 'exampl':8 'generat':13 'handl':25 'launch':22 'notif':11,16 'one':10,23 'program':6 'request':27 'run':19 'start':4"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/6931527"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807653 {#5036
      date: 2023-12-29 00:54:13.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#5040}
  +body: "Doesn’t systemd have the ability to do this as well with unix sockets?"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703810230 {#5138
    date: 2023-12-29 01:37:10.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@ipsirc@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5142 …}
  +nested: Doctrine\ORM\PersistentCollection {#5144 …}
  +votes: Doctrine\ORM\PersistentCollection {#5146 …}
  +reports: Doctrine\ORM\PersistentCollection {#5148 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5150 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5152 …}
  -id: 260992
  -bodyTs: "'abil':6 'doesn':1 'socket':14 'systemd':3 'unix':13 'well':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.redkrieg.com/comment/1067900"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810230 {#5139
    date: 2023-12-29 01:37:10.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
223 DENIED edit
App\Entity\EntryComment {#5140
  +user: Proxies\__CG__\App\Entity\User {#5141 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5040
    +user: App\Entity\User {#5053 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "dbus can also start a program. For example when one notification was generated and no notification daemon is running, then dbus launch one to handle the request."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 21
    +score: 0
    +lastActive: DateTime @1708889038 {#5035
      date: 2024-02-25 20:23:58.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5041 …}
    +nested: Doctrine\ORM\PersistentCollection {#5043 …}
    +votes: Doctrine\ORM\PersistentCollection {#5045 …}
    +reports: Doctrine\ORM\PersistentCollection {#5047 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5049 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5051 …}
    -id: 260868
    -bodyTs: "'also':3 'daemon':17 'dbus':1,21 'exampl':8 'generat':13 'handl':25 'launch':22 'notif':11,16 'one':10,23 'program':6 'request':27 'run':19 'start':4"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/6931527"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807653 {#5036
      date: 2023-12-29 00:54:13.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#5040}
  +body: "Doesn’t systemd have the ability to do this as well with unix sockets?"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703810230 {#5138
    date: 2023-12-29 01:37:10.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@ipsirc@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5142 …}
  +nested: Doctrine\ORM\PersistentCollection {#5144 …}
  +votes: Doctrine\ORM\PersistentCollection {#5146 …}
  +reports: Doctrine\ORM\PersistentCollection {#5148 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5150 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5152 …}
  -id: 260992
  -bodyTs: "'abil':6 'doesn':1 'socket':14 'systemd':3 'unix':13 'well':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.redkrieg.com/comment/1067900"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810230 {#5139
    date: 2023-12-29 01:37:10.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
224 DENIED moderate
App\Entity\EntryComment {#5140
  +user: Proxies\__CG__\App\Entity\User {#5141 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5040
    +user: App\Entity\User {#5053 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: null
    +root: null
    +body: "dbus can also start a program. For example when one notification was generated and no notification daemon is running, then dbus launch one to handle the request."
    +lang: "en"
    +isAdult: false
    +favouriteCount: 21
    +score: 0
    +lastActive: DateTime @1708889038 {#5035
      date: 2024-02-25 20:23:58.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5041 …}
    +nested: Doctrine\ORM\PersistentCollection {#5043 …}
    +votes: Doctrine\ORM\PersistentCollection {#5045 …}
    +reports: Doctrine\ORM\PersistentCollection {#5047 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5049 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5051 …}
    -id: 260868
    -bodyTs: "'also':3 'daemon':17 'dbus':1,21 'exampl':8 'generat':13 'handl':25 'launch':22 'notif':11,16 'one':10,23 'program':6 'request':27 'run':19 'start':4"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.ml/comment/6931527"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807653 {#5036
      date: 2023-12-29 00:54:13.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#5040}
  +body: "Doesn’t systemd have the ability to do this as well with unix sockets?"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 7
  +score: 0
  +lastActive: DateTime @1703810230 {#5138
    date: 2023-12-29 01:37:10.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@ipsirc@lemmy.ml"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5142 …}
  +nested: Doctrine\ORM\PersistentCollection {#5144 …}
  +votes: Doctrine\ORM\PersistentCollection {#5146 …}
  +reports: Doctrine\ORM\PersistentCollection {#5148 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5150 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5152 …}
  -id: 260992
  -bodyTs: "'abil':6 'doesn':1 'socket':14 'systemd':3 'unix':13 'well':11"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.redkrieg.com/comment/1067900"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703810230 {#5139
    date: 2023-12-29 01:37:10.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
225 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
226 DENIED moderate
App\Entity\EntryComment {#5445
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5140
    +user: Proxies\__CG__\App\Entity\User {#5141 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5040
      +user: App\Entity\User {#5053 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: "dbus can also start a program. For example when one notification was generated and no notification daemon is running, then dbus launch one to handle the request."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 21
      +score: 0
      +lastActive: DateTime @1708889038 {#5035
        date: 2024-02-25 20:23:58.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5041 …}
      +nested: Doctrine\ORM\PersistentCollection {#5043 …}
      +votes: Doctrine\ORM\PersistentCollection {#5045 …}
      +reports: Doctrine\ORM\PersistentCollection {#5047 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5049 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5051 …}
      -id: 260868
      -bodyTs: "'also':3 'daemon':17 'dbus':1,21 'exampl':8 'generat':13 'handl':25 'launch':22 'notif':11,16 'one':10,23 'program':6 'request':27 'run':19 'start':4"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ml/comment/6931527"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703807653 {#5036
        date: 2023-12-29 00:54:13.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#5040}
    +body: "Doesn’t systemd have the ability to do this as well with unix sockets?"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 7
    +score: 0
    +lastActive: DateTime @1703810230 {#5138
      date: 2023-12-29 01:37:10.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@ipsirc@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5142 …}
    +nested: Doctrine\ORM\PersistentCollection {#5144 …}
    +votes: Doctrine\ORM\PersistentCollection {#5146 …}
    +reports: Doctrine\ORM\PersistentCollection {#5148 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5150 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5152 …}
    -id: 260992
    -bodyTs: "'abil':6 'doesn':1 'socket':14 'systemd':3 'unix':13 'well':11"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.redkrieg.com/comment/1067900"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810230 {#5139
      date: 2023-12-29 01:37:10.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#5040}
  +body: "I posted this in another comment, but to me it just sounds like this autostart mechanism in dbus is just a poor re-implementation of an init system"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1703812608 {#5443
    date: 2023-12-29 02:16:48.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@ipsirc@lemmy.ml"
    "@RedKrieg@lemmy.redkrieg.com"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5446 …}
  +nested: Doctrine\ORM\PersistentCollection {#5448 …}
  +votes: Doctrine\ORM\PersistentCollection {#5450 …}
  +reports: Doctrine\ORM\PersistentCollection {#5452 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5454 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5456 …}
  -id: 261073
  -bodyTs: "'anoth':5 'autostart':15 'comment':6 'dbus':18 'implement':25 'init':28 'like':13 'mechan':16 'poor':22 'post':2 're':24 're-implement':23 'sound':12 'system':29"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285555"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812608 {#5444
    date: 2023-12-29 02:16:48.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
227 DENIED edit
App\Entity\EntryComment {#5445
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5140
    +user: Proxies\__CG__\App\Entity\User {#5141 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5040
      +user: App\Entity\User {#5053 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: "dbus can also start a program. For example when one notification was generated and no notification daemon is running, then dbus launch one to handle the request."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 21
      +score: 0
      +lastActive: DateTime @1708889038 {#5035
        date: 2024-02-25 20:23:58.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5041 …}
      +nested: Doctrine\ORM\PersistentCollection {#5043 …}
      +votes: Doctrine\ORM\PersistentCollection {#5045 …}
      +reports: Doctrine\ORM\PersistentCollection {#5047 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5049 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5051 …}
      -id: 260868
      -bodyTs: "'also':3 'daemon':17 'dbus':1,21 'exampl':8 'generat':13 'handl':25 'launch':22 'notif':11,16 'one':10,23 'program':6 'request':27 'run':19 'start':4"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ml/comment/6931527"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703807653 {#5036
        date: 2023-12-29 00:54:13.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#5040}
    +body: "Doesn’t systemd have the ability to do this as well with unix sockets?"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 7
    +score: 0
    +lastActive: DateTime @1703810230 {#5138
      date: 2023-12-29 01:37:10.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@ipsirc@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5142 …}
    +nested: Doctrine\ORM\PersistentCollection {#5144 …}
    +votes: Doctrine\ORM\PersistentCollection {#5146 …}
    +reports: Doctrine\ORM\PersistentCollection {#5148 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5150 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5152 …}
    -id: 260992
    -bodyTs: "'abil':6 'doesn':1 'socket':14 'systemd':3 'unix':13 'well':11"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.redkrieg.com/comment/1067900"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810230 {#5139
      date: 2023-12-29 01:37:10.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#5040}
  +body: "I posted this in another comment, but to me it just sounds like this autostart mechanism in dbus is just a poor re-implementation of an init system"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1703812608 {#5443
    date: 2023-12-29 02:16:48.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@ipsirc@lemmy.ml"
    "@RedKrieg@lemmy.redkrieg.com"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5446 …}
  +nested: Doctrine\ORM\PersistentCollection {#5448 …}
  +votes: Doctrine\ORM\PersistentCollection {#5450 …}
  +reports: Doctrine\ORM\PersistentCollection {#5452 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5454 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5456 …}
  -id: 261073
  -bodyTs: "'anoth':5 'autostart':15 'comment':6 'dbus':18 'implement':25 'init':28 'like':13 'mechan':16 'poor':22 'post':2 're':24 're-implement':23 'sound':12 'system':29"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285555"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812608 {#5444
    date: 2023-12-29 02:16:48.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
228 DENIED moderate
App\Entity\EntryComment {#5445
  +user: Proxies\__CG__\App\Entity\User {#1970 …}
  +entry: App\Entity\Entry {#2419
    +user: Proxies\__CG__\App\Entity\User {#1970 …}
    +magazine: App\Entity\Magazine {#265
      +icon: Proxies\__CG__\App\Entity\Image {#246 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#275
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#237 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
      +entries: Doctrine\ORM\PersistentCollection {#180 …}
      +posts: Doctrine\ORM\PersistentCollection {#138 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
      +bans: Doctrine\ORM\PersistentCollection {#117 …}
      +reports: Doctrine\ORM\PersistentCollection {#103 …}
      +badges: Doctrine\ORM\PersistentCollection {#81 …}
      +logs: Doctrine\ORM\PersistentCollection {#71 …}
      +awards: Doctrine\ORM\PersistentCollection {#1346 …}
      +categories: Doctrine\ORM\PersistentCollection {#1823 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#269
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#271
        date: 2023-11-02 13:51:08.0 +01:00
      }
    }
    +image: Proxies\__CG__\App\Entity\Image {#1943 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#1912 …}
    +slug: "What-is-the-point-of-dbus"
    +title: "What is the point of dbus?"
    +url: "https://lemmy.world/pictrs/image/f7b2404a-896e-47b5-a954-8bc03c07d8f9.webp"
    +body: """
      Does anybody know why dbus exists? I’ve been wracking my brain trying to come up with a usecase for dbus that isn’t already covered by Unix sockets.\n
      \n
      You want to remotely control a daemon? Use sockets. You want the daemon to respond to the client? Sockets. Want to exchange information in json? plaintext? binary data? Sockets can do it. Want to restrict access to a socket? Go ahead, change the socket’s permissions. Want to prevent unauthorized programs from pretending to be someone they’re not? Change the permissions of the directory containing the socket. Want network transparency? That’s why we have abstract sockets.\n
      \n
      Plenty of well-established software uses sockets. Music player daemon uses sockets. BSPWM uses sockets. Tmux uses sockets. Pipewire uses sockets. Dhcpcd uses sockets. Heck, dbus itself relies on sockets!\n
      \n
      For developers, using sockets is easy. I once wrote a program that interfaced with BSPWM, and it was a breeze. Dbus, on the other hand, not so much. I tried writing a Python script that would contact Network Manager and check the WiFi signal strength. Right off the bat I’m using some obscure undocumented package for interfacing with dbus. What is an introspection? What is a proxy object? What is an interface? Why do I need 60 lines of (Python!) code for a seemingly trivial operation?\n
      \n
      So why do some developers decide to use dbus when they could just use unix sockets and save a lot of hassle for themselves and others?
      """
    +type: "link"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 76
    +favouriteCount: 264
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1712146891 {#2414
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#1866 …}
    +votes: Doctrine\ORM\PersistentCollection {#1966 …}
    +reports: Doctrine\ORM\PersistentCollection {#1946 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1368 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2426 …}
    +badges: Doctrine\ORM\PersistentCollection {#2439 …}
    +children: []
    -id: 25525
    -titleTs: "'dbus':6 'point':4"
    -bodyTs: "'60':216 'abstract':106 'access':65 'ahead':70 'alreadi':25 'anybodi':2 'bat':187 'binari':56 'brain':12 'breez':158 'bspwm':121,153 'chang':71,89 'check':179 'client':47 'code':220 'come':15 'contact':175 'contain':95 'control':34 'could':237 'cover':26 'daemon':36,42,118 'data':57 'dbus':5,21,134,159,198,234 'decid':231 'develop':140,230 'dhcpcd':130 'directori':94 'easi':144 'establish':112 'exchang':51 'exist':6 'go':69 'hand':163 'hassl':247 'heck':133 'inform':52 'interfac':151,196,211 'introspect':202 'isn':23 'json':54 'know':3 'line':217 'lot':245 'm':189 'manag':177 'much':166 'music':116 'need':215 'network':99,176 'object':207 'obscur':192 'oper':225 'other':251 'packag':194 'permiss':75,91 'pipewir':127 'plaintext':55 'player':117 'plenti':108 'pretend':82 'prevent':78 'program':80,149 'proxi':206 'python':171,219 're':87 'reli':136 'remot':33 'respond':44 'restrict':64 'right':184 'save':243 'script':172 'seem':223 'signal':182 'socket':29,38,48,58,68,73,97,107,115,120,123,126,129,132,138,142,241 'softwar':113 'someon':85 'strength':183 'tmux':124 'transpar':100 'tri':13,168 'trivial':224 'unauthor':79 'undocu':193 'unix':28,240 'use':37,114,119,122,125,128,131,141,190,233,239 'usecas':19 've':8 'want':31,40,49,62,76,98 'well':111 'well-establish':110 'wifi':181 'would':174 'wrack':10 'write':169 'wrote':147"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703893490
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/10075662"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703807090 {#1793
      date: 2023-12-29 00:44:50.0 +01:00
    }
  }
  +magazine: App\Entity\Magazine {#265}
  +image: null
  +parent: App\Entity\EntryComment {#5140
    +user: Proxies\__CG__\App\Entity\User {#5141 …}
    +entry: App\Entity\Entry {#2419}
    +magazine: App\Entity\Magazine {#265}
    +image: null
    +parent: App\Entity\EntryComment {#5040
      +user: App\Entity\User {#5053 …}
      +entry: App\Entity\Entry {#2419}
      +magazine: App\Entity\Magazine {#265}
      +image: null
      +parent: null
      +root: null
      +body: "dbus can also start a program. For example when one notification was generated and no notification daemon is running, then dbus launch one to handle the request."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 21
      +score: 0
      +lastActive: DateTime @1708889038 {#5035
        date: 2024-02-25 20:23:58.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@renzev@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#5041 …}
      +nested: Doctrine\ORM\PersistentCollection {#5043 …}
      +votes: Doctrine\ORM\PersistentCollection {#5045 …}
      +reports: Doctrine\ORM\PersistentCollection {#5047 …}
      +favourites: Doctrine\ORM\PersistentCollection {#5049 …}
      +notifications: Doctrine\ORM\PersistentCollection {#5051 …}
      -id: 260868
      -bodyTs: "'also':3 'daemon':17 'dbus':1,21 'exampl':8 'generat':13 'handl':25 'launch':22 'notif':11,16 'one':10,23 'program':6 'request':27 'run':19 'start':4"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.ml/comment/6931527"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703807653 {#5036
        date: 2023-12-29 00:54:13.0 +01:00
      }
    }
    +root: App\Entity\EntryComment {#5040}
    +body: "Doesn’t systemd have the ability to do this as well with unix sockets?"
    +lang: "en"
    +isAdult: false
    +favouriteCount: 7
    +score: 0
    +lastActive: DateTime @1703810230 {#5138
      date: 2023-12-29 01:37:10.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@renzev@lemmy.world"
      "@ipsirc@lemmy.ml"
    ]
    +children: Doctrine\ORM\PersistentCollection {#5142 …}
    +nested: Doctrine\ORM\PersistentCollection {#5144 …}
    +votes: Doctrine\ORM\PersistentCollection {#5146 …}
    +reports: Doctrine\ORM\PersistentCollection {#5148 …}
    +favourites: Doctrine\ORM\PersistentCollection {#5150 …}
    +notifications: Doctrine\ORM\PersistentCollection {#5152 …}
    -id: 260992
    -bodyTs: "'abil':6 'doesn':1 'socket':14 'systemd':3 'unix':13 'well':11"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://lemmy.redkrieg.com/comment/1067900"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703810230 {#5139
      date: 2023-12-29 01:37:10.0 +01:00
    }
  }
  +root: App\Entity\EntryComment {#5040}
  +body: "I posted this in another comment, but to me it just sounds like this autostart mechanism in dbus is just a poor re-implementation of an init system"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 6
  +score: 0
  +lastActive: DateTime @1703812608 {#5443
    date: 2023-12-29 02:16:48.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@renzev@lemmy.world"
    "@ipsirc@lemmy.ml"
    "@RedKrieg@lemmy.redkrieg.com"
  ]
  +children: Doctrine\ORM\PersistentCollection {#5446 …}
  +nested: Doctrine\ORM\PersistentCollection {#5448 …}
  +votes: Doctrine\ORM\PersistentCollection {#5450 …}
  +reports: Doctrine\ORM\PersistentCollection {#5452 …}
  +favourites: Doctrine\ORM\PersistentCollection {#5454 …}
  +notifications: Doctrine\ORM\PersistentCollection {#5456 …}
  -id: 261073
  -bodyTs: "'anoth':5 'autostart':15 'comment':6 'dbus':18 'implement':25 'init':28 'like':13 'mechan':16 'poor':22 'post':2 're':24 're-implement':23 'sound':12 'system':29"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6285555"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703812608 {#5444
    date: 2023-12-29 02:16:48.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
229 DENIED edit
App\Entity\Magazine {#265
  +icon: Proxies\__CG__\App\Entity\Image {#246 …}
  +name: "linux@lemmy.ml"
  +title: "linux"
  +description: """
    From Wikipedia, the free encyclopedia\n
    \n
    Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
    \n
    Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
    \n
    ### Rules\n
    \n
    - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
    - No misinformation\n
    - No NSFW content\n
    - No hate speech, bigotry, etc\n
    \n
    ### Related Communities\n
    \n
    - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
    - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
    - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
    - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
    \n
    Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
    """
  +rules: null
  +subscriptionsCount: 1
  +entryCount: 1406
  +entryCommentCount: 28632
  +postCount: 6
  +postCommentCount: 214
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1729583542 {#275
    date: 2024-10-22 09:52:22.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#237 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#233 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#222 …}
  +entries: Doctrine\ORM\PersistentCollection {#180 …}
  +posts: Doctrine\ORM\PersistentCollection {#138 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#200 …}
  +bans: Doctrine\ORM\PersistentCollection {#117 …}
  +reports: Doctrine\ORM\PersistentCollection {#103 …}
  +badges: Doctrine\ORM\PersistentCollection {#81 …}
  +logs: Doctrine\ORM\PersistentCollection {#71 …}
  +awards: Doctrine\ORM\PersistentCollection {#1346 …}
  +categories: Doctrine\ORM\PersistentCollection {#1823 …}
  -id: 73
  +apId: "linux@lemmy.ml"
  +apProfileId: "https://lemmy.ml/c/linux"
  +apPublicUrl: "https://lemmy.ml/c/linux"
  +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
  +apInboxUrl: "https://lemmy.ml/inbox"
  +apDomain: "lemmy.ml"
  +apPreferredUsername: "linux"
  +apDiscoverable: true
  +apManuallyApprovesFollowers: null
  +privateKey: null
  +publicKey: null
  +apFetchedAt: DateTime @1729583596 {#269
    date: 2024-10-22 09:53:16.0 +02:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1698929468 {#271
    date: 2023-11-02 13:51:08.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