- Using Lucee's simple parallel processing appropriately
Lucee 5 makes it really easy to execute loop iterations in parallel. But not all loop operations will benefit, and the approach needs to be applied with care.
- Uploading files via a Taffy REST API in CFML
Using multipart forms isn't the only, or necessarily the best way of uploading files, especially when doing so via a REST API.
- Getting started with Elasticsearch using Lucee Part 2
A basic introduction to querying an Elasticsearch index using Lucee CFML
- Getting started with Elasticsearch using Lucee Part 1
A basic introduction to setting up an Elasticsearch index using Lucee CFML
- Replacing Query-of-Query in Lucee with simpler, faster alternatives
Query-of-Query seems useful because the SQL syntax is familiar. But it's known to be slow, and there are better alternatives.
- CFML: Sorting an array of objects by a specific property
How to take an array of CFML objects and sort it by a specific property of the object
- Lucee 5: simpler queryparam syntax for SQL IN conditions
In Lucee 5 you can directly pass an array of values as a SQL query parameter
- Lucee 5: application defined mailservers
Lucee now allows mailservers to be defined in Application.cfc
- Lucee 5: simpler access to environment variables
Lucee now has a built-in way of accessing environment variables
- The simplicity of "upward" relative component paths in Lucee
Lucee allows you to instantiate cfcs above the current location without a mapping
- Revised CFML client library for the GoCardless Direct Debit API
Announcing a revised CFML client library for interacting with the GoCardless Pro Direct Debit API
- Preventing invalid cookie errors being logged when making Lucee http calls
How to stop your Lucee/Tomcat logs filling up with "invalid cookie header" entries from http calls
- Empower your users with spreadsheets
Database servers make excellent progammable data stores, but unless you're a programmer or DBA they can be disempowering.
- Manually connecting Lucee to an IIS website
If you only need Lucee to run some of your IIS websites, connecting them up manually one by one is a fairly straightforward option.
- Simpler and (ever so) slightly faster looping in Lucee cfscript
Moving to the simpler, more expressive loop script syntax in Lucee brings an unexpected, albeit tiny, performance gain.
- Lucee Spreadsheet Library: How to populate multiple sheets from separate queries
How to use the Lucee Spreadsheet library to create a spreadsheet containing multiple sheets each populated from a query.
- String concatenation in Lucee
Building strings in Lucee 4.5 using arrays seems to be slower than ColdFusion 9. Java may be best where performance matters.
- Average Request Time: Lucee 4.5 vs ColdFusion 9
Running on the same server, Lucee 4.5 appears to process requests around twice as fast as ColdFusion9 on average.
- The simplicity of Lucee
How Lucee is making my code simpler compared to ColdFusion 9
- An alternative way of working with spreadsheets in Lucee
Implementing spreadsheet functionality in Lucee using the old Railo extension is more complex than I'd like, so I've re-written it as a standalone library.
- Migrating from ColdFusion to Railo to Lucee
Having recently moved to Railo from ColdFusion 9, switching to Lucee has proved mercifully straightforward, despite continuing issues with ORM.
- Migrating from ColdFusion 9 to Railo 4.2
First in a probable series on issues encountered and changes needed when migrating apps from Adobe ColdFusion to Railo.
- The simplicity of GoCardless
GoCardless offers UK small businesses and organisations a modern service for taking payments online via Direct Debit. Integrate with their API easily with a new CFML client library.
- Installing Railo on IIS alongside ColdFusion 9
Configuring a site to run Railo on an IIS server already connected to ColdFusion 9 is not as hard as expected, but is best done manually.
- Fixing a strange Ehcache issue in CF9
How to fix the "net.sf.ehcache.CacheException: error setting options" issue in ColdFusion 9
- ColdFusion ORM quirks: removing one-to-many children
Removing individual one-to-many child objects from a parent ORM entity is straightforward. But if you want to remove several or all at once, things are a bit trickier.
- The simplicity of migrating from MySQL to MariaDB
Upgrading from an old version of MySQL to the latest MariaDB as the database for ColdFusion applications is generally very easy, but you may need to update the data source connector
- Upgrading to FW/1 2.5
A minor code change was necessary when upgrading my apps to use the latest version of FW/1. There's also a small but useful addition to the API.
- Installing ColdFusion 9 on Windows 8
Struggling to install the 64-bit version of ColdFusion 9 on your Windows 8 PC? Try the 32-bit installer.
- The simplicity of Adaptive Images
A new CFML version of the server-side solution to automatically create, cache, and deliver device-appropriate versions of your website's images.
- Faster spreadsheet generation from queries in ColdFusion
Stop using SpreadsheetAddRows() to populate spreadsheets from queries. The cfspreadsheet tag does it much faster.
- ColdFusion ORM quirks: ordering one-to-many children via a link table
First in a series on minor aspects of CF ORM which have tripped me up.
- Simpler param syntax in cfscript
An apparently undocumented way of writing cfparam equivalents in script is both simpler and more consistent (via Adam Cameron and Sean Corfield).
- Error using a method call as a default function argument
Calling a CFC method as the default argument value for another function in the same component results in a "can't load a null" error if the method and argument names are the same and the call is not scoped.
- A simpler way of converting a query column to an array in ColdFusion
How to convert a query column to an array using built-in functions rather than looping.
- Integrating imgscalr into ColdFusion as a replacement for ImageScaleToFit()
How to use the java library imgscalr in ColdFusion as a replacement for ImageScaleToFit().
- Saving IP addresses as integers with ColdFusion ORM and MySQL
Storing IP addresses as integers is easy with direct MySQL statements, but how to do it via ORM?
- Including code in Disqus comments
Quick tips for better looking code snippets in your Disqus comments
- Simpler handling of JSON serialised ColdFusion query objects
Steve "Cutter" Blades has come up with a great way of dealing with the compact but quirky JSON ColdFusion returns when serialising query objects.
- ORM related entities in different databases
CF9.0.1 supports ORM entities with different data sources, but not relationships between them apparently. Here's a workaround.
- The simplicity of LESS CSS with CfStatic
- Simpler link building in FW/1
FW/1 now supports relative sections when using the buildUrl() API method, meaning less code and easier renaming
- ColdFusion ORM by John Whish
Review of "ColdFusion ORM: A guide to developing applications using ColdFusion ORM" by John Whish
- The simplicity of CfStatic
CfStatic is a brilliant tool for managing your static CSS and JS files and improving page loading times.
- Generating page fragments in FW/1
FW/1 now offers two ways of generating fragments to be output within the main page view or layout.
- The simplicity of FW/1
Moving from Fusebox to FW/1 has brought a number of benefits. The latest update makes switching even more compelling.
- How I got started in ColdFusion
My humble contribution to Steve Bryant's day of reminiscence
- Update to June ColdFusion Security Hot-fix
Adobe have released an update to the June CF HotFix addressing various reported problems.
- Workaround for SpreadSheetAddRow() limitation when column values contain commas
SpreadSheetAddRow() uses commas to delimit the column values of the row so can't be used to add data that contains commas. Here's a workaround.
- Simpler optional cfarguments
For optional cfarguments, there is no need to use required="false". Also defaults will make required arguments optional.
- The simplicity of jQuery style generic getters and setters in ColdFusion Part 3
Final post on making generic getters and setters in ColdFusion work like jQuery: further refinements - bulk setting and ensuring NULLs for ORM
- The simplicity of jQuery style generic getters and setters in ColdFusion Part 2
Second of three posts on making generic getters and setters in ColdFusion work like jQuery: improving the technique in CF9
- The simplicity of jQuery style generic getters and setters in ColdFusion Part 1
First of three posts on making generic getters and setters in ColdFusion work like jQuery's x() and x(value).
- HQL SELECT clauses: watch out for whitespace characters
In ACF ORM, HQL SELECT clauses containing tabs or new line characters will cause an exception
- Using <cfproperty> to create default CFC property values
How to set default component property values using CFPROPERTY without enabling ORM
- The simplicity and complexity of ORM
Does Object Relational Mapping add simplicity or complexity? A newbie's perspective.
- Forcing values to be inserted into spreadsheets as text
How to make sure values which could be interpreted as numbers are inserted as text when populating a spreadsheet
- <cffile action="rename"> and nameconflict
Should file renaming operations have a "nameconflict" handling option?
- itunes:duration integer values cause CFFEED to fail
<cffeed> will throw an exception when reading podcast feeds that specify the duration as an integer. Here's a suggested work-around.
- The simplicity of ColdFusion 9 Part 2
More of my favourite code-simplifying new features in CF9.
- The simplicity of ColdFusion 9 Part 1
Features of ColdFusion 9 which allow you to write simpler code than in previous versions.
- ColdFusion Security Hotfix changes session behaviour
The Hotfix released by Adobe in February appears to change the way session identifiers are generated.