Why you should submit beginner/intermediate sessions to NCDevCon

NCDevCon is a free two day conference on ColdFusion, Flash, Flex, AIR, HTML, Javascript and CSS. We've been building on the success of last year, and making bigger moves to grow the community. We are a victim of our own success.

What I mean by that is, we've taken some big strides to find developers who aren't typically at Adobe conferences. Last year we held a free ColdFusion training day and also a free Flex training day. These training sessions were well received by the audience and much good was done.

This year, the interest for these classes has already quadrupled. We have many more developers who have no exposure to either ColdFusion or Flex. As such, we'd like to ask the community for help.

Many of the speaker submissions for NCDevCon are advanced sessions. We want those sessions to be included in our conference. We also want some good beginner/intermediate content as well.

Of particular interest to us would be sessions that teach newcomers to ColdFusion, how to do common tasks with ColdFusion.

The format for these would be 2 hour hands-on blocks. You provide the content and a step by step process, and we'll provide Teachers Assistants to help you keep the class on track. We'll also take care of making sure the attendees have the right software installed.

This is a great way to help your fellow developers and future developers. We promise to give you the star treatment while you are with us!

Some examples of sessions we'd like to see are:

  • How to build a contact form
  • How to build a dynamic product list
  • Building a data driven JQuery widget with ColdFusion
  • Reusing layouts in ColdFusion
  • Whatever else you can think of

So, if you would like to take part in this unique opportunity, let us know. We thank you in advance for the consideration.

How to customize the ColdFusion AutoSuggest

ColdFusion 8 and 9 have an autosuggest functionality that just couldn't be simpler. If you want to have an autosuggest input on the screen, you can do it with a single line of code:

view plain print about
1<cfinput type="text" name="language" autosuggest="english,spanish,french">

That snippet will place an autosuggest box on the screen and allow a choice of english, spanish or french. Snazzy yeah?

If you want, you can bind the autosuggest to a javascript function, or directly to a CFC, making data retrieval and formatting very simple.

view plain print about
1<cfinput type="text" name="language" autosuggest="javascript:doSomethingJavascripty( {cfautosuggestvalue} )" />

view plain print about
1<cfinput type="text" name="language" autosuggest="cfc:DoSomething.coldFusiony( {cfautosuggestvalue} )" />

You can also make more complex examples, take a look at the ColdFusion 9 Documentation for Autosuggest for some ideas. All this is possible because ColdFusion used the extensive YUI library under the hood. The control used by the ColdFusion Autosuggest is the YUI AutoComplete widget.

Let's say you wanted to do something that the YUI AutoComplete offers, but isn't in the ColdFusion documentation, what do you do?


ColdFusion License Key Invalid?

I'm having all my servers upgraded to ColdFusion 9. In the process we ran into a situation where a perfectly valid key was not accepted by the ColdFusion installer.

The serial number that you entered is invalid

After a little troubleshooting, Tim Geist at Viviotech (top notch hosts) found an Adobe KB on Invalid License Keys and Linux:

When installing ColdFusion 9 Standard onto a Linux operating system, you may encounter the issue where the installer does not accept the serial number. When you enter the number into the installer, you will receive a message similar to the following:

* The message 'The serial number that you entered is invalid' * A red cross will appear next to the Serial Number text field

The installer will not let you progress any further.

Read More

Apparently, proceeding with the developer installation, then entering the license key in later fixes the issue. I'm sure this will be remedied in a future point release of ColdFusion.

Hey look, Jamie Metcher is Blogging!

Jamie Metcher, one of the wild and talented Aussies, is blogging now at http://lagod.id.au/blog/. If you, (like me), wondered what an lagod is, Jamie explains why he chose lagod on one of his pages.

Happy blogging Jamie.

So you wanna plan a conference?

We've just finished up the CFinNC conference and by all digital accounts, it went rather well. Most things ran on time, lunch arrived promptly and the facility at NC State College of Textile was top notch.

I've been an attendee, speaker, teacher and a sponsor before, but this was my first time from the OTHER side of the registration desk. I have a newly found appreciation for conferences and conference staff.

Since this was our first time planning a conference, we learned a lot. I've heard rumors of other groups wanting to put on a similar conference and I want to share a few things we learned along the way.

  1. It helps to have a whole bunch of committed volunteers that see the vision and will take responsibility for completing tasks.
  2. It helps to have a very generous sponsor providing facilities, manpower, AV and Video recording, which if we'd had to procure on our own would have blown our entire budget.
  3. It helps to have committed financial and contributing sponsors that help provide the budget. There will be more expenses than you may think at first.
  4. It helps to reach out to the illustrious conference diva Liz Frederick and get timely help and advice along the way.
  5. It helps to get an information organization strategy in place, so the team isn't having to dig through mountains of emails, twitters, mailing list and other channels just to get status on deliverables. Maybe use a forum or a collaboration system with ticketing or something for this. Email and Excel are not the answer!
  6. It helps to periodically test your Contact Us form. Or Bad things can happen.
  7. It helps to put out the menu and the schedule as early as possible so you can help folks know what to expect and how to arrange their travel plans.
  8. It helps to overcommunicate with speakers, sponsors and attendees. Seriously.
  9. It helps to go ahead and just make mediocre decisions earlier than wait and try to make great decisions later.
  10. It helps to understand that if you are running the conference, you will not have a single moment to socialize. You probably won't like this and neither will all your friends.
  11. It helps to understand that there will be problems and snags and must be fixed, regardless of how much planning you do. Fix them quickly and no one will know they even happened.

There is plenty more we learned also, but we'd like to hear from you. We put out a Post Conference Survey to get a 360 degree view of the conference and find ways to improve, should we do this again in the near future.

Thanks to all the volunteers, sponsors, speakers and attendees who made this event special. We thank you all for honoring us with your presence.


Get Free Model-Glue training this weekend!

As you've probably seen, I'm giving Free Model Glue training this weekend at BFusion/BFlex in Bloomington, Indiana. This will be the last Free Model-Glue training before we start the MG Training Roadshow, which won't be free. (Unless I win the lottery, which could happen).

BFusion is a super-mega-low cost event ($10) that has excellent content by excellent speakers. Held on the campus of Indiana University, the vibe at the conference is very open and inviting. If you come, you can get lots of hands on training in ColdFusion and Flex basically for free.

Did you know, BFusion was the inspiration for the CFinNC event this past weekend? Yep, good things happen at BFusion/BFlex. Folks get inspired, improve their skills and careers, and forge lasting friendships with really great people.

So cancel your weekend plans, get in the car, bus, plane, or train and head down. If you aren't totally impressed with BFusion/BFlex, I'll personally refund your $10.

Register for BFusion/BFlex Today!


Model Glue:Gesture - Version 3.1 Presentation at CF.Objective(ANZ)

I'll be presenting on Model-Glue 3, code named Gesture, at the CF.Objective(ANZ) conference, taking place in Melbourne, Australia on November 12th and 13th.

I'm glad I'm able to go to this conference because the schedule is packed with quality material by highly decorated speakers. Having interacted with a number of Australian developers through mailing lists and chat, I'm very pleased to meet some of the legends in person and to meet the very vibrant, entertaining ColdFusion community from Australia, New Zealand and Asia.

Seats are limited and there are less than 4 weeks until the conference. Register today! I hope to see you there!

CFinNC is close to a sell out

When we started talking about planning the CFinNC conference, we knew we wanted to provide the best possible training and education for zero cost. This goal was ambitious and required a large dedicated, experienced conference planning team with a large budget.

Since we were a small, volunteer, inexperienced group of programmers with zero budget, I've been entertained and surprised at times by the proceedings. For those who don't know, the CFinNC planning team is pretty much the entire Triangle Area ColdFusion User Group. This is the premiere ColdFusion User Group on the planet and anyone who thinks differently can come to CFUnited for a smackdown in the Sumo Ring.

Thanks to the generosity of our sponsors and the creativity and dedication of our planning teams, we are set to have the very best Adobe Platform ever, in the state of North Carolina.

The good news for us, and the bad news for those who've been delaying their registration, is we are close to sold out. (Editors Note: Can a free conference really sell out?)

Conferences generally have two periods of rapid registrations, generally around the first two weeks of registration, and the last 2 weeks of registration. CFinNC starts Oct 17th, so we are definitely in the last 2 weeks. Though interestingly enough and based on highly complicated computer models, we'll have to close registration ahead of schedule. If you've been postponing registration for CFinNC, do it now.

As my 9 year old Nephew so eleoquently put it, Snoozers are losers.

So you wanna learn Regex? - Part 5

Welcome to So You Wanna Learn Regex? Part 5. This is our last part of this series, mostly because I don't know a whole lot more than this. If you want more tutorials about regex, go bug Ben. He knows more about this than I ever will and I hear he has a blog...

In our last exercise, we looked at a simple way to add cfqueryparam to a bunch of queries. This was accomplished by making a pattern consisting of 3 groups then using one of the groups to populate a literal string.

In this exercise, we are going to clean up some data scripts. Let's suppose you are generating database scripts and your script generator puts the primary key in there. For whatever reason, you want to remove this.

Assume this set of declarations:

INSERT INTO `memberchallenge` VALUES ('11', '1', '19', null, '2008-11-14 14:07:59', '2008-11-14 14:07:59', '1', '2008-11-14 14:07:59', '0');
INSERT INTO `memberchallenge` VALUES ('12', '2', '19', null, '2008-11-14 15:40:51', '2008-11-14 15:40:51', '1', '2008-11-14 15:40:51', '0');
INSERT INTO `memberchallenge` VALUES ('14', '5', '19', null, '2008-11-14 20:14:26', '2008-11-14 20:14:26', '5', '2008-11-14 20:14:26', '0');
INSERT INTO `memberchallenge` VALUES ('15', '1', '20', null, '2008-11-23 18:19:31', '2008-11-23 18:19:31', '1', '2008-11-23 18:19:30', '0');
INSERT INTO `memberchallenge` VALUES ('16', '2', '20', null, '2008-11-23 18:20:09', '2008-11-23 18:20:09', '1', '2008-11-23 18:20:09', '0');
INSERT INTO `memberchallenge` VALUES ('17', '1', '21', null, '2008-11-25 20:32:44', '2008-11-25 20:32:44', '1', '2008-11-25 20:32:44', '0');
INSERT INTO `memberchallenge` VALUES ('18', '2', '21', null, '2008-11-25 20:33:01', '2008-11-25 20:33:01', '1', '2008-11-25 20:33:01', '0');

What we want, is to turn:INSERT INTO `memberchallenge` VALUES ('11', '1', '19', null, '2008-11-14 14:07:59', '2008-11-14 14:07:59', '1', '2008-11-14 14:07:59', '0'); into: INSERT INTO `memberchallenge` VALUES ('1', '19', null, '2008-11-14 14:07:59', '2008-11-14 14:07:59', '1', '2008-11-14 14:07:59', '0');

Note the first value in the VALUES statement has vanished.. this would be the primary key in our dataload script.

So as you know, we define this pattern in the gobbledegook of regular expressions. When read one chunk at a time, these actually make sense. We'll go through the exercise, then look at why it worked.

In Eclipse, perform the following:


So you wanna learn Regex? - Part 4

Welcome to So You Wanna Learn Regex? Part 4. In our last exercise, we looked at a simple way to clean a whole bunch of strings. This was accomplished by making a pattern, then removing everything according to that pattern. This time we are going to add cfqueryparam to a query. Say for example, that you have a junior developer who has been turned loose on her first application and she's done a good job, except for she didn't use cfqueryparam. You just found this out and the site has to go live in 10 minutes and you have 200 queries to fix. Do you:

  • a) Download the code to your laptop then pull the fire alarm to stall for time?
  • b) Start blasting your resume out on Monster.com?
  • c) Take a fistfull of aspirin, knowing your forearms will ache in the morning?

If you answered d) none of the above, please keep reading.

Assume this set of declarations:

UPDATE plant
	SET 	Symbol = '#form.symbol#',
			SynonymSymbol = '#form.SynonymSymbol#',
     		ScientificNameWithAuthor = '#form.ScientificNameWithAuthor#',
     		CommonName = '#CommonName#',
     		Family = '#Family#'
WHERE PlantCode = '#form.plantCode#'

What we want, is to turn: '#form.symbol#' into: <cfqueryparam value="#form.symbol#" cfsqltype="cf_sql_varchar">

So as you know, we define this pattern in the gobbledegook of regular expressions. When read one chunk at a time, these actually make sense. We'll go through the exercise, then look at why it worked.

In Eclipse, perform the following: