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 …}
}
24.59 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.06 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

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

Access Decision

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

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\EntryComment {#1370
  +user: Proxies\__CG__\App\Entity\User {#1375 …}
  +entry: App\Entity\Entry {#1832 …}
  +magazine: App\Entity\Magazine {#311
    +icon: Proxies\__CG__\App\Entity\Image {#292 …}
    +name: "programmer_humor@programming.dev"
    +title: "programmer_humor"
    +description: """
      Welcome to Programmer Humor!\n
      \n
      This is a place where you can post jokes, memes, humor, etc. related to programming!\n
      \n
      For sharing awful code theres also [Programming Horror](https://programming.dev/c/programming_horror).\n
      \n
      Rules\n
      -----\n
      \n
      - Keep content in english\n
      - No advertisements\n
      - Posts must be related to programming or programmer topics
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 297
    +entryCommentCount: 2799
    +postCount: 1
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729523671 {#319
      date: 2024-10-21 17:14:31.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#283 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#279 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#268 …}
    +entries: Doctrine\ORM\PersistentCollection {#226 …}
    +posts: Doctrine\ORM\PersistentCollection {#184 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#246 …}
    +bans: Doctrine\ORM\PersistentCollection {#163 …}
    +reports: Doctrine\ORM\PersistentCollection {#149 …}
    +badges: Doctrine\ORM\PersistentCollection {#127 …}
    +logs: Doctrine\ORM\PersistentCollection {#117 …}
    +awards: Doctrine\ORM\PersistentCollection {#106 …}
    +categories: Doctrine\ORM\PersistentCollection {#93 …}
    -id: 100
    +apId: "programmer_humor@programming.dev"
    +apProfileId: "https://programming.dev/c/programmer_humor"
    +apPublicUrl: "https://programming.dev/c/programmer_humor"
    +apFollowersUrl: "https://programming.dev/c/programmer_humor/followers"
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "programmer_humor"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726902871 {#320
      date: 2024-09-21 09:14:31.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700391429 {#314
      date: 2023-11-19 11:57:09.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2475 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2353 …}
  +body: """
    At the simplest, it takes in a vector of floating-point numbers, multiplies them with other similar vectors (the “weights”), sums each one, applies a RELU* the the result, and then uses those values as a vector for another layer with it’s own weights (or gives output). The magic is in the weights.\n
    \n
    This operation is a simple matrix-by-vector product followed by pairwise RELU, if you know what that means.\n
    \n
    In Haskell, something like:\n
    \n
    `layer layerInput layerWeights = map relu $ map sum $ map (zipWith (*) layerInput) layerWeights`\n
    \n
    `foldl layer modelInput modelWeights`\n
    \n
    Where `modelWeights` is [[[Float]]], and so layer has type [Float] -> [[Float]] -> [Float].\n
    \n
    * RELU: `if i>0 then i else 0`. It could also be another nonlinear function, but RELU is obviously fast and works about as well as anything else. There’s interesting theoretical work on certain really weird functions, though.\n
    \n
    ---\n
    \n
    Less simple, it might have a set pattern of zero weights which can be ignored, allowing fast implementation with a bunch of smaller vectors, or have pairwise multiplication steps, like in the Transformer. Aaand that’s about it, all the rest is stuff that was figured out by trail and error like encoding, and the math behind how to train the weights. Now you know.\n
    \n
    Assuming you use hex values for 32-bit weights, you could write a line with 4 no problem:\n
    \n
    `wgt35 = [0x1234FCAB, 0x1234FCAB, 0x1234FCAB, 0x1234FCAB];`\n
    \n
    And, you can sometimes get away with half-precision floats.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1705948507 {#1602
    date: 2024-01-22 19:35:07.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2356 …}
  +nested: Doctrine\ORM\PersistentCollection {#2466 …}
  +votes: Doctrine\ORM\PersistentCollection {#2444 …}
  +reports: Doctrine\ORM\PersistentCollection {#2357 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2474 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2488 …}
  -id: 332169
  -bodyTs: "'0':110,114 '0x1234fcab':230,231,232,233 '32':217 '4':226 'aaand':179 'allow':161 'also':117 'anoth':40,119 'anyth':133 'appli':25 'assum':211 'away':239 'behind':202 'bit':218 'bunch':166 'certain':141 'could':116,221 'els':113,134 'encod':198 'error':196 'fast':126,162 'figur':191 'float':11,98,104,105,106,244 'floating-point':10 'foldl':91 'follow':66 'function':121,144 'get':238 'give':48 'half':242 'half-precis':241 'haskel':77 'hex':214 'ignor':160 'implement':163 'interest':137 'know':72,210 'layer':41,80,92,101 'layerinput':81,89 'layerweight':82,90 'less':146 'like':79,175,197 'line':224 'magic':51 'map':83,85,87 'math':201 'matrix':62 'matrix-by-vector':61 'mean':75 'might':149 'modelinput':93 'modelweight':94,96 'multipl':173 'multipli':14 'nonlinear':120 'number':13 'obvious':125 'one':24 'oper':57 'output':49 'pairwis':68,172 'pattern':153 'point':12 'precis':243 'problem':228 'product':65 'realli':142 'relu':27,69,84,107,123 'rest':186 'result':30 'set':152 'similar':18 'simpl':60,147 'simplest':3 'smaller':168 'someth':78 'sometim':237 'step':174 'stuff':188 'sum':22,86 'take':5 'theoret':138 'though':145 'trail':194 'train':205 'transform':178 'type':103 'use':33,213 'valu':35,215 'vector':8,19,38,64,169 'weight':21,46,55,156,207,219 'weird':143 'well':131 'wgt35':229 'work':128,139 'write':222 'zero':155 'zipwith':88"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://futurology.today/comment/1229219"
  +editedAt: DateTimeImmutable @1727714744 {#1941
    date: 2024-09-30 18:45:44.0 +02:00
  }
  +createdAt: DateTimeImmutable @1705948507 {#1396
    date: 2024-01-22 19:35:07.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
App\Entity\EntryComment {#1370
  +user: Proxies\__CG__\App\Entity\User {#1375 …}
  +entry: App\Entity\Entry {#1832 …}
  +magazine: App\Entity\Magazine {#311
    +icon: Proxies\__CG__\App\Entity\Image {#292 …}
    +name: "programmer_humor@programming.dev"
    +title: "programmer_humor"
    +description: """
      Welcome to Programmer Humor!\n
      \n
      This is a place where you can post jokes, memes, humor, etc. related to programming!\n
      \n
      For sharing awful code theres also [Programming Horror](https://programming.dev/c/programming_horror).\n
      \n
      Rules\n
      -----\n
      \n
      - Keep content in english\n
      - No advertisements\n
      - Posts must be related to programming or programmer topics
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 297
    +entryCommentCount: 2799
    +postCount: 1
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729523671 {#319
      date: 2024-10-21 17:14:31.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#283 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#279 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#268 …}
    +entries: Doctrine\ORM\PersistentCollection {#226 …}
    +posts: Doctrine\ORM\PersistentCollection {#184 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#246 …}
    +bans: Doctrine\ORM\PersistentCollection {#163 …}
    +reports: Doctrine\ORM\PersistentCollection {#149 …}
    +badges: Doctrine\ORM\PersistentCollection {#127 …}
    +logs: Doctrine\ORM\PersistentCollection {#117 …}
    +awards: Doctrine\ORM\PersistentCollection {#106 …}
    +categories: Doctrine\ORM\PersistentCollection {#93 …}
    -id: 100
    +apId: "programmer_humor@programming.dev"
    +apProfileId: "https://programming.dev/c/programmer_humor"
    +apPublicUrl: "https://programming.dev/c/programmer_humor"
    +apFollowersUrl: "https://programming.dev/c/programmer_humor/followers"
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "programmer_humor"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726902871 {#320
      date: 2024-09-21 09:14:31.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700391429 {#314
      date: 2023-11-19 11:57:09.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2475 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2353 …}
  +body: """
    At the simplest, it takes in a vector of floating-point numbers, multiplies them with other similar vectors (the “weights”), sums each one, applies a RELU* the the result, and then uses those values as a vector for another layer with it’s own weights (or gives output). The magic is in the weights.\n
    \n
    This operation is a simple matrix-by-vector product followed by pairwise RELU, if you know what that means.\n
    \n
    In Haskell, something like:\n
    \n
    `layer layerInput layerWeights = map relu $ map sum $ map (zipWith (*) layerInput) layerWeights`\n
    \n
    `foldl layer modelInput modelWeights`\n
    \n
    Where `modelWeights` is [[[Float]]], and so layer has type [Float] -> [[Float]] -> [Float].\n
    \n
    * RELU: `if i>0 then i else 0`. It could also be another nonlinear function, but RELU is obviously fast and works about as well as anything else. There’s interesting theoretical work on certain really weird functions, though.\n
    \n
    ---\n
    \n
    Less simple, it might have a set pattern of zero weights which can be ignored, allowing fast implementation with a bunch of smaller vectors, or have pairwise multiplication steps, like in the Transformer. Aaand that’s about it, all the rest is stuff that was figured out by trail and error like encoding, and the math behind how to train the weights. Now you know.\n
    \n
    Assuming you use hex values for 32-bit weights, you could write a line with 4 no problem:\n
    \n
    `wgt35 = [0x1234FCAB, 0x1234FCAB, 0x1234FCAB, 0x1234FCAB];`\n
    \n
    And, you can sometimes get away with half-precision floats.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1705948507 {#1602
    date: 2024-01-22 19:35:07.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2356 …}
  +nested: Doctrine\ORM\PersistentCollection {#2466 …}
  +votes: Doctrine\ORM\PersistentCollection {#2444 …}
  +reports: Doctrine\ORM\PersistentCollection {#2357 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2474 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2488 …}
  -id: 332169
  -bodyTs: "'0':110,114 '0x1234fcab':230,231,232,233 '32':217 '4':226 'aaand':179 'allow':161 'also':117 'anoth':40,119 'anyth':133 'appli':25 'assum':211 'away':239 'behind':202 'bit':218 'bunch':166 'certain':141 'could':116,221 'els':113,134 'encod':198 'error':196 'fast':126,162 'figur':191 'float':11,98,104,105,106,244 'floating-point':10 'foldl':91 'follow':66 'function':121,144 'get':238 'give':48 'half':242 'half-precis':241 'haskel':77 'hex':214 'ignor':160 'implement':163 'interest':137 'know':72,210 'layer':41,80,92,101 'layerinput':81,89 'layerweight':82,90 'less':146 'like':79,175,197 'line':224 'magic':51 'map':83,85,87 'math':201 'matrix':62 'matrix-by-vector':61 'mean':75 'might':149 'modelinput':93 'modelweight':94,96 'multipl':173 'multipli':14 'nonlinear':120 'number':13 'obvious':125 'one':24 'oper':57 'output':49 'pairwis':68,172 'pattern':153 'point':12 'precis':243 'problem':228 'product':65 'realli':142 'relu':27,69,84,107,123 'rest':186 'result':30 'set':152 'similar':18 'simpl':60,147 'simplest':3 'smaller':168 'someth':78 'sometim':237 'step':174 'stuff':188 'sum':22,86 'take':5 'theoret':138 'though':145 'trail':194 'train':205 'transform':178 'type':103 'use':33,213 'valu':35,215 'vector':8,19,38,64,169 'weight':21,46,55,156,207,219 'weird':143 'well':131 'wgt35':229 'work':128,139 'write':222 'zero':155 'zipwith':88"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://futurology.today/comment/1229219"
  +editedAt: DateTimeImmutable @1727714744 {#1941
    date: 2024-09-30 18:45:44.0 +02:00
  }
  +createdAt: DateTimeImmutable @1705948507 {#1396
    date: 2024-01-22 19:35:07.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
App\Entity\EntryComment {#1370
  +user: Proxies\__CG__\App\Entity\User {#1375 …}
  +entry: App\Entity\Entry {#1832 …}
  +magazine: App\Entity\Magazine {#311
    +icon: Proxies\__CG__\App\Entity\Image {#292 …}
    +name: "programmer_humor@programming.dev"
    +title: "programmer_humor"
    +description: """
      Welcome to Programmer Humor!\n
      \n
      This is a place where you can post jokes, memes, humor, etc. related to programming!\n
      \n
      For sharing awful code theres also [Programming Horror](https://programming.dev/c/programming_horror).\n
      \n
      Rules\n
      -----\n
      \n
      - Keep content in english\n
      - No advertisements\n
      - Posts must be related to programming or programmer topics
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 297
    +entryCommentCount: 2799
    +postCount: 1
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729523671 {#319
      date: 2024-10-21 17:14:31.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#283 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#279 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#268 …}
    +entries: Doctrine\ORM\PersistentCollection {#226 …}
    +posts: Doctrine\ORM\PersistentCollection {#184 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#246 …}
    +bans: Doctrine\ORM\PersistentCollection {#163 …}
    +reports: Doctrine\ORM\PersistentCollection {#149 …}
    +badges: Doctrine\ORM\PersistentCollection {#127 …}
    +logs: Doctrine\ORM\PersistentCollection {#117 …}
    +awards: Doctrine\ORM\PersistentCollection {#106 …}
    +categories: Doctrine\ORM\PersistentCollection {#93 …}
    -id: 100
    +apId: "programmer_humor@programming.dev"
    +apProfileId: "https://programming.dev/c/programmer_humor"
    +apPublicUrl: "https://programming.dev/c/programmer_humor"
    +apFollowersUrl: "https://programming.dev/c/programmer_humor/followers"
    +apInboxUrl: "https://programming.dev/inbox"
    +apDomain: "programming.dev"
    +apPreferredUsername: "programmer_humor"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1726902871 {#320
      date: 2024-09-21 09:14:31.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700391429 {#314
      date: 2023-11-19 11:57:09.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2475 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2353 …}
  +body: """
    At the simplest, it takes in a vector of floating-point numbers, multiplies them with other similar vectors (the “weights”), sums each one, applies a RELU* the the result, and then uses those values as a vector for another layer with it’s own weights (or gives output). The magic is in the weights.\n
    \n
    This operation is a simple matrix-by-vector product followed by pairwise RELU, if you know what that means.\n
    \n
    In Haskell, something like:\n
    \n
    `layer layerInput layerWeights = map relu $ map sum $ map (zipWith (*) layerInput) layerWeights`\n
    \n
    `foldl layer modelInput modelWeights`\n
    \n
    Where `modelWeights` is [[[Float]]], and so layer has type [Float] -> [[Float]] -> [Float].\n
    \n
    * RELU: `if i>0 then i else 0`. It could also be another nonlinear function, but RELU is obviously fast and works about as well as anything else. There’s interesting theoretical work on certain really weird functions, though.\n
    \n
    ---\n
    \n
    Less simple, it might have a set pattern of zero weights which can be ignored, allowing fast implementation with a bunch of smaller vectors, or have pairwise multiplication steps, like in the Transformer. Aaand that’s about it, all the rest is stuff that was figured out by trail and error like encoding, and the math behind how to train the weights. Now you know.\n
    \n
    Assuming you use hex values for 32-bit weights, you could write a line with 4 no problem:\n
    \n
    `wgt35 = [0x1234FCAB, 0x1234FCAB, 0x1234FCAB, 0x1234FCAB];`\n
    \n
    And, you can sometimes get away with half-precision floats.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 1
  +score: 0
  +lastActive: DateTime @1705948507 {#1602
    date: 2024-01-22 19:35:07.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
    "@JPDev@programming.dev"
    "@jubilationtcornpone@sh.itjust.works"
    "@QuazarOmega@lemy.lol"
    "@CanadaPlus@futurology.today"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2356 …}
  +nested: Doctrine\ORM\PersistentCollection {#2466 …}
  +votes: Doctrine\ORM\PersistentCollection {#2444 …}
  +reports: Doctrine\ORM\PersistentCollection {#2357 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2474 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2488 …}
  -id: 332169
  -bodyTs: "'0':110,114 '0x1234fcab':230,231,232,233 '32':217 '4':226 'aaand':179 'allow':161 'also':117 'anoth':40,119 'anyth':133 'appli':25 'assum':211 'away':239 'behind':202 'bit':218 'bunch':166 'certain':141 'could':116,221 'els':113,134 'encod':198 'error':196 'fast':126,162 'figur':191 'float':11,98,104,105,106,244 'floating-point':10 'foldl':91 'follow':66 'function':121,144 'get':238 'give':48 'half':242 'half-precis':241 'haskel':77 'hex':214 'ignor':160 'implement':163 'interest':137 'know':72,210 'layer':41,80,92,101 'layerinput':81,89 'layerweight':82,90 'less':146 'like':79,175,197 'line':224 'magic':51 'map':83,85,87 'math':201 'matrix':62 'matrix-by-vector':61 'mean':75 'might':149 'modelinput':93 'modelweight':94,96 'multipl':173 'multipli':14 'nonlinear':120 'number':13 'obvious':125 'one':24 'oper':57 'output':49 'pairwis':68,172 'pattern':153 'point':12 'precis':243 'problem':228 'product':65 'realli':142 'relu':27,69,84,107,123 'rest':186 'result':30 'set':152 'similar':18 'simpl':60,147 'simplest':3 'smaller':168 'someth':78 'sometim':237 'step':174 'stuff':188 'sum':22,86 'take':5 'theoret':138 'though':145 'trail':194 'train':205 'transform':178 'type':103 'use':33,213 'valu':35,215 'vector':8,19,38,64,169 'weight':21,46,55,156,207,219 'weird':143 'well':131 'wgt35':229 'work':128,139 'write':222 'zero':155 'zipwith':88"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://futurology.today/comment/1229219"
  +editedAt: DateTimeImmutable @1727714744 {#1941
    date: 2024-09-30 18:45:44.0 +02:00
  }
  +createdAt: DateTimeImmutable @1705948507 {#1396
    date: 2024-01-22 19:35:07.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED edit
App\Entity\Magazine {#311
  +icon: Proxies\__CG__\App\Entity\Image {#292 …}
  +name: "programmer_humor@programming.dev"
  +title: "programmer_humor"
  +description: """
    Welcome to Programmer Humor!\n
    \n
    This is a place where you can post jokes, memes, humor, etc. related to programming!\n
    \n
    For sharing awful code theres also [Programming Horror](https://programming.dev/c/programming_horror).\n
    \n
    Rules\n
    -----\n
    \n
    - Keep content in english\n
    - No advertisements\n
    - Posts must be related to programming or programmer topics
    """
  +rules: null
  +subscriptionsCount: 1
  +entryCount: 297
  +entryCommentCount: 2799
  +postCount: 1
  +postCommentCount: 0
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1729523671 {#319
    date: 2024-10-21 17:14:31.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#283 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#279 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#268 …}
  +entries: Doctrine\ORM\PersistentCollection {#226 …}
  +posts: Doctrine\ORM\PersistentCollection {#184 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#246 …}
  +bans: Doctrine\ORM\PersistentCollection {#163 …}
  +reports: Doctrine\ORM\PersistentCollection {#149 …}
  +badges: Doctrine\ORM\PersistentCollection {#127 …}
  +logs: Doctrine\ORM\PersistentCollection {#117 …}
  +awards: Doctrine\ORM\PersistentCollection {#106 …}
  +categories: Doctrine\ORM\PersistentCollection {#93 …}
  -id: 100
  +apId: "programmer_humor@programming.dev"
  +apProfileId: "https://programming.dev/c/programmer_humor"
  +apPublicUrl: "https://programming.dev/c/programmer_humor"
  +apFollowersUrl: "https://programming.dev/c/programmer_humor/followers"
  +apInboxUrl: "https://programming.dev/inbox"
  +apDomain: "programming.dev"
  +apPreferredUsername: "programmer_humor"
  +apDiscoverable: true
  +apManuallyApprovesFollowers: null
  +privateKey: null
  +publicKey: null
  +apFetchedAt: DateTime @1726902871 {#320
    date: 2024-09-21 09:14:31.0 +02:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1700391429 {#314
    date: 2023-11-19 11:57:09.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS DENIED
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details