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 …}
}
16.21 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.07 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 {#1378
  +user: Proxies\__CG__\App\Entity\User {#1371 …}
  +entry: App\Entity\Entry {#1856 …}
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +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 {#320
      date: 2024-10-21 17:14:31.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -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 {#321
      date: 2024-09-21 09:14:31.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700391429 {#315
      date: 2023-11-19 11:57:09.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2353 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2451 …}
  +body: """
    I have such a love-hate relationship with that video. On the whole, I think that video is bad and should be taken down. The creator is arguing against a very specific type of commenting but is harassing comments in all forms. It even addresses as such with a 20 second blurb 2/3 of the way into video distinguishing between “documentation comments” - but doesn’t really provide any examples of what a good documentation comment is. Just a blurred mention of “something something Java Doc something something better code leads to better documentation” but doesn’t elaborate why.  \n
    It’s a very devious problem in that I don’t feel like any particular claim in the video is wrong, but taken within the context of the average viewer, (I teach intro. comp. sci courses and students LOVE to send this video and similar articles to me for why they shouldn’t have to comment their spaghettified monstrosities), and the inconsistent use of comments vs. code duplication vs. documentation, the video seems problematic if not half-baked.  \n
    In fairness, it is great advice for someone who has been working in the industry for 15 years and still applies for junior positions within the same company - but I can’t imagine that was the target audience for this video. In my experience, anyone who has been programming on a large-ish project for more than 6 months can reach the same conclusions as this video.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 18
  +score: 0
  +lastActive: DateTime @1701034392 {#1769
    date: 2023-11-26 22:33:12.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@CowsLookLikeMaps@sh.itjust.works"
    "@onlinepersona@programming.dev"
    "@philm@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2476 …}
  +nested: Doctrine\ORM\PersistentCollection {#2355 …}
  +votes: Doctrine\ORM\PersistentCollection {#2428 …}
  +reports: Doctrine\ORM\PersistentCollection {#2436 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2473 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1359 …}
  -id: 168007
  -bodyTs: "'15':195 '2/3':54 '20':51 '6':237 'address':46 'advic':184 'anyon':223 'appli':199 'argu':29 'articl':145 'audienc':216 'averag':128 'bad':20 'bake':178 'better':89,93 'blur':80 'blurb':53 'claim':115 'code':90,166 'comment':36,40,63,76,155,164 'comp':133 'compani':206 'conclus':243 'context':125 'cours':135 'creator':27 'devious':104 'distinguish':60 'doc':86 'document':62,75,94,169 'doesn':65,96 'duplic':167 'elabor':98 'even':45 'exampl':70 'experi':222 'fair':180 'feel':111 'form':43 'good':74 'great':183 'half':177 'half-bak':176 'harass':39 'hate':7 'imagin':211 'inconsist':161 'industri':193 'intro':132 'ish':232 'java':85 'junior':201 'larg':231 'large-ish':230 'lead':91 'like':112 'love':6,138 'love-h':5 'mention':81 'monstros':158 'month':238 'particular':114 'posit':202 'problem':105 'problemat':173 'program':227 'project':233 'provid':68 'reach':240 'realli':67 'relationship':8 'sci':134 'second':52 'seem':172 'send':140 'shouldn':151 'similar':144 'someon':186 'someth':83,84,87,88 'spaghettifi':157 'specif':33 'still':198 'student':137 'taken':24,122 'target':215 'teach':131 'think':16 'type':34 'use':162 'video':11,18,59,118,142,171,219,246 'viewer':129 'vs':165,168 'way':57 'whole':14 'within':123,203 'work':190 'wrong':120 'year':196"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/5198317"
  +editedAt: DateTimeImmutable @1701722674 {#1969
    date: 2023-12-04 21:44:34.0 +01:00
  }
  +createdAt: DateTimeImmutable @1701034392 {#1399
    date: 2023-11-26 22:33:12.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
App\Entity\EntryComment {#1378
  +user: Proxies\__CG__\App\Entity\User {#1371 …}
  +entry: App\Entity\Entry {#1856 …}
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +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 {#320
      date: 2024-10-21 17:14:31.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -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 {#321
      date: 2024-09-21 09:14:31.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700391429 {#315
      date: 2023-11-19 11:57:09.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2353 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2451 …}
  +body: """
    I have such a love-hate relationship with that video. On the whole, I think that video is bad and should be taken down. The creator is arguing against a very specific type of commenting but is harassing comments in all forms. It even addresses as such with a 20 second blurb 2/3 of the way into video distinguishing between “documentation comments” - but doesn’t really provide any examples of what a good documentation comment is. Just a blurred mention of “something something Java Doc something something better code leads to better documentation” but doesn’t elaborate why.  \n
    It’s a very devious problem in that I don’t feel like any particular claim in the video is wrong, but taken within the context of the average viewer, (I teach intro. comp. sci courses and students LOVE to send this video and similar articles to me for why they shouldn’t have to comment their spaghettified monstrosities), and the inconsistent use of comments vs. code duplication vs. documentation, the video seems problematic if not half-baked.  \n
    In fairness, it is great advice for someone who has been working in the industry for 15 years and still applies for junior positions within the same company - but I can’t imagine that was the target audience for this video. In my experience, anyone who has been programming on a large-ish project for more than 6 months can reach the same conclusions as this video.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 18
  +score: 0
  +lastActive: DateTime @1701034392 {#1769
    date: 2023-11-26 22:33:12.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@CowsLookLikeMaps@sh.itjust.works"
    "@onlinepersona@programming.dev"
    "@philm@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2476 …}
  +nested: Doctrine\ORM\PersistentCollection {#2355 …}
  +votes: Doctrine\ORM\PersistentCollection {#2428 …}
  +reports: Doctrine\ORM\PersistentCollection {#2436 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2473 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1359 …}
  -id: 168007
  -bodyTs: "'15':195 '2/3':54 '20':51 '6':237 'address':46 'advic':184 'anyon':223 'appli':199 'argu':29 'articl':145 'audienc':216 'averag':128 'bad':20 'bake':178 'better':89,93 'blur':80 'blurb':53 'claim':115 'code':90,166 'comment':36,40,63,76,155,164 'comp':133 'compani':206 'conclus':243 'context':125 'cours':135 'creator':27 'devious':104 'distinguish':60 'doc':86 'document':62,75,94,169 'doesn':65,96 'duplic':167 'elabor':98 'even':45 'exampl':70 'experi':222 'fair':180 'feel':111 'form':43 'good':74 'great':183 'half':177 'half-bak':176 'harass':39 'hate':7 'imagin':211 'inconsist':161 'industri':193 'intro':132 'ish':232 'java':85 'junior':201 'larg':231 'large-ish':230 'lead':91 'like':112 'love':6,138 'love-h':5 'mention':81 'monstros':158 'month':238 'particular':114 'posit':202 'problem':105 'problemat':173 'program':227 'project':233 'provid':68 'reach':240 'realli':67 'relationship':8 'sci':134 'second':52 'seem':172 'send':140 'shouldn':151 'similar':144 'someon':186 'someth':83,84,87,88 'spaghettifi':157 'specif':33 'still':198 'student':137 'taken':24,122 'target':215 'teach':131 'think':16 'type':34 'use':162 'video':11,18,59,118,142,171,219,246 'viewer':129 'vs':165,168 'way':57 'whole':14 'within':123,203 'work':190 'wrong':120 'year':196"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/5198317"
  +editedAt: DateTimeImmutable @1701722674 {#1969
    date: 2023-12-04 21:44:34.0 +01:00
  }
  +createdAt: DateTimeImmutable @1701034392 {#1399
    date: 2023-11-26 22:33:12.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
App\Entity\EntryComment {#1378
  +user: Proxies\__CG__\App\Entity\User {#1371 …}
  +entry: App\Entity\Entry {#1856 …}
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +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 {#320
      date: 2024-10-21 17:14:31.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -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 {#321
      date: 2024-09-21 09:14:31.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1700391429 {#315
      date: 2023-11-19 11:57:09.0 +01:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2353 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2451 …}
  +body: """
    I have such a love-hate relationship with that video. On the whole, I think that video is bad and should be taken down. The creator is arguing against a very specific type of commenting but is harassing comments in all forms. It even addresses as such with a 20 second blurb 2/3 of the way into video distinguishing between “documentation comments” - but doesn’t really provide any examples of what a good documentation comment is. Just a blurred mention of “something something Java Doc something something better code leads to better documentation” but doesn’t elaborate why.  \n
    It’s a very devious problem in that I don’t feel like any particular claim in the video is wrong, but taken within the context of the average viewer, (I teach intro. comp. sci courses and students LOVE to send this video and similar articles to me for why they shouldn’t have to comment their spaghettified monstrosities), and the inconsistent use of comments vs. code duplication vs. documentation, the video seems problematic if not half-baked.  \n
    In fairness, it is great advice for someone who has been working in the industry for 15 years and still applies for junior positions within the same company - but I can’t imagine that was the target audience for this video. In my experience, anyone who has been programming on a large-ish project for more than 6 months can reach the same conclusions as this video.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 18
  +score: 0
  +lastActive: DateTime @1701034392 {#1769
    date: 2023-11-26 22:33:12.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@CowsLookLikeMaps@sh.itjust.works"
    "@onlinepersona@programming.dev"
    "@philm@programming.dev"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2476 …}
  +nested: Doctrine\ORM\PersistentCollection {#2355 …}
  +votes: Doctrine\ORM\PersistentCollection {#2428 …}
  +reports: Doctrine\ORM\PersistentCollection {#2436 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2473 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1359 …}
  -id: 168007
  -bodyTs: "'15':195 '2/3':54 '20':51 '6':237 'address':46 'advic':184 'anyon':223 'appli':199 'argu':29 'articl':145 'audienc':216 'averag':128 'bad':20 'bake':178 'better':89,93 'blur':80 'blurb':53 'claim':115 'code':90,166 'comment':36,40,63,76,155,164 'comp':133 'compani':206 'conclus':243 'context':125 'cours':135 'creator':27 'devious':104 'distinguish':60 'doc':86 'document':62,75,94,169 'doesn':65,96 'duplic':167 'elabor':98 'even':45 'exampl':70 'experi':222 'fair':180 'feel':111 'form':43 'good':74 'great':183 'half':177 'half-bak':176 'harass':39 'hate':7 'imagin':211 'inconsist':161 'industri':193 'intro':132 'ish':232 'java':85 'junior':201 'larg':231 'large-ish':230 'lead':91 'like':112 'love':6,138 'love-h':5 'mention':81 'monstros':158 'month':238 'particular':114 'posit':202 'problem':105 'problemat':173 'program':227 'project':233 'provid':68 'reach':240 'realli':67 'relationship':8 'sci':134 'second':52 'seem':172 'send':140 'shouldn':151 'similar':144 'someon':186 'someth':83,84,87,88 'spaghettifi':157 'specif':33 'still':198 'student':137 'taken':24,122 'target':215 'teach':131 'think':16 'type':34 'use':162 'video':11,18,59,118,142,171,219,246 'viewer':129 'vs':165,168 'way':57 'whole':14 'within':123,203 'work':190 'wrong':120 'year':196"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://programming.dev/comment/5198317"
  +editedAt: DateTimeImmutable @1701722674 {#1969
    date: 2023-12-04 21:44:34.0 +01:00
  }
  +createdAt: DateTimeImmutable @1701034392 {#1399
    date: 2023-11-26 22:33:12.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED edit
App\Entity\Magazine {#312
  +icon: Proxies\__CG__\App\Entity\Image {#293 …}
  +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 {#320
    date: 2024-10-21 17:14:31.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#284 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
  +entries: Doctrine\ORM\PersistentCollection {#227 …}
  +posts: Doctrine\ORM\PersistentCollection {#185 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
  +bans: Doctrine\ORM\PersistentCollection {#164 …}
  +reports: Doctrine\ORM\PersistentCollection {#150 …}
  +badges: Doctrine\ORM\PersistentCollection {#128 …}
  +logs: Doctrine\ORM\PersistentCollection {#118 …}
  +awards: Doctrine\ORM\PersistentCollection {#107 …}
  +categories: Doctrine\ORM\PersistentCollection {#94 …}
  -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 {#321
    date: 2024-09-21 09:14:31.0 +02:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1700391429 {#315
    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