Archive for ColdFusion

CFX: Feature Requests Part 3 – Everything Else

Although I was a part of several previous beta/pre-release testing versions of ColdFusion (Scorpio and Centaur) and my posts being as unpopular as they are so far, maybe it’s for the best I’m not part of Zeus [yet].  But, I’d still like to wrap up this series with a few remaining things I’d like to see brought to the tenth release of ColdFusion.

  • Facebook integration (similar to Google Maps integration only your parameters include your appID and secret key) — For those who don’t know, the work by Affinitiz on a ColdFusion SDK for FaceBook, although only in beta at the moment, is top-notch stuff… I love it!
  • Twitter integration
  • Google Calendar integration

This certainly isn’t a major thing and not even really a problem. It may not be considered best practice, but I can pass form variables directly into a CFC as such:

<cfform method="post" action="my.cfc?method=formMethod">

Best practice would have you submit to another CF file which invokes the method. I’d love to eliminate that extra step of submitting to a CF file (no reason… this is my wishlist :P) and have submitting the form data to the CFC be best practice:

<cfform method="post" component="#myCFC#" method="thisForm" optionalArgument="#formStructure.fieldName#">

When output to the browser, the form’s action would be masked with whatever the component file is, but without revealing the method (for security reasons). You could send the entire structure to the CFC’s argument or allow optional arguments from the structure as shown in the code above. Maybe it’s a tough sell, but I think it’s cool. 😉

If nothing else in this series was unpopular enough, I know this certainly will take the cake [or pie].  We have a development version of ColdFusion, but I still think the Standard edition of CF should be made free with no support from Adobe while offering a “professional edition” that’s the same thing as the Standard edition which includes paid support from Adobe.  Although there are free alternatives to ColdFusion out there, none of them are true to ColdFusion imho, adding in and making their own tweaks and adjustments along the way.  I’ve been preaching free CF w/o support for years though.

Anyhow, despite Adobe’s lackluster image lately [with Flash], ColdFusion remains an exciting, quality product and I’m looking forward to the next chapter of ColdFusion development.

CFX: Feature Requests Part 2 – New Tags & Functions

Before we get into the tags, I’d first like to mention I firmly believe SES URLs need to somehow make their way into ColdFusion.  The root of ColdFusion is making development life simple, and there is nothing simple about setting up SES URLs, particularly if you don’t know regular expressions.  I think this should be enabled/disabled at the application scope level and be a well thought out, simple process that doesn’t require IIS or Apache URL rewriting… it’s all done seamlessly in CFX.

With that said, here are some new tags I’d like to see:

  • CFTRAIL – This will leave a breadcrumb trail.  I initially thought this would be a feature that would require the use of SES URLs in the application scope, but thinking further, I think it could still be done with the developer providing parameters.
  • CFBROWSER – Web browser detection baby!

And while we’re at it lets add some parameters to CFLOCATION to allow delayed cflocating:

<CFLOCATION from="now()" delay="dd:hh:mm:ss" />

Lets also add a parameter to CFDIV to allow that loading icon to be customized:

<CFDIV icon="/images/yourAnimatedIcon.gif" />

This being ideal for loading user custom-created pages from a database, I think one of the features I would use the most is the ability to loop over cfcase in a cfswitch:

<CFSWITCH expression="#whatever#">
<cfloop query="yourQuery">
<cfcase value="#query.Column#"></cfcase>

And finally some new functions I’d also like to see:

  • dollarformat() – oops!  Already exists.
  • encryptStruct()
  • encryptArray()
  • queryToArray(my.query,[dimension])

Coming next week
CFX: Feature Requests Part 3 – Everything Else

CFX: Feature Requests Part 1 – Addons & Frameworks

Even though I was unable to attend, Max 2011 produced some good things in the way of announcements for ColdFusion 10 (I like CFX better).  Most of what was announced though seemed like obvious steps forward of things that needed to be addressed, and not necessarily features that will make you jump out of your seat to line up and buy the product the second it’s released.  And I don’t really want to cover these features which can be easily found via Google.

Seeing as I’m not part of the alpha/beta of Zeus, what I do want to cover are some things that I believe would make CFX the product that would make you get in line and a product you can’t live without.

Today’s software and programming world is plagued with modularization. It is no longer just the language that is chosen for a project, but also the framework on which it’s built.

I am an anti-framework guy.  I honestly don’t get the buzz or see the benefit.  Inheriting someone else’s mistakes and relying on them because I’m too lazy to code the features myself isn’t a blessing for me or any of my clients.  It may save time to slap together a site in a few minutes, but does it really save time in the long run (and then have to keep that framework up-to-date… no thanks)?  Having jumped from framework to framework I’ve become a naysayer.  However, for the world of framework-lovers and the fact that ColdFusion is for everyone, lets modularize: Read more

ColdFusion CreateODBCDate Love

I was writing a mySQL query that only included dates in the results after today, and thought I’d share a quick problem I ran into.

SELECT column1, column2
FROM table
WHERE columnDate >= NOW()

Unfortunately, the NOW() function in mySQL will not include today.  Of course if I wanted to exclude today I’d take off the =.  I’m sure there’s a way to fidget with it and get it to do what I want in mySQL, but with a simple ColdFusion function I was able to get the result I was looking for.

SELECT column1, column2
FROM table
WHERE columnDate >= <cfqueryparam value="#CreateODBCDate(now())#" cfsqltype="cf_sql_date" />