<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>Matthew Williams - CFDev (and admin!)</title>
			<link>http://www.geodesicgrafx.com/blog/index.cfm</link>
			<description>Who knows what lurks in the minds of men</description>
			<language>en-us</language>
			<pubDate>Tue, 07 Sep 2010 10:27:49 -0500</pubDate>
			<lastBuildDate>Mon, 21 Sep 2009 14:40:00 -0500</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>webmaster@geodesicgrafx.com</managingEditor>
			<webMaster>webmaster@geodesicgrafx.com</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author></itunes:author>
			<itunes:owner>
				<itunes:email>webmaster@geodesicgrafx.com</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			<itunes:image href="" />
			<image>
				<url></url>
				<title>Matthew Williams - CFDev (and admin!)</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm</link>
			</image>
			<itunes:explicit>no</itunes:explicit>
			
			
			
			
			
			<item>
				<title>!@#@!#@! script kiddies</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/9/21/-script-kiddies</link>
				<description>
				
				Well, I finally got hacked.  This is a first for me, and proves that my Linux skills are just not quite as up there as my windows admin skills.  And what was the vector?  The lack of queryparams inside CFshopkart.  The only upside is that there were no transactions inside the cart, and no sensitive data to steal.  But the defacement did muck about with several system files.  Bah.
				
				</description>
						
				
				<category>Rants</category>				
				
				<pubDate>Mon, 21 Sep 2009 14:40:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/9/21/-script-kiddies</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Completely off topic, but humans are just a lost cause</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/8/4/Completely-off-topic-but-humans-are-just-a-lost-cause</link>
				<description>
				
				Last night I had an argument with some lady that&apos;s some damn stupid, that it bares repeating.  

Every now and then the missus and I have a brain lapse and take the kids to Chuck E Cheese.  They enjoy it, but I don&apos;t know of many parents that do ;).  At any rate, I was put in charge of holding a twin and following one of the older kids around.  At the time I was shadowing our two year old.  

My daughter decided to play some skeeball.  Now, I don&apos;t mind skeeball.  It&apos;s fairly fun, and I used to enjoy a good round in my youth.  We show up at the lanes (they have maybe 6?) to find a youth and her grandmum... least, that&apos;s seemed to be the correct age grouping.  This pair was using the middle lanes, and grammy&apos;s purse was occupying a third.  The purse isn&apos;t actually beside grammy, it&apos;s another lane over yet (why?  beats me).  Beside the purse, some dude is using the ball drop area to hold his cup of coins whilst playing the basketball game.  So, that leaves my daughter and I the lane next to grammy.

Alright, we shoot in our coin, and the two year old gives it a fair try.  She didn&apos;t get a single ball up the lane but I threw the missed balls back up the ramp for her.  And for the first time in my life, actually hit one of those blasted 100k holes.  Sweeeet.  Anyway, we finish up at 300k points, grab our tickets and start walking away.  And that&apos;s when the fun started...

Ignorant Woman:  &quot;Excuse me, you&apos;re taking my tickets&quot;

Me:  &quot;No ma&apos;am, these are our tickets&quot;

IW:  &quot;No, you&apos;re taking my tickets&quot;

Me:  &quot;Ma&apos;am, these are our tickets.  They came from this machine&quot;

IW:  &quot;No, they&apos;re mine.&quot;

Me:  &quot;Ma&apos;am, you&apos;re tickets come out beside you.  Look.&quot;

IW:  &quot;No, those are her tickets.  Your&apos;s must be broken&quot;

Me:  &quot;Ma&apos;am... look at the machine.  You can see where they&apos;re connected.  These are our tickets.&quot;

IW:  &quot;No, those are my tickets&quot;

And it&apos;s at this point I realized that Ron White is correct.  You can get a face lift, a boob job, cosmetically address imperfections.  But you can&apos;t fix stupid.  My brain just tripped a circuit.  I found myself thinking, &quot;wait... we&apos;re arguing about the equivalent of 25 cents... maybe 20 tickets?  WTF??&quot;.  So I said to the ignorant woman, &quot;you know what?  You can have the tickets.  Allie, (the two year old this woman was effectively taking tickets from) give her the tickets.&quot;  And damn, if she didn&apos;t do me proud.  My two year old just threw the tickets at this woman&apos;s feet and we just walked away.  

Honestly, I was thinking on it later, and my point would have been proved by putting another quarter in the machine.  It would have spit another ticket or two out as your &quot;freebie&quot;.  However, this just wasn&apos;t a teachable moment.  At this point I&apos;m just happy we didn&apos;t get thrown out of chuck&apos;s (well... am I really happy about that? hmmm), but damn I hate ignorant folks.
				
				</description>
						
				
				<category>Rants</category>				
				
				<pubDate>Tue, 04 Aug 2009 13:42:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/8/4/Completely-off-topic-but-humans-are-just-a-lost-cause</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>I want to love you linux, but why must you make it so damn hard!</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/22/I-want-to-love-you-linux-but-why-must-you-make-it-so-damn-hard</link>
				<description>
				
				After reading a blog entry about another CF guy moving over to Linode, I got to asking myself &quot;what the heck is a linode&quot;? Well, it&apos;s a XEN based VPS that&apos;s really, really freakin&apos; cheap! I signed up for their 1080 plan (which is way more traffic then I&apos;ll likely see), and decided it was time to move from shared hosting to my own VPS. The reasons abound, one of which being I&apos;m going to be fielding all of the hosting/billing for future projects for Meteorsite, LLC. I&apos;d also planned on moving to Railo/Resin to do this hosting, and it seemed like a great fit. Oh, and I was also planning on using GroundWorks with Nagios to monitor all our various and sundry hosting solutions (to also get that crap off my own home network ;) ).

Things went great at first. I got GroundWorks installed, but then I realized that GroundWorks wants to gloom onto and possess MySQL and Apache. Well, that&apos;s a pain in the ass and had to go. I only really wanted Nagios anyway. I&apos;ll generate the nagios configs on my local machine and just migrate them over. Fine, and done.
Next step, configure a mail server with some sort of web front end. My old host used Plesk and that seemed to also include Horde. Great! I can deal with Horde. I usually pull everything into google mail for online viewing anyway, but I like having that option. So... I found 1, 2, a ton of tutorials on installing Horde on Ubuntu. The only problem is, not a damn one worked. Postfix would install correctly, but in the end I could never get IMAP (dovecot or courrier) to talk nice-nice to Postfix.

Three tutorials, and several hours later, I decided to start looking for a one touch install type system. Since I&apos;ll be hosting sites later it made sense to find a Plesk/CPanel/Helm type open source solution. And behold, I started my quest towards making ISPconfig work. There is at least 10 hours of my life I&apos;m never getting back. Good lord... after about 50 steps, I just could not get ISPconfig to authenticate against IMP. And as soon as I changed the authentication method, I couldn&apos;t get back into the system. No matter what I tried, I could not get it to work. In between all of this, it&apos;s likely that I blew away my VPS about 20 times.

And then, I found Citadel and Easy Host Control Panel. I tried Citadel first, and currently have EHCP running on a test machine. Citadel (and EHCP) just worked. One installer, and that&apos;s it. Yes, you have to answer questions, but they&apos;re of the variety of &quot;what&apos;s your system DNS&quot; and &quot;what&apos;s your mysql root passwor&quot;. Each have domain management for mail. Citadel really does far more than I require, and I think for hosting other sites, EHCP makes more sense, but at least I have something up and running! Yay. I do, however, still want my weekend back.
				
				</description>
						
				
				<category>Rants</category>				
				
				<category>Hosting</category>				
				
				<pubDate>Wed, 22 Jul 2009 17:24:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/22/I-want-to-love-you-linux-but-why-must-you-make-it-so-damn-hard</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>You learn something new every day!</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/22/You-learn-something-new-every-day</link>
				<description>
				
				I had to complete a disaster recovery project this week. We do this annually for one of our clients (yay for preparedness!) for one of their ColdFusion sites. I&apos;ve got a run book and all that and was prepared to reinstall ColdFusion and copy in their EAR to redeploy the application. Until I had a conversation with a coworker:
Him&gt; Did they restore your data yet?
Me&gt; Yep, I&apos;m just getting ready to reinstall ColdFusion and-
Him&gt; Re-install? Isn&apos;t everything already there?
Me&gt; Well, yeah, but. Wait... huh. I bet I could just run the jrunsvc command, and..

So it turns out, if you don&apos;t need search, .NET, LiveCycle or ODBC services, you can just restore ColdFusion from a a backup to your file system. All you really need (minus those other pieces) is to run the jrunsvc command to install a new ColdFusion service in the the services console and to run the wsconfig.jar to connect IIS to JRun (or, if you restore the website from a file, all of that is already there). My runbook went from something like 30 steps down to about 4. Color me happy.
And when you think about it, it makes sense. Since it&apos;s all built atop Java (minus the other services) there&apos;s no reason to go through the installer. You can probably install those other components but I don&apos;t really need them, so I don&apos;t care to find out how at present. But still, this is a handy little tid bit.
				
				</description>
						
				
				<category>JRun</category>				
				
				<category>ColdFusion 8.x</category>				
				
				<pubDate>Wed, 22 Jul 2009 11:10:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/22/You-learn-something-new-every-day</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>FarCry 5.2 + Railo 3.1.0.16 + Resin + Apache + MySQL + CentOS - Addendum 1</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/11/FarCry-52--Railo-31016--Resin--Apache--MySQL--CentOS--Addendum-1</link>
				<description>
				
				I had an &quot;Ah HA!&quot; moment when I got home tonight.  I copied in my FarCry core folder from my known good Ubuntu Railo/FarCry install over to my CentOS install and still had issues.  I tried several iterations of this, and then I had a think.  I pulled up the Railo admin on my Ubuntu install, and noticed I had it at .012.  And then it hit me... I was actually in a discussion about this with others on the google groups.  I thought I had tried it at 3.1.0.016, but I think I did not complete the upgrade step.  

So, I copied the .012 install of Railo over to the CentOS box and it worked!  Huzzah!  So, it appears that .012 remains the most supported version at this point in time.  I&apos;m hosting a copy of this file on my site, but please be gentle!  I don&apos;t want to hear it from my host that ya&apos;ll are killing my server.  You can grab the file &lt;a href=&quot;/files/railo-3.1.0.012-resin-3.1.2-without-jre.tar?phpMyAdmin=6ffe8b831e4bded08a42997de2b6eeaa&quot;&gt;here&lt;/a&gt;.
				
				</description>
						
				
				<category>FarCry</category>				
				
				<category>Railo</category>				
				
				<category>ColdFusion 8.x</category>				
				
				<pubDate>Sat, 11 Jul 2009 00:38:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/11/FarCry-52--Railo-31016--Resin--Apache--MySQL--CentOS--Addendum-1</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>FarCry 5.2 + Railo 3.1.0.16 + Resin + Apache + MySQL + CentOS - Part 3</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/10/FarCry-52--Railo-31016--Resin--Apache--MySQL--CentOS--Part-3</link>
				<description>
				
				In this installment we&apos;re going to be installing FarCry, and tweaking our Apache settings a bit.  To let ya&apos;ll know upfront, there&apos;s still a few issues with FarCry and functions that are named the same as internal Railo functions.  I know these changes were placed into trunk at one point, but it doesn&apos;t seem like they migrated over to the 5.1.6 release.  That&apos;s OK, I&apos;ve got a fairly stable pull of the core trunk files from a few weeks back that I&apos;ll be linking on the site this evening.  I&apos;ll verify that this fixes the odd &quot;function cannot be named&quot; stuff going on.  The current trunk files are not allowing the overview page to come up, but then again this is trunk we&apos;re talking about... life on the bleeding edge sometimes leads to a paper cut ;).
				 [More]
				</description>
						
				
				<category>FarCry</category>				
				
				<category>Railo</category>				
				
				<category>ColdFusion 8.x</category>				
				
				<pubDate>Fri, 10 Jul 2009 14:52:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/10/FarCry-52--Railo-31016--Resin--Apache--MySQL--CentOS--Part-3</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>FarCry 5.2 + Railo 3.1.0.16 + Resin + Apache + MySQL + CentOS - Part 2</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/10/FarCry-52--Railo-31016--Resin--Apache--MySQL--CentOS--Part-2</link>
				<description>
				
				Right... part 2.  We&apos;re going to install Railo in this section.  It&apos;s going to be a much smaller ride than part 1 ;).  But first, some knowledge.

I&apos;ve learned that:
&lt;ul&gt;
&lt;li&gt;I&apos;m not a fan of CentOS.  I prefer the debian distros.  Why?  I&apos;ve not really ever had a need to play with SELinux, or IPTables.  Why does that matter?  Both of these things have caused me grief whilst putting this together as both are enabled by default in both the _64 and i386 builds of 5.3.
&lt;/li&gt;
&lt;li&gt;You must turn off IPTables on each boot of the system.  I&apos;m sure there&apos;s a way to make this automatic, but I really haven&apos;t tracked it down yet.  Yes, it would not be an issue if I just set it up... surely this will be a blog posting down the line, but I don&apos;t require it for now.
&lt;/li&gt;
&lt;li&gt;I had originally done the write up for part 1 with an _64 build.  Everything was great until I got to the point where I needed to build mod_caucho.  I could not find a way to successfully build that, and it appeared to be an issue with apsx.  I didn&apos;t really want to spend my entire day chasing down rabit holes, so I switched to the i386 build.  It&apos;s at this point that I learned that SELinux was preventing Apache from talking to Caucho.  Again, not wanting to chase my tail endlessly, I just disabled SELinux for now.
&lt;/li&gt;
&lt;li&gt;Use PUTTY!  I can never get copy/paste to play nice between my VM command line screen and windows.  So, I&apos;ll just minimize the VM and use PUTTY to terminal (over SSH) into virtual box.  In this way, you can also keep several screens up at one time.
&lt;/li&gt;
&lt;/ul&gt;
				 [More]
				</description>
						
				
				<category>FarCry</category>				
				
				<category>Railo</category>				
				
				<category>ColdFusion 8.x</category>				
				
				<pubDate>Fri, 10 Jul 2009 01:55:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/10/FarCry-52--Railo-31016--Resin--Apache--MySQL--CentOS--Part-2</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Where the heck do ya&apos;ll find the time?</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/9/Where-the-heck-do-yall-find-the-time</link>
				<description>
				
				I just can&apos;t seem to get into the swing of this blog post a day deal.  Heck, I barely have enough time to even get enough sleep throughout a day.  How the heck do ya&apos;ll bang out so many blog posts over the course of a week?  

Even though it appears that no one cares about my FarCry railo install piece, it&apos;ll likely take me about 8-10 hours of total setup time to get a working install done.  I don&apos;t really mind if no one sees it... I&apos;m doing this because I have to have a working install within the next few weeks to satisfy a customer project.  Maybe I need to start aiming for the lower hanging fruit or something?
				
				</description>
						
				
				<category>Rants</category>				
				
				<pubDate>Thu, 09 Jul 2009 15:10:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/9/Where-the-heck-do-yall-find-the-time</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>FarCry 5.2 + Railo 3.1.0.16 + Resin + Apache + MySQL + CentOS - Part 1</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/8/FarCry-516--Railo-31016--Resin--Apache--MySQL--CentOS</link>
				<description>
				
				Woah... not such a catchy title, but it&apos;s descriptive, non?

This all began as a quest to be able to provide a VPS solution to the lowest bidder situation.  Their host provides CentOS machines at a fairly reasonable price, but that price would not include the cost of a ColdFusion license.  My framework of choice is FarCry, and lately the Daemonites have taken great strides in keeping the framework compatible with Railo.  This is the thorny path towards creating a Linux virtual machine with FarCry, MySQL, Railo, and Apache (oh... and SES URLs).

We&apos;ll start by just getting the basics of the system running and in place.

&lt;ul&gt;
&lt;li&gt;Everything I&apos;m doing is as the root user... yes, not cool, but this just development.  Typically, you should really use sudo to do all of this.&lt;/li&gt;
  &lt;li&gt;Grab a VMware image of CentOS 5.2. You can find one here: http://www.vmware.com/appliances/directory/1309. VMplayer can be found here: http://www.vmware.com/download/player/&lt;/li&gt;
  &lt;li&gt;Turn off IPTABLES for testing... yes, not the best idea for production, but this is development.  I could not figure out why the heck Apache wasn&apos;t serving pages outside the local install, and it was the firewall blocking it.  In production, you should really turn this feature on.  I&apos;m not addressing how to do so for this excercise.
    &lt;ul&gt;
&lt;li&gt;
      &lt;code&gt;
/etc/init.d/iptables save
/etc/init.d/iptables stop
&lt;/code&gt;
&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Enable RPMforge packages.  This will allow us to install phpMyAdmin through yum.
    &lt;ul&gt;
      &lt;li&gt;http://wiki.centos.org/AdditionalResources/Repositories/RPMForge (source)&lt;/li&gt;
      &lt;li&gt;Download either i386 or _64 RPM dependant on your OS type version
        &lt;ul&gt;
          &lt;li&gt;http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm&lt;/li&gt;
          &lt;li&gt;http://apt.sw.be/redhat/el5/en/x86_64/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Import GPG key
        &lt;code&gt;rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt &lt;/code&gt;
      &lt;/li&gt;
      &lt;li&gt;Install it (replace the RPM with the name)
&lt;code&gt;rpm -i rpmforge-release-0.3.6-1.el5.rf.*.rpm&lt;/code&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;li&gt;We need to install apache (well, not NEED, but we&apos;re not using Tomcat here)
    &lt;ul&gt;
      &lt;li&gt;http://www.railo.ch/blog/index.cfm/2008/11/12/Installing-ResinRailo-on-CentOS
      (source)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;code&gt;yum install httpd httpd-devel openssl-devel&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;li&gt;We need to install MySQL
    &lt;ul&gt;
      &lt;li&gt;http://www.ozzu.com/unix-linux-forum/centos-and-apache-php-mysql-t69484.html (source)&lt;/li&gt;
      &lt;li&gt;&lt;code&gt;vi /etc/yum.repos.d/CentOS-Base.repo&lt;/code&gt;&lt;/li&gt;
      &lt;li&gt;change enable=1 for centosplus&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;code&gt;yum install mysql-server mysql&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;li&gt;I installed PHP/PHPmyadmin - just for DB administration
    &lt;ul&gt;
      &lt;code&gt;yum install php php-mysql phpmyadmin
      cd /usr/share/phpmyadmin/
      vi config.inc.php
&lt;/code&gt;
      &lt;li&gt;enter a value in $cfg[&apos;blowfish_secret&apos;] = &apos;&amp;lt;something&amp;gt;&apos;;&lt;/li&gt;
      &lt;li&gt;&lt;code&gt;vi /etc/httpd/conf.d/phpmyadmin.conf&lt;/code&gt;&lt;/li&gt;
      &lt;li&gt;change the allow line to (yes, yes... but this is a test environ) to Allow from all&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;We need to install a JVM... this part just sucks. Unlike other distros, no precompiled version really meets our needs.
  &lt;/li&gt;
  &lt;ul&gt;
    &lt;li&gt;http://j2eeinaction.blogspot.com/2009/02/install-java-6-on-centos-52.html (source)&lt;/li&gt;
    &lt;li&gt;Go to http://java.sun.com/javase/downloads/index.jsp (grab the JDK!). You can browse to a download link and post that into your VM as something like the following&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;wget http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u14-linux-x64-rpm.bin?BundledLineItemUUID=CXFIBe.pePAAAAEioR0Hk1t8&amp;amp;OrderID=CgtIBe.pcWUAAAEilh0Hk1t8&amp;amp;ProductID=tPxIBe.oz2IAAAEhmh0zLjfT&amp;amp;FileName=/jdk-6u14-linux-x64-rpm.bin&lt;/code&gt;&lt;/li&gt;
    &lt;li&gt;rename that long ugly file to jdk.rpm.bin&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;mv &amp;lt;stupid long name&amp;gt; jdk.rpm.bin&lt;/code&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;code&gt;chmod 700 jdk.rpm.bin
./jdk.rpm.bin
/usr/sbin/alternatives --config java&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;li&gt;Start Apache and MySQL at reboot
    &lt;ul&gt;
      &lt;code&gt;/sbin/chkconfig httpd --level 2345 on
      /sbin/chkconfig mysqld --level 2345 on&lt;/code&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;/ul&gt;

And that&apos;s it.  You have Apache serving pages at http://yoursite/ and phpMyAdmin at http://yoursite/phpmyadmin.  Next up on the chopping block, adding Railo into the mix.
				
				</description>
						
				
				<category>FarCry</category>				
				
				<category>Railo</category>				
				
				<category>ColdFusion 8.x</category>				
				
				<pubDate>Wed, 08 Jul 2009 16:39:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/8/FarCry-516--Railo-31016--Resin--Apache--MySQL--CentOS</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Fedex interactions... you are a bleeding pain</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/8/Fedex-interactions-you-are-a-bleeding-pain</link>
				<description>
				
				There has been some talk on CF-Talk lately about interacting with the Fedex WSDL/services.  There&apos;s not really much in the way of examples that I could easily find on how to use this WSDL... and I&apos;ve still not gotten over my hate of working with CFHTTP and authorize.net.  I was hopping to not have to deal with that pain again, and it seems I won&apos;t!

So, we have this link to a most excellent (and free!) CFC &lt;a href=&quot;http://code.google.com/p/cffedexrates/&quot; target=_blank&gt;here&lt;/a&gt;.  You&apos;ll still need to step through the hoops to get a developer code from Fedex, but once you do...

&lt;code&gt;
&lt;cfinvoke component=&quot;fedex&quot; method=&quot;getRates&quot; returnvariable=&quot;fedex&quot;
shipperAddress1 = 	&quot;474 N Centre St&quot;
shipperCity = 		&quot;Pottsville&quot;
shipperState = 		&quot;PA&quot;
shipperZip = 		&quot;17972&quot;
shiptoAddress1 = 	&quot;79 TW Alexander Dr&quot;
shiptoCity =		&quot;Durham&quot;
shiptoState = 		&quot;NC&quot;
shiptoZip = 		&quot;27709&quot;
pkgWeight =			&quot;3&quot;
pkgValue = 			&quot;100&quot;
myKey =	&quot;&lt;your value&gt;&quot;
myPassword=&quot;&lt;your value&gt;&quot;
myAccountNo=&quot;&lt;your value&gt;&quot;
myMeterNo=&quot;&lt;your value&gt;&quot;
&gt;

&lt;cfdump var=&quot;#fedex#&quot;&gt;
	&lt;cfoutput&gt;
	&lt;select name=&quot;shipping&quot;&gt;
			&lt;cfloop from=&quot;1&quot; to=&quot;#arraylen(fedex.rate)#&quot; index=&quot;n&quot;&gt;
				&lt;option value=&quot;#fedex.rate[n].cost#&quot;&gt;#fedex.rate[n].type# - #DollarFormat(fedex.rate[n].cost)#&lt;/option&gt;
			&lt;/cfloop&gt;
	&lt;/select&gt;
	&lt;/cfoutput&gt;
&lt;/code&gt;
This example (provided by the original author) includes a handy select box.  This is great for me, and saves a TON of time playing with the XML.

PS.... I forgot to close the code block... I&apos;m thinking BlogCFC could use a rich text editor.
				
				</description>
						
				
				<category>ColdFusion 8.x</category>				
				
				<pubDate>Wed, 08 Jul 2009 16:14:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/8/Fedex-interactions-you-are-a-bleeding-pain</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Addendum to FarCry and IONIC rewriting</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/1/Addendum-to-FarCry-and-IONIC-rewriting</link>
				<description>
				
				I tried to use IONIC and FarCry.  I really did.  I spent several days/weeks (eh, I have 5 kids man... I&apos;ve rather lost track of the exact time) trying to make this filter work the new friendly URLs created by FarCry.  The previous blog posting appeared to work, except... several areas of the admin became unworkable.  Mostly areas like the library picker.  Also, I ran into the odd issue where you&apos;d want to append URL variables not working.  Jeff Coughlin and I also posted to the IONIC boards hoping for some assistance (guidance?) but in the end, it&apos;s still just broken.  Heck, I even tried various version of the filter.  In any case, it just never worked 100% and I&apos;ve since given up.

So, where does that leave us?  You can either switch to Apache.  Or, you can start using the Helicon rewriting filter.  There IS a free version of this filter, BUT... the downside is you&apos;re limited to either one website or ALL websites.  The per server license for the full blown suite is about $99, but I hate having to pay for this filter for some reason.  I&apos;m just cheap, I suppose.  Or, maybe it&apos;s due to everyone thinking the &quot;ColdFusion&quot; types are already pricey to begin with?  At any rate, the free version works for me.  Failing that I&apos;m planning to switch to Apache for those cases where I need multiple site support.
				
				</description>
						
				
				<category>FarCry</category>				
				
				<pubDate>Wed, 01 Jul 2009 16:27:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/1/Addendum-to-FarCry-and-IONIC-rewriting</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Google brought down my house of cards</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/1/Google-brought-down-my-house-of-cards</link>
				<description>
				
				For almost three years now we&apos;ve been running ColdFusion (well, really JRun) session based replication and failover on all of our hosted ColdFusion environs.  Things were great!  And then, we let google in the door to index our content.  Things went from &quot;great&quot;, to &quot;why is this always down??&quot;.  I spent far too much time looking at JVM settings, JRun settings, etc., but never really came up with a concrete answer as to what was happening.  Ultimately, we&apos;d see a deluge of errors about the failure of session replication in the log files and a complete breaking of failover and sometimes even the JRun -&gt; IIS connector.

Whilst searching for the session replication errors, I came across Sean Corfields postings across various blogs that replication just does not scale well, and that it remains a broken feature.  Up until a few months ago, I&apos;d argue this to be untrue.  However, it appears that replication works... if you can manage to keep the amount of crap you throw into shared memory scopes down to a minimum.  

It&apos;s been 4 days since I&apos;ve disabled session replication, and my servers have remained standing for an equal amount of time.  We&apos;ve been getting indexed by google (and others), and things are sailing along with nary a blip.  Next stop, creating a guide for users that want/need session based failover that can be accomplished in code.  Otherwise known as, &quot;Help me Sean Corfield, you&apos;re my only hope!&quot; ;).
				
				</description>
						
				
				<category>ColdFusion 7.x</category>				
				
				<category>JRun</category>				
				
				<category>Hosting</category>				
				
				<category>IIS</category>				
				
				<category>ColdFusion 8.x</category>				
				
				<pubDate>Wed, 01 Jul 2009 16:15:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/7/1/Google-brought-down-my-house-of-cards</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Add bulk file uploads to FarCry 5.x</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/5/4/Add-bulk-file-uploads-to-FarCry-5x</link>
				<description>
				
				If you look in the content administration section of the FarCry admin, you&apos;ll find a handy little flex tool for uploading multiple images.  Sadly, there is no matching tool for uploading bulk documents.

Have no fear, as the source will set you free!  The flex UI component that pulls off the Image uploads is also available from the Daemonites at http://svn1.cvsdude.com/modius/farcry/flexUI/multipleImageUploader/trunk/.  It is, however, a tad out of date.  And unless you know flex... it&apos;s a bit of a pain as well to get it up and running.  However, I&apos;ve included a handy little zip that contains a complete working flex project if you should so choose.

So, I changed the flex UI piece to be named &quot;Multiple Files Upload&quot; and also changed the default CFM files being called (you can pass values in) to the correct file upload pieces.  The files you&apos;ll need are:

&lt;code&gt;
farcry\core\webtop\admin\bulkfileUpload.cfm
farcry\core\webtop\admin\multipleFilesUploader.cfm
farcry\core\webtop\admin\ui\swf\multipleUploaderFile.swf
&lt;/code&gt;

You&apos;ll also need to add a link to the webtop in your customadmin\customadmin.xml like (this goes into the current &quot;content&quot; section):

&lt;code&gt;
&lt;subsection id=&quot;contentpublishing&quot; sequence=&quot;10&quot; label=&quot;Content Publishing&quot;&gt;
			&lt;menu id=&quot;MediaLibraryContent&quot; sequence=&quot;20&quot; label=&quot;Media Assets&quot;&gt;
				&lt;menuitem id=&quot;bulkfileupload&quot; sequence=&quot;31&quot; label=&quot;Bulk File Upload&quot; link=&quot;/admin/multipleFilesUploader.cfm&quot; /&gt;
			&lt;/menu&gt;
		&lt;/subsection&gt;
&lt;/code&gt;

Reload your application, and that&apos;s it.  You should now have the ability to upload multiple flies (.pdf, .doc, .zip only... you can modify the flex/swf to accept other attachments as well).

UPDATE:
I added a new URL param, fileList and extension.  You can now control the file list through the multipleFilesUploader.cfm.  Updated the zip to reflect this.

&lt;a href=&quot;/blog/files/multiUpload.zip?phpMyAdmin=6ffe8b831e4bded08a42997de2b6eeaa&quot;&gt;Files&lt;/a&gt;
				
				</description>
						
				
				<category>FarCry</category>				
				
				<category>ColdFusion 8.x</category>				
				
				<pubDate>Mon, 04 May 2009 13:05:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/5/4/Add-bulk-file-uploads-to-FarCry-5x</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>FarCry 5.1 and the Ionic ISAPI rewrite filter for friendly URLs</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/2/19/FarCry-51-and-the-Ionic-ISAPI-rewrite-filter-for-friendly-URLs</link>
				<description>
				
				The 5.1 version of the framework got a big &apos;ol kick in the pants (especially for a point release) with the entire friendly URL engine undergoing a rewrite (hah).  I upgraded one my works in progress for &lt;a href=&quot;http://www.meteorsite.com&quot;&gt;Meteorsite&lt;/a&gt; from the 5.02 to 5.1 recently and noticed that my older friendly URLs were no longer being built by the buildlink tag, but they still worked when called with the older /go/ syntax.  Hmm... time to investigate.

It turns out, you no longer need to prefix the friendly URL with a search term any longer.  No more /go/ or /this/ or /something/ is required.  Now,  mysite.com/lets-start-this-party will work.  Hey, I think it&apos;s cool at least, and the VP of marketing at my last job would have loved not having to prefix everything with a /go/.

The magic behind all of this some rather nifty REGEX string to manipulate the URL, and a new piece in the framework that verifies that friendly URLs are working (which broke my current FUs).  Once you manage to pass the FU check (http://yoursite.com/pingFU returns a success), your FUs will work as desired.  The REGEX and setup instructions can  be found on the FarCry &lt;a href=&quot;http://http://docs.farcrycms.org/display/FCDEV50/Friendly+URLs&quot;&gt; WIKI&lt;/a&gt;.  

Everything was all good until... well, we&apos;re on windows, and not running Apache or the the Helicon rewrite filter.  Instead, we&apos;re running the Ionic filter, and it seems the rewrite rule just doesn&apos;t work all that well based on what&apos;s in the docs.  So began my quest to make that #@$#$ rewrite rule work for the Ionic filter.  So, let&apos;s first run through how to install the Ionic filter.

&lt;strong&gt;Installing the Ionic filter&lt;/strong&gt;
&lt;ol&gt;
&lt;li&gt;
If you just want to test with a single website, grab the IONIC 1.2.15.  If you want to use this on multiple sites on the same machine, grab 2.0a.  It really doesn&apos;t matter as the script works on
both.
&lt;/li&gt;
&lt;li&gt;
Inside the zip, you&apos;ll find a lib folder.  The two different code branches have diffrerent DLLs names and INI names.
  &lt;ul&gt;
  &lt;li&gt;
  1.2.15:  Doesn&apos;t matter where you put it, just not in the
webroot.  Put the IsapiRewrite4.dll and IsapiRewrite4.ini file in a separate folder (good to only have them in there by themselves).
  &lt;/li&gt;
  &lt;li&gt;
  2.0a:  Again, put it where you want, but not in the
webroot (for 2 of 3 files).  Put the IirfGlobal.ini and Iirf.dll in the same folder.  Place a Iirf.ini in your webroot.
  &lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
The script I send should be used in either case for either
Iirf.ini, or IsapiRewrite4.ini.  Don&apos;t touch the IirfGlobal.ini, it only takes the options already in the file.
&lt;/li&gt;
&lt;li&gt;
Windows permissions seem to be the biggest gotcha here.  The files all seem to need, at minimum, IIS_WPG and IUSER_.  Mine also have Users, SYSTEM, and Administrators if it just the first two don&apos;t work for you.
&lt;/li&gt;
&lt;li&gt;
Open up the IIS Admin tool.
&lt;/li&gt;
&lt;li&gt;
Click on web service extensions, and add a new extension for &quot;Ionic Rewriter&quot; (doesn&apos;t matter, but I think you need to be consistant here) and choose the appropriate DLL (depending on 1.2.15, 2.0a).  Be sure to check the box to set for allowed.
&lt;/li&gt;
&lt;li&gt;
Depending on the level you want to filter at (all sites, just one site) right click and get properties.  Click on the ISAPI Filters tab and add the appropriate DLL and click apply or OK (doesn&apos;t matter).
&lt;/li&gt;
&lt;li&gt;
Restart the IIS admin (should restart all of the various
services too).
&lt;/li&gt;
&lt;/ol&gt;

&lt;strong&gt;My current rewrite script - constantly evolving&lt;/strong&gt;
&lt;code&gt;
# Firstly, let&apos;s make sure that the URL is not an admin
# function.  The &quot;!&quot; does not work here
# So it was removed.  Added [L] to stop processing other
# rules for recursion issues. If you have .xxx files that 
# take a URL param, add it here
RewriteCond %{HTTP_URL} (^/farcry|^/webtop|^/flex2gateway|^/flashserviReces|^/cfide|\.cfm|\.swf|\.xml)($|/)
RewriteRule ^(.*)$ $1 [L]

# Next, if it doesn&apos;t match the above, let&apos;s to see if
# there&apos;s a &quot;?&quot; in the string and rewrite it to be
# a &quot;&amp;&quot;.  This is to catch cases like 
# /something/?this=here.  We stop processing here to
# prevent going all circular in our logic by using the &quot;[L]&quot;.
RewriteCond %{HTTP_URL} (.*)(\?)(.*) 
RewriteRule (.*)(\?)(.*) /index.cfm?furl=$1&amp;$3 [L]

# This was junked as the first rule replaced it, but 
# leaving it here just in case commented out
#RewriteCond %{HTTP_URL} (^\.index.cfm)
#RewriteRule ^(.*)$ $1

# Last, failing all else, rewrite the string to the 
# normal furl sequence.  Removed the checking
# for a space from the WIKI sequence as it breaks for IONIC.
RewriteRule ^([a-zA-Z0-9\/\-\%:\[\]\{\}\|\;\&lt;\&gt;\?\,\*\!\@\#\$\(\)\^_`~]*)$ /index.cfm?furl=$1
&lt;/code&gt;

Be sure to follow all of the directions in that WIKI entry, in addition to what I&apos;ve provided here.  At this point, it works for everything that I&apos;ve thrown at it.  Going to /cfide, or /farcry works.  Going to the normal .cfm files works, and my flash players all work.  I&apos;ve run into the odd issue where I&apos;ve tried to reference the application.url.conjurer URL, but I&apos;ve since switched to buildlink to replace calls to that variable.  The other odd issue is that the first condition was having case sensitivity issues.
				
				</description>
						
				
				<category>FarCry</category>				
				
				<pubDate>Thu, 19 Feb 2009 01:05:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/2/19/FarCry-51-and-the-Ionic-ISAPI-rewrite-filter-for-friendly-URLs</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Cool FarCry 5.1 feature you may have missed</title>
				<link>http://www.geodesicgrafx.com/blog/index.cfm/2009/2/12/Cool-FarCry-51-feature-you-may-have-missed</link>
				<description>
				
				I&apos;m not even sure when I noticed this, but there&apos;s a now a Country and State formtool type (fttype).  The &lt;a href=&quot;http://meteorsite.com/&quot;&gt;Meteorsite&lt;/a&gt; project needed a tours page that includes state information.  I&apos;m fairly sure that it&apos;s going to just be North America for now, but we can always hash that out later.  

The Country type is pretty well defined out of the box, but the State type only includes information relevant to the Auzzie&apos;s (which makes sense, really).  So, let&apos;s extend our new state type and include the provinces from Canada, and the US states.

Copy the /farcry/core/packages/formtools/state.cfc to your local /farcry/projects/packages/formtools/state.cfc.  You&apos;ll need to change the extend to farcry.core.packages.formtools.state in the state.cfc.  The following is the additions to the getState function.

&lt;code&gt;
&lt;!--- North America - USA ---&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;AL&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;ALABAMA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;AK&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;ALASKA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;	
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;AS&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;AMERICAN SAMOA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;AZ&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;ARIZONA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;AR&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;ARKANSAS&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;CALIFORNIA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;CO&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;COLORADO&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;CT&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;CONNECTICUT&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;DE&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;DELAWARE&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;DC&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;DISTRICT OF COLUMBIA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;FM&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;FEDERATED STATES OF MICRONESIA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;FL&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;FLORIDA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;GA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;GEORGIA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;GU&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;GUAM&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;HI&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;HAWAII&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;ID&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;IDAHO&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;IL&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;ILLINOIS&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;IN&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;INDIANA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;IA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;IOWA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;KS&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;KANSAS&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;KY&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;KENTUCKY&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;LA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;LOUISIANA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;ME&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;MAINE&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt; 
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;MH&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;MARSHALL ISLANDS&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;MD&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;MARYLAND&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;MA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;MASSACHUSETTS&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt; 
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;MI&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;MICHIGAN&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;MN&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;MINNESOTA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;MS&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;MISSISSIPPI&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;MO&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;MISSOURI&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;MT&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;MONTANA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;NE&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;NEBRASKA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;NV&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;NEVADA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;NH&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;NEW HAMPSHIRE&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;NJ&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;NEW JERSEY&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;NM&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;NEW MEXICO&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;NY&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;NEW YORK&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;NC&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;NORTH CAROLINA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;ND&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;NORTH DAKOTA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;MP&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;NORTHERN MARIANA ISLANDS&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;OH&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;OHIO&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt; 
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;OK&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;OKLAHOMA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;OR&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;OREGON&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;PW&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;PALAU&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;PA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;PENNSYLVANIA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt; 
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;PR&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;PUERTO RICO&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt; 
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;RI&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;RHODE ISLAND&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;SC&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;SOUTH CAROLINA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;SD&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;SOUTH DAKOTA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;TN&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;TENNESSEE&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;TX&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;TEXAS&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;UT&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;UTAH&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;VT&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;VERMONT&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;VI&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;VIRGIN ISLANDS&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;VA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;VIRGINIA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;WA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;WASHINGTON&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;WV&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;WEST VIRGINIA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;WI&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;WISCONSIN&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;WY&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;WYOMING&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;US&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;United States of America&quot;) /&gt;
			
			&lt;!--- North America - Canada---&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;AB&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;Alberta&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;BC&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;British Columbia&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;MB&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;Manitoba&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;NB&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;New Brunswick&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;NL&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;Newfoundland and Labrador&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;NT&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;Northwest Territories&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;NS&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;Nova Scotia&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;NU&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;Nunavut&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;ON&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;Ontario&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;PE&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;Prince Edward Island&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;QC&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;Quebec&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;SK&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;Saskatchewan&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			&lt;cfset queryaddrow(q) /&gt;&lt;cfset querysetcell(q,&quot;code&quot;,&quot;YT&quot;) /&gt;&lt;cfset querysetcell(q,&quot;name&quot;,&quot;Yukon&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countrycode&quot;,&quot;CA&quot;) /&gt;&lt;cfset querysetcell(q,&quot;countryname&quot;,&quot;Canada&quot;) /&gt;
			
&lt;/code&gt;

And, there you go.  Ready made dropdowns to capture state information.  You&apos;d set the cfproperty to call this like the example below.  You can specify a delimited list of country codes in ftCountries to grab from, or leave the property blank to grab all states in the getStates funtion.

&lt;code&gt;
&lt;cfproperty ftseq=&quot;7&quot; ftfieldset=&quot;Tour Event Overview&quot; ftwizardStep=&quot;General Details&quot; name=&quot;state&quot; type=&quot;string&quot; hint=&quot;State.&quot; fttype=&quot;state&quot; ftCountries=&quot;US,CA&quot; required=&quot;no&quot; default=&quot;&quot; ftLabel=&quot;State&quot;  /&gt;
&lt;/code&gt;
				
				</description>
						
				
				<category>FarCry</category>				
				
				<pubDate>Thu, 12 Feb 2009 12:07:00 -0500</pubDate>
				<guid>http://www.geodesicgrafx.com/blog/index.cfm/2009/2/12/Cool-FarCry-51-feature-you-may-have-missed</guid>
				
			</item>
			
		 	
			</channel></rss>