Ben Nadel looks at how to extract MongoDB database and collection names from an ENV-based connection string such that the document database can be consumed more opaquely in Lucee CFML 184.108.40.206.
Ben Nadel attempts to find his happy place and process the loss of Ruth Bader Ginsburg by creating pixel-art of her photo using a large, compound CSS box-shadow and Lucee CFML 220.127.116.11.
Ben Nadel realizes that he's had some pretty large, fundamental misunderstandings of how prepared statements are parsed, cached, and executed when using the MySQL JDBC Driver in his ColdFusion / Lucee / CFML applications. And what implications this has for his use of the CFQueryParam tag.
Ben Nadel takes a moment to reflect on his mental model prepared statements in MySQL. And how he might use the CFQueryParam tag to go about safely creating prepared statements for SQL queries that use the IN clause with a dynamic set of parameters.
Ben Nadel is thrilled to see that his SQL DEBUG comments show up in both the FusionReactor Cloud and Enterprise dashboards. This makes identifying performance bottlenecks in the database so much easier.
Ben Nadel explores the idea of using tracer cookies to monitor and respond to download-prompts using Lucee CFML 18.104.22.168. In this demo, he shows an overlay while a report is being generated; and then, closes the overlay when the user is prompted to download the report.
Ben Nadel looks at how repeated Image objects affect file-size in the CFDocument tag in Lucee CFML 22.214.171.124. It seems that an image is embedded once and then intelligently reused as needed. This should guide how different versions of an image are implemented within a single PDF document.
Ben Nadel explores the idea of using NPM run-scripts to invoke shell commands from Lucee CFML 126.96.36.199 with the help of the CFExecute tag. This allows for some flexibility that is not inherently available in ColdFusion's CFExecute tag.
Ben Nadel demonstrates how to proxy uploads to Amazon AWS S3 using pre-signed URLs and the CFHTTP tag in Lucee CFML 188.8.131.52. Such an approach could be helpful for customers that block HTTP traffic to Amazon AWS (for security purposes).
Ben Nadel demonstrates how the ability to use ORDER BY and LIMIT clauses within an UPDATE statement in MySQL 5.6.37 lays the groundwork for running multiple, parallel workers against a database-driven migration in Lucee CFML 184.108.40.206.
Ben Nadel revisits the idea of a "natural sort order" in Lucee CFML 220.127.116.11, this time performing an in-place sort rather than creating an intermediary array. This allows the native sort and the natural sort algorithms to be interchanged seamlessly.
Ben Nadel reflects on web application development as being equal parts Science, and Art, and Psychology, and Empathy, and Emotional Intelligence. And why every line of code represents an explicit decision to make an application better or worse.
Ben Nadel has fun dynamically evaluating ColdFusion String interpolation expressions that are stored in a database using Adobe ColdFusion 2018. This demo uses the evaluate() and de() functions to merge runtime variables into a database-driven value.
Ben Nadel demonstrates that the Enable long text retrieval (CLOB) settings is turned off by default in Adobe ColdFusion's MySQL driver; but, does not appear to impose any character limit or truncation in Lucee CFML 18.104.22.168.
Ben Nadel looks at how to encapsulate arbitrarily deep object-graph traversal using a "visitor function", a set of keys, and a depth-first stack in Lucee CFML 22.214.171.124.
Ben Nadel considers mapping between Structs and Arrays, two complete different types of data-strucures. And, how this might be done with a "mapping" function.
Ben Nadel looks at the imperfect use of BIT and TINYINT fields as representations of a Boolean value in a MySQL database; and, why he prefers to use the TINYINT column-type since the trade-offs make more sense for his style of ColdFusion application development. There is no "right" answer on this topic - this is just my opinion based on my experience and the choices that have come back to haunt me / make my database interactions more challenging.
Ben Nadel looks at using the wkhtmltopdf project in Lucee CFML 126.96.36.199 to generate PDF documents from dynamic, ColdFusion code. He performs his experiment using the Ortus Solutions' CommandBox Docker container.
Ben Nadel demonstrates that the return value of the array.sort() operator in Lucee CFML 188.8.131.52 must fit into a Java Int. If the value is too large, Lucee will throw an error: invalid call of the function ArraySort, return value of the function cannot be casted to an integer.