GET https://kbin.spritesserver.nl/u/@leo@sh.itjust.works/comments

Components

20 Twig Components
39 Render Count
51 ms Render Time
12.0 MiB Memory Usage

Components

Name Metadata Render Count Render Time
settings_row_switch
"App\Twig\Components\SettingsRowSwitchComponent"
components/_settings_row_switch.html.twig
15 1.95ms
user_settings_row_switch
"App\Twig\Components\UserSettingsRowSwitchComponent"
components/_user_settings_row_switch.html.twig
4 0.66ms
date
"App\Twig\Components\DateComponent"
components/date.html.twig
2 0.43ms
settings_row_enum
"App\Twig\Components\SettingsRowEnumComponent"
components/_settings_row_enum.html.twig
2 0.46ms
entry_comment
"App\Twig\Components\EntryCommentComponent"
components/entry_comment.html.twig
1 24.66ms
user_inline
"App\Twig\Components\UserInlineComponent"
components/user_inline.html.twig
1 0.28ms
date_edited
"App\Twig\Components\DateEditedComponent"
components/date_edited.html.twig
1 0.18ms
magazine_inline
"App\Twig\Components\MagazineInlineComponent"
components/magazine_inline.html.twig
1 0.22ms
entry_inline
"App\Twig\Components\EntryInlineComponent"
components/entry_inline.html.twig
1 0.25ms
user_avatar
"App\Twig\Components\UserAvatarComponent"
components/user_avatar.html.twig
1 0.27ms
vote
"App\Twig\Components\VoteComponent"
components/vote.html.twig
1 0.59ms
boost
"App\Twig\Components\BoostComponent"
components/boost.html.twig
1 1.13ms
user_actions
"App\Twig\Components\UserActionsComponent"
components/user_actions.html.twig
1 0.56ms
related_magazines
"App\Twig\Components\RelatedMagazinesComponent"
components/_cached.html.twig
1 11.65ms
active_users
"App\Twig\Components\ActiveUsersComponent"
components/_cached.html.twig
1 0.35ms
related_categories
"App\Twig\Components\RelatedCategoriesComponent"
components/_cached.html.twig
1 2.89ms
related_posts
"App\Twig\Components\RelatedPostsComponent"
components/_cached.html.twig
1 1.44ms
related_entries
"App\Twig\Components\RelatedEntriesComponent"
components/_cached.html.twig
1 1.44ms
support_us_block
"App\Twig\Components\SupportUsBlock"
components/_cached.html.twig
1 0.21ms
featured_magazines
"App\Twig\Components\FeaturedMagazinesComponent"
components/_cached.html.twig
1 4.63ms

Render calls

entry_comment App\Twig\Components\EntryCommentComponent 12.0 MiB 24.66 ms
Input props
[
  "comment" => App\Entity\EntryComment {#2084
    +user: App\Entity\User {#264
      +avatar: null
      +cover: null
      +email: "leo@sh.itjust.works"
      +username: "@leo@sh.itjust.works"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1707576164 {#272
        date: 2024-02-10 15:42:44.0 +01:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#252 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#248 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#237 …}
      +entries: Doctrine\ORM\PersistentCollection {#195 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#167 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#140 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#110 …}
      +posts: Doctrine\ORM\PersistentCollection {#83 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#98 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1801 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1684 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1513 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1919 …}
      +follows: Doctrine\ORM\PersistentCollection {#1607 …}
      +followers: Doctrine\ORM\PersistentCollection {#1869 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1827 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1856 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1855 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#2415 …}
      +reports: Doctrine\ORM\PersistentCollection {#1803 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1837 …}
      +violations: Doctrine\ORM\PersistentCollection {#1791 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1887 …}
      +awards: Doctrine\ORM\PersistentCollection {#1949 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1879 …}
      +categories: Doctrine\ORM\PersistentCollection {#1864 …}
      -id: 45405
      -password: "$2y$13$Y4Qyi3lMhMImNCNwG468J.St4/K8YtrmxZtaZreQHi7kEQvu89db6"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1893 …}
      +apId: "leo@sh.itjust.works"
      +apProfileId: "https://sh.itjust.works/u/leo"
      +apPublicUrl: "https://sh.itjust.works/u/leo"
      +apFollowersUrl: null
      +apInboxUrl: "https://sh.itjust.works/inbox"
      +apDomain: "sh.itjust.works"
      +apPreferredUsername: "leo"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1727293540 {#273
        date: 2024-09-25 21:45:40.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1694335254 {#267
        date: 2023-09-10 10:40:54.0 +02:00
      }
    }
    +entry: Proxies\__CG__\App\Entity\Entry {#1908
      +user: Proxies\__CG__\App\Entity\User {#2049 …}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#2378
        +icon: Proxies\__CG__\App\Entity\Image {#1354 …}
        +name: "linux@lemmy.ml"
        +title: "linux"
        +description: """
          From Wikipedia, the free encyclopedia\n
          \n
          Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
          \n
          Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
          \n
          ### Rules\n
          \n
          - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
          - No misinformation\n
          - No NSFW content\n
          - No hate speech, bigotry, etc\n
          \n
          ### Related Communities\n
          \n
          - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
          - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
          - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
          - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
          \n
          Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 1406
        +entryCommentCount: 28632
        +postCount: 6
        +postCommentCount: 214
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729583542 {#1982
          date: 2024-10-22 09:52:22.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#1353 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#1351 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1356 …}
        +entries: Doctrine\ORM\PersistentCollection {#1355 …}
        +posts: Doctrine\ORM\PersistentCollection {#2492 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#2494 …}
        +bans: Doctrine\ORM\PersistentCollection {#2500 …}
        +reports: Doctrine\ORM\PersistentCollection {#2508 …}
        +badges: Doctrine\ORM\PersistentCollection {#2521 …}
        +logs: Doctrine\ORM\PersistentCollection {#2531 …}
        +awards: Doctrine\ORM\PersistentCollection {#2513 …}
        +categories: Doctrine\ORM\PersistentCollection {#2537 …}
        -id: 73
        +apId: "linux@lemmy.ml"
        +apProfileId: "https://lemmy.ml/c/linux"
        +apPublicUrl: "https://lemmy.ml/c/linux"
        +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
        +apInboxUrl: "https://lemmy.ml/inbox"
        +apDomain: "lemmy.ml"
        +apPreferredUsername: "linux"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1729583596 {#1979
          date: 2024-10-22 09:53:16.0 +02:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698929468 {#1980
          date: 2023-11-02 13:51:08.0 +01:00
        }
        +__isInitialized__: true
         …2
      }
      +image: null
      +domain: Proxies\__CG__\App\Entity\Domain {#2271 …}
      +slug: "My-First-Regular-Expressions"
      +title: "My First Regular Expressions"
      +url: null
      +body: """
        I’ve been reading *Mastering Regular Expressions* by Jeffrey E.F. Friedl, and since nobody in my life (aside from my wife) cares, I thought I’d share something I’m pretty proud of. My first set of regular expressions, that I wrote myself to manipulate the text I’m working with.\n
        \n
        What’s I’m so happy about is that I wrote these expressions. I understand exactly what they do and the purpose of each character in each expression.\n
        \n
        I’ve used regex in the past. Stuff cobbled together from stack overflow, but I never really understood how they worked or what the expressions meant, just that they did what I needed them to do at the time.\n
        \n
        I’m only about 10% of the way through the book, but already I understand so much more than I ever did about regex *(I also recognize I have a lot to learn)*.\n
        \n
        I wrote the expressions to be used with egrep and sed to generate and clean up a list of filenames pulled out of tarballs. *(movies I’ve ripped from my DVD collection and tarballed to archive them)*.\n
        \n
        The first expression I wrote was this one used with tar and egrep to list the files in the tarball and get just the name of the video file:\n
        \n
        `tar -tzvf file.tar.gz | egrep -o ‘/[^/]*.m(kv|p4)’ > movielist`\n
        \n
        Which gives me a list of movies of which this is an example:\n
        \n
        `/The.Hunger.Games.(2012).[tmdbid-70160].mp4`\n
        \n
        Then I used sed with the expression groups to remove:\n
        \n
        - the leading forward slash\n
        - Everything from `.[` to the end\n
        - All of the periods in between words\n
        \n
        And the last expression checks for one or more spaces and replaces them with a single space.\n
        \n
        This is the full sed command:\n
        \n
        `sed -Eie ‘s/^///; s/.[[a-z]±[0-9]+].m(p4|kv)//; s/[^a-zA-Z0-9()&-]/ /g; s/ +/ /g’ movielist`\n
        \n
        Which leaves me with a pretty list of movies that looks like this:\n
        \n
        `The Hunger Games (2012)`\n
        \n
        I’m sure this could be done more elegantly, and I’m happy for any feedback on how to do that! For now, I’m just excited that I’m beginning to understand regex and how to use it!\n
        \n
        Edit: fixed title so it didn’t say “regex expressions”
        """
      +type: "article"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 63
      +favouriteCount: 214
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1711562613 {#2218
        date: 2024-03-27 19:03:33.0 +01:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#2273 …}
      +votes: Doctrine\ORM\PersistentCollection {#2268 …}
      +reports: Doctrine\ORM\PersistentCollection {#2270 …}
      +favourites: Doctrine\ORM\PersistentCollection {#2248 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2254 …}
      +badges: Doctrine\ORM\PersistentCollection {#2039 …}
      +children: []
      -id: 24511
      -titleTs: "'express':4 'first':2 'regular':3"
      -bodyTs: "'-70160':243 '-9':302 '/g':312,314 '/the.hunger.games':240 '0':301 '10':123 '2012':241,332 '9':311 'a-z':298 'a-za-z0':307 'alreadi':131 'also':144 'archiv':187 'asid':18 'begin':363 'book':129 'care':22 'charact':76 'check':275 'clean':166 'cobbl':88 'collect':183 'command':293 'could':337 'd':26 'didn':377 'done':339 'dvd':182 'e.f':10 'edit':372 'egrep':160,201,221 'eie':295 'eleg':341 'end':263 'ever':139 'everyth':259 'exact':67 'exampl':239 'excit':359 'express':7,39,64,79,104,155,191,251,274,381 'feedback':348 'file':205,217 'file.tar.gz':220 'filenam':171 'first':35,190 'fix':373 'forward':257 'friedl':11 'full':291 'game':331 'generat':164 'get':210 'give':228 'group':252 'happi':57,345 'hunger':330 'jeffrey':9 'kv':224,305 'last':273 'lead':256 'learn':151 'leav':317 'life':17 'like':327 'list':169,203,231,322 'look':326 'lot':149 'm':30,49,55,120,223,303,334,344,357,362 'manipul':45 'master':5 'meant':105 'movi':176,233,324 'movielist':226,315 'mp4':244 'much':135 'name':213 'need':112 'never':95 'nobodi':14 'o':222 'one':196,277 'overflow':92 'p4':225,304 'past':86 'period':267 'pretti':31,321 'proud':32 'pull':172 'purpos':73 'read':4 'realli':96 'recogn':145 'regex':83,142,366,380 'regular':6,38 'remov':254 'replac':282 'rip':179 'say':379 'sed':162,248,292,294 'set':36 'share':27 'sinc':13 'singl':286 'slash':258 'someth':28 'space':280,287 'stack':91 'stuff':87 'sure':335 'tar':199,218 'tarbal':175,185,208 'text':47 'thought':24 'time':118 'titl':374 'tmdbid':242 'togeth':89 'tzvf':219 'understand':66,133,365 'understood':97 'use':82,158,197,247,370 've':2,81,178 'video':216 'way':126 'wife':21 'word':270 'work':50,100 'wrote':42,62,153,193 'z':300 'z0':310 'za':309"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1703542531
      +visibility: "visible             "
      +apId: "https://lemmy.world/post/9942188"
      +editedAt: DateTimeImmutable @1707607314 {#2277
        date: 2024-02-11 00:21:54.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703456131 {#2220
        date: 2023-12-24 23:15:31.0 +01:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: Proxies\__CG__\App\Entity\Magazine {#2378 …2}
    +image: null
    +parent: null
    +root: null
    +body: """
      Knowledge and understanding. Feels good, man.\n
      \n
      Obligatory [Xkcd](https://xkcd.com/208/).\n
      \n
      ![](https://sh.itjust.works/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 112
    +score: 0
    +lastActive: DateTime @1707964958 {#2081
      date: 2024-02-15 03:42:38.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@harsh3466@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#2381 …}
    +nested: Doctrine\ORM\PersistentCollection {#1910 …}
    +votes: Doctrine\ORM\PersistentCollection {#1909 …}
    +reports: Doctrine\ORM\PersistentCollection {#1410 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2386 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1361 …}
    -id: 249692
    -bodyTs: "'/208/).':11 '/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)':14 'feel':4 'good':5 'knowledg':1 'man':6 'obligatori':7 'sh.itjust.works':13 'sh.itjust.works/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)':12 'understand':3 'xkcd':8 'xkcd.com':10 'xkcd.com/208/).':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://sh.itjust.works/comment/6822487"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703457775 {#1407
      date: 2023-12-24 23:42:55.0 +01:00
    }
  }
  "showNested" => false
  "dateAsUrl" => true
  "showMagazineName" => true
  "showEntryTitle" => true
]
Attributes
[]
Component
App\Twig\Components\EntryCommentComponent {#2327
  +comment: App\Entity\EntryComment {#2084
    +user: App\Entity\User {#264
      +avatar: null
      +cover: null
      +email: "leo@sh.itjust.works"
      +username: "@leo@sh.itjust.works"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1707576164 {#272
        date: 2024-02-10 15:42:44.0 +01:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#252 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#248 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#237 …}
      +entries: Doctrine\ORM\PersistentCollection {#195 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#167 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#140 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#110 …}
      +posts: Doctrine\ORM\PersistentCollection {#83 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#98 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1801 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1684 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1513 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1919 …}
      +follows: Doctrine\ORM\PersistentCollection {#1607 …}
      +followers: Doctrine\ORM\PersistentCollection {#1869 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1827 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1856 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1855 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#2415 …}
      +reports: Doctrine\ORM\PersistentCollection {#1803 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1837 …}
      +violations: Doctrine\ORM\PersistentCollection {#1791 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1887 …}
      +awards: Doctrine\ORM\PersistentCollection {#1949 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1879 …}
      +categories: Doctrine\ORM\PersistentCollection {#1864 …}
      -id: 45405
      -password: "$2y$13$Y4Qyi3lMhMImNCNwG468J.St4/K8YtrmxZtaZreQHi7kEQvu89db6"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1893 …}
      +apId: "leo@sh.itjust.works"
      +apProfileId: "https://sh.itjust.works/u/leo"
      +apPublicUrl: "https://sh.itjust.works/u/leo"
      +apFollowersUrl: null
      +apInboxUrl: "https://sh.itjust.works/inbox"
      +apDomain: "sh.itjust.works"
      +apPreferredUsername: "leo"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1727293540 {#273
        date: 2024-09-25 21:45:40.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1694335254 {#267
        date: 2023-09-10 10:40:54.0 +02:00
      }
    }
    +entry: Proxies\__CG__\App\Entity\Entry {#1908
      +user: Proxies\__CG__\App\Entity\User {#2049 …}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#2378
        +icon: Proxies\__CG__\App\Entity\Image {#1354 …}
        +name: "linux@lemmy.ml"
        +title: "linux"
        +description: """
          From Wikipedia, the free encyclopedia\n
          \n
          Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
          \n
          Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
          \n
          ### Rules\n
          \n
          - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
          - No misinformation\n
          - No NSFW content\n
          - No hate speech, bigotry, etc\n
          \n
          ### Related Communities\n
          \n
          - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
          - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
          - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
          - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
          \n
          Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 1406
        +entryCommentCount: 28632
        +postCount: 6
        +postCommentCount: 214
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729583542 {#1982
          date: 2024-10-22 09:52:22.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#1353 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#1351 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1356 …}
        +entries: Doctrine\ORM\PersistentCollection {#1355 …}
        +posts: Doctrine\ORM\PersistentCollection {#2492 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#2494 …}
        +bans: Doctrine\ORM\PersistentCollection {#2500 …}
        +reports: Doctrine\ORM\PersistentCollection {#2508 …}
        +badges: Doctrine\ORM\PersistentCollection {#2521 …}
        +logs: Doctrine\ORM\PersistentCollection {#2531 …}
        +awards: Doctrine\ORM\PersistentCollection {#2513 …}
        +categories: Doctrine\ORM\PersistentCollection {#2537 …}
        -id: 73
        +apId: "linux@lemmy.ml"
        +apProfileId: "https://lemmy.ml/c/linux"
        +apPublicUrl: "https://lemmy.ml/c/linux"
        +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
        +apInboxUrl: "https://lemmy.ml/inbox"
        +apDomain: "lemmy.ml"
        +apPreferredUsername: "linux"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1729583596 {#1979
          date: 2024-10-22 09:53:16.0 +02:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698929468 {#1980
          date: 2023-11-02 13:51:08.0 +01:00
        }
        +__isInitialized__: true
         …2
      }
      +image: null
      +domain: Proxies\__CG__\App\Entity\Domain {#2271 …}
      +slug: "My-First-Regular-Expressions"
      +title: "My First Regular Expressions"
      +url: null
      +body: """
        I’ve been reading *Mastering Regular Expressions* by Jeffrey E.F. Friedl, and since nobody in my life (aside from my wife) cares, I thought I’d share something I’m pretty proud of. My first set of regular expressions, that I wrote myself to manipulate the text I’m working with.\n
        \n
        What’s I’m so happy about is that I wrote these expressions. I understand exactly what they do and the purpose of each character in each expression.\n
        \n
        I’ve used regex in the past. Stuff cobbled together from stack overflow, but I never really understood how they worked or what the expressions meant, just that they did what I needed them to do at the time.\n
        \n
        I’m only about 10% of the way through the book, but already I understand so much more than I ever did about regex *(I also recognize I have a lot to learn)*.\n
        \n
        I wrote the expressions to be used with egrep and sed to generate and clean up a list of filenames pulled out of tarballs. *(movies I’ve ripped from my DVD collection and tarballed to archive them)*.\n
        \n
        The first expression I wrote was this one used with tar and egrep to list the files in the tarball and get just the name of the video file:\n
        \n
        `tar -tzvf file.tar.gz | egrep -o ‘/[^/]*.m(kv|p4)’ > movielist`\n
        \n
        Which gives me a list of movies of which this is an example:\n
        \n
        `/The.Hunger.Games.(2012).[tmdbid-70160].mp4`\n
        \n
        Then I used sed with the expression groups to remove:\n
        \n
        - the leading forward slash\n
        - Everything from `.[` to the end\n
        - All of the periods in between words\n
        \n
        And the last expression checks for one or more spaces and replaces them with a single space.\n
        \n
        This is the full sed command:\n
        \n
        `sed -Eie ‘s/^///; s/.[[a-z]±[0-9]+].m(p4|kv)//; s/[^a-zA-Z0-9()&-]/ /g; s/ +/ /g’ movielist`\n
        \n
        Which leaves me with a pretty list of movies that looks like this:\n
        \n
        `The Hunger Games (2012)`\n
        \n
        I’m sure this could be done more elegantly, and I’m happy for any feedback on how to do that! For now, I’m just excited that I’m beginning to understand regex and how to use it!\n
        \n
        Edit: fixed title so it didn’t say “regex expressions”
        """
      +type: "article"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 63
      +favouriteCount: 214
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1711562613 {#2218
        date: 2024-03-27 19:03:33.0 +01:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#2273 …}
      +votes: Doctrine\ORM\PersistentCollection {#2268 …}
      +reports: Doctrine\ORM\PersistentCollection {#2270 …}
      +favourites: Doctrine\ORM\PersistentCollection {#2248 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2254 …}
      +badges: Doctrine\ORM\PersistentCollection {#2039 …}
      +children: []
      -id: 24511
      -titleTs: "'express':4 'first':2 'regular':3"
      -bodyTs: "'-70160':243 '-9':302 '/g':312,314 '/the.hunger.games':240 '0':301 '10':123 '2012':241,332 '9':311 'a-z':298 'a-za-z0':307 'alreadi':131 'also':144 'archiv':187 'asid':18 'begin':363 'book':129 'care':22 'charact':76 'check':275 'clean':166 'cobbl':88 'collect':183 'command':293 'could':337 'd':26 'didn':377 'done':339 'dvd':182 'e.f':10 'edit':372 'egrep':160,201,221 'eie':295 'eleg':341 'end':263 'ever':139 'everyth':259 'exact':67 'exampl':239 'excit':359 'express':7,39,64,79,104,155,191,251,274,381 'feedback':348 'file':205,217 'file.tar.gz':220 'filenam':171 'first':35,190 'fix':373 'forward':257 'friedl':11 'full':291 'game':331 'generat':164 'get':210 'give':228 'group':252 'happi':57,345 'hunger':330 'jeffrey':9 'kv':224,305 'last':273 'lead':256 'learn':151 'leav':317 'life':17 'like':327 'list':169,203,231,322 'look':326 'lot':149 'm':30,49,55,120,223,303,334,344,357,362 'manipul':45 'master':5 'meant':105 'movi':176,233,324 'movielist':226,315 'mp4':244 'much':135 'name':213 'need':112 'never':95 'nobodi':14 'o':222 'one':196,277 'overflow':92 'p4':225,304 'past':86 'period':267 'pretti':31,321 'proud':32 'pull':172 'purpos':73 'read':4 'realli':96 'recogn':145 'regex':83,142,366,380 'regular':6,38 'remov':254 'replac':282 'rip':179 'say':379 'sed':162,248,292,294 'set':36 'share':27 'sinc':13 'singl':286 'slash':258 'someth':28 'space':280,287 'stack':91 'stuff':87 'sure':335 'tar':199,218 'tarbal':175,185,208 'text':47 'thought':24 'time':118 'titl':374 'tmdbid':242 'togeth':89 'tzvf':219 'understand':66,133,365 'understood':97 'use':82,158,197,247,370 've':2,81,178 'video':216 'way':126 'wife':21 'word':270 'work':50,100 'wrote':42,62,153,193 'z':300 'z0':310 'za':309"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1703542531
      +visibility: "visible             "
      +apId: "https://lemmy.world/post/9942188"
      +editedAt: DateTimeImmutable @1707607314 {#2277
        date: 2024-02-11 00:21:54.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703456131 {#2220
        date: 2023-12-24 23:15:31.0 +01:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: Proxies\__CG__\App\Entity\Magazine {#2378 …2}
    +image: null
    +parent: null
    +root: null
    +body: """
      Knowledge and understanding. Feels good, man.\n
      \n
      Obligatory [Xkcd](https://xkcd.com/208/).\n
      \n
      ![](https://sh.itjust.works/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 112
    +score: 0
    +lastActive: DateTime @1707964958 {#2081
      date: 2024-02-15 03:42:38.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@harsh3466@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#2381 …}
    +nested: Doctrine\ORM\PersistentCollection {#1910 …}
    +votes: Doctrine\ORM\PersistentCollection {#1909 …}
    +reports: Doctrine\ORM\PersistentCollection {#1410 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2386 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1361 …}
    -id: 249692
    -bodyTs: "'/208/).':11 '/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)':14 'feel':4 'good':5 'knowledg':1 'man':6 'obligatori':7 'sh.itjust.works':13 'sh.itjust.works/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)':12 'understand':3 'xkcd':8 'xkcd.com':10 'xkcd.com/208/).':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://sh.itjust.works/comment/6822487"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703457775 {#1407
      date: 2023-12-24 23:42:55.0 +01:00
    }
  }
  +showMagazineName: true
  +showEntryTitle: true
  +showNested: false
  +level: 1
  +canSeeTrash: false
  +dateAsUrl: true
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -authorizationChecker: Symfony\Component\Security\Core\Authorization\AuthorizationChecker {#931 …}
}
user_inline App\Twig\Components\UserInlineComponent 12.0 MiB 0.28 ms
Input props
[
  "user" => App\Entity\User {#264
    +avatar: null
    +cover: null
    +email: "leo@sh.itjust.works"
    +username: "@leo@sh.itjust.works"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1707576164 {#272
      date: 2024-02-10 15:42:44.0 +01:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#252 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#248 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#237 …}
    +entries: Doctrine\ORM\PersistentCollection {#195 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#167 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#140 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#110 …}
    +posts: Doctrine\ORM\PersistentCollection {#83 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#98 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1801 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1684 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1513 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1919 …}
    +follows: Doctrine\ORM\PersistentCollection {#1607 …}
    +followers: Doctrine\ORM\PersistentCollection {#1869 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1827 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1856 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1855 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#2415 …}
    +reports: Doctrine\ORM\PersistentCollection {#1803 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1837 …}
    +violations: Doctrine\ORM\PersistentCollection {#1791 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1887 …}
    +awards: Doctrine\ORM\PersistentCollection {#1949 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1879 …}
    +categories: Doctrine\ORM\PersistentCollection {#1864 …}
    -id: 45405
    -password: "$2y$13$Y4Qyi3lMhMImNCNwG468J.St4/K8YtrmxZtaZreQHi7kEQvu89db6"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1893 …}
    +apId: "leo@sh.itjust.works"
    +apProfileId: "https://sh.itjust.works/u/leo"
    +apPublicUrl: "https://sh.itjust.works/u/leo"
    +apFollowersUrl: null
    +apInboxUrl: "https://sh.itjust.works/inbox"
    +apDomain: "sh.itjust.works"
    +apPreferredUsername: "leo"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1727293540 {#273
      date: 2024-09-25 21:45:40.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1694335254 {#267
      date: 2023-09-10 10:40:54.0 +02:00
    }
  }
  "showAvatar" => false
]
Attributes
[]
Component
App\Twig\Components\UserInlineComponent {#2149
  +user: App\Entity\User {#264
    +avatar: null
    +cover: null
    +email: "leo@sh.itjust.works"
    +username: "@leo@sh.itjust.works"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1707576164 {#272
      date: 2024-02-10 15:42:44.0 +01:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#252 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#248 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#237 …}
    +entries: Doctrine\ORM\PersistentCollection {#195 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#167 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#140 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#110 …}
    +posts: Doctrine\ORM\PersistentCollection {#83 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#98 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1801 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1684 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1513 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1919 …}
    +follows: Doctrine\ORM\PersistentCollection {#1607 …}
    +followers: Doctrine\ORM\PersistentCollection {#1869 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1827 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1856 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1855 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#2415 …}
    +reports: Doctrine\ORM\PersistentCollection {#1803 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1837 …}
    +violations: Doctrine\ORM\PersistentCollection {#1791 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1887 …}
    +awards: Doctrine\ORM\PersistentCollection {#1949 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1879 …}
    +categories: Doctrine\ORM\PersistentCollection {#1864 …}
    -id: 45405
    -password: "$2y$13$Y4Qyi3lMhMImNCNwG468J.St4/K8YtrmxZtaZreQHi7kEQvu89db6"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1893 …}
    +apId: "leo@sh.itjust.works"
    +apProfileId: "https://sh.itjust.works/u/leo"
    +apPublicUrl: "https://sh.itjust.works/u/leo"
    +apFollowersUrl: null
    +apInboxUrl: "https://sh.itjust.works/inbox"
    +apDomain: "sh.itjust.works"
    +apPreferredUsername: "leo"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1727293540 {#273
      date: 2024-09-25 21:45:40.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1694335254 {#267
      date: 2023-09-10 10:40:54.0 +02:00
    }
  }
  +showAvatar: false
}
date App\Twig\Components\DateComponent 12.0 MiB 0.27 ms
Input props
[
  "date" => DateTimeImmutable @1703457775 {#1407
    date: 2023-12-24 23:42:55.0 +01:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#2561
  +date: DateTimeImmutable @1703457775 {#1407
    date: 2023-12-24 23:42:55.0 +01:00
  }
}
date_edited App\Twig\Components\DateEditedComponent 12.0 MiB 0.18 ms
Input props
[
  "createdAt" => DateTimeImmutable @1703457775 {#1407
    date: 2023-12-24 23:42:55.0 +01:00
  }
  "editedAt" => null
]
Attributes
[]
Component
App\Twig\Components\DateEditedComponent {#2625
  +createdAt: DateTimeImmutable @1703457775 {#1407
    date: 2023-12-24 23:42:55.0 +01:00
  }
  +editedAt: null
}
magazine_inline App\Twig\Components\MagazineInlineComponent 12.0 MiB 0.22 ms
Input props
[
  "magazine" => Proxies\__CG__\App\Entity\Magazine {#2378
    +icon: Proxies\__CG__\App\Entity\Image {#1354 …}
    +name: "linux@lemmy.ml"
    +title: "linux"
    +description: """
      From Wikipedia, the free encyclopedia\n
      \n
      Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
      \n
      Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
      \n
      ### Rules\n
      \n
      - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
      - No misinformation\n
      - No NSFW content\n
      - No hate speech, bigotry, etc\n
      \n
      ### Related Communities\n
      \n
      - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
      - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
      - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
      - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
      \n
      Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 1406
    +entryCommentCount: 28632
    +postCount: 6
    +postCommentCount: 214
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729583542 {#1982
      date: 2024-10-22 09:52:22.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#1353 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#1351 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1356 …}
    +entries: Doctrine\ORM\PersistentCollection {#1355 …}
    +posts: Doctrine\ORM\PersistentCollection {#2492 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#2494 …}
    +bans: Doctrine\ORM\PersistentCollection {#2500 …}
    +reports: Doctrine\ORM\PersistentCollection {#2508 …}
    +badges: Doctrine\ORM\PersistentCollection {#2521 …}
    +logs: Doctrine\ORM\PersistentCollection {#2531 …}
    +awards: Doctrine\ORM\PersistentCollection {#2513 …}
    +categories: Doctrine\ORM\PersistentCollection {#2537 …}
    -id: 73
    +apId: "linux@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/linux"
    +apPublicUrl: "https://lemmy.ml/c/linux"
    +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "linux"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729583596 {#1979
      date: 2024-10-22 09:53:16.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698929468 {#1980
      date: 2023-11-02 13:51:08.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
]
Attributes
[]
Component
App\Twig\Components\MagazineInlineComponent {#2690
  +magazine: Proxies\__CG__\App\Entity\Magazine {#2378
    +icon: Proxies\__CG__\App\Entity\Image {#1354 …}
    +name: "linux@lemmy.ml"
    +title: "linux"
    +description: """
      From Wikipedia, the free encyclopedia\n
      \n
      Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
      \n
      Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
      \n
      ### Rules\n
      \n
      - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
      - No misinformation\n
      - No NSFW content\n
      - No hate speech, bigotry, etc\n
      \n
      ### Related Communities\n
      \n
      - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
      - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
      - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
      - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
      \n
      Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 1406
    +entryCommentCount: 28632
    +postCount: 6
    +postCommentCount: 214
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729583542 {#1982
      date: 2024-10-22 09:52:22.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#1353 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#1351 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#1356 …}
    +entries: Doctrine\ORM\PersistentCollection {#1355 …}
    +posts: Doctrine\ORM\PersistentCollection {#2492 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#2494 …}
    +bans: Doctrine\ORM\PersistentCollection {#2500 …}
    +reports: Doctrine\ORM\PersistentCollection {#2508 …}
    +badges: Doctrine\ORM\PersistentCollection {#2521 …}
    +logs: Doctrine\ORM\PersistentCollection {#2531 …}
    +awards: Doctrine\ORM\PersistentCollection {#2513 …}
    +categories: Doctrine\ORM\PersistentCollection {#2537 …}
    -id: 73
    +apId: "linux@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/linux"
    +apPublicUrl: "https://lemmy.ml/c/linux"
    +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "linux"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1729583596 {#1979
      date: 2024-10-22 09:53:16.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1698929468 {#1980
      date: 2023-11-02 13:51:08.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +showTitle: true
  +fullName: false
  +stretchedLink: false
  +showAvatar: false
}
entry_inline App\Twig\Components\EntryInlineComponent 12.0 MiB 0.25 ms
Input props
[
  "entry" => Proxies\__CG__\App\Entity\Entry {#1908
    +user: Proxies\__CG__\App\Entity\User {#2049 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#2378
      +icon: Proxies\__CG__\App\Entity\Image {#1354 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#1982
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#1353 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#1351 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1356 …}
      +entries: Doctrine\ORM\PersistentCollection {#1355 …}
      +posts: Doctrine\ORM\PersistentCollection {#2492 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#2494 …}
      +bans: Doctrine\ORM\PersistentCollection {#2500 …}
      +reports: Doctrine\ORM\PersistentCollection {#2508 …}
      +badges: Doctrine\ORM\PersistentCollection {#2521 …}
      +logs: Doctrine\ORM\PersistentCollection {#2531 …}
      +awards: Doctrine\ORM\PersistentCollection {#2513 …}
      +categories: Doctrine\ORM\PersistentCollection {#2537 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#1979
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#1980
        date: 2023-11-02 13:51:08.0 +01:00
      }
      +__isInitialized__: true
       …2
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#2271 …}
    +slug: "My-First-Regular-Expressions"
    +title: "My First Regular Expressions"
    +url: null
    +body: """
      I’ve been reading *Mastering Regular Expressions* by Jeffrey E.F. Friedl, and since nobody in my life (aside from my wife) cares, I thought I’d share something I’m pretty proud of. My first set of regular expressions, that I wrote myself to manipulate the text I’m working with.\n
      \n
      What’s I’m so happy about is that I wrote these expressions. I understand exactly what they do and the purpose of each character in each expression.\n
      \n
      I’ve used regex in the past. Stuff cobbled together from stack overflow, but I never really understood how they worked or what the expressions meant, just that they did what I needed them to do at the time.\n
      \n
      I’m only about 10% of the way through the book, but already I understand so much more than I ever did about regex *(I also recognize I have a lot to learn)*.\n
      \n
      I wrote the expressions to be used with egrep and sed to generate and clean up a list of filenames pulled out of tarballs. *(movies I’ve ripped from my DVD collection and tarballed to archive them)*.\n
      \n
      The first expression I wrote was this one used with tar and egrep to list the files in the tarball and get just the name of the video file:\n
      \n
      `tar -tzvf file.tar.gz | egrep -o ‘/[^/]*.m(kv|p4)’ > movielist`\n
      \n
      Which gives me a list of movies of which this is an example:\n
      \n
      `/The.Hunger.Games.(2012).[tmdbid-70160].mp4`\n
      \n
      Then I used sed with the expression groups to remove:\n
      \n
      - the leading forward slash\n
      - Everything from `.[` to the end\n
      - All of the periods in between words\n
      \n
      And the last expression checks for one or more spaces and replaces them with a single space.\n
      \n
      This is the full sed command:\n
      \n
      `sed -Eie ‘s/^///; s/.[[a-z]±[0-9]+].m(p4|kv)//; s/[^a-zA-Z0-9()&-]/ /g; s/ +/ /g’ movielist`\n
      \n
      Which leaves me with a pretty list of movies that looks like this:\n
      \n
      `The Hunger Games (2012)`\n
      \n
      I’m sure this could be done more elegantly, and I’m happy for any feedback on how to do that! For now, I’m just excited that I’m beginning to understand regex and how to use it!\n
      \n
      Edit: fixed title so it didn’t say “regex expressions”
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 63
    +favouriteCount: 214
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1711562613 {#2218
      date: 2024-03-27 19:03:33.0 +01:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2273 …}
    +votes: Doctrine\ORM\PersistentCollection {#2268 …}
    +reports: Doctrine\ORM\PersistentCollection {#2270 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2248 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2254 …}
    +badges: Doctrine\ORM\PersistentCollection {#2039 …}
    +children: []
    -id: 24511
    -titleTs: "'express':4 'first':2 'regular':3"
    -bodyTs: "'-70160':243 '-9':302 '/g':312,314 '/the.hunger.games':240 '0':301 '10':123 '2012':241,332 '9':311 'a-z':298 'a-za-z0':307 'alreadi':131 'also':144 'archiv':187 'asid':18 'begin':363 'book':129 'care':22 'charact':76 'check':275 'clean':166 'cobbl':88 'collect':183 'command':293 'could':337 'd':26 'didn':377 'done':339 'dvd':182 'e.f':10 'edit':372 'egrep':160,201,221 'eie':295 'eleg':341 'end':263 'ever':139 'everyth':259 'exact':67 'exampl':239 'excit':359 'express':7,39,64,79,104,155,191,251,274,381 'feedback':348 'file':205,217 'file.tar.gz':220 'filenam':171 'first':35,190 'fix':373 'forward':257 'friedl':11 'full':291 'game':331 'generat':164 'get':210 'give':228 'group':252 'happi':57,345 'hunger':330 'jeffrey':9 'kv':224,305 'last':273 'lead':256 'learn':151 'leav':317 'life':17 'like':327 'list':169,203,231,322 'look':326 'lot':149 'm':30,49,55,120,223,303,334,344,357,362 'manipul':45 'master':5 'meant':105 'movi':176,233,324 'movielist':226,315 'mp4':244 'much':135 'name':213 'need':112 'never':95 'nobodi':14 'o':222 'one':196,277 'overflow':92 'p4':225,304 'past':86 'period':267 'pretti':31,321 'proud':32 'pull':172 'purpos':73 'read':4 'realli':96 'recogn':145 'regex':83,142,366,380 'regular':6,38 'remov':254 'replac':282 'rip':179 'say':379 'sed':162,248,292,294 'set':36 'share':27 'sinc':13 'singl':286 'slash':258 'someth':28 'space':280,287 'stack':91 'stuff':87 'sure':335 'tar':199,218 'tarbal':175,185,208 'text':47 'thought':24 'time':118 'titl':374 'tmdbid':242 'togeth':89 'tzvf':219 'understand':66,133,365 'understood':97 'use':82,158,197,247,370 've':2,81,178 'video':216 'way':126 'wife':21 'word':270 'work':50,100 'wrote':42,62,153,193 'z':300 'z0':310 'za':309"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703542531
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/9942188"
    +editedAt: DateTimeImmutable @1707607314 {#2277
      date: 2024-02-11 00:21:54.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703456131 {#2220
      date: 2023-12-24 23:15:31.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
]
Attributes
[]
Component
App\Twig\Components\EntryInlineComponent {#2753
  +entry: Proxies\__CG__\App\Entity\Entry {#1908
    +user: Proxies\__CG__\App\Entity\User {#2049 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#2378
      +icon: Proxies\__CG__\App\Entity\Image {#1354 …}
      +name: "linux@lemmy.ml"
      +title: "linux"
      +description: """
        From Wikipedia, the free encyclopedia\n
        \n
        Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
        \n
        Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
        \n
        ### Rules\n
        \n
        - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
        - No misinformation\n
        - No NSFW content\n
        - No hate speech, bigotry, etc\n
        \n
        ### Related Communities\n
        \n
        - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
        - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
        - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
        - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
        \n
        Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
        """
      +rules: null
      +subscriptionsCount: 1
      +entryCount: 1406
      +entryCommentCount: 28632
      +postCount: 6
      +postCommentCount: 214
      +isAdult: false
      +customCss: null
      +lastActive: DateTime @1729583542 {#1982
        date: 2024-10-22 09:52:22.0 +02:00
      }
      +markedForDeletionAt: null
      +tags: null
      +moderators: Doctrine\ORM\PersistentCollection {#1353 …}
      +ownershipRequests: Doctrine\ORM\PersistentCollection {#1351 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#1356 …}
      +entries: Doctrine\ORM\PersistentCollection {#1355 …}
      +posts: Doctrine\ORM\PersistentCollection {#2492 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#2494 …}
      +bans: Doctrine\ORM\PersistentCollection {#2500 …}
      +reports: Doctrine\ORM\PersistentCollection {#2508 …}
      +badges: Doctrine\ORM\PersistentCollection {#2521 …}
      +logs: Doctrine\ORM\PersistentCollection {#2531 …}
      +awards: Doctrine\ORM\PersistentCollection {#2513 …}
      +categories: Doctrine\ORM\PersistentCollection {#2537 …}
      -id: 73
      +apId: "linux@lemmy.ml"
      +apProfileId: "https://lemmy.ml/c/linux"
      +apPublicUrl: "https://lemmy.ml/c/linux"
      +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
      +apInboxUrl: "https://lemmy.ml/inbox"
      +apDomain: "lemmy.ml"
      +apPreferredUsername: "linux"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: null
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1729583596 {#1979
        date: 2024-10-22 09:53:16.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1698929468 {#1980
        date: 2023-11-02 13:51:08.0 +01:00
      }
      +__isInitialized__: true
       …2
    }
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#2271 …}
    +slug: "My-First-Regular-Expressions"
    +title: "My First Regular Expressions"
    +url: null
    +body: """
      I’ve been reading *Mastering Regular Expressions* by Jeffrey E.F. Friedl, and since nobody in my life (aside from my wife) cares, I thought I’d share something I’m pretty proud of. My first set of regular expressions, that I wrote myself to manipulate the text I’m working with.\n
      \n
      What’s I’m so happy about is that I wrote these expressions. I understand exactly what they do and the purpose of each character in each expression.\n
      \n
      I’ve used regex in the past. Stuff cobbled together from stack overflow, but I never really understood how they worked or what the expressions meant, just that they did what I needed them to do at the time.\n
      \n
      I’m only about 10% of the way through the book, but already I understand so much more than I ever did about regex *(I also recognize I have a lot to learn)*.\n
      \n
      I wrote the expressions to be used with egrep and sed to generate and clean up a list of filenames pulled out of tarballs. *(movies I’ve ripped from my DVD collection and tarballed to archive them)*.\n
      \n
      The first expression I wrote was this one used with tar and egrep to list the files in the tarball and get just the name of the video file:\n
      \n
      `tar -tzvf file.tar.gz | egrep -o ‘/[^/]*.m(kv|p4)’ > movielist`\n
      \n
      Which gives me a list of movies of which this is an example:\n
      \n
      `/The.Hunger.Games.(2012).[tmdbid-70160].mp4`\n
      \n
      Then I used sed with the expression groups to remove:\n
      \n
      - the leading forward slash\n
      - Everything from `.[` to the end\n
      - All of the periods in between words\n
      \n
      And the last expression checks for one or more spaces and replaces them with a single space.\n
      \n
      This is the full sed command:\n
      \n
      `sed -Eie ‘s/^///; s/.[[a-z]±[0-9]+].m(p4|kv)//; s/[^a-zA-Z0-9()&-]/ /g; s/ +/ /g’ movielist`\n
      \n
      Which leaves me with a pretty list of movies that looks like this:\n
      \n
      `The Hunger Games (2012)`\n
      \n
      I’m sure this could be done more elegantly, and I’m happy for any feedback on how to do that! For now, I’m just excited that I’m beginning to understand regex and how to use it!\n
      \n
      Edit: fixed title so it didn’t say “regex expressions”
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 63
    +favouriteCount: 214
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1711562613 {#2218
      date: 2024-03-27 19:03:33.0 +01:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2273 …}
    +votes: Doctrine\ORM\PersistentCollection {#2268 …}
    +reports: Doctrine\ORM\PersistentCollection {#2270 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2248 …}
    +notifications: Doctrine\ORM\PersistentCollection {#2254 …}
    +badges: Doctrine\ORM\PersistentCollection {#2039 …}
    +children: []
    -id: 24511
    -titleTs: "'express':4 'first':2 'regular':3"
    -bodyTs: "'-70160':243 '-9':302 '/g':312,314 '/the.hunger.games':240 '0':301 '10':123 '2012':241,332 '9':311 'a-z':298 'a-za-z0':307 'alreadi':131 'also':144 'archiv':187 'asid':18 'begin':363 'book':129 'care':22 'charact':76 'check':275 'clean':166 'cobbl':88 'collect':183 'command':293 'could':337 'd':26 'didn':377 'done':339 'dvd':182 'e.f':10 'edit':372 'egrep':160,201,221 'eie':295 'eleg':341 'end':263 'ever':139 'everyth':259 'exact':67 'exampl':239 'excit':359 'express':7,39,64,79,104,155,191,251,274,381 'feedback':348 'file':205,217 'file.tar.gz':220 'filenam':171 'first':35,190 'fix':373 'forward':257 'friedl':11 'full':291 'game':331 'generat':164 'get':210 'give':228 'group':252 'happi':57,345 'hunger':330 'jeffrey':9 'kv':224,305 'last':273 'lead':256 'learn':151 'leav':317 'life':17 'like':327 'list':169,203,231,322 'look':326 'lot':149 'm':30,49,55,120,223,303,334,344,357,362 'manipul':45 'master':5 'meant':105 'movi':176,233,324 'movielist':226,315 'mp4':244 'much':135 'name':213 'need':112 'never':95 'nobodi':14 'o':222 'one':196,277 'overflow':92 'p4':225,304 'past':86 'period':267 'pretti':31,321 'proud':32 'pull':172 'purpos':73 'read':4 'realli':96 'recogn':145 'regex':83,142,366,380 'regular':6,38 'remov':254 'replac':282 'rip':179 'say':379 'sed':162,248,292,294 'set':36 'share':27 'sinc':13 'singl':286 'slash':258 'someth':28 'space':280,287 'stack':91 'stuff':87 'sure':335 'tar':199,218 'tarbal':175,185,208 'text':47 'thought':24 'time':118 'titl':374 'tmdbid':242 'togeth':89 'tzvf':219 'understand':66,133,365 'understood':97 'use':82,158,197,247,370 've':2,81,178 'video':216 'way':126 'wife':21 'word':270 'work':50,100 'wrote':42,62,153,193 'z':300 'z0':310 'za':309"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1703542531
    +visibility: "visible             "
    +apId: "https://lemmy.world/post/9942188"
    +editedAt: DateTimeImmutable @1707607314 {#2277
      date: 2024-02-11 00:21:54.0 +01:00
    }
    +createdAt: DateTimeImmutable @1703456131 {#2220
      date: 2023-12-24 23:15:31.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
}
user_avatar App\Twig\Components\UserAvatarComponent 12.0 MiB 0.27 ms
Input props
[
  "user" => App\Entity\User {#264
    +avatar: null
    +cover: null
    +email: "leo@sh.itjust.works"
    +username: "@leo@sh.itjust.works"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1707576164 {#272
      date: 2024-02-10 15:42:44.0 +01:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#252 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#248 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#237 …}
    +entries: Doctrine\ORM\PersistentCollection {#195 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#167 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#140 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#110 …}
    +posts: Doctrine\ORM\PersistentCollection {#83 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#98 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1801 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1684 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1513 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1919 …}
    +follows: Doctrine\ORM\PersistentCollection {#1607 …}
    +followers: Doctrine\ORM\PersistentCollection {#1869 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1827 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1856 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1855 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#2415 …}
    +reports: Doctrine\ORM\PersistentCollection {#1803 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1837 …}
    +violations: Doctrine\ORM\PersistentCollection {#1791 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1887 …}
    +awards: Doctrine\ORM\PersistentCollection {#1949 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1879 …}
    +categories: Doctrine\ORM\PersistentCollection {#1864 …}
    -id: 45405
    -password: "$2y$13$Y4Qyi3lMhMImNCNwG468J.St4/K8YtrmxZtaZreQHi7kEQvu89db6"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1893 …}
    +apId: "leo@sh.itjust.works"
    +apProfileId: "https://sh.itjust.works/u/leo"
    +apPublicUrl: "https://sh.itjust.works/u/leo"
    +apFollowersUrl: null
    +apInboxUrl: "https://sh.itjust.works/inbox"
    +apDomain: "sh.itjust.works"
    +apPreferredUsername: "leo"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1727293540 {#273
      date: 2024-09-25 21:45:40.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1694335254 {#267
      date: 2023-09-10 10:40:54.0 +02:00
    }
  }
  "width" => 40
  "height" => 40
  "asLink" => true
]
Attributes
[]
Component
App\Twig\Components\UserAvatarComponent {#2816
  +width: 40
  +height: 40
  +user: App\Entity\User {#264
    +avatar: null
    +cover: null
    +email: "leo@sh.itjust.works"
    +username: "@leo@sh.itjust.works"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1707576164 {#272
      date: 2024-02-10 15:42:44.0 +01:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#252 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#248 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#237 …}
    +entries: Doctrine\ORM\PersistentCollection {#195 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#167 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#140 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#110 …}
    +posts: Doctrine\ORM\PersistentCollection {#83 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#98 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1801 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1684 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1513 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1919 …}
    +follows: Doctrine\ORM\PersistentCollection {#1607 …}
    +followers: Doctrine\ORM\PersistentCollection {#1869 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1827 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1856 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1855 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#2415 …}
    +reports: Doctrine\ORM\PersistentCollection {#1803 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1837 …}
    +violations: Doctrine\ORM\PersistentCollection {#1791 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1887 …}
    +awards: Doctrine\ORM\PersistentCollection {#1949 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1879 …}
    +categories: Doctrine\ORM\PersistentCollection {#1864 …}
    -id: 45405
    -password: "$2y$13$Y4Qyi3lMhMImNCNwG468J.St4/K8YtrmxZtaZreQHi7kEQvu89db6"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1893 …}
    +apId: "leo@sh.itjust.works"
    +apProfileId: "https://sh.itjust.works/u/leo"
    +apPublicUrl: "https://sh.itjust.works/u/leo"
    +apFollowersUrl: null
    +apInboxUrl: "https://sh.itjust.works/inbox"
    +apDomain: "sh.itjust.works"
    +apPreferredUsername: "leo"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1727293540 {#273
      date: 2024-09-25 21:45:40.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1694335254 {#267
      date: 2023-09-10 10:40:54.0 +02:00
    }
  }
  +asLink: true
}
vote App\Twig\Components\VoteComponent 12.0 MiB 0.59 ms
Input props
[
  "subject" => App\Entity\EntryComment {#2084
    +user: App\Entity\User {#264
      +avatar: null
      +cover: null
      +email: "leo@sh.itjust.works"
      +username: "@leo@sh.itjust.works"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1707576164 {#272
        date: 2024-02-10 15:42:44.0 +01:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#252 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#248 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#237 …}
      +entries: Doctrine\ORM\PersistentCollection {#195 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#167 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#140 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#110 …}
      +posts: Doctrine\ORM\PersistentCollection {#83 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#98 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1801 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1684 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1513 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1919 …}
      +follows: Doctrine\ORM\PersistentCollection {#1607 …}
      +followers: Doctrine\ORM\PersistentCollection {#1869 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1827 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1856 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1855 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#2415 …}
      +reports: Doctrine\ORM\PersistentCollection {#1803 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1837 …}
      +violations: Doctrine\ORM\PersistentCollection {#1791 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1887 …}
      +awards: Doctrine\ORM\PersistentCollection {#1949 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1879 …}
      +categories: Doctrine\ORM\PersistentCollection {#1864 …}
      -id: 45405
      -password: "$2y$13$Y4Qyi3lMhMImNCNwG468J.St4/K8YtrmxZtaZreQHi7kEQvu89db6"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1893 …}
      +apId: "leo@sh.itjust.works"
      +apProfileId: "https://sh.itjust.works/u/leo"
      +apPublicUrl: "https://sh.itjust.works/u/leo"
      +apFollowersUrl: null
      +apInboxUrl: "https://sh.itjust.works/inbox"
      +apDomain: "sh.itjust.works"
      +apPreferredUsername: "leo"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1727293540 {#273
        date: 2024-09-25 21:45:40.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1694335254 {#267
        date: 2023-09-10 10:40:54.0 +02:00
      }
    }
    +entry: Proxies\__CG__\App\Entity\Entry {#1908
      +user: Proxies\__CG__\App\Entity\User {#2049 …}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#2378
        +icon: Proxies\__CG__\App\Entity\Image {#1354 …}
        +name: "linux@lemmy.ml"
        +title: "linux"
        +description: """
          From Wikipedia, the free encyclopedia\n
          \n
          Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
          \n
          Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
          \n
          ### Rules\n
          \n
          - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
          - No misinformation\n
          - No NSFW content\n
          - No hate speech, bigotry, etc\n
          \n
          ### Related Communities\n
          \n
          - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
          - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
          - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
          - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
          \n
          Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 1406
        +entryCommentCount: 28632
        +postCount: 6
        +postCommentCount: 214
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729583542 {#1982
          date: 2024-10-22 09:52:22.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#1353 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#1351 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1356 …}
        +entries: Doctrine\ORM\PersistentCollection {#1355 …}
        +posts: Doctrine\ORM\PersistentCollection {#2492 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#2494 …}
        +bans: Doctrine\ORM\PersistentCollection {#2500 …}
        +reports: Doctrine\ORM\PersistentCollection {#2508 …}
        +badges: Doctrine\ORM\PersistentCollection {#2521 …}
        +logs: Doctrine\ORM\PersistentCollection {#2531 …}
        +awards: Doctrine\ORM\PersistentCollection {#2513 …}
        +categories: Doctrine\ORM\PersistentCollection {#2537 …}
        -id: 73
        +apId: "linux@lemmy.ml"
        +apProfileId: "https://lemmy.ml/c/linux"
        +apPublicUrl: "https://lemmy.ml/c/linux"
        +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
        +apInboxUrl: "https://lemmy.ml/inbox"
        +apDomain: "lemmy.ml"
        +apPreferredUsername: "linux"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1729583596 {#1979
          date: 2024-10-22 09:53:16.0 +02:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698929468 {#1980
          date: 2023-11-02 13:51:08.0 +01:00
        }
        +__isInitialized__: true
         …2
      }
      +image: null
      +domain: Proxies\__CG__\App\Entity\Domain {#2271 …}
      +slug: "My-First-Regular-Expressions"
      +title: "My First Regular Expressions"
      +url: null
      +body: """
        I’ve been reading *Mastering Regular Expressions* by Jeffrey E.F. Friedl, and since nobody in my life (aside from my wife) cares, I thought I’d share something I’m pretty proud of. My first set of regular expressions, that I wrote myself to manipulate the text I’m working with.\n
        \n
        What’s I’m so happy about is that I wrote these expressions. I understand exactly what they do and the purpose of each character in each expression.\n
        \n
        I’ve used regex in the past. Stuff cobbled together from stack overflow, but I never really understood how they worked or what the expressions meant, just that they did what I needed them to do at the time.\n
        \n
        I’m only about 10% of the way through the book, but already I understand so much more than I ever did about regex *(I also recognize I have a lot to learn)*.\n
        \n
        I wrote the expressions to be used with egrep and sed to generate and clean up a list of filenames pulled out of tarballs. *(movies I’ve ripped from my DVD collection and tarballed to archive them)*.\n
        \n
        The first expression I wrote was this one used with tar and egrep to list the files in the tarball and get just the name of the video file:\n
        \n
        `tar -tzvf file.tar.gz | egrep -o ‘/[^/]*.m(kv|p4)’ > movielist`\n
        \n
        Which gives me a list of movies of which this is an example:\n
        \n
        `/The.Hunger.Games.(2012).[tmdbid-70160].mp4`\n
        \n
        Then I used sed with the expression groups to remove:\n
        \n
        - the leading forward slash\n
        - Everything from `.[` to the end\n
        - All of the periods in between words\n
        \n
        And the last expression checks for one or more spaces and replaces them with a single space.\n
        \n
        This is the full sed command:\n
        \n
        `sed -Eie ‘s/^///; s/.[[a-z]±[0-9]+].m(p4|kv)//; s/[^a-zA-Z0-9()&-]/ /g; s/ +/ /g’ movielist`\n
        \n
        Which leaves me with a pretty list of movies that looks like this:\n
        \n
        `The Hunger Games (2012)`\n
        \n
        I’m sure this could be done more elegantly, and I’m happy for any feedback on how to do that! For now, I’m just excited that I’m beginning to understand regex and how to use it!\n
        \n
        Edit: fixed title so it didn’t say “regex expressions”
        """
      +type: "article"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 63
      +favouriteCount: 214
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1711562613 {#2218
        date: 2024-03-27 19:03:33.0 +01:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#2273 …}
      +votes: Doctrine\ORM\PersistentCollection {#2268 …}
      +reports: Doctrine\ORM\PersistentCollection {#2270 …}
      +favourites: Doctrine\ORM\PersistentCollection {#2248 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2254 …}
      +badges: Doctrine\ORM\PersistentCollection {#2039 …}
      +children: []
      -id: 24511
      -titleTs: "'express':4 'first':2 'regular':3"
      -bodyTs: "'-70160':243 '-9':302 '/g':312,314 '/the.hunger.games':240 '0':301 '10':123 '2012':241,332 '9':311 'a-z':298 'a-za-z0':307 'alreadi':131 'also':144 'archiv':187 'asid':18 'begin':363 'book':129 'care':22 'charact':76 'check':275 'clean':166 'cobbl':88 'collect':183 'command':293 'could':337 'd':26 'didn':377 'done':339 'dvd':182 'e.f':10 'edit':372 'egrep':160,201,221 'eie':295 'eleg':341 'end':263 'ever':139 'everyth':259 'exact':67 'exampl':239 'excit':359 'express':7,39,64,79,104,155,191,251,274,381 'feedback':348 'file':205,217 'file.tar.gz':220 'filenam':171 'first':35,190 'fix':373 'forward':257 'friedl':11 'full':291 'game':331 'generat':164 'get':210 'give':228 'group':252 'happi':57,345 'hunger':330 'jeffrey':9 'kv':224,305 'last':273 'lead':256 'learn':151 'leav':317 'life':17 'like':327 'list':169,203,231,322 'look':326 'lot':149 'm':30,49,55,120,223,303,334,344,357,362 'manipul':45 'master':5 'meant':105 'movi':176,233,324 'movielist':226,315 'mp4':244 'much':135 'name':213 'need':112 'never':95 'nobodi':14 'o':222 'one':196,277 'overflow':92 'p4':225,304 'past':86 'period':267 'pretti':31,321 'proud':32 'pull':172 'purpos':73 'read':4 'realli':96 'recogn':145 'regex':83,142,366,380 'regular':6,38 'remov':254 'replac':282 'rip':179 'say':379 'sed':162,248,292,294 'set':36 'share':27 'sinc':13 'singl':286 'slash':258 'someth':28 'space':280,287 'stack':91 'stuff':87 'sure':335 'tar':199,218 'tarbal':175,185,208 'text':47 'thought':24 'time':118 'titl':374 'tmdbid':242 'togeth':89 'tzvf':219 'understand':66,133,365 'understood':97 'use':82,158,197,247,370 've':2,81,178 'video':216 'way':126 'wife':21 'word':270 'work':50,100 'wrote':42,62,153,193 'z':300 'z0':310 'za':309"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1703542531
      +visibility: "visible             "
      +apId: "https://lemmy.world/post/9942188"
      +editedAt: DateTimeImmutable @1707607314 {#2277
        date: 2024-02-11 00:21:54.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703456131 {#2220
        date: 2023-12-24 23:15:31.0 +01:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: Proxies\__CG__\App\Entity\Magazine {#2378 …2}
    +image: null
    +parent: null
    +root: null
    +body: """
      Knowledge and understanding. Feels good, man.\n
      \n
      Obligatory [Xkcd](https://xkcd.com/208/).\n
      \n
      ![](https://sh.itjust.works/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 112
    +score: 0
    +lastActive: DateTime @1707964958 {#2081
      date: 2024-02-15 03:42:38.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@harsh3466@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#2381 …}
    +nested: Doctrine\ORM\PersistentCollection {#1910 …}
    +votes: Doctrine\ORM\PersistentCollection {#1909 …}
    +reports: Doctrine\ORM\PersistentCollection {#1410 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2386 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1361 …}
    -id: 249692
    -bodyTs: "'/208/).':11 '/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)':14 'feel':4 'good':5 'knowledg':1 'man':6 'obligatori':7 'sh.itjust.works':13 'sh.itjust.works/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)':12 'understand':3 'xkcd':8 'xkcd.com':10 'xkcd.com/208/).':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://sh.itjust.works/comment/6822487"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703457775 {#1407
      date: 2023-12-24 23:42:55.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\VoteComponent {#2923
  +subject: App\Entity\EntryComment {#2084
    +user: App\Entity\User {#264
      +avatar: null
      +cover: null
      +email: "leo@sh.itjust.works"
      +username: "@leo@sh.itjust.works"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1707576164 {#272
        date: 2024-02-10 15:42:44.0 +01:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#252 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#248 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#237 …}
      +entries: Doctrine\ORM\PersistentCollection {#195 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#167 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#140 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#110 …}
      +posts: Doctrine\ORM\PersistentCollection {#83 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#98 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1801 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1684 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1513 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1919 …}
      +follows: Doctrine\ORM\PersistentCollection {#1607 …}
      +followers: Doctrine\ORM\PersistentCollection {#1869 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1827 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1856 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1855 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#2415 …}
      +reports: Doctrine\ORM\PersistentCollection {#1803 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1837 …}
      +violations: Doctrine\ORM\PersistentCollection {#1791 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1887 …}
      +awards: Doctrine\ORM\PersistentCollection {#1949 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1879 …}
      +categories: Doctrine\ORM\PersistentCollection {#1864 …}
      -id: 45405
      -password: "$2y$13$Y4Qyi3lMhMImNCNwG468J.St4/K8YtrmxZtaZreQHi7kEQvu89db6"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1893 …}
      +apId: "leo@sh.itjust.works"
      +apProfileId: "https://sh.itjust.works/u/leo"
      +apPublicUrl: "https://sh.itjust.works/u/leo"
      +apFollowersUrl: null
      +apInboxUrl: "https://sh.itjust.works/inbox"
      +apDomain: "sh.itjust.works"
      +apPreferredUsername: "leo"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1727293540 {#273
        date: 2024-09-25 21:45:40.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1694335254 {#267
        date: 2023-09-10 10:40:54.0 +02:00
      }
    }
    +entry: Proxies\__CG__\App\Entity\Entry {#1908
      +user: Proxies\__CG__\App\Entity\User {#2049 …}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#2378
        +icon: Proxies\__CG__\App\Entity\Image {#1354 …}
        +name: "linux@lemmy.ml"
        +title: "linux"
        +description: """
          From Wikipedia, the free encyclopedia\n
          \n
          Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
          \n
          Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
          \n
          ### Rules\n
          \n
          - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
          - No misinformation\n
          - No NSFW content\n
          - No hate speech, bigotry, etc\n
          \n
          ### Related Communities\n
          \n
          - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
          - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
          - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
          - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
          \n
          Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 1406
        +entryCommentCount: 28632
        +postCount: 6
        +postCommentCount: 214
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729583542 {#1982
          date: 2024-10-22 09:52:22.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#1353 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#1351 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1356 …}
        +entries: Doctrine\ORM\PersistentCollection {#1355 …}
        +posts: Doctrine\ORM\PersistentCollection {#2492 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#2494 …}
        +bans: Doctrine\ORM\PersistentCollection {#2500 …}
        +reports: Doctrine\ORM\PersistentCollection {#2508 …}
        +badges: Doctrine\ORM\PersistentCollection {#2521 …}
        +logs: Doctrine\ORM\PersistentCollection {#2531 …}
        +awards: Doctrine\ORM\PersistentCollection {#2513 …}
        +categories: Doctrine\ORM\PersistentCollection {#2537 …}
        -id: 73
        +apId: "linux@lemmy.ml"
        +apProfileId: "https://lemmy.ml/c/linux"
        +apPublicUrl: "https://lemmy.ml/c/linux"
        +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
        +apInboxUrl: "https://lemmy.ml/inbox"
        +apDomain: "lemmy.ml"
        +apPreferredUsername: "linux"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1729583596 {#1979
          date: 2024-10-22 09:53:16.0 +02:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698929468 {#1980
          date: 2023-11-02 13:51:08.0 +01:00
        }
        +__isInitialized__: true
         …2
      }
      +image: null
      +domain: Proxies\__CG__\App\Entity\Domain {#2271 …}
      +slug: "My-First-Regular-Expressions"
      +title: "My First Regular Expressions"
      +url: null
      +body: """
        I’ve been reading *Mastering Regular Expressions* by Jeffrey E.F. Friedl, and since nobody in my life (aside from my wife) cares, I thought I’d share something I’m pretty proud of. My first set of regular expressions, that I wrote myself to manipulate the text I’m working with.\n
        \n
        What’s I’m so happy about is that I wrote these expressions. I understand exactly what they do and the purpose of each character in each expression.\n
        \n
        I’ve used regex in the past. Stuff cobbled together from stack overflow, but I never really understood how they worked or what the expressions meant, just that they did what I needed them to do at the time.\n
        \n
        I’m only about 10% of the way through the book, but already I understand so much more than I ever did about regex *(I also recognize I have a lot to learn)*.\n
        \n
        I wrote the expressions to be used with egrep and sed to generate and clean up a list of filenames pulled out of tarballs. *(movies I’ve ripped from my DVD collection and tarballed to archive them)*.\n
        \n
        The first expression I wrote was this one used with tar and egrep to list the files in the tarball and get just the name of the video file:\n
        \n
        `tar -tzvf file.tar.gz | egrep -o ‘/[^/]*.m(kv|p4)’ > movielist`\n
        \n
        Which gives me a list of movies of which this is an example:\n
        \n
        `/The.Hunger.Games.(2012).[tmdbid-70160].mp4`\n
        \n
        Then I used sed with the expression groups to remove:\n
        \n
        - the leading forward slash\n
        - Everything from `.[` to the end\n
        - All of the periods in between words\n
        \n
        And the last expression checks for one or more spaces and replaces them with a single space.\n
        \n
        This is the full sed command:\n
        \n
        `sed -Eie ‘s/^///; s/.[[a-z]±[0-9]+].m(p4|kv)//; s/[^a-zA-Z0-9()&-]/ /g; s/ +/ /g’ movielist`\n
        \n
        Which leaves me with a pretty list of movies that looks like this:\n
        \n
        `The Hunger Games (2012)`\n
        \n
        I’m sure this could be done more elegantly, and I’m happy for any feedback on how to do that! For now, I’m just excited that I’m beginning to understand regex and how to use it!\n
        \n
        Edit: fixed title so it didn’t say “regex expressions”
        """
      +type: "article"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 63
      +favouriteCount: 214
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1711562613 {#2218
        date: 2024-03-27 19:03:33.0 +01:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#2273 …}
      +votes: Doctrine\ORM\PersistentCollection {#2268 …}
      +reports: Doctrine\ORM\PersistentCollection {#2270 …}
      +favourites: Doctrine\ORM\PersistentCollection {#2248 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2254 …}
      +badges: Doctrine\ORM\PersistentCollection {#2039 …}
      +children: []
      -id: 24511
      -titleTs: "'express':4 'first':2 'regular':3"
      -bodyTs: "'-70160':243 '-9':302 '/g':312,314 '/the.hunger.games':240 '0':301 '10':123 '2012':241,332 '9':311 'a-z':298 'a-za-z0':307 'alreadi':131 'also':144 'archiv':187 'asid':18 'begin':363 'book':129 'care':22 'charact':76 'check':275 'clean':166 'cobbl':88 'collect':183 'command':293 'could':337 'd':26 'didn':377 'done':339 'dvd':182 'e.f':10 'edit':372 'egrep':160,201,221 'eie':295 'eleg':341 'end':263 'ever':139 'everyth':259 'exact':67 'exampl':239 'excit':359 'express':7,39,64,79,104,155,191,251,274,381 'feedback':348 'file':205,217 'file.tar.gz':220 'filenam':171 'first':35,190 'fix':373 'forward':257 'friedl':11 'full':291 'game':331 'generat':164 'get':210 'give':228 'group':252 'happi':57,345 'hunger':330 'jeffrey':9 'kv':224,305 'last':273 'lead':256 'learn':151 'leav':317 'life':17 'like':327 'list':169,203,231,322 'look':326 'lot':149 'm':30,49,55,120,223,303,334,344,357,362 'manipul':45 'master':5 'meant':105 'movi':176,233,324 'movielist':226,315 'mp4':244 'much':135 'name':213 'need':112 'never':95 'nobodi':14 'o':222 'one':196,277 'overflow':92 'p4':225,304 'past':86 'period':267 'pretti':31,321 'proud':32 'pull':172 'purpos':73 'read':4 'realli':96 'recogn':145 'regex':83,142,366,380 'regular':6,38 'remov':254 'replac':282 'rip':179 'say':379 'sed':162,248,292,294 'set':36 'share':27 'sinc':13 'singl':286 'slash':258 'someth':28 'space':280,287 'stack':91 'stuff':87 'sure':335 'tar':199,218 'tarbal':175,185,208 'text':47 'thought':24 'time':118 'titl':374 'tmdbid':242 'togeth':89 'tzvf':219 'understand':66,133,365 'understood':97 'use':82,158,197,247,370 've':2,81,178 'video':216 'way':126 'wife':21 'word':270 'work':50,100 'wrote':42,62,153,193 'z':300 'z0':310 'za':309"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1703542531
      +visibility: "visible             "
      +apId: "https://lemmy.world/post/9942188"
      +editedAt: DateTimeImmutable @1707607314 {#2277
        date: 2024-02-11 00:21:54.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703456131 {#2220
        date: 2023-12-24 23:15:31.0 +01:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: Proxies\__CG__\App\Entity\Magazine {#2378 …2}
    +image: null
    +parent: null
    +root: null
    +body: """
      Knowledge and understanding. Feels good, man.\n
      \n
      Obligatory [Xkcd](https://xkcd.com/208/).\n
      \n
      ![](https://sh.itjust.works/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 112
    +score: 0
    +lastActive: DateTime @1707964958 {#2081
      date: 2024-02-15 03:42:38.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@harsh3466@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#2381 …}
    +nested: Doctrine\ORM\PersistentCollection {#1910 …}
    +votes: Doctrine\ORM\PersistentCollection {#1909 …}
    +reports: Doctrine\ORM\PersistentCollection {#1410 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2386 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1361 …}
    -id: 249692
    -bodyTs: "'/208/).':11 '/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)':14 'feel':4 'good':5 'knowledg':1 'man':6 'obligatori':7 'sh.itjust.works':13 'sh.itjust.works/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)':12 'understand':3 'xkcd':8 'xkcd.com':10 'xkcd.com/208/).':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://sh.itjust.works/comment/6822487"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703457775 {#1407
      date: 2023-12-24 23:42:55.0 +01:00
    }
  }
  +formDest: "entry_comment"
  +showDownvote: true
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
boost App\Twig\Components\BoostComponent 12.0 MiB 1.13 ms
Input props
[
  "subject" => App\Entity\EntryComment {#2084
    +user: App\Entity\User {#264
      +avatar: null
      +cover: null
      +email: "leo@sh.itjust.works"
      +username: "@leo@sh.itjust.works"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1707576164 {#272
        date: 2024-02-10 15:42:44.0 +01:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#252 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#248 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#237 …}
      +entries: Doctrine\ORM\PersistentCollection {#195 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#167 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#140 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#110 …}
      +posts: Doctrine\ORM\PersistentCollection {#83 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#98 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1801 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1684 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1513 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1919 …}
      +follows: Doctrine\ORM\PersistentCollection {#1607 …}
      +followers: Doctrine\ORM\PersistentCollection {#1869 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1827 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1856 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1855 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#2415 …}
      +reports: Doctrine\ORM\PersistentCollection {#1803 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1837 …}
      +violations: Doctrine\ORM\PersistentCollection {#1791 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1887 …}
      +awards: Doctrine\ORM\PersistentCollection {#1949 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1879 …}
      +categories: Doctrine\ORM\PersistentCollection {#1864 …}
      -id: 45405
      -password: "$2y$13$Y4Qyi3lMhMImNCNwG468J.St4/K8YtrmxZtaZreQHi7kEQvu89db6"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1893 …}
      +apId: "leo@sh.itjust.works"
      +apProfileId: "https://sh.itjust.works/u/leo"
      +apPublicUrl: "https://sh.itjust.works/u/leo"
      +apFollowersUrl: null
      +apInboxUrl: "https://sh.itjust.works/inbox"
      +apDomain: "sh.itjust.works"
      +apPreferredUsername: "leo"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1727293540 {#273
        date: 2024-09-25 21:45:40.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1694335254 {#267
        date: 2023-09-10 10:40:54.0 +02:00
      }
    }
    +entry: Proxies\__CG__\App\Entity\Entry {#1908
      +user: Proxies\__CG__\App\Entity\User {#2049 …}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#2378
        +icon: Proxies\__CG__\App\Entity\Image {#1354 …}
        +name: "linux@lemmy.ml"
        +title: "linux"
        +description: """
          From Wikipedia, the free encyclopedia\n
          \n
          Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
          \n
          Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
          \n
          ### Rules\n
          \n
          - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
          - No misinformation\n
          - No NSFW content\n
          - No hate speech, bigotry, etc\n
          \n
          ### Related Communities\n
          \n
          - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
          - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
          - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
          - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
          \n
          Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 1406
        +entryCommentCount: 28632
        +postCount: 6
        +postCommentCount: 214
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729583542 {#1982
          date: 2024-10-22 09:52:22.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#1353 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#1351 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1356 …}
        +entries: Doctrine\ORM\PersistentCollection {#1355 …}
        +posts: Doctrine\ORM\PersistentCollection {#2492 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#2494 …}
        +bans: Doctrine\ORM\PersistentCollection {#2500 …}
        +reports: Doctrine\ORM\PersistentCollection {#2508 …}
        +badges: Doctrine\ORM\PersistentCollection {#2521 …}
        +logs: Doctrine\ORM\PersistentCollection {#2531 …}
        +awards: Doctrine\ORM\PersistentCollection {#2513 …}
        +categories: Doctrine\ORM\PersistentCollection {#2537 …}
        -id: 73
        +apId: "linux@lemmy.ml"
        +apProfileId: "https://lemmy.ml/c/linux"
        +apPublicUrl: "https://lemmy.ml/c/linux"
        +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
        +apInboxUrl: "https://lemmy.ml/inbox"
        +apDomain: "lemmy.ml"
        +apPreferredUsername: "linux"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1729583596 {#1979
          date: 2024-10-22 09:53:16.0 +02:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698929468 {#1980
          date: 2023-11-02 13:51:08.0 +01:00
        }
        +__isInitialized__: true
         …2
      }
      +image: null
      +domain: Proxies\__CG__\App\Entity\Domain {#2271 …}
      +slug: "My-First-Regular-Expressions"
      +title: "My First Regular Expressions"
      +url: null
      +body: """
        I’ve been reading *Mastering Regular Expressions* by Jeffrey E.F. Friedl, and since nobody in my life (aside from my wife) cares, I thought I’d share something I’m pretty proud of. My first set of regular expressions, that I wrote myself to manipulate the text I’m working with.\n
        \n
        What’s I’m so happy about is that I wrote these expressions. I understand exactly what they do and the purpose of each character in each expression.\n
        \n
        I’ve used regex in the past. Stuff cobbled together from stack overflow, but I never really understood how they worked or what the expressions meant, just that they did what I needed them to do at the time.\n
        \n
        I’m only about 10% of the way through the book, but already I understand so much more than I ever did about regex *(I also recognize I have a lot to learn)*.\n
        \n
        I wrote the expressions to be used with egrep and sed to generate and clean up a list of filenames pulled out of tarballs. *(movies I’ve ripped from my DVD collection and tarballed to archive them)*.\n
        \n
        The first expression I wrote was this one used with tar and egrep to list the files in the tarball and get just the name of the video file:\n
        \n
        `tar -tzvf file.tar.gz | egrep -o ‘/[^/]*.m(kv|p4)’ > movielist`\n
        \n
        Which gives me a list of movies of which this is an example:\n
        \n
        `/The.Hunger.Games.(2012).[tmdbid-70160].mp4`\n
        \n
        Then I used sed with the expression groups to remove:\n
        \n
        - the leading forward slash\n
        - Everything from `.[` to the end\n
        - All of the periods in between words\n
        \n
        And the last expression checks for one or more spaces and replaces them with a single space.\n
        \n
        This is the full sed command:\n
        \n
        `sed -Eie ‘s/^///; s/.[[a-z]±[0-9]+].m(p4|kv)//; s/[^a-zA-Z0-9()&-]/ /g; s/ +/ /g’ movielist`\n
        \n
        Which leaves me with a pretty list of movies that looks like this:\n
        \n
        `The Hunger Games (2012)`\n
        \n
        I’m sure this could be done more elegantly, and I’m happy for any feedback on how to do that! For now, I’m just excited that I’m beginning to understand regex and how to use it!\n
        \n
        Edit: fixed title so it didn’t say “regex expressions”
        """
      +type: "article"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 63
      +favouriteCount: 214
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1711562613 {#2218
        date: 2024-03-27 19:03:33.0 +01:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#2273 …}
      +votes: Doctrine\ORM\PersistentCollection {#2268 …}
      +reports: Doctrine\ORM\PersistentCollection {#2270 …}
      +favourites: Doctrine\ORM\PersistentCollection {#2248 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2254 …}
      +badges: Doctrine\ORM\PersistentCollection {#2039 …}
      +children: []
      -id: 24511
      -titleTs: "'express':4 'first':2 'regular':3"
      -bodyTs: "'-70160':243 '-9':302 '/g':312,314 '/the.hunger.games':240 '0':301 '10':123 '2012':241,332 '9':311 'a-z':298 'a-za-z0':307 'alreadi':131 'also':144 'archiv':187 'asid':18 'begin':363 'book':129 'care':22 'charact':76 'check':275 'clean':166 'cobbl':88 'collect':183 'command':293 'could':337 'd':26 'didn':377 'done':339 'dvd':182 'e.f':10 'edit':372 'egrep':160,201,221 'eie':295 'eleg':341 'end':263 'ever':139 'everyth':259 'exact':67 'exampl':239 'excit':359 'express':7,39,64,79,104,155,191,251,274,381 'feedback':348 'file':205,217 'file.tar.gz':220 'filenam':171 'first':35,190 'fix':373 'forward':257 'friedl':11 'full':291 'game':331 'generat':164 'get':210 'give':228 'group':252 'happi':57,345 'hunger':330 'jeffrey':9 'kv':224,305 'last':273 'lead':256 'learn':151 'leav':317 'life':17 'like':327 'list':169,203,231,322 'look':326 'lot':149 'm':30,49,55,120,223,303,334,344,357,362 'manipul':45 'master':5 'meant':105 'movi':176,233,324 'movielist':226,315 'mp4':244 'much':135 'name':213 'need':112 'never':95 'nobodi':14 'o':222 'one':196,277 'overflow':92 'p4':225,304 'past':86 'period':267 'pretti':31,321 'proud':32 'pull':172 'purpos':73 'read':4 'realli':96 'recogn':145 'regex':83,142,366,380 'regular':6,38 'remov':254 'replac':282 'rip':179 'say':379 'sed':162,248,292,294 'set':36 'share':27 'sinc':13 'singl':286 'slash':258 'someth':28 'space':280,287 'stack':91 'stuff':87 'sure':335 'tar':199,218 'tarbal':175,185,208 'text':47 'thought':24 'time':118 'titl':374 'tmdbid':242 'togeth':89 'tzvf':219 'understand':66,133,365 'understood':97 'use':82,158,197,247,370 've':2,81,178 'video':216 'way':126 'wife':21 'word':270 'work':50,100 'wrote':42,62,153,193 'z':300 'z0':310 'za':309"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1703542531
      +visibility: "visible             "
      +apId: "https://lemmy.world/post/9942188"
      +editedAt: DateTimeImmutable @1707607314 {#2277
        date: 2024-02-11 00:21:54.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703456131 {#2220
        date: 2023-12-24 23:15:31.0 +01:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: Proxies\__CG__\App\Entity\Magazine {#2378 …2}
    +image: null
    +parent: null
    +root: null
    +body: """
      Knowledge and understanding. Feels good, man.\n
      \n
      Obligatory [Xkcd](https://xkcd.com/208/).\n
      \n
      ![](https://sh.itjust.works/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 112
    +score: 0
    +lastActive: DateTime @1707964958 {#2081
      date: 2024-02-15 03:42:38.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@harsh3466@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#2381 …}
    +nested: Doctrine\ORM\PersistentCollection {#1910 …}
    +votes: Doctrine\ORM\PersistentCollection {#1909 …}
    +reports: Doctrine\ORM\PersistentCollection {#1410 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2386 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1361 …}
    -id: 249692
    -bodyTs: "'/208/).':11 '/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)':14 'feel':4 'good':5 'knowledg':1 'man':6 'obligatori':7 'sh.itjust.works':13 'sh.itjust.works/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)':12 'understand':3 'xkcd':8 'xkcd.com':10 'xkcd.com/208/).':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://sh.itjust.works/comment/6822487"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703457775 {#1407
      date: 2023-12-24 23:42:55.0 +01:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\BoostComponent {#2990
  +formDest: "entry_comment"
  +subject: App\Entity\EntryComment {#2084
    +user: App\Entity\User {#264
      +avatar: null
      +cover: null
      +email: "leo@sh.itjust.works"
      +username: "@leo@sh.itjust.works"
      +roles: []
      +followersCount: 0
      +homepage: "front"
      +about: null
      +lastActive: DateTime @1707576164 {#272
        date: 2024-02-10 15:42:44.0 +01:00
      }
      +markedForDeletionAt: null
      +fields: null
      +oauthGithubId: null
      +oauthGoogleId: null
      +oauthFacebookId: null
      +oauthKeycloakId: null
      +hideAdult: true
      +showSubscribedUsers: true
      +showSubscribedMagazines: true
      +showSubscribedDomains: true
      +preferredLanguages: []
      +featuredMagazines: null
      +showProfileSubscriptions: false
      +showProfileFollowings: true
      +markNewComments: false
      +notifyOnNewEntry: false
      +notifyOnNewEntryReply: true
      +notifyOnNewEntryCommentReply: true
      +notifyOnNewPost: false
      +notifyOnNewPostReply: true
      +notifyOnNewPostCommentReply: true
      +addMentionsEntries: false
      +addMentionsPosts: true
      +isBanned: false
      +isVerified: false
      +isDeleted: false
      +isBot: false
      +spamProtection: true
      +customCss: null
      +ignoreMagazinesCustomCss: false
      +moderatorTokens: Doctrine\ORM\PersistentCollection {#252 …}
      +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#248 …}
      +moderatorRequests: Doctrine\ORM\PersistentCollection {#237 …}
      +entries: Doctrine\ORM\PersistentCollection {#195 …}
      +entryVotes: Doctrine\ORM\PersistentCollection {#167 …}
      +entryComments: Doctrine\ORM\PersistentCollection {#140 …}
      +entryCommentVotes: Doctrine\ORM\PersistentCollection {#110 …}
      +posts: Doctrine\ORM\PersistentCollection {#83 …}
      +postVotes: Doctrine\ORM\PersistentCollection {#98 …}
      +postComments: Doctrine\ORM\PersistentCollection {#1801 …}
      +postCommentVotes: Doctrine\ORM\PersistentCollection {#1684 …}
      +subscriptions: Doctrine\ORM\PersistentCollection {#1513 …}
      +subscribedDomains: Doctrine\ORM\PersistentCollection {#1919 …}
      +follows: Doctrine\ORM\PersistentCollection {#1607 …}
      +followers: Doctrine\ORM\PersistentCollection {#1869 …}
      +blocks: Doctrine\ORM\PersistentCollection {#1827 …}
      +blockers: Doctrine\ORM\PersistentCollection {#1856 …}
      +blockedMagazines: Doctrine\ORM\PersistentCollection {#1855 …}
      +blockedDomains: Doctrine\ORM\PersistentCollection {#2415 …}
      +reports: Doctrine\ORM\PersistentCollection {#1803 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1837 …}
      +violations: Doctrine\ORM\PersistentCollection {#1791 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1887 …}
      +awards: Doctrine\ORM\PersistentCollection {#1949 …}
      +subscribedCategories: Doctrine\ORM\PersistentCollection {#1879 …}
      +categories: Doctrine\ORM\PersistentCollection {#1864 …}
      -id: 45405
      -password: "$2y$13$Y4Qyi3lMhMImNCNwG468J.St4/K8YtrmxZtaZreQHi7kEQvu89db6"
      -totpSecret: null
      -totpBackupCodes: []
      -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1893 …}
      +apId: "leo@sh.itjust.works"
      +apProfileId: "https://sh.itjust.works/u/leo"
      +apPublicUrl: "https://sh.itjust.works/u/leo"
      +apFollowersUrl: null
      +apInboxUrl: "https://sh.itjust.works/inbox"
      +apDomain: "sh.itjust.works"
      +apPreferredUsername: "leo"
      +apDiscoverable: true
      +apManuallyApprovesFollowers: false
      +privateKey: null
      +publicKey: null
      +apFetchedAt: DateTime @1727293540 {#273
        date: 2024-09-25 21:45:40.0 +02:00
      }
      +apDeletedAt: null
      +apTimeoutAt: null
      +visibility: "visible             "
      +createdAt: DateTimeImmutable @1694335254 {#267
        date: 2023-09-10 10:40:54.0 +02:00
      }
    }
    +entry: Proxies\__CG__\App\Entity\Entry {#1908
      +user: Proxies\__CG__\App\Entity\User {#2049 …}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#2378
        +icon: Proxies\__CG__\App\Entity\Image {#1354 …}
        +name: "linux@lemmy.ml"
        +title: "linux"
        +description: """
          From Wikipedia, the free encyclopedia\n
          \n
          Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).\n
          \n
          Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.\n
          \n
          ### Rules\n
          \n
          - Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.\n
          - No misinformation\n
          - No NSFW content\n
          - No hate speech, bigotry, etc\n
          \n
          ### Related Communities\n
          \n
          - [!opensource@lemmy.ml](https://lemmy.ml/c/opensource)\n
          - [!libre_culture@lemmy.ml](https://lemmy.ml/c/libre_culture)\n
          - [!technology@lemmy.ml](https://lemmy.ml/c/technology)\n
          - [!libre_hardware@lemmy.ml](https://lemmy.ml/c/libre_hardware)\n
          \n
          Community icon by [Alpár-Etele Méder](https://www.iconfinder.com/pocike), licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
          """
        +rules: null
        +subscriptionsCount: 1
        +entryCount: 1406
        +entryCommentCount: 28632
        +postCount: 6
        +postCommentCount: 214
        +isAdult: false
        +customCss: null
        +lastActive: DateTime @1729583542 {#1982
          date: 2024-10-22 09:52:22.0 +02:00
        }
        +markedForDeletionAt: null
        +tags: null
        +moderators: Doctrine\ORM\PersistentCollection {#1353 …}
        +ownershipRequests: Doctrine\ORM\PersistentCollection {#1351 …}
        +moderatorRequests: Doctrine\ORM\PersistentCollection {#1356 …}
        +entries: Doctrine\ORM\PersistentCollection {#1355 …}
        +posts: Doctrine\ORM\PersistentCollection {#2492 …}
        +subscriptions: Doctrine\ORM\PersistentCollection {#2494 …}
        +bans: Doctrine\ORM\PersistentCollection {#2500 …}
        +reports: Doctrine\ORM\PersistentCollection {#2508 …}
        +badges: Doctrine\ORM\PersistentCollection {#2521 …}
        +logs: Doctrine\ORM\PersistentCollection {#2531 …}
        +awards: Doctrine\ORM\PersistentCollection {#2513 …}
        +categories: Doctrine\ORM\PersistentCollection {#2537 …}
        -id: 73
        +apId: "linux@lemmy.ml"
        +apProfileId: "https://lemmy.ml/c/linux"
        +apPublicUrl: "https://lemmy.ml/c/linux"
        +apFollowersUrl: "https://lemmy.ml/c/linux/followers"
        +apInboxUrl: "https://lemmy.ml/inbox"
        +apDomain: "lemmy.ml"
        +apPreferredUsername: "linux"
        +apDiscoverable: true
        +apManuallyApprovesFollowers: null
        +privateKey: null
        +publicKey: null
        +apFetchedAt: DateTime @1729583596 {#1979
          date: 2024-10-22 09:53:16.0 +02:00
        }
        +apDeletedAt: null
        +apTimeoutAt: null
        +visibility: "visible             "
        +createdAt: DateTimeImmutable @1698929468 {#1980
          date: 2023-11-02 13:51:08.0 +01:00
        }
        +__isInitialized__: true
         …2
      }
      +image: null
      +domain: Proxies\__CG__\App\Entity\Domain {#2271 …}
      +slug: "My-First-Regular-Expressions"
      +title: "My First Regular Expressions"
      +url: null
      +body: """
        I’ve been reading *Mastering Regular Expressions* by Jeffrey E.F. Friedl, and since nobody in my life (aside from my wife) cares, I thought I’d share something I’m pretty proud of. My first set of regular expressions, that I wrote myself to manipulate the text I’m working with.\n
        \n
        What’s I’m so happy about is that I wrote these expressions. I understand exactly what they do and the purpose of each character in each expression.\n
        \n
        I’ve used regex in the past. Stuff cobbled together from stack overflow, but I never really understood how they worked or what the expressions meant, just that they did what I needed them to do at the time.\n
        \n
        I’m only about 10% of the way through the book, but already I understand so much more than I ever did about regex *(I also recognize I have a lot to learn)*.\n
        \n
        I wrote the expressions to be used with egrep and sed to generate and clean up a list of filenames pulled out of tarballs. *(movies I’ve ripped from my DVD collection and tarballed to archive them)*.\n
        \n
        The first expression I wrote was this one used with tar and egrep to list the files in the tarball and get just the name of the video file:\n
        \n
        `tar -tzvf file.tar.gz | egrep -o ‘/[^/]*.m(kv|p4)’ > movielist`\n
        \n
        Which gives me a list of movies of which this is an example:\n
        \n
        `/The.Hunger.Games.(2012).[tmdbid-70160].mp4`\n
        \n
        Then I used sed with the expression groups to remove:\n
        \n
        - the leading forward slash\n
        - Everything from `.[` to the end\n
        - All of the periods in between words\n
        \n
        And the last expression checks for one or more spaces and replaces them with a single space.\n
        \n
        This is the full sed command:\n
        \n
        `sed -Eie ‘s/^///; s/.[[a-z]±[0-9]+].m(p4|kv)//; s/[^a-zA-Z0-9()&-]/ /g; s/ +/ /g’ movielist`\n
        \n
        Which leaves me with a pretty list of movies that looks like this:\n
        \n
        `The Hunger Games (2012)`\n
        \n
        I’m sure this could be done more elegantly, and I’m happy for any feedback on how to do that! For now, I’m just excited that I’m beginning to understand regex and how to use it!\n
        \n
        Edit: fixed title so it didn’t say “regex expressions”
        """
      +type: "article"
      +lang: "en"
      +isOc: false
      +hasEmbed: false
      +commentCount: 63
      +favouriteCount: 214
      +score: 0
      +isAdult: false
      +sticky: false
      +lastActive: DateTime @1711562613 {#2218
        date: 2024-03-27 19:03:33.0 +01:00
      }
      +ip: null
      +adaAmount: 0
      +tags: null
      +mentions: null
      +comments: Doctrine\ORM\PersistentCollection {#2273 …}
      +votes: Doctrine\ORM\PersistentCollection {#2268 …}
      +reports: Doctrine\ORM\PersistentCollection {#2270 …}
      +favourites: Doctrine\ORM\PersistentCollection {#2248 …}
      +notifications: Doctrine\ORM\PersistentCollection {#2254 …}
      +badges: Doctrine\ORM\PersistentCollection {#2039 …}
      +children: []
      -id: 24511
      -titleTs: "'express':4 'first':2 'regular':3"
      -bodyTs: "'-70160':243 '-9':302 '/g':312,314 '/the.hunger.games':240 '0':301 '10':123 '2012':241,332 '9':311 'a-z':298 'a-za-z0':307 'alreadi':131 'also':144 'archiv':187 'asid':18 'begin':363 'book':129 'care':22 'charact':76 'check':275 'clean':166 'cobbl':88 'collect':183 'command':293 'could':337 'd':26 'didn':377 'done':339 'dvd':182 'e.f':10 'edit':372 'egrep':160,201,221 'eie':295 'eleg':341 'end':263 'ever':139 'everyth':259 'exact':67 'exampl':239 'excit':359 'express':7,39,64,79,104,155,191,251,274,381 'feedback':348 'file':205,217 'file.tar.gz':220 'filenam':171 'first':35,190 'fix':373 'forward':257 'friedl':11 'full':291 'game':331 'generat':164 'get':210 'give':228 'group':252 'happi':57,345 'hunger':330 'jeffrey':9 'kv':224,305 'last':273 'lead':256 'learn':151 'leav':317 'life':17 'like':327 'list':169,203,231,322 'look':326 'lot':149 'm':30,49,55,120,223,303,334,344,357,362 'manipul':45 'master':5 'meant':105 'movi':176,233,324 'movielist':226,315 'mp4':244 'much':135 'name':213 'need':112 'never':95 'nobodi':14 'o':222 'one':196,277 'overflow':92 'p4':225,304 'past':86 'period':267 'pretti':31,321 'proud':32 'pull':172 'purpos':73 'read':4 'realli':96 'recogn':145 'regex':83,142,366,380 'regular':6,38 'remov':254 'replac':282 'rip':179 'say':379 'sed':162,248,292,294 'set':36 'share':27 'sinc':13 'singl':286 'slash':258 'someth':28 'space':280,287 'stack':91 'stuff':87 'sure':335 'tar':199,218 'tarbal':175,185,208 'text':47 'thought':24 'time':118 'titl':374 'tmdbid':242 'togeth':89 'tzvf':219 'understand':66,133,365 'understood':97 'use':82,158,197,247,370 've':2,81,178 'video':216 'way':126 'wife':21 'word':270 'work':50,100 'wrote':42,62,153,193 'z':300 'z0':310 'za':309"
      +cross: false
      +upVotes: 0
      +downVotes: 0
      +ranking: 1703542531
      +visibility: "visible             "
      +apId: "https://lemmy.world/post/9942188"
      +editedAt: DateTimeImmutable @1707607314 {#2277
        date: 2024-02-11 00:21:54.0 +01:00
      }
      +createdAt: DateTimeImmutable @1703456131 {#2220
        date: 2023-12-24 23:15:31.0 +01:00
      }
      +__isInitialized__: true
       …2
    }
    +magazine: Proxies\__CG__\App\Entity\Magazine {#2378 …2}
    +image: null
    +parent: null
    +root: null
    +body: """
      Knowledge and understanding. Feels good, man.\n
      \n
      Obligatory [Xkcd](https://xkcd.com/208/).\n
      \n
      ![](https://sh.itjust.works/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)
      """
    +lang: "en"
    +isAdult: false
    +favouriteCount: 112
    +score: 0
    +lastActive: DateTime @1707964958 {#2081
      date: 2024-02-15 03:42:38.0 +01:00
    }
    +ip: null
    +tags: null
    +mentions: [
      "@harsh3466@lemmy.world"
    ]
    +children: Doctrine\ORM\PersistentCollection {#2381 …}
    +nested: Doctrine\ORM\PersistentCollection {#1910 …}
    +votes: Doctrine\ORM\PersistentCollection {#1909 …}
    +reports: Doctrine\ORM\PersistentCollection {#1410 …}
    +favourites: Doctrine\ORM\PersistentCollection {#2386 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1361 …}
    -id: 249692
    -bodyTs: "'/208/).':11 '/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)':14 'feel':4 'good':5 'knowledg':1 'man':6 'obligatori':7 'sh.itjust.works':13 'sh.itjust.works/pictrs/image/d6d2db0a-cf5a-4270-b4bb-a898d9b88695.png)':12 'understand':3 'xkcd':8 'xkcd.com':10 'xkcd.com/208/).':9"
    +ranking: 0
    +commentCount: 0
    +upVotes: 0
    +downVotes: 0
    +visibility: "visible             "
    +apId: "https://sh.itjust.works/comment/6822487"
    +editedAt: null
    +createdAt: DateTimeImmutable @1703457775 {#1407
      date: 2023-12-24 23:42:55.0 +01:00
    }
  }
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
}
settings_row_enum App\Twig\Components\SettingsRowEnumComponent 12.0 MiB 0.22 ms
Input props
[
  "label" => "Sidebar position"
  "settingsKey" => "KBIN_GENERAL_SIDEBAR_POSITION"
  "values" => [
    [
      "name" => "Left"
      "value" => "LEFT"
    ]
    [
      "name" => "Right"
      "value" => "RIGHT"
    ]
  ]
  "defaultValue" => "RIGHT"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowEnumComponent {#3354
  +label: "Sidebar position"
  +help: ""
  +settingsKey: "KBIN_GENERAL_SIDEBAR_POSITION"
  +values: [
    [
      "name" => "Left"
      "value" => "LEFT"
    ]
    [
      "name" => "Right"
      "value" => "RIGHT"
    ]
  ]
  +defaultValue: "RIGHT"
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.19 ms
Input props
[
  "label" => "Dynamic lists"
  "settingsKey" => "KBIN_GENERAL_DYNAMIC_LISTS"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3408
  +label: "Dynamic lists"
  +help: ""
  +settingsKey: "KBIN_GENERAL_DYNAMIC_LISTS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.13 ms
Input props
[
  "label" => "Rounded edges"
  "settingsKey" => "KBIN_GENERAL_ROUNDED_EDGES"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3473
  +label: "Rounded edges"
  +help: ""
  +settingsKey: "KBIN_GENERAL_ROUNDED_EDGES"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.13 ms
Input props
[
  "label" => "Infinite scrolling"
  "help" => "Automatically load more content when you reach the bottom of the page."
  "settingsKey" => "KBIN_GENERAL_INFINITE_SCROLL"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3529
  +label: "Infinite scrolling"
  +help: "Automatically load more content when you reach the bottom of the page."
  +settingsKey: "KBIN_GENERAL_INFINITE_SCROLL"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.13 ms
Input props
[
  "label" => "Sticky navbar"
  "help" => "The navbar will stick to the top of the page when you scroll down."
  "settingsKey" => "KBIN_GENERAL_FIXED_NAVBAR"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3588
  +label: "Sticky navbar"
  +help: "The navbar will stick to the top of the page when you scroll down."
  +settingsKey: "KBIN_GENERAL_FIXED_NAVBAR"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.12 ms
Input props
[
  "label" => "Show top bar"
  "settingsKey" => "KBIN_GENERAL_TOPBAR"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3644
  +label: "Show top bar"
  +help: ""
  +settingsKey: "KBIN_GENERAL_TOPBAR"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.12 ms
Input props
[
  "label" => "Turbo mode (experimental)"
  "settingsKey" => "KBIN_GENERAL_TURBO"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3700
  +label: "Turbo mode (experimental)"
  +help: ""
  +settingsKey: "KBIN_GENERAL_TURBO"
  +defaultValue: false
  +reloadRequired: true
}
user_settings_row_switch App\Twig\Components\UserSettingsRowSwitchComponent 12.0 MiB 0.24 ms
Input props
[
  "label" => "Mark new comments"
  "settingsKey" => "KBIN_MARK_NEW_COMMENTS"
]
Attributes
[]
Component
App\Twig\Components\UserSettingsRowSwitchComponent {#3758
  +label: "Mark new comments"
  +help: ""
  +settingsKey: "KBIN_MARK_NEW_COMMENTS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.13 ms
Input props
[
  "label" => "Show "Support Us" block"
  "settingsKey" => "KBIN_GENERAL_SUPPORT_US_BLOCK"
  "defaultValue" => true
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#3821
  +label: "Show "Support Us" block"
  +help: ""
  +settingsKey: "KBIN_GENERAL_SUPPORT_US_BLOCK"
  +defaultValue: true
  +reloadRequired: true
}
user_settings_row_switch App\Twig\Components\UserSettingsRowSwitchComponent 12.0 MiB 0.15 ms
Input props
[
  "label" => "Show subscribed users"
  "settingsKey" => "KBIN_SUB_CHANNEL_USERS"
]
Attributes
[]
Component
App\Twig\Components\UserSettingsRowSwitchComponent {#3879
  +label: "Show subscribed users"
  +help: ""
  +settingsKey: "KBIN_SUB_CHANNEL_USERS"
  +defaultValue: false
  +reloadRequired: true
}
user_settings_row_switch App\Twig\Components\UserSettingsRowSwitchComponent 12.0 MiB 0.14 ms
Input props
[
  "label" => "Show subscribed magazines"
  "settingsKey" => "KBIN_SUB_CHANNEL_MAGAZINES"
]
Attributes
[]
Component
App\Twig\Components\UserSettingsRowSwitchComponent {#3935
  +label: "Show subscribed magazines"
  +help: ""
  +settingsKey: "KBIN_SUB_CHANNEL_MAGAZINES"
  +defaultValue: false
  +reloadRequired: true
}
user_settings_row_switch App\Twig\Components\UserSettingsRowSwitchComponent 12.0 MiB 0.14 ms
Input props
[
  "label" => "Show subscribed domains"
  "settingsKey" => "KBIN_SUB_CHANNEL_DOMAINS"
]
Attributes
[]
Component
App\Twig\Components\UserSettingsRowSwitchComponent {#3991
  +label: "Show subscribed domains"
  +help: ""
  +settingsKey: "KBIN_SUB_CHANNEL_DOMAINS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.13 ms
Input props
[
  "label" => "Auto media preview"
  "help" => "Automatically expand media previews."
  "settingsKey" => "KBIN_ENTRIES_SHOW_PREVIEW"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#4047
  +label: "Auto media preview"
  +help: "Automatically expand media previews."
  +settingsKey: "KBIN_ENTRIES_SHOW_PREVIEW"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.12 ms
Input props
[
  "label" => "Compact view"
  "settingsKey" => "KBIN_ENTRIES_COMPACT"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#4103
  +label: "Compact view"
  +help: ""
  +settingsKey: "KBIN_ENTRIES_COMPACT"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.12 ms
Input props
[
  "label" => "Show users’ avatars"
  "settingsKey" => "KBIN_ENTRIES_SHOW_USERS_AVATARS"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#4159
  +label: "Show users’ avatars"
  +help: ""
  +settingsKey: "KBIN_ENTRIES_SHOW_USERS_AVATARS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.12 ms
Input props
[
  "label" => "Show magazines’ icons"
  "settingsKey" => "KBIN_ENTRIES_SHOW_MAGAZINES_ICONS"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#4215
  +label: "Show magazines’ icons"
  +help: ""
  +settingsKey: "KBIN_ENTRIES_SHOW_MAGAZINES_ICONS"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.12 ms
Input props
[
  "label" => "Show thumbnails"
  "settingsKey" => "KBIN_ENTRIES_SHOW_THUMBNAILS"
  "defaultValue" => true
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#4271
  +label: "Show thumbnails"
  +help: ""
  +settingsKey: "KBIN_ENTRIES_SHOW_THUMBNAILS"
  +defaultValue: true
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.12 ms
Input props
[
  "label" => "Auto media preview"
  "help" => "Automatically expand media previews."
  "settingsKey" => "KBIN_POSTS_SHOW_PREVIEW"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#4327
  +label: "Auto media preview"
  +help: "Automatically expand media previews."
  +settingsKey: "KBIN_POSTS_SHOW_PREVIEW"
  +defaultValue: false
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.12 ms
Input props
[
  "label" => "Show users’ avatars"
  "settingsKey" => "KBIN_POSTS_SHOW_USERS_AVATARS"
  "defaultValue" => true
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#4383
  +label: "Show users’ avatars"
  +help: ""
  +settingsKey: "KBIN_POSTS_SHOW_USERS_AVATARS"
  +defaultValue: true
  +reloadRequired: true
}
settings_row_enum App\Twig\Components\SettingsRowEnumComponent 12.0 MiB 0.24 ms
Input props
[
  "label" => "Comment reply position"
  "help" => "Display the comment reply form either at the top or bottom of the page. When 'infinite scroll' is enabled the position will always appear at the top."
  "settingsKey" => "KBIN_COMMENTS_REPLY_POSITION"
  "values" => [
    [
      "name" => "top"
      "value" => "TOP"
    ]
    [
      "name" => "bottom"
      "value" => "BOTTOM"
    ]
  ]
  "defaultValue" => "TOP"
]
Attributes
[]
Component
App\Twig\Components\SettingsRowEnumComponent {#4439
  +label: "Comment reply position"
  +help: "Display the comment reply form either at the top or bottom of the page. When 'infinite scroll' is enabled the position will always appear at the top."
  +settingsKey: "KBIN_COMMENTS_REPLY_POSITION"
  +values: [
    [
      "name" => "top"
      "value" => "TOP"
    ]
    [
      "name" => "bottom"
      "value" => "BOTTOM"
    ]
  ]
  +defaultValue: "TOP"
  +reloadRequired: true
}
settings_row_switch App\Twig\Components\SettingsRowSwitchComponent 12.0 MiB 0.14 ms
Input props
[
  "label" => "Show Comment Avatars"
  "help" => "Display/hide user avatars when viewing comments on a single thread or post."
  "settingsKey" => "KBIN_COMMENTS_SHOW_USER_AVATAR"
  "defaultValue" => true
]
Attributes
[]
Component
App\Twig\Components\SettingsRowSwitchComponent {#4497
  +label: "Show Comment Avatars"
  +help: "Display/hide user avatars when viewing comments on a single thread or post."
  +settingsKey: "KBIN_COMMENTS_SHOW_USER_AVATAR"
  +defaultValue: true
  +reloadRequired: true
}
user_actions App\Twig\Components\UserActionsComponent 12.0 MiB 0.56 ms
Input props
[
  "user" => App\Entity\User {#264
    +avatar: null
    +cover: null
    +email: "leo@sh.itjust.works"
    +username: "@leo@sh.itjust.works"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1707576164 {#272
      date: 2024-02-10 15:42:44.0 +01:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#252 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#248 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#237 …}
    +entries: Doctrine\ORM\PersistentCollection {#195 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#167 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#140 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#110 …}
    +posts: Doctrine\ORM\PersistentCollection {#83 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#98 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1801 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1684 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1513 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1919 …}
    +follows: Doctrine\ORM\PersistentCollection {#1607 …}
    +followers: Doctrine\ORM\PersistentCollection {#1869 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1827 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1856 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1855 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#2415 …}
    +reports: Doctrine\ORM\PersistentCollection {#1803 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1837 …}
    +violations: Doctrine\ORM\PersistentCollection {#1791 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1887 …}
    +awards: Doctrine\ORM\PersistentCollection {#1949 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1879 …}
    +categories: Doctrine\ORM\PersistentCollection {#1864 …}
    -id: 45405
    -password: "$2y$13$Y4Qyi3lMhMImNCNwG468J.St4/K8YtrmxZtaZreQHi7kEQvu89db6"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1893 …}
    +apId: "leo@sh.itjust.works"
    +apProfileId: "https://sh.itjust.works/u/leo"
    +apPublicUrl: "https://sh.itjust.works/u/leo"
    +apFollowersUrl: null
    +apInboxUrl: "https://sh.itjust.works/inbox"
    +apDomain: "sh.itjust.works"
    +apPreferredUsername: "leo"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1727293540 {#273
      date: 2024-09-25 21:45:40.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1694335254 {#267
      date: 2023-09-10 10:40:54.0 +02:00
    }
  }
]
Attributes
[]
Component
App\Twig\Components\UserActionsComponent {#4573
  +user: App\Entity\User {#264
    +avatar: null
    +cover: null
    +email: "leo@sh.itjust.works"
    +username: "@leo@sh.itjust.works"
    +roles: []
    +followersCount: 0
    +homepage: "front"
    +about: null
    +lastActive: DateTime @1707576164 {#272
      date: 2024-02-10 15:42:44.0 +01:00
    }
    +markedForDeletionAt: null
    +fields: null
    +oauthGithubId: null
    +oauthGoogleId: null
    +oauthFacebookId: null
    +oauthKeycloakId: null
    +hideAdult: true
    +showSubscribedUsers: true
    +showSubscribedMagazines: true
    +showSubscribedDomains: true
    +preferredLanguages: []
    +featuredMagazines: null
    +showProfileSubscriptions: false
    +showProfileFollowings: true
    +markNewComments: false
    +notifyOnNewEntry: false
    +notifyOnNewEntryReply: true
    +notifyOnNewEntryCommentReply: true
    +notifyOnNewPost: false
    +notifyOnNewPostReply: true
    +notifyOnNewPostCommentReply: true
    +addMentionsEntries: false
    +addMentionsPosts: true
    +isBanned: false
    +isVerified: false
    +isDeleted: false
    +isBot: false
    +spamProtection: true
    +customCss: null
    +ignoreMagazinesCustomCss: false
    +moderatorTokens: Doctrine\ORM\PersistentCollection {#252 …}
    +magazineOwnershipRequests: Doctrine\ORM\PersistentCollection {#248 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#237 …}
    +entries: Doctrine\ORM\PersistentCollection {#195 …}
    +entryVotes: Doctrine\ORM\PersistentCollection {#167 …}
    +entryComments: Doctrine\ORM\PersistentCollection {#140 …}
    +entryCommentVotes: Doctrine\ORM\PersistentCollection {#110 …}
    +posts: Doctrine\ORM\PersistentCollection {#83 …}
    +postVotes: Doctrine\ORM\PersistentCollection {#98 …}
    +postComments: Doctrine\ORM\PersistentCollection {#1801 …}
    +postCommentVotes: Doctrine\ORM\PersistentCollection {#1684 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#1513 …}
    +subscribedDomains: Doctrine\ORM\PersistentCollection {#1919 …}
    +follows: Doctrine\ORM\PersistentCollection {#1607 …}
    +followers: Doctrine\ORM\PersistentCollection {#1869 …}
    +blocks: Doctrine\ORM\PersistentCollection {#1827 …}
    +blockers: Doctrine\ORM\PersistentCollection {#1856 …}
    +blockedMagazines: Doctrine\ORM\PersistentCollection {#1855 …}
    +blockedDomains: Doctrine\ORM\PersistentCollection {#2415 …}
    +reports: Doctrine\ORM\PersistentCollection {#1803 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1837 …}
    +violations: Doctrine\ORM\PersistentCollection {#1791 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1887 …}
    +awards: Doctrine\ORM\PersistentCollection {#1949 …}
    +subscribedCategories: Doctrine\ORM\PersistentCollection {#1879 …}
    +categories: Doctrine\ORM\PersistentCollection {#1864 …}
    -id: 45405
    -password: "$2y$13$Y4Qyi3lMhMImNCNwG468J.St4/K8YtrmxZtaZreQHi7kEQvu89db6"
    -totpSecret: null
    -totpBackupCodes: []
    -oAuth2UserConsents: Doctrine\ORM\PersistentCollection {#1893 …}
    +apId: "leo@sh.itjust.works"
    +apProfileId: "https://sh.itjust.works/u/leo"
    +apPublicUrl: "https://sh.itjust.works/u/leo"
    +apFollowersUrl: null
    +apInboxUrl: "https://sh.itjust.works/inbox"
    +apDomain: "sh.itjust.works"
    +apPreferredUsername: "leo"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: false
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1727293540 {#273
      date: 2024-09-25 21:45:40.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1694335254 {#267
      date: 2023-09-10 10:40:54.0 +02:00
    }
  }
}
date App\Twig\Components\DateComponent 12.0 MiB 0.15 ms
Input props
[
  "date" => DateTimeImmutable @1694335254 {#267
    date: 2023-09-10 10:40:54.0 +02:00
  }
]
Attributes
[]
Component
App\Twig\Components\DateComponent {#4634
  +date: DateTimeImmutable @1694335254 {#267
    date: 2023-09-10 10:40:54.0 +02:00
  }
}
related_magazines App\Twig\Components\RelatedMagazinesComponent 12.0 MiB 11.65 ms
Input props
[
  "magazine" => null
  "tag" => null
]
Attributes
[]
Component
App\Twig\Components\RelatedMagazinesComponent {#4721
  +limit: 4
  +tag: null
  +magazine: null
  +type: "random"
  +title: "random_magazines"
  +refreshedRandom: false
  -repository: App\Repository\MagazineRepository {#1371 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
active_users App\Twig\Components\ActiveUsersComponent 12.0 MiB 0.35 ms
Input props
[
  "magazine" => null
]
Attributes
[]
Component
App\Twig\Components\ActiveUsersComponent {#4789
  +magazine: null
  -userRepository: App\Repository\UserRepository {#603 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
related_categories App\Twig\Components\RelatedCategoriesComponent 12.0 MiB 2.89 ms
Input props
[
  "magazine" => null
  "tag" => null
]
Attributes
[]
Component
App\Twig\Components\RelatedCategoriesComponent {#4848
  +limit: 4
  +tag: null
  +magazine: null
  +type: "random"
  +title: "random_categories"
  +refreshedRandom: false
  -repository: App\Repository\CategoryRepository {#4849 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
}
related_posts App\Twig\Components\RelatedPostsComponent 12.0 MiB 1.44 ms
Input props
[
  "magazine" => null
  "tag" => null
]
Attributes
[]
Component
App\Twig\Components\RelatedPostsComponent {#4919
  +limit: 4
  +tag: null
  +magazine: null
  +type: "random"
  +post: null
  +title: "random_posts"
  +refreshedRandom: false
  -repository: App\Repository\PostRepository {#4918 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -mentionManager: App\Service\MentionManager {#1507 …}
}
related_entries App\Twig\Components\RelatedEntriesComponent 12.0 MiB 1.44 ms
Input props
[
  "magazine" => null
  "tag" => null
]
Attributes
[]
Component
App\Twig\Components\RelatedEntriesComponent {#4989
  +limit: 4
  +tag: null
  +magazine: null
  +type: "random"
  +entry: null
  +title: "random_entries"
  +refreshedRandom: false
  -repository: App\Repository\EntryRepository {#4988 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -twig: Twig\Environment {#1252 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -mentionManager: App\Service\MentionManager {#1507 …}
}
support_us_block App\Twig\Components\SupportUsBlock 12.0 MiB 0.21 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\SupportUsBlock {#5058
  +subject: ? App\Entity\Contracts\VotableInterface
  +url: ? string
  -twig: Twig\Environment {#1252 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableTagAwareAdapter {#600 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#1328 …}
  -partnerBlockRepository: App\Repository\PartnerBlockRepository {#5059 …}
}
featured_magazines App\Twig\Components\FeaturedMagazinesComponent 12.0 MiB 4.63 ms
Input props
[
  "magazine" => null
]
Attributes
[]
Component
App\Twig\Components\FeaturedMagazinesComponent {#5151
  +magazine: null
  -twig: Twig\Environment {#1252 …}
  -repository: App\Repository\MagazineRepository {#1371 …}
}