<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>RSS feed for InstantSpot site Blog of Dave</title><link>http://daveshuck.instantspot.com</link><description>Dave Shuck&apos;s ramblings on - Software Development, Outdoors, and Life</description><language>en-us</language><copyright>This work is Copyright &#xA9; 2010 by Blog of Dave</copyright><generator>RSSVille ColdFusion FeedMaker, version 1.0</generator><pubDate>Tue, 07 Sep 2010 09:50:50 GMT</pubDate><item><title>Need a &quot;rock star&quot; ColdFusion speaker for 7/30/2010 event in Dallas</title><link>http://daveshuck.instantspot.com/blog/2010/03/03/Need-a-rock-star-ColdFusion-speaker-for-7302010-event-in-Dallas/</link><description>Last year was the second annual &lt;a href=&quot;http://www.dallastechfest.com&quot;&gt;Dallas TechFest&lt;/a&gt;, which is a 1-day multi-platform event centered around programming.&amp;nbsp; They approached me at that time about bringing ColdFusion into the event, and giving us a dedicated track in one of the rooms.&amp;nbsp; I made a optimistic claim that we could bring in 50+ CFML devs from the area, and low and behold, we ended up with 70+ people that registered with the discount code from &lt;a href=&quot;http://www.dfwcfug.org&quot;&gt;our user group&lt;/a&gt;.&amp;nbsp; It was very successful and had a good buzz with the local community.&amp;nbsp; Additionally, we blew the PHP and Ruby groups out of the water! :)&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;For 2010, the organizers have offered a travel and expenses budget to to each track (CF being one of those) to pay for travel and expenses to get one &quot;rock star&quot; from each of the technologies. Based on last year&apos;s attendees, I would say that a large percentage were beginner-intermediate, with our regular core of advanced guys around as well.&amp;nbsp; The event will be on Friday July 30, in Addison.&amp;nbsp; Unfortunately this falls during the same week as &lt;a href=&quot;http://cfunited.com/2010/&quot;&gt;CFUnited&lt;/a&gt;, which obviously zaps a number of speakers from the pool of availability, but if you are interested in speaking, please let me know!&amp;nbsp; I am dshuck pretty much everywhere... gmail, twitter, facebook, etc.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; alt=&quot;&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=a89de899-3fe6-8c45-8d90-066016cfdc53&quot; /&gt;&lt;/div&gt;</description><pubDate>Wed, 03 Mar 2010 17:24:55 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2010/03/03/Need-a-rock-star-ColdFusion-speaker-for-7302010-event-in-Dallas/</guid><category>ColdFusion,General,Technology,Conferences,CFML</category></item><item><title>UDF: pcase() - Captilize first letter of each word in a string</title><link>http://daveshuck.instantspot.com/blog/2010/02/25/UDF-pcase--Captilize-first-letter-of-each-word-in-a-string/</link><description>This is a UDF that I keep on hand for converting strings to &quot;proper case&quot;, such as a person&apos;s name.&amp;nbsp; For instance, in a database we might have a name stored like &lt;b&gt;DAVID B. SHUCK&lt;/b&gt;, but when they log into our site and we welcome them, we don&apos;t necessarily want to shout it at them!&amp;nbsp;&amp;nbsp; Saying &quot;Hello David B. Shuck...&quot; would hopefully be a bit less abrasive.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Enter the user-defined function pcase().&amp;nbsp; Through the use of regular expressions we are doing a search for word patterns and capitalizing the first letter in each word.&amp;nbsp; Enjoy!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;cffunction name=&quot;pcase&quot; access=&quot;public&quot; output=&quot;false&quot;  returntype=&quot;string&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cfargument name=&quot;string&quot;  type=&quot;string&quot; required=&quot;true&quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;cfreturn  REReplaceNoCase(LCase(arguments.string),&quot;(^[a-z*]|[ *][a-z*])&quot;,&quot;\U\1\E&quot;,&quot;all&quot;)  /&amp;gt;&lt;br /&gt;&amp;lt;/cffunction&amp;gt;&lt;br /&gt;&lt;/code&gt;</description><pubDate>Thu, 25 Feb 2010 16:34:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2010/02/25/UDF-pcase--Captilize-first-letter-of-each-word-in-a-string/</guid><category>ColdFusion,Tips and Tricks,Technology,CFML,UDF</category></item><item><title>Implicit constructor and CF9 style implicit accessors without ColdFusion 9</title><link>http://daveshuck.instantspot.com/blog/2010/02/25/Implicit-constructor-and-CF9-style-implicit-accessors-without-ColdFusion-9/</link><description>One of the broadly welcomed features of ColdFusion 9 has been the addition of implicit getters and setters to CFCs.&amp;nbsp; What this means is that you no longer have to hand code the repetitive boiler plate getXXX() and setXXX() methods for each property in your model objects. However, you don&apos;t need ColdFusion 9, (or even ColdFusion for that matter) to enjoy the benefits of the new implicit accessors with the version 9 release.&amp;nbsp; Since ColdFusion 8, developers have had access to the OnMissingMethod() method which makes tasks like this very simple to implement on your own.&amp;nbsp; The OnMissingMethod is also available in current versions of OpenBlueDragon and Railo.&lt;br /&gt;&lt;br /&gt;For my implementation of this, I use a standard BaseBean class in a number of my projects which is extended by all of my model class objects.&amp;nbsp; By leveraging the OnMissingMethod() in this BaseBean, I create these implicit accessors, in addition to an implicit constructor &lt;b&gt;init()&lt;/b&gt; method as well.&lt;br /&gt;&lt;br /&gt;There are multiple examples on the internet that show how you can use OnMissingMethod(), but for the most part, the examples that I have come across do not protect the class from being having infinite previously undefined properties added to it from the outside.&amp;nbsp; For instance, I could have a class named Person.cfc with define properties of &quot;firstName&quot; and &quot;lastName&quot;, but nothing would stop someone from doing &lt;b&gt;Person.setThisIsNotAProperty(true)&lt;/b&gt; and that value would be dynamically added to the Person instance.&lt;b&gt;&amp;nbsp; &lt;/b&gt;While some might argue that the flexibility that this approach offers is a positive thing, I prefer to lock my classes down just a bit more.&amp;nbsp; For instance&lt;b&gt; &lt;/b&gt;I like the fact that I can open up a model class and see exactly what properties it can contain with clearly defined &amp;lt;cfproperty/&amp;gt; tags.&amp;nbsp;&amp;nbsp; From a maintainability standpoint the idea of &quot;mystery&quot; dynamic properties strike me as just wrong.&lt;br /&gt;&lt;br /&gt;For my implicit constructor, I take an approach where I loop through any named arguments that were passed, and if the name matches a property that I have defined with &amp;lt;cfproperty/&amp;gt;, then it will be passed to a setter method.&amp;nbsp; Any arguments that are passed that are not defined as a property are discarded.&lt;br /&gt;&lt;br /&gt;So let&apos;s take a look at what this looks like.&amp;nbsp; First I will paste the entire BaseBean, and below we will break it apart to discuss what is going on.&lt;br /&gt;&lt;span style=&quot;padding: 0pt 10px 10px 0pt;&quot;&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cfcomponent output=&amp;quot;false&amp;quot;&amp;gt;       &amp;lt;cffunction name=&amp;quot;init&amp;quot; access=&amp;quot;public&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;BaseBean&amp;quot;&amp;gt;   &amp;lt;cfset var i = &amp;quot;&amp;quot; /&amp;gt;   &amp;lt;cfset initializePropertyList() /&amp;gt;   &amp;lt;cfloop list=&amp;quot;#this.propertyList#&amp;quot; index=&amp;quot;i&amp;quot;&amp;gt;    &amp;lt;cfif StructKeyExists(arguments,i)&amp;gt;     &amp;lt;cfset set(i,arguments[i]) /&amp;gt;    &amp;lt;/cfif&amp;gt;   &amp;lt;/cfloop&amp;gt;     &amp;lt;cfreturn this /&amp;gt;  &amp;lt;/cffunction&amp;gt;      &amp;lt;cffunction name=&amp;quot;initializePropertyList&amp;quot; access=&amp;quot;private&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;void&amp;quot;&amp;gt;   &amp;lt;cfset var i = &amp;quot;&amp;quot; /&amp;gt;   &amp;lt;cfif NOT StructKeyExists(this,&amp;quot;propertyList&amp;quot;)&amp;gt;    &amp;lt;cfset this.propertyList = &amp;quot;&amp;quot; /&amp;gt;    &amp;lt;cfif ArrayLen(GetMetadata(this).properties)&amp;gt;     &amp;lt;cfloop from=&amp;quot;1&amp;quot; to=&amp;quot;#ArrayLen(GetMetadata(this).properties)#&amp;quot; index=&amp;quot;i&amp;quot;&amp;gt;      &amp;lt;cfset this.propertyList = ListAppend(this.propertyList,GetMetadata(this).properties[i].name)&amp;gt;     &amp;lt;/cfloop&amp;gt;    &amp;lt;/cfif&amp;gt;   &amp;lt;/cfif&amp;gt;     &amp;lt;cfreturn /&amp;gt;   &amp;lt;/cffunction&amp;gt;      &amp;lt;cffunction name=&amp;quot;onMissingMethod&amp;quot; access=&amp;quot;public&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;any&amp;quot;&amp;gt;   &amp;lt;cfargument name=&amp;quot;missingMethodName&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;true&amp;quot; /&amp;gt;   &amp;lt;cfargument name=&amp;quot;missingMethodArguments&amp;quot; type=&amp;quot;struct&amp;quot; required=&amp;quot;true&amp;quot; /&amp;gt;      &amp;lt;cfset var property = &amp;quot;&amp;quot; /&amp;gt;            &amp;lt;cfif ReFindNoCase(&amp;quot;^[gs](et)&amp;quot;,arguments.missingMethodName)&amp;gt;    &amp;lt;cfset property = ReReplaceNoCase(arguments.missingMethodName,&amp;quot;^[gs](et)&amp;quot;,&amp;quot;&amp;quot;) /&amp;gt;    &amp;lt;cfset initializePropertyList() /&amp;gt;     &amp;lt;cfif ListFindNoCase(this.propertyList,property)&amp;gt;     &amp;lt;cfif StructIsEmpty(arguments.missingMethodArguments)&amp;gt;      &amp;lt;cfreturn get(property) /&amp;gt;     &amp;lt;cfelse&amp;gt;      &amp;lt;cfset set(property,arguments.missingMethodArguments[1]) /&amp;gt;      &amp;lt;cfreturn this /&amp;gt;     &amp;lt;/cfif&amp;gt;     &amp;lt;cfelse&amp;gt;     &amp;lt;cfthrow message=&amp;quot;The class #GetMetadata(this).name# does not have a property named #property# so the implicit #arguments.missingMethodName#() method is not available.&amp;quot; /&amp;gt;      &amp;lt;/cfif&amp;gt;    &amp;lt;/cfif&amp;gt;    &amp;lt;cfreturn /&amp;gt;   &amp;lt;/cffunction&amp;gt;    &amp;lt;cffunction name=&amp;quot;get&amp;quot; access=&amp;quot;public&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;any&amp;quot;&amp;gt;   &amp;lt;cfargument name=&amp;quot;property&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;true&amp;quot; /&amp;gt;   &amp;lt;cfset var value = &amp;quot;&amp;quot; /&amp;gt;        &amp;lt;cfset value = variables[arguments.property] /&amp;gt;       &amp;lt;cfreturn value /&amp;gt;   &amp;lt;/cffunction&amp;gt;    &amp;lt;cffunction name=&amp;quot;set&amp;quot; access=&amp;quot;public&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;void&amp;quot;&amp;gt;   &amp;lt;cfargument name=&amp;quot;property&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;true&amp;quot; /&amp;gt;   &amp;lt;cfargument name=&amp;quot;value&amp;quot; type=&amp;quot;any&amp;quot; required=&amp;quot;true&amp;quot; /&amp;gt;      &amp;lt;cfset variables[arguments.property] = arguments.value /&amp;gt;      &amp;lt;cfreturn /&amp;gt;  &amp;lt;/cffunction&amp;gt;   &amp;lt;/cfcomponent&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Before we walk through the actual flow, I would like to point out the method &lt;b&gt;initializePropertyList()&lt;/b&gt; that you see here:&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0pt 10px 10px 0pt;&quot;&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cffunction name=&amp;quot;initializePropertyList&amp;quot; access=&amp;quot;private&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;void&amp;quot;&amp;gt;  &amp;lt;cfset var i = &amp;quot;&amp;quot; /&amp;gt;  &amp;lt;cfif NOT StructKeyExists(this,&amp;quot;propertyList&amp;quot;)&amp;gt;   &amp;lt;cfset this.propertyList = &amp;quot;&amp;quot; /&amp;gt;   &amp;lt;cfif ArrayLen(GetMetadata(this).properties)&amp;gt;    &amp;lt;cfloop from=&amp;quot;1&amp;quot; to=&amp;quot;#ArrayLen(GetMetadata(this).properties)#&amp;quot; index=&amp;quot;i&amp;quot;&amp;gt;     &amp;lt;cfset this.propertyList = ListAppend(this.propertyList,GetMetadata(this).properties[i].name)&amp;gt;    &amp;lt;/cfloop&amp;gt;   &amp;lt;/cfif&amp;gt;  &amp;lt;/cfif&amp;gt;    &amp;lt;cfreturn /&amp;gt;  &amp;lt;/cffunction&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;By using the GetMetadata() function, we are able to introspect our instance and create a list of property names which we can reference in our other methods.&amp;nbsp; This is what enables us to enforce the rules that I described above in which we make sure that a property exists before setting it in the constructor or through an implicit accessor.&amp;nbsp; You will see in both the &lt;b&gt;init() &lt;/b&gt;and &lt;b&gt;OnMissingMethod()&lt;/b&gt; methods that we call this method to ensure the list of properties is available before testing against it.&lt;br /&gt;&lt;br /&gt;With that established, let&apos;s take a look at the &lt;b&gt;init()&lt;/b&gt; constructor method:&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0pt 10px 10px 0pt;&quot;&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cffunction name=&amp;quot;init&amp;quot; access=&amp;quot;public&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;BaseBean&amp;quot;&amp;gt;  &amp;lt;cfset var i = &amp;quot;&amp;quot; /&amp;gt;  &amp;lt;cfset initializePropertyList() /&amp;gt;  &amp;lt;cfloop list=&amp;quot;#this.propertyList#&amp;quot; index=&amp;quot;i&amp;quot;&amp;gt;   &amp;lt;cfif StructKeyExists(arguments,i)&amp;gt;    &amp;lt;cfset set(i,arguments[i]) /&amp;gt;   &amp;lt;/cfif&amp;gt;  &amp;lt;/cfloop&amp;gt;    &amp;lt;cfreturn this /&amp;gt; &amp;lt;/cffunction&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;After making sure that our propertyList has been initialized, we loop through that list and if there is a matching named argument, we call the &lt;b&gt;set()&lt;/b&gt; method which sets that value into the variables scope.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0pt 10px 10px 0pt;&quot;&gt;&lt;br /&gt;So with the object initialized, let&apos;s take a look at our accessors.&amp;nbsp; For our example, let&apos;s say that we have a &lt;b&gt;Person&lt;/b&gt; object and we are doing to set our &lt;b&gt;firstName&lt;/b&gt; property like this: &lt;b&gt;person.setFirstName(&quot;Dave&quot;)&lt;/b&gt;.&amp;nbsp; Since that setter method doesn&apos;t exist in our Person class, the OnMissingMethod() below will be invoked.&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0pt 10px 10px 0pt;&quot;&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cffunction name=&amp;quot;onMissingMethod&amp;quot; access=&amp;quot;public&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;any&amp;quot;&amp;gt;  &amp;lt;cfargument name=&amp;quot;missingMethodName&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;true&amp;quot; /&amp;gt;  &amp;lt;cfargument name=&amp;quot;missingMethodArguments&amp;quot; type=&amp;quot;struct&amp;quot; required=&amp;quot;true&amp;quot; /&amp;gt;    &amp;lt;cfset var property = &amp;quot;&amp;quot; /&amp;gt;          &amp;lt;cfif ReFindNoCase(&amp;quot;^[gs](et)&amp;quot;,arguments.missingMethodName)&amp;gt;   &amp;lt;cfset property = ReReplaceNoCase(arguments.missingMethodName,&amp;quot;^[gs](et)&amp;quot;,&amp;quot;&amp;quot;) /&amp;gt;   &amp;lt;cfset initializePropertyList() /&amp;gt;    &amp;lt;cfif ListFindNoCase(this.propertyList,property)&amp;gt;    &amp;lt;cfif StructIsEmpty(arguments.missingMethodArguments)&amp;gt;     &amp;lt;cfreturn get(property) /&amp;gt;    &amp;lt;cfelse&amp;gt;     &amp;lt;cfset set(property,arguments.missingMethodArguments[1]) /&amp;gt;     &amp;lt;cfreturn this /&amp;gt;    &amp;lt;/cfif&amp;gt;    &amp;lt;cfelse&amp;gt;    &amp;lt;cfthrow message=&amp;quot;The class #GetMetadata(this).name# does not have a property named #property# so the implicit #arguments.missingMethodName#() method is not available.&amp;quot; /&amp;gt;     &amp;lt;/cfif&amp;gt;   &amp;lt;/cfif&amp;gt;   &amp;lt;cfreturn /&amp;gt;  &amp;lt;/cffunction&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;We are then doing a regular expression test to see if the missing method names starts with either &quot;get&quot; or &quot;set&quot;.&amp;nbsp; If so, we derive the name of the target property by stripping the &quot;get&quot; or &quot;set&quot; off of the string.&amp;nbsp; After making sure that our propertyList has been defined, we then look in that list to see if the target property actually exists in the instance.&amp;nbsp; If it does, the request is then routed on to either the getter or the setter depending on whether arguments were passed to it.&amp;nbsp; Otherwise an exception will be thrown to let the developer know that he or she has attempted to access an undefined property.&lt;br /&gt;&lt;br /&gt;One thing you might notice is that when our conditional block routes the request to the setter, we return an instance of the class itself.&amp;nbsp; This allows us to do method chaining like this:&amp;nbsp; &lt;b&gt;person.setFirstName(&quot;Dave&quot;).setLastName(&quot;Shuck&quot;)&lt;/b&gt;.&amp;nbsp; it should be noted that this is not the approach that Adobe took with ColdFusion 9.&lt;br /&gt;&lt;br /&gt;So let&apos;s take a look at it in action.&amp;nbsp; Here is our Person.cfc class.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0pt 10px 10px 0pt;&quot;&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cfcomponent output=&amp;quot;false&amp;quot; extends=&amp;quot;BaseBean&amp;quot;&amp;gt;    &amp;lt;cfproperty name=&amp;quot;id&amp;quot; type=&amp;quot;string&amp;quot; /&amp;gt;  &amp;lt;cfproperty name=&amp;quot;firstName&amp;quot; type=&amp;quot;string&amp;quot; /&amp;gt;  &amp;lt;cfproperty name=&amp;quot;lastName&amp;quot; type=&amp;quot;string&amp;quot; /&amp;gt;   &amp;lt;/cfcomponent&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;As you can see in the &amp;lt;cfcomponent/&amp;gt; tag, we are extending our BaseBean which is all that we need to have a workable domain class object. &lt;br /&gt;&lt;br /&gt;When we put this together and access it in our code, we can do this:&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0pt 10px 10px 0pt;&quot;&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cfset person = CreateObject(&amp;quot;component&amp;quot;,&amp;quot;Person&amp;quot;).init(id=7,firstName=&amp;quot;Dave&amp;quot;, lastName=&amp;quot;Shuck&amp;quot;) /&amp;gt;  &amp;lt;cfdump var=&amp;quot;#person#&amp;quot; /&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/100225/implicit-accessors/person_dump_1.png&quot; /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0pt 10px 10px 0pt;&quot;&gt;&lt;br /&gt;Once we have an instance, we can modify those properties like so:&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0pt 10px 10px 0pt;&quot;&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;&amp;lt;cfset person.setId(8).setFirstName(&amp;quot;Johnny&amp;quot;).setLastName(&amp;quot;Rotten&amp;quot;) /&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://dl.dropbox.com/u/101948/blog/100225/implicit-accessors/person_dump_2.png&quot; /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;padding: 0pt 10px 10px 0pt;&quot;&gt;&lt;br /&gt;I have not actually tested this on Railo, but I can confirm that it works in OpenBlueDragon (including GAE version), and ColdFusion versions 8 and 9.&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img class=&quot;zemanta-pixie-img&quot; alt=&quot;&quot; src=&quot;http://img.zemanta.com/pixy.gif?x-id=2c92c98f-15c9-815f-9118-37ac4f41aacc&quot; /&gt;&lt;/div&gt;</description><pubDate>Thu, 25 Feb 2010 11:56:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2010/02/25/Implicit-constructor-and-CF9-style-implicit-accessors-without-ColdFusion-9/</guid><category>ColdFusion,Tips and Tricks,Technology,CFML</category></item><item><title>Grand Canyon... It&apos;s on!</title><link>http://daveshuck.instantspot.com/blog/2005/07/11/Grand-Canyon-Its-on/</link><description>My father and I decided that this was the year that we would hike the North Rim to the South Rim of the Grand Canyon.   I know this seems crazy, but it is actually a paperwork challenge to be able to hike the Grand Canyon.  There is an application process in which you have to fax your request in the 1st day of the month 6 months before the intended date of your trip with a detailed itinerary, including where you will be sleeping and when.  We sent faxed our paperwork in and held our breath on the 1st of April, 6 months before we hoped to go in September.  After no word for a month we finally contacted them, only to find out that we had been rejected.  Discouraged, but not beaten, we laid out the calendar to see if there was another time that would work.  We decided that November would be acceptable, albeit a little colder.  It should be in the 60s in the bottom of the canyon though where we will spend the majority of our time.  Once again, we laid out our itinerary and faxed in on July 1.  My dad received a letter today dated July 6, 2005 telling him that they were sorry, but they were unable to accept out application.  He spent a good hour walking around the house cussing and feeling terribly disappointed.  A bit later my mom noticed there was another letter from the Grand Canyon dated July 7, 2005.  &lt;br /&gt;  &lt;br /&gt;  &lt;div class=&quot;note&quot;&gt;  Dear Mr. Shuck, we have accepted your request to hike the Grand Canyon on the dates of November 1, 2 and 3, 2005.  Enlcosed are your passes, which you will need to affix to your backpack and carry with you in the canyon.  There is no need to stop by the back country headquarters before departing on the trail.  &lt;/div&gt;  So in 3.5 months, I will be taking this in....&lt;br /&gt;  &lt;div style=&quot;text-align: center&quot;&gt;  &lt;img src=&quot;/images/GrandCanyon.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;  &lt;/div&gt;      </description><pubDate>Mon, 11 Jul 2005 05:00:00 GMT</pubDate><guid>http://daveshuck.instantspot.com/blog/2005/07/11/Grand-Canyon-Its-on/</guid><category>Outdoors</category></item></channel></rss>