GET https://kbin.spritesserver.nl/index.php/u/@AVincentInSpace@pawb.social/active/2023-12-30::2023-12-30

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 …}
}
3.03 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.05 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
Proxies\__CG__\App\Entity\Entry {#1561
  +user: Proxies\__CG__\App\Entity\User {#1908 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: Proxies\__CG__\App\Entity\Image {#2360 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
  +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 {#2448
    date: 2024-04-03 14:21:31.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2020 …}
  +votes: Doctrine\ORM\PersistentCollection {#1739 …}
  +reports: Doctrine\ORM\PersistentCollection {#2460 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
  +badges: Doctrine\ORM\PersistentCollection {#2090 …}
  +children: [
    3 => App\Entity\EntryComment {#1550
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
      +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 {#1579
        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 {#1566 …}
      +nested: Doctrine\ORM\PersistentCollection {#1562 …}
      +votes: Doctrine\ORM\PersistentCollection {#1554 …}
      +reports: Doctrine\ORM\PersistentCollection {#1556 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
      -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 {#1559
        date: 2024-02-29 14:11:54.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703895743 {#1548
        date: 2023-12-30 01:22:23.0 +01:00
      }
      +"title": 263564
    }
    2 => App\Entity\EntryComment {#1619
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
      +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 {#1604
        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 {#1701 …}
      +nested: Doctrine\ORM\PersistentCollection {#1687 …}
      +votes: Doctrine\ORM\PersistentCollection {#1689 …}
      +reports: Doctrine\ORM\PersistentCollection {#1691 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
      -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 {#1596
        date: 2023-12-30 01:28:55.0 +01:00
      }
      +"title": 263581
    }
    1 => App\Entity\EntryComment {#1629
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
      +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 {#1611
        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 {#1626 …}
      +nested: Doctrine\ORM\PersistentCollection {#1618 …}
      +votes: Doctrine\ORM\PersistentCollection {#1597 …}
      +reports: Doctrine\ORM\PersistentCollection {#1731 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
      -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 {#1598
        date: 2024-02-29 16:53:39.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703896847 {#1630
        date: 2023-12-30 01:40:47.0 +01:00
      }
      +"title": 263613
    }
    0 => App\Entity\EntryComment {#1737
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
      +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 {#1728
        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 {#1732 …}
      +nested: Doctrine\ORM\PersistentCollection {#1735 …}
      +votes: Doctrine\ORM\PersistentCollection {#1729 …}
      +reports: Doctrine\ORM\PersistentCollection {#1719 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
      -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 {#1736
        date: 2024-02-29 16:14:23.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703897438 {#1730
        date: 2023-12-30 01:50:38.0 +01:00
      }
      +"title": 263629
    }
  ]
  -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 {#1407
    date: 2023-12-29 00:44:50.0 +01:00
  }
  +__isInitialized__: true
   …2
}
"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
Proxies\__CG__\App\Entity\Entry {#1561
  +user: Proxies\__CG__\App\Entity\User {#1908 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: Proxies\__CG__\App\Entity\Image {#2360 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
  +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 {#2448
    date: 2024-04-03 14:21:31.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2020 …}
  +votes: Doctrine\ORM\PersistentCollection {#1739 …}
  +reports: Doctrine\ORM\PersistentCollection {#2460 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
  +badges: Doctrine\ORM\PersistentCollection {#2090 …}
  +children: [
    3 => App\Entity\EntryComment {#1550
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
      +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 {#1579
        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 {#1566 …}
      +nested: Doctrine\ORM\PersistentCollection {#1562 …}
      +votes: Doctrine\ORM\PersistentCollection {#1554 …}
      +reports: Doctrine\ORM\PersistentCollection {#1556 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
      -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 {#1559
        date: 2024-02-29 14:11:54.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703895743 {#1548
        date: 2023-12-30 01:22:23.0 +01:00
      }
      +"title": 263564
    }
    2 => App\Entity\EntryComment {#1619
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
      +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 {#1604
        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 {#1701 …}
      +nested: Doctrine\ORM\PersistentCollection {#1687 …}
      +votes: Doctrine\ORM\PersistentCollection {#1689 …}
      +reports: Doctrine\ORM\PersistentCollection {#1691 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
      -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 {#1596
        date: 2023-12-30 01:28:55.0 +01:00
      }
      +"title": 263581
    }
    1 => App\Entity\EntryComment {#1629
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
      +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 {#1611
        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 {#1626 …}
      +nested: Doctrine\ORM\PersistentCollection {#1618 …}
      +votes: Doctrine\ORM\PersistentCollection {#1597 …}
      +reports: Doctrine\ORM\PersistentCollection {#1731 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
      -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 {#1598
        date: 2024-02-29 16:53:39.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703896847 {#1630
        date: 2023-12-30 01:40:47.0 +01:00
      }
      +"title": 263613
    }
    0 => App\Entity\EntryComment {#1737
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
      +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 {#1728
        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 {#1732 …}
      +nested: Doctrine\ORM\PersistentCollection {#1735 …}
      +votes: Doctrine\ORM\PersistentCollection {#1729 …}
      +reports: Doctrine\ORM\PersistentCollection {#1719 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
      -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 {#1736
        date: 2024-02-29 16:14:23.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703897438 {#1730
        date: 2023-12-30 01:50:38.0 +01:00
      }
      +"title": 263629
    }
  ]
  -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 {#1407
    date: 2023-12-29 00:44:50.0 +01:00
  }
  +__isInitialized__: true
   …2
}
"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
Proxies\__CG__\App\Entity\Entry {#1561
  +user: Proxies\__CG__\App\Entity\User {#1908 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: Proxies\__CG__\App\Entity\Image {#2360 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
  +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 {#2448
    date: 2024-04-03 14:21:31.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2020 …}
  +votes: Doctrine\ORM\PersistentCollection {#1739 …}
  +reports: Doctrine\ORM\PersistentCollection {#2460 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
  +badges: Doctrine\ORM\PersistentCollection {#2090 …}
  +children: [
    3 => App\Entity\EntryComment {#1550
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
      +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 {#1579
        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 {#1566 …}
      +nested: Doctrine\ORM\PersistentCollection {#1562 …}
      +votes: Doctrine\ORM\PersistentCollection {#1554 …}
      +reports: Doctrine\ORM\PersistentCollection {#1556 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
      -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 {#1559
        date: 2024-02-29 14:11:54.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703895743 {#1548
        date: 2023-12-30 01:22:23.0 +01:00
      }
      +"title": 263564
    }
    2 => App\Entity\EntryComment {#1619
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
      +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 {#1604
        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 {#1701 …}
      +nested: Doctrine\ORM\PersistentCollection {#1687 …}
      +votes: Doctrine\ORM\PersistentCollection {#1689 …}
      +reports: Doctrine\ORM\PersistentCollection {#1691 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
      -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 {#1596
        date: 2023-12-30 01:28:55.0 +01:00
      }
      +"title": 263581
    }
    1 => App\Entity\EntryComment {#1629
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
      +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 {#1611
        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 {#1626 …}
      +nested: Doctrine\ORM\PersistentCollection {#1618 …}
      +votes: Doctrine\ORM\PersistentCollection {#1597 …}
      +reports: Doctrine\ORM\PersistentCollection {#1731 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
      -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 {#1598
        date: 2024-02-29 16:53:39.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703896847 {#1630
        date: 2023-12-30 01:40:47.0 +01:00
      }
      +"title": 263613
    }
    0 => App\Entity\EntryComment {#1737
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
      +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 {#1728
        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 {#1732 …}
      +nested: Doctrine\ORM\PersistentCollection {#1735 …}
      +votes: Doctrine\ORM\PersistentCollection {#1729 …}
      +reports: Doctrine\ORM\PersistentCollection {#1719 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
      -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 {#1736
        date: 2024-02-29 16:14:23.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703897438 {#1730
        date: 2023-12-30 01:50:38.0 +01:00
      }
      +"title": 263629
    }
  ]
  -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 {#1407
    date: 2023-12-29 00:44:50.0 +01:00
  }
  +__isInitialized__: true
   …2
}
"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 {#1550
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1561
    +user: Proxies\__CG__\App\Entity\User {#1908 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
    +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 {#2448
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2020 …}
    +votes: Doctrine\ORM\PersistentCollection {#1739 …}
    +reports: Doctrine\ORM\PersistentCollection {#2460 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
    +badges: Doctrine\ORM\PersistentCollection {#2090 …}
    +children: [
      3 => App\Entity\EntryComment {#1550}
      2 => App\Entity\EntryComment {#1619
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1604
          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 {#1701 …}
        +nested: Doctrine\ORM\PersistentCollection {#1687 …}
        +votes: Doctrine\ORM\PersistentCollection {#1689 …}
        +reports: Doctrine\ORM\PersistentCollection {#1691 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
        -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 {#1596
          date: 2023-12-30 01:28:55.0 +01:00
        }
        +"title": 263581
      }
      1 => App\Entity\EntryComment {#1629
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1611
          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 {#1626 …}
        +nested: Doctrine\ORM\PersistentCollection {#1618 …}
        +votes: Doctrine\ORM\PersistentCollection {#1597 …}
        +reports: Doctrine\ORM\PersistentCollection {#1731 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
        -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 {#1598
          date: 2024-02-29 16:53:39.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703896847 {#1630
          date: 2023-12-30 01:40:47.0 +01:00
        }
        +"title": 263613
      }
      0 => App\Entity\EntryComment {#1737
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1728
          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 {#1732 …}
        +nested: Doctrine\ORM\PersistentCollection {#1735 …}
        +votes: Doctrine\ORM\PersistentCollection {#1729 …}
        +reports: Doctrine\ORM\PersistentCollection {#1719 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
        -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 {#1736
          date: 2024-02-29 16:14:23.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703897438 {#1730
          date: 2023-12-30 01:50:38.0 +01:00
        }
        +"title": 263629
      }
    ]
    -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 {#1407
      date: 2023-12-29 00:44:50.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
  +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 {#1579
    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 {#1566 …}
  +nested: Doctrine\ORM\PersistentCollection {#1562 …}
  +votes: Doctrine\ORM\PersistentCollection {#1554 …}
  +reports: Doctrine\ORM\PersistentCollection {#1556 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
  -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 {#1559
    date: 2024-02-29 14:11:54.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703895743 {#1548
    date: 2023-12-30 01:22:23.0 +01:00
  }
  +"title": 263564
}
"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 {#1550
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1561
    +user: Proxies\__CG__\App\Entity\User {#1908 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
    +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 {#2448
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2020 …}
    +votes: Doctrine\ORM\PersistentCollection {#1739 …}
    +reports: Doctrine\ORM\PersistentCollection {#2460 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
    +badges: Doctrine\ORM\PersistentCollection {#2090 …}
    +children: [
      3 => App\Entity\EntryComment {#1550}
      2 => App\Entity\EntryComment {#1619
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1604
          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 {#1701 …}
        +nested: Doctrine\ORM\PersistentCollection {#1687 …}
        +votes: Doctrine\ORM\PersistentCollection {#1689 …}
        +reports: Doctrine\ORM\PersistentCollection {#1691 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
        -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 {#1596
          date: 2023-12-30 01:28:55.0 +01:00
        }
        +"title": 263581
      }
      1 => App\Entity\EntryComment {#1629
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1611
          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 {#1626 …}
        +nested: Doctrine\ORM\PersistentCollection {#1618 …}
        +votes: Doctrine\ORM\PersistentCollection {#1597 …}
        +reports: Doctrine\ORM\PersistentCollection {#1731 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
        -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 {#1598
          date: 2024-02-29 16:53:39.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703896847 {#1630
          date: 2023-12-30 01:40:47.0 +01:00
        }
        +"title": 263613
      }
      0 => App\Entity\EntryComment {#1737
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1728
          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 {#1732 …}
        +nested: Doctrine\ORM\PersistentCollection {#1735 …}
        +votes: Doctrine\ORM\PersistentCollection {#1729 …}
        +reports: Doctrine\ORM\PersistentCollection {#1719 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
        -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 {#1736
          date: 2024-02-29 16:14:23.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703897438 {#1730
          date: 2023-12-30 01:50:38.0 +01:00
        }
        +"title": 263629
      }
    ]
    -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 {#1407
      date: 2023-12-29 00:44:50.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
  +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 {#1579
    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 {#1566 …}
  +nested: Doctrine\ORM\PersistentCollection {#1562 …}
  +votes: Doctrine\ORM\PersistentCollection {#1554 …}
  +reports: Doctrine\ORM\PersistentCollection {#1556 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
  -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 {#1559
    date: 2024-02-29 14:11:54.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703895743 {#1548
    date: 2023-12-30 01:22:23.0 +01:00
  }
  +"title": 263564
}
"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 {#1550
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1561
    +user: Proxies\__CG__\App\Entity\User {#1908 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
    +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 {#2448
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2020 …}
    +votes: Doctrine\ORM\PersistentCollection {#1739 …}
    +reports: Doctrine\ORM\PersistentCollection {#2460 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
    +badges: Doctrine\ORM\PersistentCollection {#2090 …}
    +children: [
      3 => App\Entity\EntryComment {#1550}
      2 => App\Entity\EntryComment {#1619
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1604
          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 {#1701 …}
        +nested: Doctrine\ORM\PersistentCollection {#1687 …}
        +votes: Doctrine\ORM\PersistentCollection {#1689 …}
        +reports: Doctrine\ORM\PersistentCollection {#1691 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
        -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 {#1596
          date: 2023-12-30 01:28:55.0 +01:00
        }
        +"title": 263581
      }
      1 => App\Entity\EntryComment {#1629
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1611
          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 {#1626 …}
        +nested: Doctrine\ORM\PersistentCollection {#1618 …}
        +votes: Doctrine\ORM\PersistentCollection {#1597 …}
        +reports: Doctrine\ORM\PersistentCollection {#1731 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
        -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 {#1598
          date: 2024-02-29 16:53:39.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703896847 {#1630
          date: 2023-12-30 01:40:47.0 +01:00
        }
        +"title": 263613
      }
      0 => App\Entity\EntryComment {#1737
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1728
          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 {#1732 …}
        +nested: Doctrine\ORM\PersistentCollection {#1735 …}
        +votes: Doctrine\ORM\PersistentCollection {#1729 …}
        +reports: Doctrine\ORM\PersistentCollection {#1719 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
        -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 {#1736
          date: 2024-02-29 16:14:23.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703897438 {#1730
          date: 2023-12-30 01:50:38.0 +01:00
        }
        +"title": 263629
      }
    ]
    -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 {#1407
      date: 2023-12-29 00:44:50.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
  +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 {#1579
    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 {#1566 …}
  +nested: Doctrine\ORM\PersistentCollection {#1562 …}
  +votes: Doctrine\ORM\PersistentCollection {#1554 …}
  +reports: Doctrine\ORM\PersistentCollection {#1556 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
  -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 {#1559
    date: 2024-02-29 14:11:54.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703895743 {#1548
    date: 2023-12-30 01:22:23.0 +01:00
  }
  +"title": 263564
}
"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 {#1619
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1561
    +user: Proxies\__CG__\App\Entity\User {#1908 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
    +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 {#2448
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2020 …}
    +votes: Doctrine\ORM\PersistentCollection {#1739 …}
    +reports: Doctrine\ORM\PersistentCollection {#2460 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
    +badges: Doctrine\ORM\PersistentCollection {#2090 …}
    +children: [
      3 => App\Entity\EntryComment {#1550
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +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 {#1579
          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 {#1566 …}
        +nested: Doctrine\ORM\PersistentCollection {#1562 …}
        +votes: Doctrine\ORM\PersistentCollection {#1554 …}
        +reports: Doctrine\ORM\PersistentCollection {#1556 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
        -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 {#1559
          date: 2024-02-29 14:11:54.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703895743 {#1548
          date: 2023-12-30 01:22:23.0 +01:00
        }
        +"title": 263564
      }
      2 => App\Entity\EntryComment {#1619}
      1 => App\Entity\EntryComment {#1629
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1611
          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 {#1626 …}
        +nested: Doctrine\ORM\PersistentCollection {#1618 …}
        +votes: Doctrine\ORM\PersistentCollection {#1597 …}
        +reports: Doctrine\ORM\PersistentCollection {#1731 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
        -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 {#1598
          date: 2024-02-29 16:53:39.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703896847 {#1630
          date: 2023-12-30 01:40:47.0 +01:00
        }
        +"title": 263613
      }
      0 => App\Entity\EntryComment {#1737
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1728
          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 {#1732 …}
        +nested: Doctrine\ORM\PersistentCollection {#1735 …}
        +votes: Doctrine\ORM\PersistentCollection {#1729 …}
        +reports: Doctrine\ORM\PersistentCollection {#1719 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
        -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 {#1736
          date: 2024-02-29 16:14:23.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703897438 {#1730
          date: 2023-12-30 01:50:38.0 +01:00
        }
        +"title": 263629
      }
    ]
    -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 {#1407
      date: 2023-12-29 00:44:50.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
  +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 {#1604
    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 {#1701 …}
  +nested: Doctrine\ORM\PersistentCollection {#1687 …}
  +votes: Doctrine\ORM\PersistentCollection {#1689 …}
  +reports: Doctrine\ORM\PersistentCollection {#1691 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
  -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 {#1596
    date: 2023-12-30 01:28:55.0 +01:00
  }
  +"title": 263581
}
"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 {#1619
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1561
    +user: Proxies\__CG__\App\Entity\User {#1908 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
    +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 {#2448
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2020 …}
    +votes: Doctrine\ORM\PersistentCollection {#1739 …}
    +reports: Doctrine\ORM\PersistentCollection {#2460 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
    +badges: Doctrine\ORM\PersistentCollection {#2090 …}
    +children: [
      3 => App\Entity\EntryComment {#1550
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +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 {#1579
          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 {#1566 …}
        +nested: Doctrine\ORM\PersistentCollection {#1562 …}
        +votes: Doctrine\ORM\PersistentCollection {#1554 …}
        +reports: Doctrine\ORM\PersistentCollection {#1556 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
        -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 {#1559
          date: 2024-02-29 14:11:54.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703895743 {#1548
          date: 2023-12-30 01:22:23.0 +01:00
        }
        +"title": 263564
      }
      2 => App\Entity\EntryComment {#1619}
      1 => App\Entity\EntryComment {#1629
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1611
          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 {#1626 …}
        +nested: Doctrine\ORM\PersistentCollection {#1618 …}
        +votes: Doctrine\ORM\PersistentCollection {#1597 …}
        +reports: Doctrine\ORM\PersistentCollection {#1731 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
        -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 {#1598
          date: 2024-02-29 16:53:39.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703896847 {#1630
          date: 2023-12-30 01:40:47.0 +01:00
        }
        +"title": 263613
      }
      0 => App\Entity\EntryComment {#1737
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1728
          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 {#1732 …}
        +nested: Doctrine\ORM\PersistentCollection {#1735 …}
        +votes: Doctrine\ORM\PersistentCollection {#1729 …}
        +reports: Doctrine\ORM\PersistentCollection {#1719 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
        -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 {#1736
          date: 2024-02-29 16:14:23.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703897438 {#1730
          date: 2023-12-30 01:50:38.0 +01:00
        }
        +"title": 263629
      }
    ]
    -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 {#1407
      date: 2023-12-29 00:44:50.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
  +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 {#1604
    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 {#1701 …}
  +nested: Doctrine\ORM\PersistentCollection {#1687 …}
  +votes: Doctrine\ORM\PersistentCollection {#1689 …}
  +reports: Doctrine\ORM\PersistentCollection {#1691 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
  -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 {#1596
    date: 2023-12-30 01:28:55.0 +01:00
  }
  +"title": 263581
}
"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 {#1619
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1561
    +user: Proxies\__CG__\App\Entity\User {#1908 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
    +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 {#2448
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2020 …}
    +votes: Doctrine\ORM\PersistentCollection {#1739 …}
    +reports: Doctrine\ORM\PersistentCollection {#2460 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
    +badges: Doctrine\ORM\PersistentCollection {#2090 …}
    +children: [
      3 => App\Entity\EntryComment {#1550
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +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 {#1579
          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 {#1566 …}
        +nested: Doctrine\ORM\PersistentCollection {#1562 …}
        +votes: Doctrine\ORM\PersistentCollection {#1554 …}
        +reports: Doctrine\ORM\PersistentCollection {#1556 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
        -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 {#1559
          date: 2024-02-29 14:11:54.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703895743 {#1548
          date: 2023-12-30 01:22:23.0 +01:00
        }
        +"title": 263564
      }
      2 => App\Entity\EntryComment {#1619}
      1 => App\Entity\EntryComment {#1629
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1611
          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 {#1626 …}
        +nested: Doctrine\ORM\PersistentCollection {#1618 …}
        +votes: Doctrine\ORM\PersistentCollection {#1597 …}
        +reports: Doctrine\ORM\PersistentCollection {#1731 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
        -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 {#1598
          date: 2024-02-29 16:53:39.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703896847 {#1630
          date: 2023-12-30 01:40:47.0 +01:00
        }
        +"title": 263613
      }
      0 => App\Entity\EntryComment {#1737
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1728
          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 {#1732 …}
        +nested: Doctrine\ORM\PersistentCollection {#1735 …}
        +votes: Doctrine\ORM\PersistentCollection {#1729 …}
        +reports: Doctrine\ORM\PersistentCollection {#1719 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
        -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 {#1736
          date: 2024-02-29 16:14:23.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703897438 {#1730
          date: 2023-12-30 01:50:38.0 +01:00
        }
        +"title": 263629
      }
    ]
    -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 {#1407
      date: 2023-12-29 00:44:50.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
  +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 {#1604
    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 {#1701 …}
  +nested: Doctrine\ORM\PersistentCollection {#1687 …}
  +votes: Doctrine\ORM\PersistentCollection {#1689 …}
  +reports: Doctrine\ORM\PersistentCollection {#1691 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
  -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 {#1596
    date: 2023-12-30 01:28:55.0 +01:00
  }
  +"title": 263581
}
"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 {#1629
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1561
    +user: Proxies\__CG__\App\Entity\User {#1908 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
    +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 {#2448
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2020 …}
    +votes: Doctrine\ORM\PersistentCollection {#1739 …}
    +reports: Doctrine\ORM\PersistentCollection {#2460 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
    +badges: Doctrine\ORM\PersistentCollection {#2090 …}
    +children: [
      3 => App\Entity\EntryComment {#1550
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +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 {#1579
          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 {#1566 …}
        +nested: Doctrine\ORM\PersistentCollection {#1562 …}
        +votes: Doctrine\ORM\PersistentCollection {#1554 …}
        +reports: Doctrine\ORM\PersistentCollection {#1556 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
        -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 {#1559
          date: 2024-02-29 14:11:54.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703895743 {#1548
          date: 2023-12-30 01:22:23.0 +01:00
        }
        +"title": 263564
      }
      2 => App\Entity\EntryComment {#1619
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1604
          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 {#1701 …}
        +nested: Doctrine\ORM\PersistentCollection {#1687 …}
        +votes: Doctrine\ORM\PersistentCollection {#1689 …}
        +reports: Doctrine\ORM\PersistentCollection {#1691 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
        -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 {#1596
          date: 2023-12-30 01:28:55.0 +01:00
        }
        +"title": 263581
      }
      1 => App\Entity\EntryComment {#1629}
      0 => App\Entity\EntryComment {#1737
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1728
          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 {#1732 …}
        +nested: Doctrine\ORM\PersistentCollection {#1735 …}
        +votes: Doctrine\ORM\PersistentCollection {#1729 …}
        +reports: Doctrine\ORM\PersistentCollection {#1719 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
        -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 {#1736
          date: 2024-02-29 16:14:23.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703897438 {#1730
          date: 2023-12-30 01:50:38.0 +01:00
        }
        +"title": 263629
      }
    ]
    -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 {#1407
      date: 2023-12-29 00:44:50.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
  +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 {#1611
    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 {#1626 …}
  +nested: Doctrine\ORM\PersistentCollection {#1618 …}
  +votes: Doctrine\ORM\PersistentCollection {#1597 …}
  +reports: Doctrine\ORM\PersistentCollection {#1731 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
  -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 {#1598
    date: 2024-02-29 16:53:39.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703896847 {#1630
    date: 2023-12-30 01:40:47.0 +01:00
  }
  +"title": 263613
}
"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 {#1629
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1561
    +user: Proxies\__CG__\App\Entity\User {#1908 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
    +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 {#2448
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2020 …}
    +votes: Doctrine\ORM\PersistentCollection {#1739 …}
    +reports: Doctrine\ORM\PersistentCollection {#2460 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
    +badges: Doctrine\ORM\PersistentCollection {#2090 …}
    +children: [
      3 => App\Entity\EntryComment {#1550
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +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 {#1579
          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 {#1566 …}
        +nested: Doctrine\ORM\PersistentCollection {#1562 …}
        +votes: Doctrine\ORM\PersistentCollection {#1554 …}
        +reports: Doctrine\ORM\PersistentCollection {#1556 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
        -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 {#1559
          date: 2024-02-29 14:11:54.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703895743 {#1548
          date: 2023-12-30 01:22:23.0 +01:00
        }
        +"title": 263564
      }
      2 => App\Entity\EntryComment {#1619
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1604
          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 {#1701 …}
        +nested: Doctrine\ORM\PersistentCollection {#1687 …}
        +votes: Doctrine\ORM\PersistentCollection {#1689 …}
        +reports: Doctrine\ORM\PersistentCollection {#1691 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
        -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 {#1596
          date: 2023-12-30 01:28:55.0 +01:00
        }
        +"title": 263581
      }
      1 => App\Entity\EntryComment {#1629}
      0 => App\Entity\EntryComment {#1737
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1728
          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 {#1732 …}
        +nested: Doctrine\ORM\PersistentCollection {#1735 …}
        +votes: Doctrine\ORM\PersistentCollection {#1729 …}
        +reports: Doctrine\ORM\PersistentCollection {#1719 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
        -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 {#1736
          date: 2024-02-29 16:14:23.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703897438 {#1730
          date: 2023-12-30 01:50:38.0 +01:00
        }
        +"title": 263629
      }
    ]
    -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 {#1407
      date: 2023-12-29 00:44:50.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
  +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 {#1611
    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 {#1626 …}
  +nested: Doctrine\ORM\PersistentCollection {#1618 …}
  +votes: Doctrine\ORM\PersistentCollection {#1597 …}
  +reports: Doctrine\ORM\PersistentCollection {#1731 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
  -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 {#1598
    date: 2024-02-29 16:53:39.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703896847 {#1630
    date: 2023-12-30 01:40:47.0 +01:00
  }
  +"title": 263613
}
"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 {#1629
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1561
    +user: Proxies\__CG__\App\Entity\User {#1908 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
    +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 {#2448
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2020 …}
    +votes: Doctrine\ORM\PersistentCollection {#1739 …}
    +reports: Doctrine\ORM\PersistentCollection {#2460 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
    +badges: Doctrine\ORM\PersistentCollection {#2090 …}
    +children: [
      3 => App\Entity\EntryComment {#1550
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +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 {#1579
          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 {#1566 …}
        +nested: Doctrine\ORM\PersistentCollection {#1562 …}
        +votes: Doctrine\ORM\PersistentCollection {#1554 …}
        +reports: Doctrine\ORM\PersistentCollection {#1556 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
        -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 {#1559
          date: 2024-02-29 14:11:54.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703895743 {#1548
          date: 2023-12-30 01:22:23.0 +01:00
        }
        +"title": 263564
      }
      2 => App\Entity\EntryComment {#1619
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1604
          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 {#1701 …}
        +nested: Doctrine\ORM\PersistentCollection {#1687 …}
        +votes: Doctrine\ORM\PersistentCollection {#1689 …}
        +reports: Doctrine\ORM\PersistentCollection {#1691 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
        -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 {#1596
          date: 2023-12-30 01:28:55.0 +01:00
        }
        +"title": 263581
      }
      1 => App\Entity\EntryComment {#1629}
      0 => App\Entity\EntryComment {#1737
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1728
          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 {#1732 …}
        +nested: Doctrine\ORM\PersistentCollection {#1735 …}
        +votes: Doctrine\ORM\PersistentCollection {#1729 …}
        +reports: Doctrine\ORM\PersistentCollection {#1719 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
        -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 {#1736
          date: 2024-02-29 16:14:23.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703897438 {#1730
          date: 2023-12-30 01:50:38.0 +01:00
        }
        +"title": 263629
      }
    ]
    -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 {#1407
      date: 2023-12-29 00:44:50.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
  +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 {#1611
    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 {#1626 …}
  +nested: Doctrine\ORM\PersistentCollection {#1618 …}
  +votes: Doctrine\ORM\PersistentCollection {#1597 …}
  +reports: Doctrine\ORM\PersistentCollection {#1731 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
  -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 {#1598
    date: 2024-02-29 16:53:39.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703896847 {#1630
    date: 2023-12-30 01:40:47.0 +01:00
  }
  +"title": 263613
}
"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 {#1737
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1561
    +user: Proxies\__CG__\App\Entity\User {#1908 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
    +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 {#2448
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2020 …}
    +votes: Doctrine\ORM\PersistentCollection {#1739 …}
    +reports: Doctrine\ORM\PersistentCollection {#2460 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
    +badges: Doctrine\ORM\PersistentCollection {#2090 …}
    +children: [
      3 => App\Entity\EntryComment {#1550
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +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 {#1579
          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 {#1566 …}
        +nested: Doctrine\ORM\PersistentCollection {#1562 …}
        +votes: Doctrine\ORM\PersistentCollection {#1554 …}
        +reports: Doctrine\ORM\PersistentCollection {#1556 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
        -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 {#1559
          date: 2024-02-29 14:11:54.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703895743 {#1548
          date: 2023-12-30 01:22:23.0 +01:00
        }
        +"title": 263564
      }
      2 => App\Entity\EntryComment {#1619
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1604
          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 {#1701 …}
        +nested: Doctrine\ORM\PersistentCollection {#1687 …}
        +votes: Doctrine\ORM\PersistentCollection {#1689 …}
        +reports: Doctrine\ORM\PersistentCollection {#1691 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
        -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 {#1596
          date: 2023-12-30 01:28:55.0 +01:00
        }
        +"title": 263581
      }
      1 => App\Entity\EntryComment {#1629
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1611
          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 {#1626 …}
        +nested: Doctrine\ORM\PersistentCollection {#1618 …}
        +votes: Doctrine\ORM\PersistentCollection {#1597 …}
        +reports: Doctrine\ORM\PersistentCollection {#1731 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
        -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 {#1598
          date: 2024-02-29 16:53:39.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703896847 {#1630
          date: 2023-12-30 01:40:47.0 +01:00
        }
        +"title": 263613
      }
      0 => App\Entity\EntryComment {#1737}
    ]
    -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 {#1407
      date: 2023-12-29 00:44:50.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
  +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 {#1728
    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 {#1732 …}
  +nested: Doctrine\ORM\PersistentCollection {#1735 …}
  +votes: Doctrine\ORM\PersistentCollection {#1729 …}
  +reports: Doctrine\ORM\PersistentCollection {#1719 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
  -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 {#1736
    date: 2024-02-29 16:14:23.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703897438 {#1730
    date: 2023-12-30 01:50:38.0 +01:00
  }
  +"title": 263629
}
"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 {#1737
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1561
    +user: Proxies\__CG__\App\Entity\User {#1908 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
    +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 {#2448
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2020 …}
    +votes: Doctrine\ORM\PersistentCollection {#1739 …}
    +reports: Doctrine\ORM\PersistentCollection {#2460 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
    +badges: Doctrine\ORM\PersistentCollection {#2090 …}
    +children: [
      3 => App\Entity\EntryComment {#1550
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +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 {#1579
          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 {#1566 …}
        +nested: Doctrine\ORM\PersistentCollection {#1562 …}
        +votes: Doctrine\ORM\PersistentCollection {#1554 …}
        +reports: Doctrine\ORM\PersistentCollection {#1556 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
        -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 {#1559
          date: 2024-02-29 14:11:54.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703895743 {#1548
          date: 2023-12-30 01:22:23.0 +01:00
        }
        +"title": 263564
      }
      2 => App\Entity\EntryComment {#1619
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1604
          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 {#1701 …}
        +nested: Doctrine\ORM\PersistentCollection {#1687 …}
        +votes: Doctrine\ORM\PersistentCollection {#1689 …}
        +reports: Doctrine\ORM\PersistentCollection {#1691 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
        -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 {#1596
          date: 2023-12-30 01:28:55.0 +01:00
        }
        +"title": 263581
      }
      1 => App\Entity\EntryComment {#1629
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1611
          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 {#1626 …}
        +nested: Doctrine\ORM\PersistentCollection {#1618 …}
        +votes: Doctrine\ORM\PersistentCollection {#1597 …}
        +reports: Doctrine\ORM\PersistentCollection {#1731 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
        -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 {#1598
          date: 2024-02-29 16:53:39.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703896847 {#1630
          date: 2023-12-30 01:40:47.0 +01:00
        }
        +"title": 263613
      }
      0 => App\Entity\EntryComment {#1737}
    ]
    -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 {#1407
      date: 2023-12-29 00:44:50.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
  +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 {#1728
    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 {#1732 …}
  +nested: Doctrine\ORM\PersistentCollection {#1735 …}
  +votes: Doctrine\ORM\PersistentCollection {#1729 …}
  +reports: Doctrine\ORM\PersistentCollection {#1719 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
  -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 {#1736
    date: 2024-02-29 16:14:23.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703897438 {#1730
    date: 2023-12-30 01:50:38.0 +01:00
  }
  +"title": 263629
}
"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 {#1737
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1561
    +user: Proxies\__CG__\App\Entity\User {#1908 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
    +image: Proxies\__CG__\App\Entity\Image {#2360 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2027 …}
    +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 {#2448
      date: 2024-04-03 14:21:31.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2020 …}
    +votes: Doctrine\ORM\PersistentCollection {#1739 …}
    +reports: Doctrine\ORM\PersistentCollection {#2460 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2062 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2083 …}
    +badges: Doctrine\ORM\PersistentCollection {#2090 …}
    +children: [
      3 => App\Entity\EntryComment {#1550
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1564 …}
        +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 {#1579
          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 {#1566 …}
        +nested: Doctrine\ORM\PersistentCollection {#1562 …}
        +votes: Doctrine\ORM\PersistentCollection {#1554 …}
        +reports: Doctrine\ORM\PersistentCollection {#1556 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1555 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1620 …}
        -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 {#1559
          date: 2024-02-29 14:11:54.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703895743 {#1548
          date: 2023-12-30 01:22:23.0 +01:00
        }
        +"title": 263564
      }
      2 => App\Entity\EntryComment {#1619
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1604
          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 {#1701 …}
        +nested: Doctrine\ORM\PersistentCollection {#1687 …}
        +votes: Doctrine\ORM\PersistentCollection {#1689 …}
        +reports: Doctrine\ORM\PersistentCollection {#1691 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1795 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1711 …}
        -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 {#1596
          date: 2023-12-30 01:28:55.0 +01:00
        }
        +"title": 263581
      }
      1 => App\Entity\EntryComment {#1629
        +user: App\Entity\User {#264 …}
        +entry: Proxies\__CG__\App\Entity\Entry {#1561 …2}
        +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
        +image: null
        +parent: Proxies\__CG__\App\Entity\EntryComment {#1628 …}
        +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
        +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 {#1611
          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 {#1626 …}
        +nested: Doctrine\ORM\PersistentCollection {#1618 …}
        +votes: Doctrine\ORM\PersistentCollection {#1597 …}
        +reports: Doctrine\ORM\PersistentCollection {#1731 …}
        +favourites: Doctrine\ORM\PersistentCollection {#1723 …}
        +notifications: Doctrine\ORM\PersistentCollection {#1721 …}
        -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 {#1598
          date: 2024-02-29 16:53:39.0 +01:00
        }
        +createdAt: DateTimeImmutable @1703896847 {#1630
          date: 2023-12-30 01:40:47.0 +01:00
        }
        +"title": 263613
      }
      0 => App\Entity\EntryComment {#1737}
    ]
    -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 {#1407
      date: 2023-12-29 00:44:50.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1525 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1734 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1702 …}
  +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 {#1728
    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 {#1732 …}
  +nested: Doctrine\ORM\PersistentCollection {#1735 …}
  +votes: Doctrine\ORM\PersistentCollection {#1729 …}
  +reports: Doctrine\ORM\PersistentCollection {#1719 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1714 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1720 …}
  -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 {#1736
    date: 2024-02-29 16:14:23.0 +01:00
  }
  +createdAt: DateTimeImmutable @1703897438 {#1730
    date: 2023-12-30 01:50:38.0 +01:00
  }
  +"title": 263629
}
"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
Proxies\__CG__\App\Entity\Entry {#1582
  +user: Proxies\__CG__\App\Entity\User {#2394 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1574 …}
  +image: Proxies\__CG__\App\Entity\Image {#2092 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#2094 …}
  +slug: "Aliens-decide-to-communicate-with-us"
  +title: "Aliens decide to communicate with us"
  +url: "https://lemmy.ca/pictrs/image/01dea77a-594c-488f-b553-82e24131dc98.jpeg"
  +body: "Aliens want to communicate and they decide to use you and your personality as the base model for all humans. Is this a good thing or a bad thing?"
  +type: "image"
  +lang: "en"
  +isOc: false
  +hasEmbed: true
  +commentCount: 112
  +favouriteCount: 336
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1711557092 {#2087
    date: 2024-03-27 17:31:32.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2040 …}
  +votes: Doctrine\ORM\PersistentCollection {#2350 …}
  +reports: Doctrine\ORM\PersistentCollection {#2348 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2351 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2332 …}
  +badges: Doctrine\ORM\PersistentCollection {#2349 …}
  +children: [
    App\Entity\EntryComment {#1709
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1582 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1574 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1654 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1650 …}
      +body: "nah they’d take one look inside that guy’s mind and go “well fuck this species”"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 0
      +score: 0
      +lastActive: DateTime @1703894041 {#1435
        date: 2023-12-30 00:54:01.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@ininewcrow@lemmy.ca"
        "@BluJay320@lemmy.blahaj.zone"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1671 …}
      +nested: Doctrine\ORM\PersistentCollection {#1667 …}
      +votes: Doctrine\ORM\PersistentCollection {#1670 …}
      +reports: Doctrine\ORM\PersistentCollection {#1678 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1551 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1586 …}
      -id: 263488
      -bodyTs: "'d':3 'fuck':15 'go':13 'guy':9 'insid':7 'look':6 'mind':11 'nah':1 'one':5 'speci':17 'take':4 'well':14"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://pawb.social/comment/4972782"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703894041 {#1438
        date: 2023-12-30 00:54:01.0 +01:00
      }
      +"title": 263488
    }
  ]
  -id: 25566
  -titleTs: "'alien':1 'communic':4 'decid':2 'us':6"
  -bodyTs: "'alien':1 'bad':28 'base':16 'communic':4 'decid':7 'good':24 'human':20 'model':17 'person':13 'thing':25,29 'use':9 'want':2"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1703915018
  +visibility: "visible             "
  +apId: "https://lemmy.ca/post/12225624"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703828618 {#1926
    date: 2023-12-29 06:43:38.0 +01:00
  }
  +__isInitialized__: true
   …2
}
"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
23 DENIED edit
Proxies\__CG__\App\Entity\Entry {#1582
  +user: Proxies\__CG__\App\Entity\User {#2394 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1574 …}
  +image: Proxies\__CG__\App\Entity\Image {#2092 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#2094 …}
  +slug: "Aliens-decide-to-communicate-with-us"
  +title: "Aliens decide to communicate with us"
  +url: "https://lemmy.ca/pictrs/image/01dea77a-594c-488f-b553-82e24131dc98.jpeg"
  +body: "Aliens want to communicate and they decide to use you and your personality as the base model for all humans. Is this a good thing or a bad thing?"
  +type: "image"
  +lang: "en"
  +isOc: false
  +hasEmbed: true
  +commentCount: 112
  +favouriteCount: 336
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1711557092 {#2087
    date: 2024-03-27 17:31:32.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2040 …}
  +votes: Doctrine\ORM\PersistentCollection {#2350 …}
  +reports: Doctrine\ORM\PersistentCollection {#2348 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2351 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2332 …}
  +badges: Doctrine\ORM\PersistentCollection {#2349 …}
  +children: [
    App\Entity\EntryComment {#1709
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1582 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1574 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1654 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1650 …}
      +body: "nah they’d take one look inside that guy’s mind and go “well fuck this species”"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 0
      +score: 0
      +lastActive: DateTime @1703894041 {#1435
        date: 2023-12-30 00:54:01.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@ininewcrow@lemmy.ca"
        "@BluJay320@lemmy.blahaj.zone"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1671 …}
      +nested: Doctrine\ORM\PersistentCollection {#1667 …}
      +votes: Doctrine\ORM\PersistentCollection {#1670 …}
      +reports: Doctrine\ORM\PersistentCollection {#1678 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1551 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1586 …}
      -id: 263488
      -bodyTs: "'d':3 'fuck':15 'go':13 'guy':9 'insid':7 'look':6 'mind':11 'nah':1 'one':5 'speci':17 'take':4 'well':14"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://pawb.social/comment/4972782"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703894041 {#1438
        date: 2023-12-30 00:54:01.0 +01:00
      }
      +"title": 263488
    }
  ]
  -id: 25566
  -titleTs: "'alien':1 'communic':4 'decid':2 'us':6"
  -bodyTs: "'alien':1 'bad':28 'base':16 'communic':4 'decid':7 'good':24 'human':20 'model':17 'person':13 'thing':25,29 'use':9 'want':2"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1703915018
  +visibility: "visible             "
  +apId: "https://lemmy.ca/post/12225624"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703828618 {#1926
    date: 2023-12-29 06:43:38.0 +01:00
  }
  +__isInitialized__: true
   …2
}
"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
24 DENIED moderate
Proxies\__CG__\App\Entity\Entry {#1582
  +user: Proxies\__CG__\App\Entity\User {#2394 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1574 …}
  +image: Proxies\__CG__\App\Entity\Image {#2092 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#2094 …}
  +slug: "Aliens-decide-to-communicate-with-us"
  +title: "Aliens decide to communicate with us"
  +url: "https://lemmy.ca/pictrs/image/01dea77a-594c-488f-b553-82e24131dc98.jpeg"
  +body: "Aliens want to communicate and they decide to use you and your personality as the base model for all humans. Is this a good thing or a bad thing?"
  +type: "image"
  +lang: "en"
  +isOc: false
  +hasEmbed: true
  +commentCount: 112
  +favouriteCount: 336
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1711557092 {#2087
    date: 2024-03-27 17:31:32.0 +01:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2040 …}
  +votes: Doctrine\ORM\PersistentCollection {#2350 …}
  +reports: Doctrine\ORM\PersistentCollection {#2348 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2351 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2332 …}
  +badges: Doctrine\ORM\PersistentCollection {#2349 …}
  +children: [
    App\Entity\EntryComment {#1709
      +user: App\Entity\User {#264 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1582 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1574 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1654 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1650 …}
      +body: "nah they’d take one look inside that guy’s mind and go “well fuck this species”"
      +lang: "en"
      +isAdult: false
      +favouriteCount: 0
      +score: 0
      +lastActive: DateTime @1703894041 {#1435
        date: 2023-12-30 00:54:01.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@ininewcrow@lemmy.ca"
        "@BluJay320@lemmy.blahaj.zone"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1671 …}
      +nested: Doctrine\ORM\PersistentCollection {#1667 …}
      +votes: Doctrine\ORM\PersistentCollection {#1670 …}
      +reports: Doctrine\ORM\PersistentCollection {#1678 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1551 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1586 …}
      -id: 263488
      -bodyTs: "'d':3 'fuck':15 'go':13 'guy':9 'insid':7 'look':6 'mind':11 'nah':1 'one':5 'speci':17 'take':4 'well':14"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://pawb.social/comment/4972782"
      +editedAt: null
      +createdAt: DateTimeImmutable @1703894041 {#1438
        date: 2023-12-30 00:54:01.0 +01:00
      }
      +"title": 263488
    }
  ]
  -id: 25566
  -titleTs: "'alien':1 'communic':4 'decid':2 'us':6"
  -bodyTs: "'alien':1 'bad':28 'base':16 'communic':4 'decid':7 'good':24 'human':20 'model':17 'person':13 'thing':25,29 'use':9 'want':2"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1703915018
  +visibility: "visible             "
  +apId: "https://lemmy.ca/post/12225624"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703828618 {#1926
    date: 2023-12-29 06:43:38.0 +01:00
  }
  +__isInitialized__: true
   …2
}
"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
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 {#1709
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1582
    +user: Proxies\__CG__\App\Entity\User {#2394 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1574 …}
    +image: Proxies\__CG__\App\Entity\Image {#2092 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2094 …}
    +slug: "Aliens-decide-to-communicate-with-us"
    +title: "Aliens decide to communicate with us"
    +url: "https://lemmy.ca/pictrs/image/01dea77a-594c-488f-b553-82e24131dc98.jpeg"
    +body: "Aliens want to communicate and they decide to use you and your personality as the base model for all humans. Is this a good thing or a bad thing?"
    +type: "image"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 112
    +favouriteCount: 336
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1711557092 {#2087
      date: 2024-03-27 17:31:32.0 +01:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2040 …}
    +votes: Doctrine\ORM\PersistentCollection {#2350 …}
    +reports: Doctrine\ORM\PersistentCollection {#2348 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2351 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2332 …}
    +badges: Doctrine\ORM\PersistentCollection {#2349 …}
    +children: [
      App\Entity\EntryComment {#1709}
    ]
    -id: 25566
    -titleTs: "'alien':1 'communic':4 'decid':2 'us':6"
    -bodyTs: "'alien':1 'bad':28 'base':16 'communic':4 'decid':7 'good':24 'human':20 'model':17 'person':13 'thing':25,29 'use':9 'want':2"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703915018
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/12225624"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703828618 {#1926
      date: 2023-12-29 06:43:38.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1574 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1654 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1650 …}
  +body: "nah they’d take one look inside that guy’s mind and go “well fuck this species”"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1703894041 {#1435
    date: 2023-12-30 00:54:01.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@ininewcrow@lemmy.ca"
    "@BluJay320@lemmy.blahaj.zone"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1671 …}
  +nested: Doctrine\ORM\PersistentCollection {#1667 …}
  +votes: Doctrine\ORM\PersistentCollection {#1670 …}
  +reports: Doctrine\ORM\PersistentCollection {#1678 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1551 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1586 …}
  -id: 263488
  -bodyTs: "'d':3 'fuck':15 'go':13 'guy':9 'insid':7 'look':6 'mind':11 'nah':1 'one':5 'speci':17 'take':4 'well':14"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4972782"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703894041 {#1438
    date: 2023-12-30 00:54:01.0 +01:00
  }
  +"title": 263488
}
"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 {#1709
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1582
    +user: Proxies\__CG__\App\Entity\User {#2394 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1574 …}
    +image: Proxies\__CG__\App\Entity\Image {#2092 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2094 …}
    +slug: "Aliens-decide-to-communicate-with-us"
    +title: "Aliens decide to communicate with us"
    +url: "https://lemmy.ca/pictrs/image/01dea77a-594c-488f-b553-82e24131dc98.jpeg"
    +body: "Aliens want to communicate and they decide to use you and your personality as the base model for all humans. Is this a good thing or a bad thing?"
    +type: "image"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 112
    +favouriteCount: 336
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1711557092 {#2087
      date: 2024-03-27 17:31:32.0 +01:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2040 …}
    +votes: Doctrine\ORM\PersistentCollection {#2350 …}
    +reports: Doctrine\ORM\PersistentCollection {#2348 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2351 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2332 …}
    +badges: Doctrine\ORM\PersistentCollection {#2349 …}
    +children: [
      App\Entity\EntryComment {#1709}
    ]
    -id: 25566
    -titleTs: "'alien':1 'communic':4 'decid':2 'us':6"
    -bodyTs: "'alien':1 'bad':28 'base':16 'communic':4 'decid':7 'good':24 'human':20 'model':17 'person':13 'thing':25,29 'use':9 'want':2"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703915018
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/12225624"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703828618 {#1926
      date: 2023-12-29 06:43:38.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1574 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1654 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1650 …}
  +body: "nah they’d take one look inside that guy’s mind and go “well fuck this species”"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1703894041 {#1435
    date: 2023-12-30 00:54:01.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@ininewcrow@lemmy.ca"
    "@BluJay320@lemmy.blahaj.zone"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1671 …}
  +nested: Doctrine\ORM\PersistentCollection {#1667 …}
  +votes: Doctrine\ORM\PersistentCollection {#1670 …}
  +reports: Doctrine\ORM\PersistentCollection {#1678 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1551 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1586 …}
  -id: 263488
  -bodyTs: "'d':3 'fuck':15 'go':13 'guy':9 'insid':7 'look':6 'mind':11 'nah':1 'one':5 'speci':17 'take':4 'well':14"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4972782"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703894041 {#1438
    date: 2023-12-30 00:54:01.0 +01:00
  }
  +"title": 263488
}
"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 {#1709
  +user: App\Entity\User {#264 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1582
    +user: Proxies\__CG__\App\Entity\User {#2394 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1574 …}
    +image: Proxies\__CG__\App\Entity\Image {#2092 …}
    +domain: Proxies\__CG__\App\Entity\Domain {#2094 …}
    +slug: "Aliens-decide-to-communicate-with-us"
    +title: "Aliens decide to communicate with us"
    +url: "https://lemmy.ca/pictrs/image/01dea77a-594c-488f-b553-82e24131dc98.jpeg"
    +body: "Aliens want to communicate and they decide to use you and your personality as the base model for all humans. Is this a good thing or a bad thing?"
    +type: "image"
    +lang: "en"
    +isOc: false
    +hasEmbed: true
    +commentCount: 112
    +favouriteCount: 336
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1711557092 {#2087
      date: 2024-03-27 17:31:32.0 +01:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2040 …}
    +votes: Doctrine\ORM\PersistentCollection {#2350 …}
    +reports: Doctrine\ORM\PersistentCollection {#2348 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2351 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2332 …}
    +badges: Doctrine\ORM\PersistentCollection {#2349 …}
    +children: [
      App\Entity\EntryComment {#1709}
    ]
    -id: 25566
    -titleTs: "'alien':1 'communic':4 'decid':2 'us':6"
    -bodyTs: "'alien':1 'bad':28 'base':16 'communic':4 'decid':7 'good':24 'human':20 'model':17 'person':13 'thing':25,29 'use':9 'want':2"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703915018
    +visibility: "visible             "
    +apId: "https://lemmy.ca/post/12225624"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703828618 {#1926
      date: 2023-12-29 06:43:38.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1574 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1654 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1650 …}
  +body: "nah they’d take one look inside that guy’s mind and go “well fuck this species”"
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1703894041 {#1435
    date: 2023-12-30 00:54:01.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@ininewcrow@lemmy.ca"
    "@BluJay320@lemmy.blahaj.zone"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1671 …}
  +nested: Doctrine\ORM\PersistentCollection {#1667 …}
  +votes: Doctrine\ORM\PersistentCollection {#1670 …}
  +reports: Doctrine\ORM\PersistentCollection {#1678 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1551 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1586 …}
  -id: 263488
  -bodyTs: "'d':3 'fuck':15 'go':13 'guy':9 'insid':7 'look':6 'mind':11 'nah':1 'one':5 'speci':17 'take':4 'well':14"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://pawb.social/comment/4972782"
  +editedAt: null
  +createdAt: DateTimeImmutable @1703894041 {#1438
    date: 2023-12-30 00:54:01.0 +01:00
  }
  +"title": 263488
}
"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_ADMIN
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 ROLE_MODERATOR
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