Recent Activity
Recent Heroes of the BenNadel.com Community
-
Posted 16 comments since November 11, 2022
-
Posted 18 comments since January 14, 2010
-
Posted 319 comments since October 23, 2012
-
Posted 23 comments since August 16, 2024
-
Posted 7 comments since October 26, 2009
-
Posted 63 comments since December 11, 2008
Recent Comments
Ben Nadel replied to a post Replacing \U And \L Usage With Java's Matcher.replaceAll() In ColdFusion
Comment posted November 11, 2026
A quick write-up of another breaking change in the RegEx pattern matching after 2025 update 14: https://www.bennadel.com/blog/4926-breaking-change-in-empty-line-regex-matching-in-adobe-coldfusion-2025-update-14.htm... read entire comment from Ben Nadel.
Ben Nadel replied to a post Replacing \U And \L Usage With Java's Matcher.replaceAll() In ColdFusion
Comment posted November 10, 2026
@James, I'm trying to think if I've ever used pattern matching over a really large string. I'm not sure I've had the use-case before. If I did, it's quite possible that I was using Java Matcher class anyway.... read entire comment from Ben Nadel.
James Moberg replied to a post Replacing \U And \L Usage With Java's Matcher.replaceAll() In ColdFusion
Comment posted November 10, 2026
@Ben, does reMatch()work with a large text string (or occassionally silently fail)? I like using shortcuts to leverage the list/array functions too... but be sure to unit test with large strings to ensure that it's consistently returning the correct result.... read entire comment from James Moberg.
Ben Nadel replied to a post Replacing \U And \L Usage With Java's Matcher.replaceAll() In ColdFusion
Comment posted November 10, 2026
Just ran into another issue. The regex pattern [^\n]* now works differently. An example — notice the new lines #chr(10)# in the string: <cfscript> temp = "a#chr(10)#b#chr(10)##chr(10)#c"; writeDump( temp.reMatch( "[^\n]*" ) ); </cfscript> In earlier patch versions, this outputs an array of 4 elem... read entire comment from Ben Nadel.
Ben Nadel replied to a post Using Sets To Gather Unique Values In Adobe ColdFusion 2025.0.8
Comment posted November 10, 2026
I've added a ticket for being able to call .toList() without having to explicitly provide a delimiter - which would be more consistent with the rest of ColdFusion: CF-4235380 - setToList() and set.toList() functions should default delimiter to comma.... read entire comment from Ben Nadel.
Ben Nadel replied to a post Polyfill Form Field Grouping Using Bracket Notation In Adobe ColdFusion
Comment posted November 10, 2026
A quick aside, I've filed a feature request in the Adobe Tracker for this feature support: CF-4235379 - Allow form and url parameters to be grouped as arrays using [] notation.... read entire comment from Ben Nadel.
Ben Nadel replied to a post Polyfill URL Search Parameter Grouping Using Bracket Notation In Adobe ColdFusion
Comment posted November 10, 2026
A quick aside, I've filed a feature request in the Adobe Tracker for this feature support: CF-4235379 - Allow form and url parameters to be grouped as arrays using [] notation.... read entire comment from Ben Nadel.
Ben Nadel replied to a post Adding "Multipart/Form-Data" Support To My Parameter Grouping Polyfill In Adobe ColdFusion
Comment posted November 10, 2026
I've filed a feature request in the Adobe Tracker for this feature support: CF-4235379 - Allow form and url parameters to be grouped as arrays using [] notation.... read entire comment from Ben Nadel.
Ben Nadel replied to a post Exploring ColdFusion's Undocumented FORM.getPartsArray() Method
Comment posted November 10, 2026
Looks like David Boyer filed a ticket to expose the form.getPartsArray() method more officially back in 2010 😨: CF-3041712 - Please provide access to the file upload information, possible via a function, to make handling uploads easier... read entire comment from Ben Nadel.
Ben Nadel replied to a post Exploring ColdFusion's Undocumented FORM.getPartsArray() Method
Comment posted November 9, 2026
Once I understood the mechanics of the .getPartsArray() method, I was able to update my polyfill for Adobe ColdFusion 2025: https://www.bennadel.com/blog/4925-adding-multipart-form-data-support-to-my-parameter-grouping-polyfill-in-adobe-coldfusion.htm... read entire comment from Ben Nadel.
Ben Nadel replied to a post Polyfill Form Field Grouping Using Bracket Notation In Adobe ColdFusion
Comment posted November 9, 2026
Just as a quick follow-up, I have two more posts: Exploring ColdFusion's Undocumented FORM.getPartsArray() Method - this looks at the mechanics of the .getPartsArray() and has it can be consumed. Adding "Multipart/Form-Data" Support To My Parameter Grouping Polyfill In Adobe ColdFusion - this update... read entire comment from Ben Nadel.
Ben Nadel replied to a post Monitoring My ColdFusion Scheduled Tasks With Grafana Cloud
Comment posted November 9, 2026
One thing I've been wanting to do, kind of in lieu of "publishing" packages, is have some sort of "golden template" for a basic application. So, every time I update my strategy for something, I update it in the app I'm working on; then I copy those updates into the "golden template". Then, when/if I... read entire comment from Ben Nadel.
Gregory Alexander replied to a post Monitoring My ColdFusion Scheduled Tasks With Grafana Cloud
Comment posted November 8, 2026
@Ben, Ha Ha- I asked the same question at first! I think the value is in how small the list is. Out of the box, ColdFusion will call anything, and an attacker's scheduled task or cfhttp payload usually wants to reach somewhere they choose: their own server to pull a payload or send data out, or some... read entire comment from Gregory Alexander.
Ben Nadel replied to a post Monitoring My ColdFusion Scheduled Tasks With Grafana Cloud
Comment posted November 7, 2026
@Gregory, Oh man, why your hosting provider do you dirty like that! 🤪 To be completely unguarded, I'm not sure I even understand the value-add of this network security feature. I know Charlie Arehart mentioned in his post or comments that a number of ColdFusion vulnerabilities have been grounded in... read entire comment from Ben Nadel.
Gregory Alexander replied to a post Monitoring My ColdFusion Scheduled Tasks With Grafana Cloud
Comment posted November 6, 2026
Thank-you for the mention, Ben, and for taking this the next step. "Who watches the watchers" is exactly the right question. It just bit me again this week! After I fixed my allow list in October, my hosting provider's management software quietly replaced security-settings.json on 11-03 with a fresh... read entire comment from Gregory Alexander.
Ben Nadel replied to a post Adobe ColdFusion Returns NULL Dates As NULL When Using CFQuery ReturnType "Array"
Comment posted November 6, 2026
Over on Gregory Alexander's blog, he just pointed out that Adobe ColdFusion 2025 has fixed this issue: https://www.gregoryalexander.com/blog/2026/10/12/beware-isnull-can-lie-about-a-query-column I just ran a quick test in my local ACF 2025 Update 14 docker container: <cfscript> results = queryExec... read entire comment from Ben Nadel.
Ben Nadel replied to a post Polyfill Form Field Grouping Using Bracket Notation In Adobe ColdFusion
Comment posted November 6, 2026
I was just looking through my site's error logs to see all the nasty things people try to do, and I was seeing errors for file[] not being available on the polyfilled parameter mapping. As I'm learning just now, the form fields are handled differently on the ColdFusion server / Java servlet when the... read entire comment from Ben Nadel.
James Moberg replied to a post Replacing \U And \L Usage With Java's Matcher.replaceAll() In ColdFusion
Comment posted November 5, 2026
I reported a reReplaceNoCase() CF error that was encountering on large text strings back in mid-2016 for ColdFusion 11. (Someone else reported it in early 2015.) https://dev.to/gamesover/use-java-replaceall-instead-of-coldfusion-rereplacenocase-ee4 Adobe withdrew both BIF-related tickets. CF-4165797... read entire comment from James Moberg.
Ben Nadel replied to a post Replacing \U And \L Usage With Java's Matcher.replaceAll() In ColdFusion
Comment posted November 5, 2026
You're always up to such interesting stuff! And I agree with the useJavaAsRegexEngine - it always just feels too risky. I'd just rather use the Java layer directly in cases where I need it. Plus, the Matcher API has much nicer ergonomics when compared to reReplace().... read entire comment from Ben Nadel.
James Moberg replied to a post Replacing \U And \L Usage With Java's Matcher.replaceAll() In ColdFusion
Comment posted November 5, 2026
@Ben, Many users are allowing their blindly trusted AI systems to access their email. While I don't explicitly do this with my inbox, Microsoft 365 & Gmail is already doing this. I developed a CFML-based inbox and viewer interface that processes voicemail transcriptions, SMS & MMS. Email was initial... read entire comment from James Moberg.
Ben Nadel replied to a post Replacing \U And \L Usage With Java's Matcher.replaceAll() In ColdFusion
Comment posted November 5, 2026
@James, There's nothing more terrifying than a silent failure. Yikes! I had to look up what an EML file is. Looks like some file-representation of an email. Is this the type of file that gets spooled when sending via SMTP? Now I'm curious to know what you're sanitizing. 🤔... read entire comment from Ben Nadel.
James Moberg replied to a post Replacing \U And \L Usage With Java's Matcher.replaceAll() In ColdFusion
Comment posted November 4, 2026
TIL while testing some cross-compatible ColdFusion logic, Claude Fable 5.1 reported that ACF 2023.0.26 & 2025.0.14 silently fail when using reReplace, reFind & reMatch with a 100-200k character string. (ACF 2016 & Lucee are not affected. I didn't test CF2018/2021.) I encountered this while writing a... read entire comment from James Moberg.
Chris G replied to a post Why CFML Can't "Just" Compile Variable Scoping Into The Byte Code
Comment posted November 4, 2026
@Ben, The cfs code blocks are a useful AI victory for sure! Congrats on that success 🙌 Deleting the var definitely tightens up the demo. And I didn't realize you could reference named arguments, even though the function signature doesn't define them 🧐... read entire comment from Chris G.
Ben Nadel replied to a post Why CFML Can't "Just" Compile Variable Scoping Into The Byte Code
Comment posted November 4, 2026
@Chris, Ha ha, in honor of our shared humanity, I will leave in all typos 😜 Also, I probably should have deleted value after test TWO in order to demonstrate that it wasn't accidentally being picked up: // TWO: The value is defined in the page scope. variables.value = "In the <mark> VARIABLES </mar... read entire comment from Ben Nadel.
Chris G replied to a post Why CFML Can't "Just" Compile Variable Scoping Into The Byte Code
Comment posted November 4, 2026
Only took you a few minutes to realize why it couldn't?! Would have taken me much longer! 🤣🤣 I thought the premise was a great question. I also appreciate your typos 'where is can'. I find them comforting because I know they were written by a falible human (see what I did there... using only one L... read entire comment from Chris G.
Ben Nadel replied to a post Code Kata: ArrayMerge() Polyfill In Adobe ColdFusion
Comment posted October 31, 2026
@James, Plus, I know that you often have to support a variety of runtimes, so some approaches are more platform-specific. Or rather, I would say that I don't remember what version added spreading, for example. Since I really only support my own side-projects, I can just keep adding/removing stuff as... read entire comment from Ben Nadel.
James Moberg replied to a post Code Kata: ArrayMerge() Polyfill In Adobe ColdFusion
Comment posted October 30, 2026
To accomplish this, I've used duplicate() and then arrayappend(arr1, arr2, true), but I like how your function accepts more than just a single array to merge and also creates a new variable (which is how I usually prefer to do it too).... read entire comment from James Moberg.
Ben Nadel replied to a post Exploring Variadic Function Mechanics In ColdFusion
Comment posted October 26, 2026
As an aside, I just filed a feature request in the Adobe Tracker for an arguments.toArray() method: CF-4235021 - Add .toArray() on arguments data structure. It might be cool to have a whole number of arguments* style BIFs. Just thinking out loud.... read entire comment from Ben Nadel.
Ben Nadel replied to a post Spread Operator Bug With Method Calls In Adobe ColdFusion 2025
Comment posted October 24, 2026
Right?! And I work with Docker locally. So every time they push a patch, or add a breaking change, I have to rebuild all my docker images from Ortus' new base image and have it install the right stuff. Maybe that's the kind of thing I have AI "just do"; but, I'm not quite there yet.... read entire comment from Ben Nadel.
Gregory Alexander replied to a post Spread Operator Bug With Method Calls In Adobe ColdFusion 2025
Comment posted October 23, 2026
@Ben, I remember going years without having to do an update on the server - those days are long and gone! Right now, I'm trying to chase down some fixes that my hosting provider put on to lockdown PHP. The new fixes are disabling my multi part forms. Sigh, life in the new AI era! Take care!... read entire comment from Gregory Alexander.
Ben Nadel replied to a post Using ColdFusion Closures With Java's RegEx Pattern Matcher
Comment posted October 23, 2026
@James, It's unclear to me if these are bugs or if this is just a breaking change in something that was required by a security patch. Seems very strange that they would even be in there touching the way regular expressions work unless it was for a security reason. But, agreed — the Java methods are ... read entire comment from Ben Nadel.
James Moberg replied to a post Using ColdFusion Closures With Java's RegEx Pattern Matcher
Comment posted October 23, 2026
Adobe changed/broke something? Now that the version name won't be changed, I'm hoping that they fix this in a future version of CF2025. Has it been reported? (I checked and didn't see anything.) I definitely prefer using java's replaceAll()over the built-in functions. We had persistently random inst... read entire comment from James Moberg.
Ben Nadel replied to a post Using ColdFusion Closures With Java's RegEx Pattern Matcher
Comment posted October 23, 2026
The timing of this post turned out to be perfect because the latest update (14) of Adobe ColdFusion 2025 broke the use of \u and \l in regular expression replacement. But, I was able to use this Matcher::replaceAll( closure ) technique to work around the breaking change: https://www.bennadel.com/blo... read entire comment from Ben Nadel.
Ben Nadel replied to a post Spread Operator Bug With Method Calls In Adobe ColdFusion 2025
Comment posted October 22, 2026
@Gregory, It's frustrating because there are things that break that seem like they shouldn't break and it makes me wonder how the compiler is actually operating. Not that I know about any of this stuff :) And thank you for your post on the Scheduled Tasks nightmare after update 14. In fact, I didn't... read entire comment from Ben Nadel.
Gregory Alexander replied to a post Spread Operator Bug With Method Calls In Adobe ColdFusion 2025
Comment posted October 22, 2026
Good catch, and the intermediary-variable workaround is the kind of thing I'd never have guessed. I run the same code on Adobe ColdFusion and Lucee, and I keep finding spots like this where one engine quietly does something different with an expression the other handles fine. My last one was an HQL ... read entire comment from Gregory Alexander.
Ben Nadel replied to a post Using Functions As Java Operators In Adobe ColdFusion 2025.0.8
Comment posted October 19, 2026
Over the weekend, I used this when interacting with Java's Matcher::replaceAll() method: https://www.bennadel.com/blog/4919-using-coldfusion-closures-with-javas-regex-pattern-matcher.htm This allows us to pass a CFML closure into the .replaceAll() method, giving us the ability to act on per-match re... read entire comment from Ben Nadel.
Ben Nadel replied to a post JRegEx - A ColdFusion Wrapper Around Java's Regular Expression Patterns
Comment posted October 19, 2026
I know this is an old post, but just a quick follow-up: as of Adobe ColdFusion 2025 (update 8), you can now pass functions / closures into the Java layer to act as operators. This allows us to simplify some of the Pattern / Matcher logic. For example, you can now use the Matcher::replaceAll() method... read entire comment from Ben Nadel.
Ben Nadel replied to a post Two Spread Operator Bugs In Adobe ColdFusion 2023
Comment posted October 13, 2026
Just ran into a variation on this same bug in Adobe ColdFusion 2025. It seems that they (Adobe) fixed the bug for the spreading of static values, but not the spreading of dynamic values (ie, those resultant of a method call). I've written up the new variation: https://www.bennadel.com/blog/4918-spre... read entire comment from Ben Nadel.
Ben Nadel replied to a post Spread Operator Bug With Method Calls In Adobe ColdFusion 2025
Comment posted October 13, 2026
I filed a ticket in the Adobe Tracker: CF-4234744 - Spread operator adds phantom struct key when spreading result of scoped method call.... read entire comment from Ben Nadel.
Ben Nadel replied to a post Returning A Struct From A One-Line Closure In ColdFusion
Comment posted October 13, 2026
Ha ha, indeed!... read entire comment from Ben Nadel.
Chris G replied to a post Returning A Struct From A One-Line Closure In ColdFusion
Comment posted October 13, 2026
Simple. Short. Sweet. Just like my one line closures! 😄... read entire comment from Chris G.
Ben Nadel replied to a post Returning A Struct From A One-Line Closure In ColdFusion
Comment posted October 13, 2026
As a quick aside, this explicit return in an one-line closure does not work in JavaScript. It will throw a parsing error.... read entire comment from Ben Nadel.
Ben Nadel replied to a post Programming As A Hobby In The Age Of AI
Comment posted October 12, 2026
@Bill, Yeah, it's a game of telephone. What I hear on other podcasts is as much how people received the statements as it about what was actually said.... read entire comment from Ben Nadel.
Bill Nourse replied to a post Programming As A Hobby In The Age Of AI
Comment posted October 12, 2026
Interesting. I believe the actual phrase was "caution is for f------ losers," not about developers being losers for hand coding. But I can see how the meaning got twisted. DHH is flamboyant for sure, and he's gotten pushback more than once.... read entire comment from Bill Nourse.
Ben Nadel replied to a post Programming As A Hobby In The Age Of AI
Comment posted October 12, 2026
@Bill, Gotcha. I didn't watch DHH's keynote, but I heard people talking about it. Apparently he called people who write code, "losers" 😬 It seems (from what I've heard in podcasts) that it was quite a gut-punch to the RoR community.... read entire comment from Ben Nadel.
Bill Nourse replied to a post Programming As A Hobby In The Age Of AI
Comment posted October 12, 2026
Hey Ben, thanks for your question. No, my point is not to stop you or anyone from writing code by hand. "Hope it helps" is directed to any developer worrying about their career. You can certainly code by hand if you want to, but it's helpful to know how other developers have transitioned.... read entire comment from Bill Nourse.
Ben Nadel replied to a post Programming As A Hobby In The Age Of AI
Comment posted October 12, 2026
@Bill, I'm not sure I understand what you mean by "hope that helps"? Are you trying to get me to stop manually coding for fun even as a hobby?... read entire comment from Ben Nadel.
Bill Nourse replied to a post Programming As A Hobby In The Age Of AI
Comment posted October 11, 2026
I'm not a Ruby developer, but I follow what they do. At Rails World 2026, David Heinemeier Hansson points out 37signals now uses AI agents to generate code by default. Or another way of saying it, they have gone "pencils down" on manual coding. He also urges developers not to consider it a loss of c... read entire comment from Bill Nourse.
Ben Nadel replied to a post Trying The CSP Build Of Alpine.js 3.5.41
Comment posted October 10, 2026
@Sebastiaan, Yeah, I'm also very excited for it. I have a site that I had to remove the unsafe-eval because I have an older version of Alpine.js on it; but now I can go back and fix that one and make it more secure. Security for the win! One thing I really want to try next is to mess around with som... read entire comment from Ben Nadel.
Sebastiaan replied to a post Trying The CSP Build Of Alpine.js 3.5.41
Comment posted October 10, 2026
Ah, this is excellent news. I always build sites and webapps with CSP headers present, but the necessary unsafe-eval was almost a dealbreaker for me endeavouring into AlpineJS. Still the site in question was a performance and technical challenge to show you can build a simple HTML/CSS/JS site with a... read entire comment from Sebastiaan.