Build Better Forms Even Faster

I've been a big fan of the CFUniform ColdFusion Form Library for a long time. Using it helps me build better applications quicker. Matt Quackenbush has just released a major update to the library with some really compelling features.

Firstly, CFUniform is much more Ajax capable and plays even nicer in your Ajax application.

Secondly, there are several new types, like CAPTCHA and Rating.

Thirdly, there is much improved support for global configuration.

All of this leads to a more flexible and powerful form library to power your forms.

Take a look at the CFUniform 4.0 Release Article and find out more details.

So a CFML variable name cannot end with a "." character

I spent a good hour today trying to get some old code working and got stuck trying to fix:

a CFML variable name cannot end with a "." character

Can you spot the issue in the following code block?

view plain print about
1<cffunction name="doLog" output="false" access="public" returntype="any">
2    <cfset var emailData = {} />
3    <cfset emailData.EmailAddressTo = variables.instance.config.getScheduledTaskEmailAddress() />
4    <cfset emailData.EmailSubject = "From the Nag Email Scheduled Task" />
5    <cfset emailData. EmailContent = "#arrayToList( variables._base._log, '#chr(13)##chr(10)#' )#" />
6    <cfset variables.instance.emailService.sendEmail( argumentcollection:emailData ) />        
7    <cfset super.doLog() />
8</cffunction>

[More]

If You Build or Maintain Client Side Libraries or Widgets I Want To Talk To You

The ColdFusion community is full of bright people who have built really neat libraries and widgets to make better features and functions for applications. One of my favorites, CFUniform (a rich forms library) lets you build consistent, feature rich forms with very minimal code. I use this library all the time to make my applications snazzier and more maintainable. There are plenty of cool projects I've not yet used and while working on some Model-Glue features this weekend, I had an idea.

See, I've been working on the scaffolding feature in Model-Glue. This feature is a great way to get a jump start on a data-centric application. Simply configure Model-Glue and your ORM of choice and Model-Glue will generate everything needed to Administrate your data. Forms, Lists, delete screens, Bam, it'll generate the whole thing for you in seconds. Of course, the generated code is easily customized to fit the need of the application, but because it is generated from the database, the functionality is generic and the look and feel is somewhat limited.

What if we had a real easy way to plug in some of these rich libraries into Model-Glue? Forms libraries, Ajax widgets, Grids, Rich tables, all these could be as simple as adding a few characters into an XML file. Sounds fun, right?

What I want is to talk to a few of the folks behind some of the coolest libraries to explore how I can provide the best integrations. If you are the author or maintainer of some library or widget, or you use something that you are really fond of, let me know by leaving a comment. We might be able to work together to provide some really neat, useful functionality for the community.

Must Have Tool For Ajax/Remoting Work!

Nathan Mische, one of the best JavaScript programmers I know, works on the ColdFire project. ColdFire is sort of like Firebug for Firefox, only geared towards ColdFusion.

If you've developed any sort of Ajax functionality, you know testing remote services can often be frustrating. Trying to get a handle on what parameters are being passed, how to send test parameters, knowing what the results of the request were, often mean dealing with a number of problem layers and a lot of confusing Red Herrings.

If you do any Ajax work, take 72 seconds out of your life to watch this quick screencast on the Request Queue in ColdFire.

See how efficient the workflow is? See how quick one can test remote services? How much time would this save you, what with all the cfdumping, the alerts, the aggravation?

What are you waiting for? Download ColdFire Now!

What Is ColdFire?

ColdFire is an extension to Firebug. It provides debug information in a Firebug tab as opposed to the bottom of the page. This lets you debug and keep your site layout intact, since ColdFusion's built-in debug information can sometimes mess with your site layout. ColdFire currently shows debugging information in the following tabs:

  • General
  • Execution Times
  • DB Queries
  • Traces
  • Timer
  • Variables
  • Request Queue

OO Camp comes to RTP, NC

We work fairly hard at TACFUG to keep our members informed and engaged in key information about programming and ColdFusion. Recently, Jim and I, put out a request for topics and we found some challenges in meeting the need. Some of our members have a long history of programming in ColdFusion and want to branch out into Object Oriented programming, but for one reason or another just haven't. Jim and I came up with an OO Code Camp concept and floated it out to our group to gauge interest.

Here was our announcement:

The fine folks at TACFUG (me and Jim) are seriously considering doing an OO camp starting in January. OO Camp will be a crash course on OO in ColdFusion. Ideally, we'd cover the topic in 3 or 4 evenings spread over a couple of months. This crash course will be designed to teach OO concepts and how to efficiently work with ColdFusion components. If you are new to OO or do not think you are using OO effectively, this crash course is for you. There will be no cost for this event though we may take up a donation for Pizza. Who would be ready to commit to coming to 3 or 4 evenings of OO camp? Please use this email thread for comments, questions and such about the proposed OO Camp. Feel free to extend this offer to others in your company, organization, Facebook Network, etc that would find this helpful as well.

We got a good bit of interest, certainly more than enough to justify running OO Code Camp in RTP.

Jim and I will be teaching the class and while we are pretty darned good at what we do, we've never run an organized class on this topic before. To make sure we cover all the bases and deliver appropriate, encompassing training, I thought it would be a good idea to ask the multitude of talented readers of this blog for their advice. We want to deliver the core concepts of Object Oriented Programming in a practical, hands-on fashion. Please offer, by commenting below, any constructive advice, suggestions, key topics that you feel we should cover.

Thanks in advance!

How I Cured My Back Pain

As I've gotten older, and gotten into the habit of working more hours, I'd become somewhat used to a pain in my back. This specific pain, inflammation rather, was located just under my right shoulder blade and would surface around mid-day. As I normally work 10-12 hours a day, the back pain impacted my ability to focus and to enjoy my work fully. I ended up casting a naughty glance at my office chair (Office Depot 79$ special), thinking it could possibly be contributing to the problem. After poking around at the Herman Miller Aeron chairs, I couldn't bring myself to spend over $1,000 for a chair that might or might not help me out.

After even more research, I found a chair called Ergohuman ME7ERG Mesh High Back Chair. Since it was half the price of the Aeron and was listed on a site claiming to have "Chairs professionally selected by certified Ergonomists", I simply had to have one.

And what did you think about it?

To be blunt, this chair cleared up my back problems. Within less than a week of having it, I had less pain, better focus and was more comfortable working than I had ever been. Quite possibly, the $500 I spent has delivered the most bang for the buck of ANYTHING I have in my home office.

Where did you by it?

I bought this chair from http://www.ergonomicchairpro.com, mostly because they had an eBay special for $500 with free shipping. They offer similar deals on their website right now, so don't worry about searching around.

How long did it take to receive?

The chair showed up in a few days. Considering how large the package is, and the Free shipping, I thought it would take much longer.

How was the Installation?

Putting the chair together took me about 15 minutes. All the necessary tools were provided in the package for me. They even included some extra screws, which I kept.

How was the Quality?

This chair is seriously built. Some chairs are cheap plastic and will wear out soon. The Ergohuman ME7ERG is built with a heavy steel base and composite frame. I've used this chair every day for a year now and there is no sign of wear. It is very comfortable and adjusts in a number of manners for the best fit.

Seriously? No Back Pain?

I have not had a recurrence of the back pain at all since I've been working in this chair. Even when working in lengthy spurts of 60-80 hours, no back pain.

How much money do you get from selling these chairs?

I don't make a single nickel from selling these chairs. Frankly, at DataCurl, we do just fine providing high-quality consulting and applications to the Health and Wellness industry that we don't need to shill chairs for pennies. You don't see any ads on this blog do you?

In closing, if you have back pain from working at a computer all day long, you owe it to yourself to invest in a proper chair. Most people have vehicles that cost between $10-50k which are driven less than an hour a day. A quality work chair is used between 6-12 hours a day, so it is worth the extra money to get a quality chair designed around human beings. If you want one of these chairs, go check out Ergonomic Chair Pro and get one today.

CFMeeup Presentation on Intermediate ColdSpring - Remote CFCs

Tomorrow Oct 16th, Tom Chiverton will present Intermediate ColdSpring - Remote CFCs to the online ColdFusion Meetup at 2 PM Est. Many people enjoyed my ColdSpring presentation and expressed interest in learning more about ColdSpring. Your wishes have been granted.

As the trend in development grows to include more SOA and/or Rich Client applications, we all seek to leverage our current codebases efficiently to deliver maximum value for our business units and customers. Using the ColdSpring framework to expose services is one key tool in the tool chest and should be a part of all advanced developers skillset. Tom's presentation tomorrow will hit several key areas and also provide a good base for those who want a more in-depth knowledge of ColdSpring and who also want to add Remote Access to their applications. Here is the published description from the man himself:

When exposing ColdSpring beans as remote (web, AJAX, AMF etc.) services there are several common problems that need to be solved. In this presentation, we'll discuss some of the problems and the ways ColdSpring can address these.

We will use a RemoteFactoryBean to generate a remote façade automatically, and then see how Pointcuts can automatically apply Before and Around Advice to this façade. We will see how these two powerful techniques simplify development and maintenance, by showing practical examples of both types of Advice.

If you are using ColdSpring already for Dependancy Injection, these techniques are a next step.

Tom Chiverton is an active blogger and has been a vocal contributor on several mailing lists. (He is also known for his rotating email signatures :) ) It is clear he knows his stuff. Be there tomorrow at 2PM EST, or Be Square!

Input requested for my new presentation Fun With Coldspring

I am going to be giving a presentation to The Triangle Area ColdFusion User Group entitled Fun with ColdSpring.

This is the description I am shopping around:

This month Dan Wilson presents on Fun with ColdSpring. ColdSpring is a wonderful framework used when working with CFC based applications. Using ColdSpring effectively reduces the complexity of CC based applications, saves time, makes applications easier to understand and adds a nice tool to the Rapid Development toolkit. Come see what all the fuss is about.

My plan is to show practical examples of how to use ColdSpring in OO applications. I would like some ideas on the sort of stuff I should cover.

So, if you haven't used ColdSpring before and you have questions, please leave a comment and tell me what you would like covered.

If you use ColdSpring some, and you want to know about certain features, please add them in the comments below.

If you are an expert ColdSpring user and you have something fancy that you feel should be definitely covered, please leave a comment.

ColdSpring is a wonderful framework and the topic area is quite broad. I'd like to talk about the things people are most curious about..... your input is appreciated.

Refactoring from Procedural to OO presentation files

I've just finished my first CFUnited presentation on Refactoring from Procedural to OO. The presentation was slated for 8:30 and frankly I didn't expect many to show for it. We ended up with a pretty good group and had a nice time talking about sensible ways to migrate into better architectural practices.

While I've made the presentation available from my blog, and you can download the PPT (with CF.Objective Branding), and the supporting code files from the pod on the right titled Refactoring Preso, a better choice would be to view the presentation online at here at slidesix, a slidecasting project by the illustrious Todd Sharp.

If you missed the presentation at CFUnited this morning, I'll be giving another at 4:00 on Saturday. If you missed the CFUnited conference completely, I'll be giving it to the CFMeetup some time in the near future.

Thanks again to the good folks that came this morning, we had a fun time!

Quick Tip For Installation of FTP Tasks in Flex Builder

I installed the dependencies for the FTP Task in ANT this morning and when I ran the ANT task I promptly got this error:

Could not create type ftp due to java.lang.NoClassDefFoundError: org/apache/commons/net/ftp/FTPClientConfig

Clearly, this means the FTP Client Config class was not where it was supposed to be. I thought I was doing the right thing by downloading http://commons.apache.org/downloads/download_net.cgi and http://jakarta.apache.org/site/downloads/downloads_oro.cgi, unzipping them into $FlexBuilderHome$/plugins/org.apache.ant_1.7.0.xxxxx/lib directory, then restarting Flex Builder.

[More]