{"version":"https://jsonfeed.org/version/1","title":"Micro.blog - terry matula","home_page_url":"https://micro.blog","feed_url":"https://micro.blog/posts/terry@phpc.social","_microblog":{"about":"https://micro.blog/about/api","id":"209364","username":"terry@phpc.social","bio":"Author of a top 900 Minecraft Guide\n\n#php dev for many years, mostly using #laravel\n\nRandom thoughts posted here","pronouns":"","is_following":false,"is_you":false,"following_count":1,"discover_count":0},"author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://micro.blog/photos/200/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg"},"items":[{"id":"92113358","content_html":"<p><span class=\"h-card\"><a href=\"https://phpc.social/@outofcontrol\" class=\"u-url mention\">@<span>outofcontrol</span></a></span> <span class=\"h-card\"><a href=\"https://micro.blog/llbbl\" class=\"u-url mention\">@<span>logan</span></a></span> <br>Looks like it's <a href=\"https://llbbl.blog/feed.xml\"><span class=\"invisible\">https://</span><span class=\"\">llbbl.blog/feed.xml</span><span class=\"invisible\"></span></a></p>","url":"https://phpc.social/users/terry/statuses/116743669548902771","date_published":"2026-06-13T16:10:28+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-06-13 16:10","date_timestamp":1781367028,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"92050986","content_html":"<p>This is what happens after you re-listen to 2112 multiple times over a few days.</p>","url":"https://phpc.social/users/terry/statuses/116738137694792065","date_published":"2026-06-12T16:43:38+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-06-12 16:43","date_timestamp":1781282618,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"92050912","content_html":"<p>Sometimes I wish I had, like, a PhD in Sociology or something, and could spend my days researching for some bs topic that came to mind.</p><p>Today, it would be about Rush, objectivism, and the \"fork in the road\" that nerdy, teenage, white boys hit when they come of age. </p><p>I came to the conclusion, \"you know, Rand is right. If everyone thought and behaved exactly as she did, things might be fine. However, I live in the real world\". Many people don't get to that point.</p>","summary":"","url":"https://phpc.social/@terry/116738131632824726","date_published":"2026-06-12T16:42:06+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-06-12 16:42","date_timestamp":1781282526,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"91938944","content_html":"<p><span class=\"h-card\"><a href=\"https://phpc.social/@outofcontrol\" class=\"u-url mention\">@<span>outofcontrol</span></a></span> got nosebleeds for $80 plus fees, and there were a lot of non-resell seats left. Had first looked at the Ft Worth shows in 2 weeks and THOSE were all resell, and minimum $300/seat. </p><p>And I guess officially sanctioned by Ticketmaster. 🤷</p>","url":"https://phpc.social/users/terry/statuses/116728442212598392","date_published":"2026-06-10T23:37:57+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-06-10 23:37","date_timestamp":1781134677,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"91907925","content_html":"<p>Rush tickets acquired. San Antonio, Sept 23. </p><p>Wife asked if I wanted to take our teenager, and I laughed and said \"No, I want to actually enjoy myself\".</p>","summary":"","url":"https://phpc.social/@terry/116726468463031870","date_published":"2026-06-10T15:16:00+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-06-10 15:16","date_timestamp":1781104560,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"91771945","content_html":"<p>It's probably been 10 years since I was actually interested in an Apple keynote. I guess they still do cool things, but it's so incremental at this point. Watching people live-post things like \"The clock got a new font face!! Yes!\".  </p><p>If that's your thing, cool. But that seems to be all there is these days.</p>","summary":"","url":"https://phpc.social/@terry/116715795451096243","date_published":"2026-06-08T18:01:43+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-06-08 18:01","date_timestamp":1780941703,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"91501636","content_html":"<p><span class=\"h-card\"><a href=\"https://phpc.social/@kboyd\" class=\"u-url mention\">@<span>kboyd</span></a></span> SXSW, many years ago, had the music conference as its main draw. They still do panels and keynotes, but not as emphasized.</p>","url":"https://phpc.social/users/terry/statuses/116689064737442620","date_published":"2026-06-04T00:43:44+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-06-04 00:43","date_timestamp":1780533824,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"91214778","content_html":"<p>In action movies, the climax often involves the hero in a shootout with the bad guy minions. I'm trying to figure out how many of my fellow minions I'd need to see taken out before I go \"Nope, not worth it\". </p><p>Under 6, I'd still think I might be ok. Once it hits 10, no.</p>","summary":"","url":"https://phpc.social/@terry/116664094807967349","date_published":"2026-05-30T14:53:33+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-05-30 14:53","date_timestamp":1780152813,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"91122868","content_html":"<p>Ok fine, I'm ALSO dropping out of America 250. Y'all happy now?</p>","summary":"","url":"https://phpc.social/@terry/116655928798067131","date_published":"2026-05-29T04:16:50+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-05-29 04:16","date_timestamp":1780028210,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"90917201","content_html":"<p>Vibe coding is fine for side projects, but not for years-old legacy business code where even 1M token context won't account for all the weird decisions that startup engineers deal with. </p><p>It WILL hallucinate, and fall on a more experienced engineer to clean up.</p>","summary":"","url":"https://phpc.social/@terry/116638901498503165","date_published":"2026-05-26T04:06:34+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-05-26 04:06","date_timestamp":1779768394,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"90672107","content_html":"<p>I think the first PHP conference I went to was in 2010, if I remember it was a small weekend thing sponsored by SpiceWorks(? Are they still around?). Since then, I've been to many more and even done sessions at a few. </p><p>In all that time, I never did a post-conference game night. Maybe before I retire I'll actually go to one.</p>","summary":"","url":"https://phpc.social/@terry/116615178714046793","date_published":"2026-05-21T23:33:33+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-05-21 23:33","date_timestamp":1779406413,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"90592430","content_html":"<p>Are there any people writing about \"AI\" is a measured, reasonable way? Like, a lot people agree with the shitty aspects, but it exists and probably won't be going anywhere. How do we traverse that path in a sane way?</p>","summary":"","url":"https://phpc.social/@terry/116609084285341283","date_published":"2026-05-20T21:43:39+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-05-20 21:43","date_timestamp":1779313419,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"90266403","content_html":"<p>Joined \"GameDev.tv Game Jam 2026\" <a href=\"https://phpc.social/tags/gdtvjam\" class=\"mention hashtag\">#<span>gdtvjam</span></a>  ... and I've got an ok idea I think I could actually get done in a week. Going to try something in 3D.</p><p>I learned about the GridMap node (in a GameDev video actually) and want to incorporate that. Maybe even a Path node?!?</p>","summary":"","url":"https://phpc.social/@terry/116581428654696134","date_published":"2026-05-16T00:30:28+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-05-16 00:30","date_timestamp":1778891428,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"90088186","content_html":"<p>It got me thinking in terms of dev, with this recent npm attack. </p><p>Hero: We've got a security vulnerability... I need to revoke the GitHub tokens.</p><p>Partner: Maybe we should wait for SecOps. They'll be here in like 2 minutes. </p><p>Hero: Don't you see?!? There's no time!!!</p><p>* Revokes tokens. `rm -rf .` gets run. *</p><p>Manager: You did your best Hero. You can't blame yourself. You're the best dev we got.</p>","url":"https://phpc.social/users/terry/statuses/116567768249414453","date_published":"2026-05-13T14:36:27+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-05-13 14:36","date_timestamp":1778682987,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"90087852","content_html":"<p>My favorite thing in tv shows is when a cop/agent/etc gets to a place where \"bad guys\" are and refuses to wait for backup. Typically followed by getting beaten up/shot/stabbed and losing some or all of the suspects. And these people are usually framed as the \"hero\".</p>","summary":"","url":"https://phpc.social/@terry/116567746799838155","date_published":"2026-05-13T14:30:59+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-05-13 14:30","date_timestamp":1778682659,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89824811","content_html":"<p>I enjoy some good PHP discourse that's not just \"PHP is dead! No it's not!\".  </p><p>I've been doing PHP stuff over 20 years, and hope it's able to attract new people to it. I remember installing WAMP, following a Webmonkey tutorial, and getting a dynamic site working fairly quickly... And it was exciting. While working during the day with a compiled language, PHP provided that quick fix I enjoyed in the off hours. </p><p>My Houston Music Archive project is done in pure PHP, and it's still enjoyable.</p>","summary":"","url":"https://phpc.social/@terry/116540936747036324","date_published":"2026-05-08T20:52:50+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-05-08 20:52","date_timestamp":1778273570,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89768224","content_html":"<p><a href=\"https://phpc.social/@brendt/116532404863068424\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">phpc.social/@brendt/1165324048</span><span class=\"invisible\">63068424</span></a></p><p>I think this is pretty good, and probably apt for the past 20 years.  \"Leave politics at home and be where the people are\" is the only disagreement I have, because choosing to engage on a site that profits a literal racist IS a political choice. </p><p>Also, weird to see so much Laravel hate. I'm confident in the opinion that Laravel Herd is one of the greatest things I've encountered in my PHP career... and at least half of personal project use it WITHOUT Laravel.</p><blockquote class=\"quoteback\" data-author=\"brendt@phpc.social\" data-avatar=\"https://cdn.micro.blog/photos/200/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F112%2F122%2F535%2F428%2F390%2F863%2Foriginal%2Fee0219e65f0c426e.jpeg\">\n<p>I've been talking about this with people at several conferences for a couple months now. I wanted to properly write down my thoughts: <a href=\"https://stitcher.io/blog/php-biggest-problem\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">stitcher.io/blog/php-biggest-p</span><span class=\"invisible\">roblem</span></a></p>\n<footer>brendt@phpc.social <cite><a href=\"https://phpc.social/@brendt/116532404863068424\" class=\"u-in-reply-to\">phpc.social/@brendt/116532404863068424</a></cite></footer>\n</blockquote>","summary":"","url":"https://phpc.social/@terry/116533919632703098","date_published":"2026-05-07T15:08:18+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-05-07 15:08","date_timestamp":1778166498,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89671396","content_html":"<p>The ACL 2026 line up looks good. Glad to see Soda Pop Jetpacks were able to reunite.</p><p><img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fmedia.phpc.social%2Fmedia_attachments%2Ffiles%2F116%2F524%2F179%2F932%2F587%2F091%2Foriginal%2Fefae9e0ef1f55715.jpg\" alt=\"Lineup for ACL 2026. Some of the bands might not be totally \" loading=\"lazy\"></p>","summary":"","url":"https://phpc.social/@terry/116524186468508125","date_published":"2026-05-05T21:53:02+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-05-05 21:53","date_timestamp":1778017982,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89582719","content_html":"<p>Happy \"Take Five day\" for all who celebrate.</p>","summary":"","url":"https://phpc.social/@terry/116517525278960685","date_published":"2026-05-04T17:39:00+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-05-04 17:39","date_timestamp":1777916340,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"89056845","content_html":"<p>Just a random thought, related to nothing: If multiple people keep trying to harm you, maybe the problem is YOU.</p>","summary":"","url":"https://phpc.social/@terry/116472665463999124","date_published":"2026-04-26T19:30:33+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-04-26 19:30","date_timestamp":1777231833,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"87942959","content_html":"<p>I know generative AI is evil. But...</p><p>Taking crappy songs I wrote/recorded with friends while in high school, and making \"marching band\" versions is really funny.</p>","summary":"","url":"https://phpc.social/@terry/116377138532021425","date_published":"2026-04-09T22:36:48+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-04-09 22:36","date_timestamp":1775774208,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"87703878","content_html":"<p>I'm 99% sure this is not an original idea, but I haven't searched for anything because I fear some people may actually believe it :(</p>","url":"https://phpc.social/users/terry/statuses/116358576226501623","date_published":"2026-04-06T15:56:10+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-04-06 15:56","date_timestamp":1775490970,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"87703728","content_html":"<p>Astrophage is real, and Artemis 2 is on a mission to gather samples. </p><p>Weir's Project Hail Mary is released to theaters the same time a ship bearing the name of ANOTHER of his books is sent to space? Coincidence?!?!?</p>","summary":"","url":"https://phpc.social/@terry/116358568891235309","date_published":"2026-04-06T15:54:18+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-04-06 15:54","date_timestamp":1775490858,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"87600925","content_html":"<p>Vibe coding is bad and not maintainable. Think most professional devs agree with that. </p><p>However, a local Ollama model using offline docs for RAG is pretty amazing, especially with 3rd party APIs. I used to use this Mac app called Dash, that supposedly allows MCP access... But I prefer flat files. It's slower than commercial products, but it's all on my computer and not relying on model's internal \"knowledge\".</p>","summary":"","url":"https://phpc.social/@terry/116347715856378357","date_published":"2026-04-04T17:54:14+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-04-04 17:54","date_timestamp":1775325254,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"87323684","content_html":"<p>13 years ago, I wrote a book for <a href=\"https://phpc.social/tags/laravel\" class=\"mention hashtag\">#<span>laravel</span></a> v4. In the past quarter, 2 people bought physical copies and 4 bought the e-book. </p><p>Thanks for the $5 in royalties, but damn...</p>","summary":"","url":"https://phpc.social/@terry/116324180591246154","date_published":"2026-03-31T14:08:54+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-03-31 14:08","date_timestamp":1774966134,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"86613254","content_html":"<p class=\"quote-inline\">RE: <a href=\"https://phpc.social/@Crell/116262239935723893\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">phpc.social/@Crell/11626223993</span><span class=\"invisible\">5723893</span></a></p><p>We bought a used Hyundai Kona EV, after having a Leaf EV for many years. Easily goes 200 miles on a charge, and with planning, much further if you find 1 hr fast chargers on your route. No subscriptions, and I think our monthly electric bill has MAYBE gone up $10ish on average. </p><p>Still have a gas minivan, but rarely gets used these days. The only downside is the $200 a year we have to pay Texas, to offset gas tax.</p><blockquote class=\"quoteback\" data-author=\"Crell@phpc.social\" data-avatar=\"https://cdn.micro.blog/photos/200/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F000%2F000%2F948%2Foriginal%2Fb2c0fbf19043d758.jpg\">\n<p>You know, the best way to insulate yourself from the wild oil price swings that <a href=\"https://phpc.social/tags/Trump\" class=\"mention hashtag\">#<span>Trump</span></a> is causing as part of his moronically stupid war with Iran is to go all-in on electric.  Car, appliances, solar.</p>\n<p>It won't solve everything, but it will reduce your direct impact.  And you help the planet, and undermine the petro-dictators. Wins all around!</p>\n<p class=\"microblog_hashtags\"><a href=\"https://phpc.social/tags/IranWar\" class=\"mention hashtag\">#<span>IranWar</span></a> <a href=\"https://phpc.social/tags/ClimateChange\" class=\"mention hashtag\">#<span>ClimateChange</span></a></p>\n<footer>Crell@phpc.social <cite><a href=\"https://phpc.social/@Crell/116262239935723893\" class=\"u-in-reply-to\">phpc.social/@Crell/116262239935723893</a></cite></footer>\n</blockquote>","summary":"","url":"https://phpc.social/@terry/116262304286731059","date_published":"2026-03-20T15:52:57+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-03-20 15:52","date_timestamp":1774021977,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"86206317","content_html":"<p>little thing I was curious about: <a href=\"https://matula.github.io/furry.html\"><span class=\"invisible\">https://</span><span>matula.github.io/furry.html</span><span class=\"invisible\"></span></a></p>","summary":"","url":"https://phpc.social/@terry/116228870238863260","date_published":"2026-03-14T18:10:13+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-03-14 18:10","date_timestamp":1773511813,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"85883432","content_html":"<p>99% of my usage is \"turn these files into 320k mp3s\" or \"convert this file to an mp4\"... And that's solid. But I also noticed it'll attempt other ffmpeg flags as well, like being able to edit the length of a file... Or convert to gif. I added some volume level shots as well, but haven't really tested it. </p><p>I'm not really sure what ffmpeg the Qwen model has by default. But might be cool to custom train one and get the model size as lean as possible.</p>","url":"https://phpc.social/users/terry/statuses/116203572679958342","date_published":"2026-03-10T06:56:43+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-03-10 06:56","date_timestamp":1773125803,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"85883011","content_html":"<p><a href=\"https://github.com/matula/ai-ncoder\"><span class=\"invisible\">https://</span><span>github.com/matula/ai-ncoder</span><span class=\"invisible\"></span></a></p><p>I hacked this together months ago because I found myself converting a bunch of old audio files, and I was continually googling <a href=\"https://phpc.social/tags/ffmpeg\" class=\"mention hashtag\">#<span>ffmpeg</span></a> flags. I thought it would be cool to use natural language for transcoding, but wanted it to keep it local, and workable offline.</p><p>So I grabbed the smallest, usable model and hacked together some Python and prompts... And it just kind of worked. </p><p> I thought I'd clean it up and share.</p>","summary":"","url":"https://phpc.social/@terry/116203534601208936","date_published":"2026-03-10T06:47:02+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-03-10 06:47","date_timestamp":1773125222,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"85519817","content_html":"<p>Ha! Just yesterday was musing about how I hadn't seen any Anthropic traffic.  At least their UA is easily blockable.</p><p><img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fmedia.phpc.social%2Fmedia_attachments%2Ffiles%2F116%2F173%2F275%2F838%2F626%2F722%2Foriginal%2Feb3210bf649e41f9.png\" alt=\"screenshot of site analytics with Anthropic making multiple calls in a short time\" loading=\"lazy\"></p>","summary":"","url":"https://phpc.social/@terry/116173283430017461","date_published":"2026-03-04T22:33:46+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-03-04 22:33","date_timestamp":1772663626,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"85461387","content_html":"<p><span class=\"h-card\"><a href=\"https://phpc.social/@bobmagicii\" class=\"u-url mention\">@<span>bobmagicii</span></a></span> I could just be lucky, and looking at logs I don't see any \"Claude\" ua. I do see \"amazonbot\" and \"GPTBot\" among others. If Anthropic is hitting my site, they're not slamming it at least. </p><p>Looking at search referrers, it's interesting I don't see Google. Just DDG and Bing. Not sure if that's just because of the type of people who might search for obscure Houston bands, or Gemini screwing up search.</p>","url":"https://phpc.social/users/terry/statuses/116168956434235618","date_published":"2026-03-04T04:13:21+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-03-04 04:13","date_timestamp":1772597601,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"85460625","content_html":"<p><span class=\"h-card\"><a href=\"https://phpc.social/@bobmagicii\" class=\"u-url mention\">@<span>bobmagicii</span></a></span> it's a bit janky, but I pass the IP to the Team Cymru service to get the ASN. And I'm storing the asn to a blocklist.json file.  </p><p>My biggest issue was with Tencent Chinese servers, with multiple IPs but they all had the same ASN. This way I can block ALL of them with a single value instead of hundreds/thousands of different IPs. </p><p>For AI bots that have \"good\" user agents, I have a separate system that parses the ua and blocks based on that. Most big AI companies are good about it.</p><p><img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fmedia.phpc.social%2Fmedia_attachments%2Ffiles%2F116%2F168%2F853%2F328%2F796%2F472%2Foriginal%2Fecc6ee90fa78924b.png\" alt=\"php code to block based on asn\" loading=\"lazy\"></p><p><img src=\"https://cdn.micro.blog/photos/1000x/https%3A%2F%2Fmedia.phpc.social%2Fmedia_attachments%2Ffiles%2F116%2F168%2F853%2F347%2F861%2F358%2Foriginal%2F419951ad9839acef.png\" alt=\"php code to get asn from team cymru\" loading=\"lazy\"></p>","url":"https://phpc.social/users/terry/statuses/116168883491807576","date_published":"2026-03-04T03:54:48+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-03-04 03:54","date_timestamp":1772596488,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"85453080","content_html":"<p>I learned about Team Cymru, and their IP services. Pretty cool, and \"free\". Using PHP's dns_get_record, I'm able to make a super quick query for an ASN record, and block the ones I don't want. </p><p>I'm no security expert, but this seems to be working well. </p><p>This whole project is just pleasant to work on... no frameworks or database or external dependencies. Just pure PHP, with a smattering of CSS and JS.</p>","url":"https://phpc.social/users/terry/statuses/116168218555557288","date_published":"2026-03-04T01:05:42+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-03-04 01:05","date_timestamp":1772586342,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"85196848","content_html":"<p>Kind of wild to see all the Mastodon/Fediverse instances that immediately ping my site after posting a link or even replying to a post with a link. </p><p>And then right after that, all the \"exploit\" pings.</p>","summary":"","url":"https://phpc.social/@terry/116146810889327764","date_published":"2026-02-28T06:21:27+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-02-28 06:21","date_timestamp":1772259687,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"85178250","content_html":"<p>Site is now getting hammered by bots trying exploits. I may need to put CloudFlare in front, which is sad. </p><p>This is why we can't have nice things.</p>","url":"https://phpc.social/users/terry/statuses/116145045450282758","date_published":"2026-02-27T22:52:29+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-02-27 22:52","date_timestamp":1772232749,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"85050811","content_html":"<p>I've been working on and off the past year on a site that chronicles the Houston (alt rock) music scene from the 80s and 90s: <a href=\"https://www.houstonmusicarchive.com/\"><span class=\"invisible\">https://www.</span><span>houstonmusicarchive.com/</span><span class=\"invisible\"></span></a></p><p>No frameworks or build processes, and all json-powered. I've even got a \"functions.php\" file. Last I checked, the total download size was 81kb.</p>","summary":"","url":"https://phpc.social/@terry/116135427958566141","date_published":"2026-02-26T06:06:37+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-02-26 06:06","date_timestamp":1772085997,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"84552183","content_html":"<p>And the price was a lot lower, and fairly stable, so stores weren't changing prices constantly. </p><p>Today, the literal top of the government is doing crypto pump and dumps, and the billionaire-iest and capitalist-iest people are the main pushers. Wtf happened? </p><p>Also, I remember when Doge was announced as a parody... And a playground for crypto stuff. Another long gone wallet, and I shudder to think what it is worth today.</p>","url":"https://phpc.social/users/terry/statuses/116094290996547102","date_published":"2026-02-18T23:44:57+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-02-18 23:44","date_timestamp":1771458297,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"83951720","content_html":"<p>I actually did end up doing a very quick write up, and even pushed up some example code: <a href=\"https://www.terrymatula.com/random/2026/creating-a-gameboy-game-with-php/\"><span class=\"invisible\">https://www.</span><span class=\"ellipsis\">terrymatula.com/random/2026/cr</span><span class=\"invisible\">eating-a-gameboy-game-with-php/</span></a><br><a href=\"https://phpc.social/tags/php\" class=\"mention hashtag\">#<span>php</span></a> <a href=\"https://phpc.social/tags/gameboy\" class=\"mention hashtag\">#<span>gameboy</span></a></p>","url":"https://phpc.social/users/terry/statuses/116044812407756163","date_published":"2026-02-10T06:01:54+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-02-10 06:01","date_timestamp":1770703314,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"82013730","content_html":"<p>Works pretty well on mobile Chrome as well. I checked the \"use touch as mouse events\" box in Godot, but didn't expect it to be so seamless.</p>","url":"https://phpc.social/users/terry/statuses/115891716852612777","date_published":"2026-01-14T05:07:41+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2026-01-14 05:07","date_timestamp":1768367261,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"78188869","content_html":"<p>One of my favorite bits is the \"Encoded exploit payload\" is quite literally \"base64 for `sudeAccess -s admin`\" as it says in the comment.</p><p>And yes, I typed out all the functions and they do something.</p>","url":"https://phpc.social/users/terry/statuses/115567085715069300","date_published":"2025-11-17T21:09:43+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2025-11-17 21:09","date_timestamp":1763413783,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"77833124","content_html":"<p>All powered by Laravel, Reverb, and React on Forge. I know there are better ways to track movement and transmit to others... but I still need to research doing that over Reverb/Echo</p>","url":"https://phpc.social/users/terry/statuses/115538050630436559","date_published":"2025-11-12T18:05:43+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2025-11-12 18:05","date_timestamp":1762970743,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"77567561","content_html":"<p>After some brief research, it appears this isn't really possible. At least not without coordinating with places like Substack or Patreon before hand.</p><p>My thought was to act like a \"concierge\" between multiple services, but that breaks TOS. I guess I could just bootstrap it, and see how far i could get?</p><p>I'm thinking about Zappos, who basically just got shoes from FootLocker and sold them on the web when starting.</p>","url":"https://phpc.social/users/terry/statuses/115515929540076146","date_published":"2025-11-08T20:20:02+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2025-11-08 20:20","date_timestamp":1762633202,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"75807801","content_html":"<p>Setting up Resource Controllers was also super easy, with really good validation rules automatically applied.  I fully support LLM usage in those cases... and it left the \"fun\" stuff for me to focus on. </p><p>I honestly can't imagine, even with as good as it is, having AI write EVERYTHING without meticulous oversight (which defeats the idea that it's faster). Even things like Tailwind classes would mess up, and if I didn't know what I was doing, I'd waste a LOT of time fixing it.</p>","url":"https://phpc.social/users/terry/statuses/115376477487682089","date_published":"2025-10-15T05:15:32+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2025-10-15 05:15","date_timestamp":1760505332,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"19384806","content_html":"<p><span class=\"h-card\"><a href=\"https://phpc.social/@ian\" class=\"u-url mention\">@<span>ian</span></a></span> I need to check my notifications here more often. :)<br>Thank you for the offer!</p>","url":"https://phpc.social/users/terry/statuses/110429424771907655","date_published":"2023-05-25T12:54:58+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2023-05-25 12:54","date_timestamp":1685019298,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"17561344","content_html":"<p>When validating emails 'filter_var' is by far the slowest. Next is 'preg_match'.</p><p>I also did a hacky '$e= explode(\"@\")', make sure 'count($e) &gt; 1' and 'str_contains($e[1], \".\")'... and that was twice as fast as filter_var</p>","url":"https://phpc.social/users/terry/statuses/109997241945106690","date_published":"2023-03-10T05:05:12+00:00","author":{"name":"terry matula","url":"https://phpc.social/@terry","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmedia.phpc.social%2Faccounts%2Favatars%2F109%2F287%2F399%2F216%2F210%2F252%2Foriginal%2F67cd63ecc1b4934b.jpg","_microblog":{"username":"terry@phpc.social"}},"_microblog":{"date_relative":"2023-03-10 05:05","date_timestamp":1678424712,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}}]}