Recent Activity
Recent Heroes of the BenNadel.com Community
-
Posted 312 comments since October 23, 2012
-
Posted 58 comments since December 11, 2008
-
Posted 7 comments since May 3, 2024
-
Posted 17 comments since August 16, 2024
-
Posted 12 comments since December 11, 2008
-
Posted 13 comments since June 14, 2019
-
Posted 2 comments since May 15, 2026
-
Posted 24 comments since December 11, 2008
-
Posted 10 comments since January 14, 2010
-
Posted 19 comments since February 14, 2010
-
Posted 4 comments since October 26, 2012
-
Posted 7 comments since October 22, 2013
-
Posted 2 comments since June 6, 2014
-
Posted 7 comments since November 11, 2022
-
Posted 2 comments since February 21, 2026
-
Posted 1 comment since April 26, 2026
-
Posted 1 comment since April 26, 2026
-
Posted 1 comment since April 28, 2026
-
Posted 1 comment since April 29, 2026
-
Posted 1 comment since May 1, 2026
-
Posted 1 comment since May 11, 2026
-
Posted 1 comment since May 19, 2026
-
Posted 1 comment since May 22, 2026
-
Posted 1 comment since June 3, 2026
Recent Comments
Ben Nadel replied to a post Constant-Time Equality Check In ColdFusion
Comment posted June 5, 2026
@John, Interesting! I had tried to google for it originally (see my first comment), but the JavaDocs I came across didn't seem to have any mention of it. Though, to be 1000% fair, it's completely — read "likely" — possible that I just wasn't reading close enough 😆 Well, I'm still glad I tried it my... read entire comment from Ben Nadel.
John Whish replied to a post Constant-Time Equality Check In ColdFusion
Comment posted June 5, 2026
Interesting article Ben! I did a bit of digging and it seems that OpenJDK/Oracle states this in the implementation note: All bytes in digesta are examined to determine equality. The calculation time depends only on the length of digesta. It does not depend on the length of digestb or the contents of... read entire comment from John Whish.
Ben Nadel replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted June 5, 2026
@Charlie, Yeah, I cannot replicate this in any simple way. Only through letting stuff soak in production. I've added the stacktrace to the Adobe Tracker ticket. Hopefully it will help.... read entire comment from Ben Nadel.
Charlie Arehart replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted June 5, 2026
Good going, and thanks for confirming. (Again, I was not saying it WASN'T a bug, only that there were still other potential reasons for the failure, with what you'd shown to this point.) I'll say finally that I would strongly recommend you add that stack trace detail to the bug report. It may help A... read entire comment from Charlie Arehart.
Ben Nadel replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted June 5, 2026
Ok, I think I finally have indisputable proof that the bug is in Adobe ColdFusion. Here's the current code that I'm running: component { public any function testJson() { // TEMPORARY: Trying to prove beyond a reasonable doubt that the JSON error isn't on // my side of the wall. try { re... read entire comment from Ben Nadel.
Chris G replied to a post AI Makes Sitting With Discomfort Feel Shameful
Comment posted June 4, 2026
@James Moberg, WTF!!! That's incredible! I seriously like that song and echo @Ben's comment...this definitely hits hard! We need a new emoji for this, instead of heart-eyes...we need heart-ears.... read entire comment from Chris G.
Ben Nadel replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted June 4, 2026
Ok, I moved the code around a bit. From the top-page into a CFC and it finally fired once (ie, it finally threw and error and was logged). Oddly, the .warning() worked (made its way to Bugsnag), but the .logException() never showed up. But that could just have been a network blip.... read entire comment from Ben Nadel.
Ben Nadel replied to a post AI Makes Sitting With Discomfort Feel Shameful
Comment posted June 4, 2026
OMG, James, your song is 🔥🔥🔥🔥🔥 "Old man in the code" .... hits hard! This is soooo good. Weaving the parts of the post into the lyrics is flawless. I've already listened to it like 5 times 😮... read entire comment from Ben Nadel.
James Moberg replied to a post AI Makes Sitting With Discomfort Feel Shameful
Comment posted June 4, 2026
I empathize with your pain... and it's inspiring. Here's my currently-unreleased song "Digital Needlepoint" that I generated using Suno. https://www.mycfml.com/music/?song=digital-needlepoint Enjoy!... read entire comment from James Moberg.
Charlie Arehart replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted June 3, 2026
Interesting to hear, of course. And good catch on the original error being about the second arg. Even so, it may be that that's influenced by what's in the first arg, which may have been changing (between the failure and the success in the try) due to a race condition. If it never fires, here's a pe... read entire comment from Charlie Arehart.
Ben Nadel replied to a post Applying The Transactional Outbox Pattern In ColdFusion
Comment posted June 3, 2026
@Chris, The nice part was that it was actually quite easy to move to. I already had sendEmails() as a separate method — more or less. So, all I had to do was change that to enqueueMessage(), and then stick the scheduled task in the middle. It really wasn't much more than that. The biggest difference... read entire comment from Ben Nadel.
Chris G replied to a post Applying The Transactional Outbox Pattern In ColdFusion
Comment posted June 3, 2026
Firstly, thanks for the shout out! That made me smile today. 😁 Secondly, I really REALLY like this approach! It's giving me thoughts about restructuring my transactional email notification strategy.... read entire comment from Chris G.
Ben Nadel replied to a post Applying The Transactional Outbox Pattern In ColdFusion
Comment posted June 3, 2026
@Joe, I'm on MySQL. But, I'd be curious to know what you're talking about, both out of curiosity and also as something that might have parallels in MySQL.... read entire comment from Ben Nadel.
Joe Rinehart replied to a post Applying The Transactional Outbox Pattern In ColdFusion
Comment posted June 3, 2026
Hey Ben - any chance you're on Postgres? There's a fun Postgres-specific follow up to transactional outbox that I can send over.... read entire comment from Joe Rinehart.
Ben Nadel replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted June 3, 2026
Hmmmm, it's been a day and no logging at all. What the heck is going on here! Also, I realized that we were missing the critical point in the original error. The error was about the "query format" argument. But that's the second argument in the function signature. So, even if the shape of the struct... read entire comment from Ben Nadel.
Tony Monast replied to a post Constant-Time Equality Check In ColdFusion
Comment posted June 2, 2026
Indeed, with your short circuit which occurs if the lengths of the two strings are not identical, the loop and the array can never be larger than the length of the reference string. So, fundamentally, it's okay. I don't know why I didn't realize it, even though I clearly saw the short circuit. And i... read entire comment from Tony Monast.
Ben Nadel replied to a post Constant-Time Equality Check In ColdFusion
Comment posted June 2, 2026
@Tony, The string lengths are point of short-circuiting in my approach here. So it would at least prevent some of the CPU burn. But, it's also a good reminder that security is always a layered approach. Just because I'm short-circuiting, the form post is still parsed and allocated and all that jazz.... read entire comment from Ben Nadel.
Tony Monast replied to a post Constant-Time Equality Check In ColdFusion
Comment posted June 2, 2026
Hi Ben, Very interesting topic as always! One note: I haven't tested this, but wouldn't your function be vulnerable to resource exhaustion if an attacker submits extremely large strings? Both charsetDecode() and the byte-by-byte loop would need to process all those bytes, potentially exhausting memo... read entire comment from Tony Monast.
Charlie Arehart replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted June 2, 2026
@Ben Nadel, Good deal...as we were indeed running out of room for more nails on that coffin! :-) Let's see what happens.... read entire comment from Charlie Arehart.
Ben Nadel replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted June 2, 2026
@Charlie, Ok, I've added this to the top of every incoming request to the site. It's a static call to the serializeJson() function. Nothing dynamic about it, and it's not using any references: <cfscript> // TEMPORARY: Trying to prove beyond a reasonable doubt that the JSON error isn't on // my sid... read entire comment from Ben Nadel.
Charlie Arehart replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted June 2, 2026
If it does fail, there's still one other possibility beyond being a bug in serializejson--you could be experiencing just a classic race condition: it's POSSIBLE that the value of what you're passing to the serializejson COULD be different between the two calls. And it's even possible when "no time" ... read entire comment from Charlie Arehart.
Ben Nadel replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted June 1, 2026
This morning, I deployed this version - hopefully I won't see any more errors for the day: <cfscript> private string function serializeJsonHotfix( required any input ) { try { return serializeJson( input ); } catch ( any error ) { return serializeJson( input ); } } </cfscript> T... read entire comment from Ben Nadel.
Charlie Arehart replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted May 31, 2026
@Ben Nadel, OK. That was my first question. But in that first response I also offered something to try if that was indeed true. I still think it could help. If you reread my first reply and now it makes sense, and you try my suggestion there, let us know what you find. If somehow it still does not (... read entire comment from Charlie Arehart.
Ben Nadel replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted May 31, 2026
@Charlie, Sorry, I think maybe I just am not following what you're saying 🙃 I can at least tell you that payload that was showing up in Bugsnag is the payload that I was expecting - not values altered.... read entire comment from Ben Nadel.
Charlie Arehart replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted May 30, 2026
All fair enough. I simply was asserting that you could/should prove via logging that the value was the same (within the catch, and before doing the deserialize there). Note that you were only doing it if that second one failed. But if you're still not persuaded, I'll let it go. :-)... read entire comment from Charlie Arehart.
Ben Nadel replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted May 30, 2026
@Charlie, I would say "wrong tree" only because I'm not actually mutating the payload in between JSON attempts. I'm just taking the same exact value that just failed and trying it again. In the latter example, you could argue that maybe the value - which is being passed by reference - is mutated by ... read entire comment from Ben Nadel.
Charlie Arehart replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted May 30, 2026
@Ben Nadel, I understand. But you say, "But then I realized that my logger.() call would also be serializing the value that just failed to serialize." In the original code, you don't show the logger call doing anything but logging the payload...and I assumed that would just log the json text. And th... read entire comment from Charlie Arehart.
Ben Nadel replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted May 30, 2026
@Charlie, All good thinking. And in fact, my thinking on this has been peeling back like an onion. At first, I thought it was the sleep() that was making the difference. But then I realized that my logger.() call would also be serializing the value that just failed to serialize. And that payload was... read entire comment from Ben Nadel.
Charlie Arehart replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted May 30, 2026
Interesting, as always, Ben. But as you've redacted what's in the logged output of A (in the catch), we're left to assume you've confirmed the value shown IS OK? If you tried to deserialize it on its own, it would work? If not, do log B inside the nested try (BEFORE) it's nested deserializejson, jus... read entire comment from Charlie Arehart.
Ben Nadel replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted May 30, 2026
I just posted an update that an immediate retry seems to be sufficient. But, the truth is, my log-line (posted above in the "Update") does its own serializeJson() call internally to prepare the payload for Bugsnag. So it's possible that this internally call either: Provided enough delay. Rejiggered ... read entire comment from Ben Nadel.
Ben Nadel replied to a post Constant-Time Equality Check In ColdFusion
Comment posted May 30, 2026
I'll add that when I was doing some research for this post, a number of people just said to reach for Java's MessageDigest.isEqual() method. Apparently, this method has been updated to use a constant-time comparison under the hood in response to a security ticket many years ago. However, the method ... read entire comment from Ben Nadel.
Ben Nadel replied to a post Intermittent Bug In serializeJSON() In Adobe ColdFusion 2025
Comment posted May 29, 2026
I've filed issue CF-4232120 in the Adobe Tracker.... read entire comment from Ben Nadel.
Ben Nadel replied to a post AI Makes Sitting With Discomfort Feel Shameful
Comment posted May 22, 2026
@Jim, I'm in total agreement that having a tool that can help you solve problems is 100% a value-add. Though, I'll admit that I don't find myself doing a lot of new things in my life - but I think that's just me, my life is comfortably boring in many ways 😜 but, it definitely removes friction when ... read entire comment from Ben Nadel.
Jim Curran replied to a post AI Makes Sitting With Discomfort Feel Shameful
Comment posted May 22, 2026
Hey Ben, A month ago, I was fearful of AI because of what the unknown could bring. Now I have a completely different viewpoint. First off, using it has gotten me to "develop" again. I haven't done that in YEARS and I always loved it. I still love discussing projects and architecture with the team bu... read entire comment from Jim Curran.
Ben Nadel replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 22, 2026
@Gary, Ha ha, very true.... read entire comment from Ben Nadel.
Gary Funk replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 21, 2026
@Ben Nadel, Your comment reminds me of a discussion I had with the team at Boardwatch Magazine in the mid 90s. We had just returned from a very successful ISPCON and were talking about the state of the Internet. I listened to what everyone had to say then Jack looked and me and said, "Garheart, what... read entire comment from Gary Funk.
Ben Nadel replied to a post AI Makes Sitting With Discomfort Feel Shameful
Comment posted May 21, 2026
Lars' article was just reviewed by Cal Newport, which is a pretty good "get"! Way to go, dude! https://www.youtube.com/watch?v=SOKfVVOq-Ck... read entire comment from Ben Nadel.
Ben Nadel replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 21, 2026
@Gary, It is super interesting! And it's great that they were able to move past a vendor that was clearly treating them terribly. But two things do pop to mind. 1) there is something kind of "icky" about the notion of screen-shotting someone else' work and just saying "copy that". I totally get that... read entire comment from Ben Nadel.
Gary Funk replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 21, 2026
@Ben Nadel, Read this. I found it very interesting and a good use case. https://trmnl.com/blog/vibe-coding-shiphero... read entire comment from Gary Funk.
Ben Nadel replied to a post AI Makes Sitting With Discomfort Feel Shameful
Comment posted May 19, 2026
@Sam, Ha, did you see all the "Goblin" hubub the other week? About how they have to actively suppress the desire for the AI talk about goblins? It does seem like this stuff does get poisoned over time. I feel like half (more?) the stuff I read on LinkedIn is just AI-generated posts at this point. Ev... read entire comment from Ben Nadel.
Sam G replied to a post AI Makes Sitting With Discomfort Feel Shameful
Comment posted May 19, 2026
At some point, the AI will be eating its own tail by endlessly training on its own regurgitated garbage. The only new content contributing to human intelligence at that point will be produced from thinkers such as yourself. The nuance you describe DOES have value. I want to believe our AI-augmented ... read entire comment from Sam G.
Ben Nadel replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 17, 2026
@Gary, Ha ha, I wasn't complaining at all! Tangential conversations are the spice of life 😂 As far as query of queries goes, I've taken to returning arrays from all of my data access methods. And then I can do the filter and map methods on those arrays. Not better or worse, just coming at it from a... read entire comment from Ben Nadel.
Gary Funk replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 17, 2026
@Ben Nadel, Yes, sorry, my fault, but that's how conversations go and it's been years since we've had a conversation. I'm a B-string programmer and I follow you A-string guys. I converse with you guys when I find the opportunity, Back to SQL, I have often used a Query of Queries to filter data. Ther... read entire comment from Gary Funk.
Ben Nadel replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 17, 2026
@Gary, It's a fascinating point. We're wildly off-topic at this point, but who cares 😂 I see a lot of people talking about how easy it is to just rebuild some prior art. One-shotting some existing SaaS product or converting a library from one language to another. The impressive bit there is obvious... read entire comment from Ben Nadel.
Gary Funk replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 16, 2026
@Ben Nadel, Something else that people don't understand. The current AI does not do anything that someone hasn't already done. AI just does it quicker. I want to compare to models. I can already do so but it is time consuming. Or I just ask AI to do it. I am going to ask Claude to create a simple se... read entire comment from Gary Funk.
Ben Nadel replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 16, 2026
@Gary, So far, I haven't really used AI to do anything that I couldn't already do (with the exception of one or two experiments that I've already lost interest in). What I'm hoping to use it for mostly is to allow me to take larger steps outside of my comfort zone. For example, I've never played wit... read entire comment from Ben Nadel.
Gary Funk replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 16, 2026
@Noursecode, This is all very interesting. I'm a good CF developer which led me to be a better SQL developer. I also learned SQL from a few great database masters. I have not used Claude or any Advanced Instruction system because I don't like the marketing types implying that AI is Ai. That's on me ... read entire comment from Gary Funk.
Noursecode replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 15, 2026
Hey Ben, I find Claude's declaration that "Most people don't actually think about the SQL" to be the honest truth. For example, most devs (not all) have no desire to write database procedures, no matter what language they use. Even knowing performance would improve. Instead they may use an ORM which... read entire comment from Noursecode.
Ben Nadel replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 15, 2026
@Carl, The LEFT OUTER JOIN was one of the things that finally sold me on moving more conditions to the WHERE clause. Depending on what the condition is doing / what your needs are, the LOJ can accidentally remove rows from the results. For anyone interested in this point, consider a user table with ... read entire comment from Ben Nadel.
Carl Von Stetten replied to a post Claude Code Convinced Me To Simplify My SQL JOINs
Comment posted May 15, 2026
I don't know if this applies to MySQL/MariaDB, but in Microsoft SQL Server changing the placement of the filter predicate from the ON clause to the WHERE clause can change the results for LEFT OUTER JOINs (and probably RIGHT OUTER JOINs). This article explains it more clearly: https://www.mssqltips.... read entire comment from Carl Von Stetten.