<?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>ROK Technologies ESRI Developer Blog - Coldfusion</title>
			<link>http://www.roktech.net/devblog/index.cfm</link>
			<description>Discussions of the ESRI Geographic Information Systems development platform</description>
			<language>en-us</language>
			<pubDate>Wed, 08 Sep 2010 16:42:07 -0400</pubDate>
			<lastBuildDate>Tue, 28 Jul 2009 13:13:00 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>jharris@roktech.net</managingEditor>
			<webMaster>jharris@roktech.net</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>jharris@roktech.net</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			<itunes:image href="" />
			<image>
				<url></url>
				<title>ROK Technologies ESRI Developer Blog</title>
				<link>http://www.roktech.net/devblog/index.cfm</link>
			</image>
			<itunes:explicit>no</itunes:explicit>
			
			
			
			
			
			<item>
				<title>Dojo and Coldfusion - A Fix for Using the Dojo TitlePane with CFGrid</title>
				<link>http://www.roktech.net/devblog/index.cfm/2009/7/28/Dojo-and-Coldfusion--A-Fix-for-Using-the-Dojo-TitlePane-with-CFGrid</link>
				<description>
				
				We are automatically updating a coldfusion grid with results from a database as users type in a search box. This grid is contained in a dojo dijit.TitlePane. The TitlePane is a collapsible window.  

Recently, we discovered an issue in IE. If the Cfgrid has results, then you collapse and open the dojo TitlePane, the grid will disappear. Here is how we fixed it:

Step 1: Set the duration in the TitlePane to 0&lt;br&gt;
   Code:div dojoType=&quot;dijit.TitlePane&quot; id=&quot;resultsDivholder&quot; duration=&quot;0&quot;

Step 2: Attach an event to the toggle function using dojo.connect&lt;br&gt;
   Code: dojo.connect(dijit.byId(&apos;resultsDivholder&apos;),&quot;toggle&quot;,gridToggle);&lt;br&gt;
   Note: The TitlePane is a dijit. Therefore, you must use dijit.byId and not dojo.byId

Step 3: Refresh the coldfusion grid when the title pane is toggled to open&lt;br&gt;
   Code:&lt;br&gt;
function gridToggle()
{
	if(dijit.byId(&apos;resultsDivholder&apos;).open == true)
	{
		
		ColdFusion.Grid.refresh(&apos;ResultsGrid&apos;);
	}
}
				
				</description>
						
				
				<category>ArcGIS JS API</category>				
				
				<category>Coldfusion</category>				
				
				<category>Dojo</category>				
				
				<pubDate>Tue, 28 Jul 2009 13:13:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2009/7/28/Dojo-and-Coldfusion--A-Fix-for-Using-the-Dojo-TitlePane-with-CFGrid</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Coldfusion 9 and CF Builder (the new IDE) Public Beta Launched</title>
				<link>http://www.roktech.net/devblog/index.cfm/2009/7/13/Coldfusion-9-and-CF-Builder-the-new-IDE-Public-Beta-Launched</link>
				<description>
				
				Wow...The opening of the ESRI user conference and the release of the public ColdFusion 9 beta on the same day.  Doesn&apos;t get much better than that.

Someone already submitted it to DIGG, so if you want to digg it up: &lt;a href=&quot;http://digg.com/programming/Adobe_Labs_Adobe_ColdFusion_9&quot; target=&quot;_blank&quot;&gt;http://digg.com/programming/Adobe_Labs_Adobe_ColdFusion_9&lt;/a&gt;

The coolest feature of Coldfusion 9 has to be the ability to use Coldfusion as services from within other languages...I think especially Flex.  It was always been extremely easy to call ColdFusion Components (CFCs) from Flex, but now, wow its even easier to use CF functionality from within Flex (and other languages).  Check out this intro to CF 9 by the man himself, Ben Forta: &lt;a href=&quot;http://www.adobe.com/devnet/coldfusion/articles/coldfusion9_whatsnew.html&quot; target=&quot;_blank&quot;&gt;http://www.adobe.com/devnet/coldfusion/articles/coldfusion9_whatsnew.html&lt;/a&gt;
				
				</description>
						
				
				<category>Coldfusion</category>				
				
				<pubDate>Mon, 13 Jul 2009 10:48:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2009/7/13/Coldfusion-9-and-CF-Builder-the-new-IDE-Public-Beta-Launched</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Where Is Coldfusion ArcGIS Server Support?</title>
				<link>http://www.roktech.net/devblog/index.cfm/2007/8/9/Where-Is-Coldfusion-ArcGIS-Server-Support</link>
				<description>
				
				With Coldfusion 8 out the door in in the hands of developers, I guess its time to ask the big question.  Where is support for ArcGIS Server and Coldfusion?  Obviously there was great support for ArcIMS and Coldfusion.  ArcWebservices too. What about ArcGIS Server?  With Flex &amp; flash for the frontend and Coldfusion doing the heavy lifting, I see Coldfusion as an obvious choice.  The vast majority of ESRI&apos;s many sites are Coldfusion based.  There are a lot of Coldfusion &apos;haters&apos; out there.  Most if it comes from people that have never even tried it.  I actually think these developers are threatened by just how easy it is to perform complex tasks with Coldfusion.  Not so special are you? Maybe you arent so L33T after all huh?  Bah, thats a post for another day...

I don&apos;t see it being that difficult of a task on ESRI&apos;s part.  Coldfusion now has the ability to use any .NET object — (local and remote) and of course like any Java object (its had this since version 6 - for those of you that don&apos;t know, Coldfusion is a J2EE application).  Creating some CFC&apos;s to interface with the java classes would be the obvious way to go, at least I would think.

I really see this lack of support to be a larger issue with ESRI lately.  They seem to have taken the .net only stance.  It certainly saves them time since you can go desktop or web (but dont forget about Adobe AIR coldfusion folks). I think that the java support was pretty much an afterthought, only there to satisfy some large clients.  I think thats pretty obvious from the lack of documentation and examples.  So that leaves out a huge amount of web developers - mainly the Coldfusion and PHP folks.  And these are the folks that have made some of the slickest ArcIMS sites out there today. 

If ESRI wants to continue their dominance in the web mapping arena, they had better taken a hard look at this strategy.  If I were working at ESRI, I would want to get these ArcGIS Server toolkits into the hands of as many developers as I could.  Leaving out Coldfusion and PHP (and others)creates a gapping hole in the web development community.  If they dont, you&apos;ll continue to see the ESRI &lt;a href=&quot;http://resources.esri.com/showcase/index.cfm?fa=showcase&quot;&gt; &apos;user showcase&apos;&lt;/a&gt; sites dominated by ArcIMS (notice how they are made with server technology, er I mean ArcIMS).  How long do you think before Google releases a (Free) client side server component that lets you use your data inside Google maps?  Its only a matter of time...and by then, will be too late
				
				</description>
						
				
				<category>ArcIMS General</category>				
				
				<category>Coldfusion</category>				
				
				<category>ArcGIS Server</category>				
				
				<category>ESRI General</category>				
				
				<pubDate>Thu, 09 Aug 2007 14:19:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2007/8/9/Where-Is-Coldfusion-ArcGIS-Server-Support</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Another Coldfusion 8 DIGG Opportunity</title>
				<link>http://www.roktech.net/devblog/index.cfm/2007/8/1/Another-Coldfusion-8-DIGG-Opportunity</link>
				<description>
				
				Show the asp.net and php folks just how easy we have it.
&lt;a href=&quot;
http://digg.com/programming/Sam_Farmer_s_Blog_Ten_ColdFusion_8_One_Liners&quot;&gt;Sam&apos;s list of ColdFusion One-Liners&lt;/a&gt;
				
				</description>
						
				
				<category>Coldfusion</category>				
				
				<pubDate>Wed, 01 Aug 2007 13:08:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2007/8/1/Another-Coldfusion-8-DIGG-Opportunity</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Coldfusion 8 Forms &amp; Ajax:  Note To Self</title>
				<link>http://www.roktech.net/devblog/index.cfm/2007/7/24/Coldfusion-8-Forms--Ajax--Note-To-Self</link>
				<description>
				
				Just a quick note - more to myself than anyone else.  But, since I ran into this, I suspect that someone else will to.

I often build multiple input forms on 1 page: form action=#cgi.script_name#.  I then add some type of hidden variable the tells the form to move on to step 2 when its been submitted.  Better than having 5 pages of forms to manage and helps to not freak out the user when they see huge input forms.  I&apos;m sure lots of folks do similar types of things.

Anyway, I&apos;m currently creating an input form with some autosuggest elements and then when the user submits the form (which is now asynchronous), the &apos;next&apos; form that I display to the user had a second ajax control  - a datefield.  However - time and time again, after I submit form 1, I got an error telling me that CF didn&apos;t load the proper libraries, and couldn&apos;t display the datefield properly.  

Well, it turns out that all the ajax libraries for the page are initially loaded when form 1 is displayed - but when it is time for form 2 to display - the required datefieled scripts are missing.  So, quick solution is to use: cfajaximport tags=&quot;cfinput-datefield&quot; at the top of your page (even though you may have properly wrapped your elements in a cflayout).  

While all of these ajax tools are fantastic - I am finding them a bit quirky at times.  I could see someone devoting an entire book to the cf 8 ajax toolkit (take note Ben - you&apos;d get my 30 bucks in a flash.)

&lt;code&gt;
&lt;!--- Without the import, this would fail ---&gt;
&lt;cfajaximport tags=&quot;cfinput-datefield&quot;/&gt;
&lt;cfparam name=&quot;TripAction&quot; default=&quot;1&quot;&gt;
&lt;cflayout type=&quot;hbox&quot;&gt;
&lt;cflayoutarea overflow=&quot;visible&quot; &gt;
&lt;cfform name=&quot;MyForm&quot; action=&quot;#cgi.script_name#&quot; &gt;
&lt;cfif TripAction eq &apos;1&apos;&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td nowrap valign=&quot;top&quot; align=&quot;left&quot;&gt;
		&lt;div class=&quot;PublicLabel&quot;&gt;Input 1:&amp;nbsp;&amp;nbsp;&lt;/div&gt;
		&lt;cfinput type=&quot;text&quot; required=&quot;Yes&quot; message=&quot;You must enter your xx&quot; name=&quot;x&quot; style=&quot;width:150px;&quot;
		autosuggest=&quot;cfc:/XYZ/cfc/XYZLocal.Getxyz({cfautosuggestvalue})&quot;&gt;
&lt;/td&gt;
&lt;td nowrap  align=&quot;left&quot;&gt;
		&lt;div class=&quot;PublicLabel&quot;&gt;Input 2:&amp;nbsp;&amp;nbsp;&lt;/div&gt;
		&lt;cfinput required=&quot;Yes&quot; message=&quot;You must enter your arrival airport&quot;  type=&quot;text&quot; name=&quot;y&quot; style=&quot;width:150px;&quot;
		autosuggest=&quot;cfc:/XYZ/cfc/XYZLocal.Getxyz({cfautosuggestvalue})&quot;&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td colspan=&quot;2&quot; align=&quot;right&quot;&gt;
&lt;input type=&quot;submit&quot; value=&quot;Continue&quot; class=&quot;PublicSubmit&quot;&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;
&lt;input type=&quot;hidden&quot; name=&quot;tripaction&quot; value=&quot;2&quot;&gt;
&lt;cfelseif TripAction eq &apos;2&apos;&gt;


&lt;tr&gt;
&lt;td nowrap width=&quot;240&quot; valign=&quot;top&quot; align=&quot;left&quot;&gt;
&lt;div class=&quot;PublicLabel&quot;&gt;Departure Date:&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;cfinput type=&quot;datefield&quot; name=&quot;mydate1&quot; style=&quot;width:75px;&quot; class=&quot;PublicInputDate&quot;&gt;
&lt;/td&gt;
&lt;td nowrap width=&quot;350&quot; align=&quot;left&quot;&gt;

&lt;/td&gt;
&lt;/tr&gt;
&lt;input type=&quot;hidden&quot; name=&quot;tripaction&quot; value=&quot;3&quot;&gt;
&lt;/cfif&gt;

&lt;/cfform&gt;

&lt;/cflayoutarea&gt;
&lt;/cflayout&gt;
&lt;/code&gt;
				
				</description>
						
				
				<category>Coldfusion</category>				
				
				<pubDate>Tue, 24 Jul 2007 14:21:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2007/7/24/Coldfusion-8-Forms--Ajax--Note-To-Self</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Coldfusion Based ArcIMS Public Viewer Sites</title>
				<link>http://www.roktech.net/devblog/index.cfm/2007/6/22/Coldfusion-Based-ArcIMS-Public-Viewer-Sites</link>
				<description>
				
				Here is a updated list of sites that we have just recently released.  All of them are Coldfusion 7 / ArcIMS based sites.  Each one is a little different that the other.  Everyone has specific tools they like.

The list is growing everyday.  Below are the ones that we have officially &apos;released&apos;  There are are also many currently in beta.  I must tell you, I have been very pleased with the number of deployments.  From all the feedback from the counties/cities themselves, it sounds like they are happy too.  Thanks to everyone (especially Cotter) for making it a success.

For the future, I really cant wait for CF 8.  It will make some of the ajax based interaction even easier.  Also, the slow migration to ArcGIS server has begun.  However, I&apos;d really like to see to better support from &lt;a href=&quot;http://www.esri.com&quot;&gt;ESRI&lt;/a&gt; on the Coldfusion front.  I plan to post a &apos;call to arms&apos; for all of us Coldfusion / ESRI folks soon...But for now, check out the sites!

&lt;a href=&quot;http://gisweb.durhamnc.gov/gomaps/map/Index.cfm&quot;&gt;Durham County, NC&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://gis.wpb.org/gomaps/&quot;&gt;City Of West Palm Beach, FL&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://maps.co.davie.nc.us/gomaps/&quot;&gt;Davie County, NC&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://maps.co.alexander.nc.us/gomaps&quot;&gt;Alexander County, NC&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://207.4.201.200/GoMaps/map/&quot;&gt;Henderson County, NC&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://maps.roktech.net/hertford/map/Index.cfm&quot;&gt;Hertford County, NC&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://www.warrencountyncgis.com/gomaps/&quot;&gt;Warren County, NC&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://maps.co.union.nc.us/gomaps/map/Index.cfm&quot;&gt;Union County, NC&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://maps.onslowcountync.gov/gomaps/map/Index.cfm&quot;&gt;Onslow County, NC&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://santarosa.roktech.net/gomaps/map/Index.cfm&quot;&gt;Santa Rosa County, FL&lt;/a&gt;&lt;br&gt;
				
				</description>
						
				
				<category>ArcIMS Coldfusion</category>				
				
				<category>Example Sites</category>				
				
				<category>ArcIMS General</category>				
				
				<category>Coldfusion</category>				
				
				<pubDate>Fri, 22 Jun 2007 12:51:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2007/6/22/Coldfusion-Based-ArcIMS-Public-Viewer-Sites</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Coldfusion 8 &amp; ArcIMS 9.2</title>
				<link>http://www.roktech.net/devblog/index.cfm/2007/6/4/Coldfusion-8--ArcIMS-92</link>
				<description>
				
				Well, just a quick update...Coldfusion 8 and ArcIMS 9.2 seem to play together nicely.  At least the cfx_esrimap works ok. While I have not fully tested my apps against 8 yet, I have heard reports of pretty substantial speed increases (which sort of surprises me...they are quite fast already).  Next up is to see how 8 does with ArcGIS Server.
				
				</description>
						
				
				<category>ArcIMS Coldfusion</category>				
				
				<category>Coldfusion</category>				
				
				<category>ArcGIS Server</category>				
				
				<pubDate>Mon, 04 Jun 2007 11:39:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2007/6/4/Coldfusion-8--ArcIMS-92</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Coldfusion 8 Solves CFMAIL and Google Apps Problem!</title>
				<link>http://www.roktech.net/devblog/index.cfm/2007/5/30/Coldfusion-8-Solves-CFMAIL-and-Google-Apps-Problem</link>
				<description>
				
				Thanks Adobe.  Now we can talk to the google SMTP server over SSL and send email with CFMAIL!  Just tested and it works like a champ.  Hopefully Google will be cool with this...
				
				</description>
						
				
				<category>Coldfusion</category>				
				
				<pubDate>Wed, 30 May 2007 13:32:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2007/5/30/Coldfusion-8-Solves-CFMAIL-and-Google-Apps-Problem</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>ArcIMS - Arcweb Services Hybrid Site</title>
				<link>http://www.roktech.net/devblog/index.cfm/2007/5/4/ArcIMS--Arcweb-Services-Hybrid-Site</link>
				<description>
				
				I did this site a while back and forgot to post it:&lt;br&gt;&lt;br&gt;

&lt;a href=&quot;http://maps.roktech.net/ccog/&quot; target=&quot;_blank&quot;&gt;Centralina Clean Fuels Coalition&lt;/a&gt;&lt;br&gt;&lt;br&gt;

Its a site that helps people locate fuel stations that offer alternative fuels, like electric, hydrogen, biodiesel, etc.  It does some cool buffer queries, like find all the Hydrogen stations within 25 miles of Interstate 95 or within 25 miles of just about any city in the state.  But, the real cool thing is that it makes use of both ArcIMS and ArcWeb services. 

This project really needed very detailed and accurate base map data like streets.  But, the budget was pretty low...so purchasing those datasets was out of the question.  The best solution to this problem was to use arcweb services.  Lucky for me, consuming these services with SOAP in Coldfusion is about as easy as it gets.  All I really had to do was to pass the response envelope generated by ArcIMS to Arcweb.  That gave me a very nice, and accurate background image.  I didnt mess with the MapFusionOptions object at all though.  Instead, to combine the 2 output images, I just dropped the arcweb image behind the output image of ArcIMS on the page.  I set the transcolor and background of the arcims image to white and it was as easy as that.  Came out pretty good.
				
				</description>
						
				
				<category>ArcIMS Coldfusion</category>				
				
				<category>ArcIMS General</category>				
				
				<category>Coldfusion</category>				
				
				<category>ArcWeb Services</category>				
				
				<pubDate>Fri, 04 May 2007 18:23:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2007/5/4/ArcIMS--Arcweb-Services-Hybrid-Site</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Cfmail, &apos;Google Tools For Your Domain&apos;, and SPAM</title>
				<link>http://www.roktech.net/devblog/index.cfm/2006/10/24/Cfmail-Google-Tools-For-Your-Domain-and-SPAM</link>
				<description>
				
				If you are like me, you hate spam.  You know what I hate more that that?  Managing my own mail server and dns.  We are a small shop that does GIS Application work, and have been running our own mail server since 1998.  As you probably know, spam was almost non existent back then.  Well, fast forward to today, and its insane. I don&apos;t have 4 hours to spend with tech support to figure out how my box was compromised and became a spam relay.  I don&apos;t have time to figure out why the guy who sits across from me can&apos;t get his mail.  I have code to write and clients to make happy.  So, here is what I did about it.

1.  Got an account at &lt;a href=&quot;http://www.zoneedit.com&quot;&gt;ZoneEdit&lt;/a&gt;.  They are a free DNS service that is extremely fast and reliable.  I have been using them for my personal site (on a dynamic ip) for years.  I finally decided it was time to move the work sites there.  I just logged into my domain registrar and changed the name server from my machine to zoneEdit&apos;s.  It was that easy.

2.  Got an account at &lt;a href=&quot;https://www.google.com/a/?utm_medium=et&amp;utm_source=bizsols&amp;utm_campaign=gafydE&quot;&gt;Google Apps for Your Domain&lt;/a&gt;.  I cannot believe this is free.  Essentially, all I had to do was move my MX records fom my dns server here in the office to zoneedit.  Once on zoneEdit, I just pointed it to Google&apos;s mail server (which are provide in the Google account creation) instead of the one I have in my office.  Creating all the new email accounts was as easy as uploading a CSV file.  Now, once each user visits the new sign in page, all they do is enable POP access and change their mail server settings in their mail client of choice.  The bonus here is that you get nice web client (gmail) and  2gb of storage.  You can even brand the site with your own logo.  They also have a very impressive calendar app which can be shared (ala exchange) among all your domain users.  Like I said I can&apos;t believe it was all free.

Ok, so now I am all set.  Everyone can get email and I don&apos;t touch anything.  BUT, this did leave me with a problem.  How can I send email programmatically using Coldfusion?  Google requires the SMTP server to first create a SSL session on port 465.  I tried and tried, but I just couldn&apos;t get Coldfusion and CFMAIL to send.  I guess it doesn&apos;t support SSL connections.  So I began my search...And I can up with this post on usnet.  This isn&apos;t my code, but if someone knows who did it, give them a big thank you! Here it is:

First view this: &lt;a href=&quot;http://www.jscape.com/articles/sending_email_smtp_ssl_gmail.html&quot;&gt;http://www.jscape.com/articles/sending_email_smtp_ssl_gmail.html&lt;/a&gt;

 Prerequisites 

 1. Create the new folder secure_inet in C:\CFusionMX7\Mail; 
 2. On the jscape.com page above, click on the link to 
    download &quot;Secure iNet Factory&quot;; 
 3. Enter your e-mail address and agree to the terms; 
 4. Download setup.exe ; 
 5. Launch the setup executable and choose to extract to the directory 
    C:\CFusionMX7\Mail\secure_inet . This ensures that the key JAR file, 
   sinetfactory.Jar will be stored as 
C:\CFusionMX7\Mail\secure_inet\lib\sinetfactory.Jar; 
   6. In the Coldfusion Administrator, add this to the JVM classpath: 
    C:\CFusionMX7\Mail\secure_inet\lib\sinetfactory.Jar 
 7. Restart the Coldfusion MX server service. 
 8. Run the coldfusion script. It should go like an intercity train. 

&lt;code&gt;
&lt;cfscript&gt;
 // create new instance
  SSL_SMTP_obj =
CreateObject(&quot;java&quot;,&quot;com.jscape.inet.smtpssl.SmtpSsl&quot;).init(&quot;smtp.gmail.com&quot;,465
);
   // address the message
  email_message =CreateObject(&quot;java&quot;,&quot;com.jscape.inet.email.HtmlEmailMessage&quot;);
  email_message.setTo(&quot;joe@blow.com&quot;);
  email_message.setFrom(&quot;me@you.com&quot;);
  email_message.setSubject(&quot;Email Subject&quot;);
  email_message.setHtmlBody(&quot;the body of the message&quot;);
   // connect, send the message, disconnect
  try
  {
    SSL_SMTP_obj.connect();
    SSL_SMTP_obj.login(&quot;your GMAIL user account&quot;,&quot;GmailPassowrd&quot;);
    SSL_SMTP_obj.send(email_message);
    SSL_SMTP_obj.disconnect();
  }
  catch(Exception e)
  {
    WriteOutput(e);
  }
  &lt;/cfscript&gt; 
&lt;/code&gt;

That’s it, works like a champ.  Only issue is that Secure iNet Factory does cost a couple of bucks.  

You know what the bonus of it all is?  I have not gotten a single piece of spam in my inbox, and not a single false positive.  Even with my old mail server spam filter (it did catch about 90% of it), I used to get about 20 spams per day in my inbox.  So, that’s my story.  I am one happy geek.
				
				</description>
						
				
				<category>Misc</category>				
				
				<category>Coldfusion</category>				
				
				<pubDate>Tue, 24 Oct 2006 17:44:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2006/10/24/Cfmail-Google-Tools-For-Your-Domain-and-SPAM</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>When AJAX is useful</title>
				<link>http://www.roktech.net/devblog/index.cfm/2006/8/15/When-AJAX-is-useful</link>
				<description>
				
				You can&apos;t get through a single day anymore without hearing something about AJAX and web 2.0, yada yada.  Personally, I think it is all nonsense.  Those useless cloud tags and whatever the latest &apos;feature&apos; is, are worthless...people put AJAX on their sites just to say they did.

There are of course, huge exceptions.  There are some applications that make wonderful use of it.  First, are the latest generation of mapping applications (google maps, yahoo maps, etc).  The seamless panning feature that we all come to expect now is just amazing.  It has been difficult to implement that feature in true GIS viewer.  All of those images have fixed zoom levels (and are &apos;premade&apos; - not on the fly like a true GIS) and it would be insanely difficult to pre-process all the different map layer combinations that a user may wish to see.    ESRI says they will be implementing a seamless pan feature in the ArcIMS 9.2 html viewer.  I am very interested in seeing how they pull it off.

The next great example of AJAX use, is the suggest feature.  You know, when you type in a text box, and it attempts to &apos;fill in&apos; or suggest what you are typing.  This is a fantastic feature that I decided that I really needed to add to my sites.  

My problem was that when folks search for streets, or parcel owners, or geocode (you get the idea), its important for the user to type in the street name exactly.  That means people could type Main Street or Main or Main ST or North Main St, or N Main, etc etc.  Of course, we can wildcard it and get all of them and then let the user pick which one they meant - but that means extra steps for the user.  So, the solution was to put all the distinct values in a drop-down and force the user to select it.  That means more data to download and a lot of street names to scroll through (some places have a huge number of streets).

What if the owner name is LastName, FirstName or maybe Firstname Last name.  That&apos;s difficult for the user to figure out - they would have to know how it is listed in the database exactly.

So, wouldn&apos;t it be nice to use AJAX to provide suggestions to the user? So, I finally got around to it.  At least I waited until it was useful.

My thanks to Arjun, who created &lt;a href=&quot;http://www.indiankey.com/cfajax/&quot;&gt;CFAJAX&lt;/a&gt;. CFAJAX makes in ridiculously easy to implement AJAX functionality with Coldfusion.  If you want to check out the site that I did that uses this new suggest feature, its &lt;a href=&quot;http://santarosa.roktech.net/gomaps/&quot;&gt;Here&lt;/a&gt;
				
				</description>
						
				
				<category>ArcIMS Coldfusion</category>				
				
				<category>Misc</category>				
				
				<category>ArcIMS General</category>				
				
				<category>Coldfusion</category>				
				
				<pubDate>Tue, 15 Aug 2006 13:32:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2006/8/15/When-AJAX-is-useful</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Coldfusion ArcIMS JRUN Configuration</title>
				<link>http://www.roktech.net/devblog/index.cfm/2005/12/21/Coldfusion-ArcIMS-JRUN-Configuration</link>
				<description>
				
				People that use ArcIMS know that we must have a servlet engine for it to work properly.  This means that most folks folks either purchase ServletExec or struggle Tomcat.  What most people don&apos;t realize is that Coldfusion is using JRUN as its own &apos;internal&apos; servlet engine.  So, why not save a step and use that with your ArcIMS configuration?  Geez, you can almost purchase Coldfusion outright for what it costs to buy ServletExec. 

So, here are the instructions to perform a ArcIMS install using Coldfusion&apos;s internal JRUN as your servlet engine.  I have also tossed in some of the tricks to get the cfx_esrimap.dll tag registered with Coldfusion 7.

Browse to:
&lt;ArcIMS Installation Directory&gt;\ArcIMS\Connectors\Servlet

Copy the com directory and the three files Esrimap_prop, ServletConnector_Res.properties and ServletConnector_Res_en_US.properties.

C. Paste them into the servlet location at:
c:\CFusionMX7\wwwroot\WEB-INF\classes

D.     In a text editor; for example, Notepad, open:
c:\CFusionMX7\wwwroot\WEB-INF\classes\Esrimap_prop.

E.   Edit appServerMachine=APPSMACHINE to point to the machine where the ArcIMS Application Server is installed; for example, change it to appServerMachine=mymachine or appServerMachine=IP. Change appServerClientPort=5300 only if a different port was selected.

F.  Close and save the file.

G.     In a text editor; for example, Notepad, open:
c:\Program Files\ArcGIS\ArcIMS\Connectors\Servlet\Esrimap_prop and make the same changes that you did in step E. Save file.

H.     Open up the CFMX administrator, and register the CFX_ESRIMAP.dllTag Name: cfx_esrimap
Server Library: C:\CFusionMX7\runtime\bin\cfx_esrimap.dll
Procedure: ProcessTagRequest

I.    Edit C:\CFMX7\bin\jvm.config file


Change the java.library.path entry to include the two directories
containing the ArcIMS shared libraries.

C:/Program Files/ArcGIS/ArcIMS/Middleware/CF_Connector/bin,C:/Program
Files/ArcGIS/ArcIMS/Connectors/ColdFusion/Server

Change the java.class.path entry to include the one directory
containing the ArcIMS Java classes.

C:/Program Files/ArcGIS/ArcIMS/Connectors/Servlet

Note that forward slashes are used even on Windows, and that the list is comma delimited.

Note that the java.library.path entry and the java.class.path entry are each a single long line.

 

 

Restart the CFMX Service from the windows control panel.
				
				</description>
						
				
				<category>ArcIMS Coldfusion</category>				
				
				<category>Misc</category>				
				
				<category>ArcIMS General</category>				
				
				<category>Coldfusion</category>				
				
				<pubDate>Wed, 21 Dec 2005 18:03:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2005/12/21/Coldfusion-ArcIMS-JRUN-Configuration</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Out_QueryTable</title>
				<link>http://www.roktech.net/devblog/index.cfm/2005/10/3/OutQueryTable</link>
				<description>
				
				Us Coldfusion ArcIMS folks have grown to love and hate the Out_Querytable variable.  For those of you that don&apos;t know what Out_Querytable is, its a query object that gets returned from Coldfusion after you send a query (spatial or attribute) to ArcIMS.  This is very handy to have - becasue Coldfusion works so well with these types of objects.  For you windows based folks, its essentially the same as a recordset. 

The good: You can loop over them, display them, make a nice value list, query them (with coldfusion&apos;s ability to query an existing query object).  Basically anything that you can do to a coldfusion query object, you can do to the Out_Querytable variable. 

The bad: Things tend to get a bit hairy when you use ArcSDE based data.  Who uses shapefiles these days anyway...The biggest issue for me are column names that get returned.  For example, lets say I query roads.  The columns that get returned will be fully qualified - like DBName.Owner.Tablename (in the case of SQl Server).  Now try making a nice valuelist with VALUELIST(Out_QueryTable.DBName.Owner.Tablename) and see what evil things happen.  Luckily, a few years back, James Welch (where are ya these days James?) created a sweet custom tag called cf_ArcSDEquery, which essentially converts the query to wddx, fixes it, at converts it back to a query object.  The tag used to be on ArcScripts, but I haven&apos;t seen it there in quite some time.  So, I&apos;ll attach it for everyone if they don&apos;t already use it.

I also do lots of multiple spatial queries right after each other - like in a drill down identify.  The problem is that lets say I find a result in the first, but not the second, and then the 3rd returns a result.  If, after each query, I test to see IsDefined(&quot;Out_QueryTable&quot;) then run some processing...Its going to bomb after the 2nd spatial query - becasue it does exist - but not from that query.  Of course, you can rename your queries and do all sorts of crazy work arounds to compensate for this.  However, I recently discovered a fantastic undocumented function - removeRows:
&lt;code&gt;
Queryname.removeRows(startrow,endrow)
&lt;/code&gt;
So, this means now that I can perform a spatial query, test for the results, do something with the results, and then remove the rows from the Out_querytable object.  Then, I can move on to the next operation...Something like this:

&lt;code&gt;
&lt;cfoutput&gt;
&lt;cf_arcims action=&quot;Request&quot;
      servicename=&quot;#mapservicename#&quot;
    servername=&quot;#mapservername#&quot;
    serverport=&quot;#mapserverport#&quot;
    GenerateHTML=&quot;false&quot;
    ParseResponseAXL=&quot;true&quot;
    CustomService=&quot;Query&quot;
    &gt;   
                                       
    &lt;?xml version=&quot;1.0&quot;?&gt;
     &lt;ARCXML version=&quot;1.1&quot;&gt;
         &lt;REQUEST&gt;
             &lt;GET_FEATURES checkesc=&quot;true&quot; outputmode=&quot;newxml&quot; geometry=&quot;false&quot; envelope=&quot;true&quot; compact=&quot;false&quot; featurelimit=&quot;250&quot;&gt;
                 &lt;LAYER type=&quot;featureclass&quot; name=&quot;Bufferlayer&quot; id=&quot;#PARCELLayerID#&quot;/&gt;
                  &lt;DATASET fromlayer=&quot;#PARCELLayerID#&quot; /&gt;
                  &lt;SPATIALQUERY searchorder=&quot;attributefirst&quot; where=&quot;objectid  IN (#featureID#)&quot;&gt;
                    &lt;BUFFER distance=&quot;0&quot; bufferunits=&quot;FEET&quot; &gt;
                      &lt;TARGETLAYER id=&quot;#SOILSLayerID#&quot; /&gt;
                    &lt;/BUFFER&gt;
                  &lt;/SPATIALQUERY&gt;
                &lt;/GET_FEATURES&gt;
            &lt;/REQUEST&gt;
        &lt;/ARCXML&gt;
    &lt;/cf_arcims&gt;
&lt;/cfoutput&gt;


&lt;cfif Out_QueryTable.recordcount GT 0&gt;
&lt;cf_ArcSDEquery query=&quot;OUT_QueryTable&quot; output=&quot;Out_QueryTable&quot;&gt;
&lt;cfset SRCSOILSValueslist = quotedvaluelist(Out_QueryTable.ObjectID)&gt;
&lt;CFQUERY NAME=&quot;SOILSResults&quot; DATASOURCE=&quot;#dsn#&quot;&gt;
SELECT MUName
FROM   SRCSOILS
WHERE ObjectID in (#PreserveSingleQuotes(SOILSValueslist)#)   
&lt;/CFQUERY&gt;
&lt;/cfif&gt;
&lt;!--- Use this function to delete all the rows from the query ---&gt;
&lt;cfset temp = OUT_QueryTable.removeRows(0,OUT_QueryTable.recordcount)&gt;   
&lt;/code&gt;


Then I can do the next drill down spatial query....Hope that makes sense and or helps someone out. Don&apos;t forget, here is the code for  the cf_ArcSDEquery which will makle your life sooo much easier when working with SDE data:

&lt;code&gt;
&lt;cfsetting enablecfoutputonly=&quot;yes&quot;&gt;
&lt;cfparam name=&quot;attributes.output&quot; default=&quot;NewQry&quot;&gt;

&lt;cfif not isDefined(&quot;caller.#attributes.query#&quot;)&gt;
    &lt;cfoutput&gt;ArcSDEquery - #attributes.query# is not a valid Query and cannot be returned as #attributes.output#&lt;/cfoutput&gt;
    &lt;cfabort&gt;
&lt;/cfif&gt;
    
&lt;cfif FindNoCase(&quot;OBJECTID&quot;, evaluate(&quot;caller.#attributes.query#.columnlist&quot;))&gt;
    &lt;!--- arcsde ---&gt;
    &lt;cfset oldCols = Evaluate(&quot;caller.#attributes.query#.columnlist&quot;)&gt;
    
    &lt;!--- setup new col names ---&gt;
    &lt;cfset aGoodCols =  &quot;&quot;&gt;
    &lt;cfloop index=&quot;c&quot; list=&quot;#oldCols#&quot;&gt;
        &lt;cfset aGoodCols = ListAppend(aGoodCols, ListGetAt(c,ListLen(c,&quot;.&quot;),&quot;.&quot;))&gt;
        &lt;cfif FindNoCase(&quot;ObjectID&quot;,c)&gt;
            &lt;cfset caller.objectid = &quot;#c#&quot;&gt;
        &lt;/cfif&gt;
    &lt;/cfloop&gt;
    &lt;!--- convert to WDDX Packet ---&gt;
    &lt;cfwddx action=&quot;CFML2WDDX&quot; input=&quot;#Evaluate(&quot;caller.#attributes.query#&quot;)#&quot; output=&quot;OrigQryWDDX&quot;&gt;
    &lt;!--- replace invalid names in fieldNames list ---&gt;
    &lt;cfset goodColWDDX = OrigQryWDDX&gt;
    &lt;cfloop index=&quot;col&quot; from=&quot;1&quot; to=&quot;#ListLen(oldCols)#&quot;&gt;
        &lt;cfset goodColWDDX = ReplaceNoCase(goodColWDDX, &quot;#ListGetAt(oldCols,col)#&quot;, &quot;#ListGetAt(aGoodCols,col)#&quot;, &quot;all&quot;)&gt;
    &lt;/cfloop&gt;
    
    &lt;!--- Turn the packet back into a query ---&gt;
    &lt;cfwddx action=&quot;WDDX2CFML&quot; input=&quot;#goodColWDDX#&quot; output=&quot;NewQry&quot;&gt;
&lt;cfelse&gt;
    &lt;!--- not arcsde ---&gt;
    &lt;cfset NewQry = Evaluate(&quot;caller.#attributes.query#&quot;)&gt;
&lt;/cfif&gt;
&lt;cfset &quot;caller.#attributes.output#&quot; = NewQry&gt;
&lt;cfsetting enablecfoutputonly=&quot;no&quot;&gt;
&lt;/code&gt;
				
				</description>
						
				
				<category>ArcIMS Coldfusion</category>				
				
				<category>ArcSDE Oracle</category>				
				
				<category>Coldfusion</category>				
				
				<category>ArcSDE SQL</category>				
				
				<pubDate>Mon, 03 Oct 2005 17:58:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2005/10/3/OutQueryTable</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Coldfusion and Routemap IMS</title>
				<link>http://www.roktech.net/devblog/index.cfm/2005/9/7/Coldfusion-and-Routemap-IMS</link>
				<description>
				
				After some initial reservations about doing a project based on Routemap IMS, I am happy to report that Routemap is a great product.  Other folks here in our office have done a few routemap projects over the years, but this was the first one we have done in Coldfusion.  It is a very database intensive site, so we thought that Coldfusion would be the best fit for this particular project.

I am an ArcIMS guy.  I work with ArcIMS all the time and I love it.  So when this project got pegged to me, I will admit, I went kicking and screaming.  But, I will be the first to admit that it has been a pleasure to work with, its fast, efficient and makes very nice looking maps.  So, I just thought I would share a quick little snippet of code to show you how to make the inital connection to Routemap:
&lt;code&gt;
&lt;cfobject action=&quot;CREATE&quot; type=&quot;JAVA&quot; class=&quot;com.esri.rmims.IMSConnection&quot; name=&quot;RMIMSCONNECTION&quot;&gt;
&lt;cfset RMIMSCONNECTION.setConnectionURL(&quot;http://itchy/Scripts/webgate.dll&quot;)&gt;
&lt;cfset RMIMSCONNECTION.setGroup(&quot;TEST&quot;)&gt;
&lt;cfset RMIMSCONNECTION.setUserName(&quot;TEST&quot;)&gt;
&lt;cfset RMIMSCONNECTION.setUserPassword(&quot;TEST&quot;)&gt;
&lt;cfset MapTemplate = RMIMSCONNECTION.loadMap(&quot;#APPLICATION.MapService#&quot;)&gt;
&lt;/code&gt;

Thats really it.  After, you can do just simple stuff like zoom out:

&lt;code&gt;
MapTemplate.doZoomOut(javacast(&quot;int&quot;,#xcoord#),javacast(&quot;int&quot;,#ycoord#))
&lt;/code&gt;

So, if anyone is hesitant to take on something new like Routemap, I would encourage you to give it a try.
				
				</description>
						
				
				<category>Routemap IMS</category>				
				
				<category>Coldfusion</category>				
				
				<pubDate>Wed, 07 Sep 2005 18:53:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2005/9/7/Coldfusion-and-Routemap-IMS</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>ArcWeb Services Examples</title>
				<link>http://www.roktech.net/devblog/index.cfm/2005/8/26/ArcWeb-Services-Examples</link>
				<description>
				
				Jeremey Bartley passed this blog along to me.  Jeremey has been doing lots of work with Coldfusion and ArcWeb services.  Anyway, this guy is the team lead for ArcWeb services at ESRI.  Good stuff.

&lt;a href=&quot;http://www.rossoworld.com/modules.php?op=modload&amp;name=News&amp;file=index&amp;catid=&amp;topic=4&quot;&gt;Rosso World&lt;/a&gt;
				
				</description>
						
				
				<category>Coldfusion</category>				
				
				<category>ArcWeb Services</category>				
				
				<pubDate>Fri, 26 Aug 2005 18:47:00 -0400</pubDate>
				<guid>http://www.roktech.net/devblog/index.cfm/2005/8/26/ArcWeb-Services-Examples</guid>
				
			</item>
			
		 	
			</channel></rss>