<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>David Harris&apos;s Technology Blog - ColdFusion</title>
			<link>http://www.harrisfamily.net.nz/devblog/index.cfm</link>
			<description>ColdFusion, Flex and the Universe...</description>
			<language>en-us</language>
			<pubDate>Wed, 08 Sep 2010 06:26:15 -0500</pubDate>
			<lastBuildDate>Thu, 29 Oct 2009 15:05:00 -0500</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>harrisfamily.net.nz@gmail.com</managingEditor>
			<webMaster>harrisfamily.net.nz@gmail.com</webMaster>
			
			<item>
				<title>CfObjective Downunder</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2009/10/29/CfObjective-Downunder</link>
				<description>
				
				I&apos;ve been a bit slow in blogging, but thanks to a &lt;a&gt;http://www.cfobjective.com.au/go/about-us,hard working team&lt;/a&gt;, CFObjective is coming downunder!

They have secured a &lt;a&gt;http://www.cfobjective.com.au/go/speakers,stelar line up&lt;/a&gt; of speakers, from both down under and up-over!

CFObjective is &quot;The Only Enterprise ColdFusion Conference&quot;, so expect a lot more than intro sessions here!


Website: &lt;a&gt;http://www.cfobjective.com.au/&lt;/a&gt;

Twitter: &lt;a&gt;http://twitter.com/cfobjective_anz&lt;/a&gt;

&lt;img src =&quot;http://www.cfobjective.com.au/images/SourceImage/banner_540.jpg&quot;/&gt; 
				</description>
				
				<category>General</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 29 Oct 2009 15:05:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2009/10/29/CfObjective-Downunder</guid>
				
			</item>
			
			<item>
				<title>Adobe Community Road Show Coming to Auckland!</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2009/6/23/Adobe-Community-Road-Show-Coming-to-Auckland</link>
				<description>
				
				This Thursday &lt;a&gt;http://www.cfug.org.nz/&lt;/a&gt; and &lt;a&gt;http://www.fxug.org.nz/&lt;/a&gt; are hosting an Adobe Roadshow event with &lt;a&gt;http://www.markszulc.com/blog/2009/06/22/flash-catalyst-builder-cf-tour-headed-to-auckland-nz/,Mark Szulc&lt;/a&gt;.

Come along to hear more about Flash Builder, Flash Catalyst and CF9!

I will attempt to broadcast the meeting on &lt;a&gt;http://experts.na3.acrobat.com/nzcfug/&lt;/a&gt;, all going well!

Related Links:

&lt;a&gt;http://groups.adobe.com/posts/1b5f77b054&lt;/a&gt;

&lt;a&gt;http://nzroadshow.eventbrite.com/&lt;/a&gt;

&lt;a&gt;http://labs.adobe.com/&lt;/a&gt;

See you there! 
				</description>
				
				<category>FXUG</category>				
				
				<category>Adobe</category>				
				
				<category>CFUG</category>				
				
				<category>ColdFusion</category>				
				
				<category>Flex</category>				
				
				<pubDate>Tue, 23 Jun 2009 19:32:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2009/6/23/Adobe-Community-Road-Show-Coming-to-Auckland</guid>
				
			</item>
			
			<item>
				<title>ColdFusion and constants - how do you do them?</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2009/4/4/ColdFusion-and-constants--how-do-you-do-them</link>
				<description>
				
				I&apos;ve been working on a project a bit lately and found I&apos;ve had the need to use some constants.

This has gotten me thinking how to implement them.

When work in Flex, I use the &lt;a&gt;http://code.google.com/p/flexcairngorm/,Extensions for Adobe Cairngorm&lt;/a&gt; and when creating your custom events involves you declaring constants in the event. The consts in the event are related to the Event type.

The idea behind constants is that this is information that *will never change*, hence the name &quot;constants&quot; :-)

In the CF application I&apos;ve been working on, UUIDs are used, and there is no way you can call a UUID &quot;human readable&quot;, so this can make code harder to understand when you see something like:

&lt;code&gt;
&lt;cflocation url=&quot;/index.cfm?page=70688909-1676-D9C3-F2C5B9F163AEBDCF &quot;&gt;
&lt;/code&gt;

If you want the person who reads this code later understand which page that is with out having to pull the application apart (and hair out too sometimes), you might to this:
&lt;code&gt;
&lt;cfset uInfoPage = &quot;70688909-1676-D9C3-F2C5B9F163AEBDCF&quot;&gt;
&lt;cflocation url=&quot;/index.cfm?page=#uInfoPage#&quot;&gt;
&lt;/code&gt;

That way the name of the variable will indicate *what* that UUID value indicates.

With me so far?

&quot;But Dave, my application has more than one template and I don&apos;t want to have to do that every time I want to send a user to the info page, and what happens if the UUID of the info page changes?&quot; you cry.

Well, why not have a single &quot;thing&quot; that stores all your constants that you can store in one place and use everywhere?

What I started doing here is I created a &quot;Const.cfc&quot; that had getter functions on them to return the constants.
EG:
&lt;code&gt;
&lt;cfcomponent output=&quot;false&quot;&gt;
  &lt;cffunction name=&quot;getInfoPageUUID&quot;&gt;
    &lt;cfreturn &quot;70688909-1676-D9C3-F2C5B9F163AEBDCF&quot;&gt;
  &lt;/cffunction&gt;
&lt;/cfcomponent&gt;
&lt;/code&gt;
So the previous code can be done as:
&lt;code&gt;
&lt;cflocation url=&quot;/index.cfm?page=#oConst.getInfoPageUUID()#&quot;&gt;
&lt;/code&gt;
&lt;small&gt;(to be honest, I&apos;d actually drop the &quot;get&quot; on the function name and just call it &quot;InfoPageUUID&quot;, as it is a const and there is no &quot;set&quot;, so why &quot;get&quot;?)&lt;/small&gt;

&lt;small&gt;(Another note: I&apos;d usually declare/call the function in all CAPS too, as this is the &quot;standard&quot; way of naming constants)&lt;/small&gt;

The above relies on &quot;oConst&quot; being created, which could be stored in application scope for example.

What I didn&apos;t like about this is that the actual value is hidden from my old friend &quot;cfdump&quot;, and if I have alot of constants I can&apos;t see their values in one hit.

This lead me to the &quot;this&quot; scope of my CFC(s).

Something like this:
&lt;code&gt;
&lt;cfcomponent output=&quot;false&quot;&gt;
  &lt;cffunction name=&quot;init&quot;&gt;
    &lt;cfset this.INFOPAGEUUID = &quot;70688909-1676-D9C3-F2C5B9F163AEBDCF&quot;&gt;
    &lt;cfreturn this&gt;
  &lt;/cffunction&gt;
&lt;/cfcomponent&gt;
&lt;/code&gt;

...which them means the example code can be written like this:
&lt;code&gt;
&lt;cflocation url=&quot;/index.cfm?page=#oConst.INFOPAGEUUID#&quot;&gt;
&lt;/code&gt;

Before you cry &quot;But people can change the values in the &apos;this&apos; scope and break stuff!&quot;, I&apos;ve always thought if people want to do that, it&apos;s up to them, but don&apos;t come running to me if it breaks!
(Also, CFCs are not secure at all anyway! see related entry)

The two things I like about using the &quot;this&quot; scope for constants are:
&lt;ul&gt;
&lt;li&gt;1: You can see all the values if you cfdump it&lt;/li&gt;
&lt;li&gt;2: If you CFC has functions, you don&apos;t have lots of functions to work out that don&apos;t really do anything&lt;/li&gt;
&lt;/ul&gt;

Let me explain the second point a bit further.

Imagine I have a DB table that stores information of pages on my site.
My CFC has functions to work with this data.
In my application I have 1meeeeeeelllion UUIDs to do with various parts of the application, that are used in various ways, that would help the readability of my code if they are stored as constants.
This would render the &quot;One Constant.cfc to rule them all&quot; a bit hard to manage.
What I have been doing is storing the UUIDs to do with that part of the application in the CFC that deals with that part of the application.

EG:

&lt;code&gt;
&lt;cfcomponent output=&quot;false&quot;&gt;
  &lt;cffunction name=&quot;init&quot;&gt;
    &lt;cfset this.INFOPAGEUUID = &quot;70688909-1676-D9C3-F2C5B9F163AEBDCF&quot;&gt;
    &lt;cfset this.HOMEPAGEUUID = &quot;70826CD8-1676-D9C3-F256954C82CAF104&quot;&gt;
    &lt;cfreturn this&gt;
  &lt;/cffunction&gt;
   &lt;cffunction name=&quot;doSomething&quot;&gt;
   &lt;/cffunction&gt;
   &lt;cffunction name=&quot;doSomethingElse&gt;
   &lt;/cffunction&gt;
   ...lots more functions here...
&lt;/cfcomponent&gt;
&lt;/code&gt;

If you create that cfc and dump it as below:
&lt;code&gt;
&lt;cfset oMyObject = createObject(&quot;component&quot;,&quot;someCFC&quot;).init()&gt;
&lt;cfdump var=&quot;#oMyObject#&quot;&gt;
&lt;/code&gt;
by default (CF8 I think...)
I would see all my constants at the top and all my functions would be collapsed.

Given the above code uses no frameworks and if any of you managed to read all my brain dump, what thoughts do you have on the above and/or how have you approached ColdFusion constants?

&lt;small&gt;Disclaimer: all the above code is psedo code and hasn&apos;t actually been tested, but feel free to point out syntax errors etc. I may change it, I may not...&lt;/small&gt; 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Sat, 04 Apr 2009 21:05:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2009/4/4/ColdFusion-and-constants--how-do-you-do-them</guid>
				
			</item>
			
			<item>
				<title>Transfer: Something I like about it.</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2009/3/2/Transfer-Something-I-like-about-it</link>
				<description>
				
				I&apos;ve been looking in to Mark Mandel&apos;s &lt;a&gt;http://www.transfer-orm.com/,Transfer&lt;/a&gt; bit since he presented to the &lt;a&gt;http://www.cfug.org.nz&lt;/a&gt; end of last year.

One thing (of the many things) I like about it is the XML config file.

Why do I like it?

2 reasons.

1. The fact you can introduce some form of package.class hierarchy to the Database, so flat database&apos;s can be organized better
EG:
&lt;code&gt;
&lt;transfer&gt;
  &lt;objectDefinitions&gt;
    &lt;package name=&quot;mypackage&quot;&gt;
      &lt;object name=&quot;myclass&quot; table=&quot;mytable&quot; &gt;
         &lt;id name=&quot;id&quot; type=&quot;UUID&quot; /&gt;
         &lt;property name=&quot;my property&quot; type=&quot;string&quot; /&gt;
         ...etc...
&lt;/code&gt;
So this means I call my &quot;myclass&quot; like this:
&lt;code&gt;
transfer.getTransfer().new(&quot;mypackage.myclass&quot;);
&lt;/code&gt;

2. The second reason is: I CAN COMMENT THE XML!
Why is this good?
I&apos;m sure we have all returned to database tables with a few to many columns and tried to would out what &quot;status&quot; column and &quot;anotherStatus&quot; column actually relates to in the business logic of the application.
This process involves digging through code and random comments.
With the XML config of transfer, a simple comment on the property can explain it so the next person who needs to work with it knows where look to find out what the class (db table) is for and what purpose the property servers.

Hopefully I&apos;ll find the time to blog some examples on Transfer later.

EG: Event model and decorators 
				</description>
				
				<category>Transfer</category>				
				
				<category>OpenSource</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 02 Mar 2009 19:55:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2009/3/2/Transfer-Something-I-like-about-it</guid>
				
			</item>
			
			<item>
				<title>NZ CFUG: Mark Mandel on Transfer</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/11/4/NZ-CFUG-Mark-Mandel-on-Transfer</link>
				<description>
				
				Only 2 days till the next NZ Cfug meeting.

This month we are going to have Mark Mandel giving us his &quot;Introduction to Building Applications 
with Transfer ORM&quot; presentation live via Adobe Connect.

We attempted to have this last month, but due to technical issues last month &lt;small&gt;[cough]VPN[cough]&lt;/small&gt; Mark agreed to give it this month.

This month we are meeting for the first time at &lt;a&gt;http://projectpartner.com/,ProjectPartner&lt;/a&gt;, so a big thank you to them!

The meeting will be broadcast via Connect on the URL &lt;a&gt;http://experts.na3.acrobat.com/nzcfug/&lt;/a&gt;, so feel free to sit in if you are round @ 6pm (NZ time) on the 6th November.

If you RSVP (remote or in person) and are based in NZ, you&apos;ll be in the prize draw too!

RSVP: &lt;a&gt;http://nzcfug.eventbrite.com/&lt;/a&gt;

See you there! 
				</description>
				
				<category>Adobe</category>				
				
				<category>CFUG</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Tue, 04 Nov 2008 18:27:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/11/4/NZ-CFUG-Mark-Mandel-on-Transfer</guid>
				
			</item>
			
			<item>
				<title>Adventures in jQuery</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/7/3/Adventures-in-jQuery</link>
				<description>
				
				The last week or so I&apos;ve had the pleasure of working deeply with &lt;a&gt;http://jquery.com/,jQuery&lt;/a&gt;.

And I mean that, it&apos;s been a pleasure.

Once you get used to the &apos;style&apos; of how it works, it makes sense and has a consistent coding experience.

I&apos;ve worked mainly with the core and the ui.jquery libraries, with fileupload thrown in.
In the mix is also &lt;cfajaxproxy&gt;, and they have all played together nicely (so far!)

I&apos;ve got jQuery adding and removing custom DOM elements on the fly, while updating information on the server, uploading and deleting images and also maintaining the structure of the form so that when it is submitted in the usual &quot;post&quot; manner, the server knows what to do with the data it receives.

So all in all I&apos;ve had a good experience with it.

Things it has helped me understand is the use of &quot;anonymous Functions&quot; (I think that is what they are called)

EG:
&lt;code&gt;
$(&quot;#myelement&quot;).hide();
&lt;/code&gt;
will hide the element with the id of &quot;myelement&quot;

now the &quot;hide&quot; method will accept an argument of a function that it will call when it has completed.
Commonly called a &quot;callback&quot;, so i we had a function like this:
&lt;code&gt;
function alertme(){ alert(&apos;me&apos;); }
&lt;/code&gt;
you could call that function when hide was complete like this:
&lt;code&gt;
$(&quot;#myelement&quot;).hide( alertme ); 
&lt;/code&gt;
so the function has the name &quot;alertme&quot;, so is not anonymous.

To use an anonymous function to do the same thing, this is what you would do:
&lt;code&gt;
$(&quot;#myelement&quot;).hide( function(){ alert(&apos;me&apos;); } );
&lt;/code&gt;


You can also do this in Flex.

eg:

rather than:
&lt;code&gt;
addEventListener( &quot;SomeEvent&quot; , someFunction );
&lt;/code&gt;
You can go:
&lt;code&gt; 
addEventListener( &quot;someEvent&quot; , function( event: Event): void { [do stuff here] } );
&lt;/code&gt;
While you can put as much in you function as you like, I did find it makes code a bit hard to read.

One thing that works, but somehow feels wrong, is that the anonymous functions have direct access to the variables declared in the calling function.

eg:
&lt;code&gt;
function myFunction()
{

	var someString = &quot;bob&quot;;
	$(&quot;#myelement&quot;).hide( function(){ alert( someString ); } );

}
&lt;/code&gt;
This seems to be true of both JS and AS.
I guess this is because the function itself belongs to the function it is being called in, so has access to the variables called in there...

So all in all I&apos;ve enjoyed getting to know &lt;a&gt;http://jquery.com/,jQuery&lt;/a&gt;, and suspect it&apos;s the beginning of a beautiful friendship!

&lt;small&gt;...but, I still prefer Flex!&lt;/small&gt; 
				</description>
				
				<category>jQuery</category>				
				
				<category>Ajax</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 03 Jul 2008 12:41:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/7/3/Adventures-in-jQuery</guid>
				
			</item>
			
			<item>
				<title>CF8 Ajax Goodness - Ray Camdens Recording</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/6/5/CF8-Ajax-Goodness--Ray-Camdens-Recording</link>
				<description>
				
				Tonight we had the honor of &lt;a&gt;http://www.coldfusionjedi.com,Ray Camden&lt;/a&gt; staying up till 1am his time to present to us @ 6pm NZ time.

The meeting was the &lt;a&gt;http://www.cfug.org.nz,NZ ColdFusion UG&lt;/a&gt; June meeting, and the topic was &lt;strong&gt;CF8 Ajax Goodness&lt;/strong&gt;

After a couple of technical issues (involving screen issues and incorrect Connect meeting rooms on my part...*cough*) we got the meeting under way.

Ray, as always, gave a great presentation which promoted good discussion in the group afterwards.

So a big &lt;strong&gt;thanks&lt;/strong&gt; to Ray for his continued giving of time and energy to the community!

The recording URL is &lt;a&gt;https://admin.adobe.acrobat.com/_a200985228/p21985414/&lt;/a&gt; and I have also added it to &lt;a&gt;http://carehart.org/ugtv/list.cfm,UGTV&lt;/a&gt;

Enjoy! 
				</description>
				
				<category>CFUG</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 05 Jun 2008 22:07:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/6/5/CF8-Ajax-Goodness--Ray-Camdens-Recording</guid>
				
			</item>
			
			<item>
				<title>ColdFusion 8.0.1 fixed my bug!</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/4/30/ColdFusion-801-fixed-my-bug</link>
				<description>
				
				I while ago I logged a bug for the first time with in ColdFusion 8.

&lt;a&gt;http://www.harrisfamily.net.nz/devblog/index.cfm/2007/10/17/cfpresentation-and-attributeCollection-issue,Here&lt;/a&gt; is the entry about it.

While looking over the 8.0.1 release notes I decide to check...

and yes, at the top of page 15, bug number 70594 has been addressed! Thank you! 
				</description>
				
				<category>Adobe</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 30 Apr 2008 22:38:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/4/30/ColdFusion-801-fixed-my-bug</guid>
				
			</item>
			
			<item>
				<title>Transfer 1.0 ORM is released!</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/4/28/Transfer-10-ORM-is-released</link>
				<description>
				
				Just noticed this on a mailing list:

&lt;a&gt;http://www.compoundtheory.com/?action=displayPost&amp;ID=303,Transfer 1.0 Release Candidate - Out Now!&lt;/a&gt;

Well done Mark!

Mark presented to the NZCFUG last year on TransferORM.

I&apos;ll be downloading Transfer 1.0 soon to have take it for a spin! 
				</description>
				
				<category>CFUG</category>				
				
				<category>Frameworks</category>				
				
				<category>OpenSource</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 28 Apr 2008 21:56:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/4/28/Transfer-10-ORM-is-released</guid>
				
			</item>
			
			<item>
				<title>ColdFusion Error: can&apos;t load a null</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/4/11/ColdFusion-Error-cant-load-a-null</link>
				<description>
				
				I was working with a CFC today and ColdFusion threw this error at me:

&lt;h3&gt;can&apos;t load a null&lt;/h3&gt;

There was no more information than that...

I&apos;m not sure why is this error happens, but I did work what is causing it...

If you define a function that has an argument that has a default that is a variable or function with the same name as any of the arguments, this error is thrown.

You don&apos;t even need to call the function, you just need to define it.

Create a .cfm or .cfc and put this function in it:

&lt;code&gt;

&lt;cffunction name=&quot;someFunction&quot;&gt;

	&lt;cfargument name=&quot;myValue&quot; default=&quot;#myValue#&quot;&gt;

	&lt;cfreturn false&gt;

&lt;/cffunction&gt;

&lt;/code&gt;

The error is occurring when ColdFusion is parsing the code, and not running it.

Weird eh?

I&apos;m off to &lt;a&gt;http://www.adobe.com/go/wish&lt;/a&gt; now to log a bug (all-be-it an obscure odd one...) 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 11 Apr 2008 20:54:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/4/11/ColdFusion-Error-cant-load-a-null</guid>
				
			</item>
			
			<item>
				<title>I know what DSL is now, thanks to Peter Bell!</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/4/5/I-know-what-DSL-is-now-thanks-to-Peter-Bell</link>
				<description>
				
				Last Thursday at the &lt;a&gt;http://www.cfug.org.nz,NZ CFUG&lt;/a&gt; group we tried something new.

For the first time we watched a recording of a Connect meeting and had discussion about it once it finished.

After voting by the CFUG members for the topic, &quot;Practical Code Generation&quot; by Peter Bell was chosen.

About this Presentation (taken from &lt;a&gt;http://www.carehart.org/ugtv/, UGTV&lt;/a&gt;):

&lt;i&gt;A 20-30 minute preview session of my full session where we&apos;d learn how to generate your applications in a fraction of the time by using the latest techniques proven to reduce application development times - from Software Product Lines to Domain Specific Languages.&lt;/i&gt;

The meeting was given to the &quot;&lt;a&gt;http://coldfusion.meetup.com/17/,Online ColdFusion User Group&lt;/a&gt;&quot; a couple of months back.

I&apos;ve heard the phrase &quot;Domain Specific Languages&quot; (DSL) thrown round a bit and generally I nodded my head hoping the person using it wouldn&apos;t ask me about it, as I didn&apos;t really know what it meant...

In the presentation Peter took some pains to explain what a DSL is and how they can be used in code generation.

I found it to be a highly information presentation, so kudos to &lt;a&gt;http://www.pbell.com,Peter Bell&lt;/a&gt; for this and also &lt;a&gt;http://www.carehart.com,Charlie Arehart&lt;/a&gt; for running (and recording) the meeting

The link to the recording is here: &lt;a&gt;https://admin.acrobat.com/_a204547676/p26665304/&lt;/a&gt;, so have a look when you get a chance!

PS: there can *never* be enough &lt;a&gt;http://en.wikipedia.org/wiki/TLA,TLA&lt;/a&gt;&apos;s in the world! *NEVER*! 
				</description>
				
				<category>CFUG</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Sat, 05 Apr 2008 21:22:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/4/5/I-know-what-DSL-is-now-thanks-to-Peter-Bell</guid>
				
			</item>
			
			<item>
				<title>What do *you* want in ColdFusion9?</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/1/15/What-do-you-want-in-ColdFusion9</link>
				<description>
				
				Rupesh Kumar (a member of the ColdFusion engineering team) has just blogged about surveys for input on the next version of ColdFusion!

Go here - &lt;a&gt;http://coldfused.blogspot.com/2008/01/adobe-coldfusion-survey.html&lt;/a&gt; to find the surveys and give the CF team some good ideas on the next version of CF! 
				</description>
				
				<category>Adobe</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Tue, 15 Jan 2008 06:13:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2008/1/15/What-do-you-want-in-ColdFusion9</guid>
				
			</item>
			
			<item>
				<title>www.coldfusioncommunity.org - &apos;ave a look</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2007/11/15/wwwcoldfusioncommunityorg--ave-a-look</link>
				<description>
				
				Props to &lt;a&gt;http://www.coldfusioncommunity.org/profile/nicktong,Nick Tong&lt;/a&gt; for setting up &lt;a&gt;http://www.coldfusioncommunity.org/&lt;/a&gt;

If you think of yourself as a CFer, sign up!
My profile is &lt;a&gt;http://www.coldfusioncommunity.org/profile/DavidHarris,here&lt;/a&gt;

It&apos;ll be interesting to see how this developes in the days ahead... 
				</description>
				
				<category>General</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 15 Nov 2007 19:21:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2007/11/15/wwwcoldfusioncommunityorg--ave-a-look</guid>
				
			</item>
			
			<item>
				<title>Need a throw-away random String? Don&apos;t use createUUID()!</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2007/11/6/Need-a-throwaway-random-String-Dont-use-createUUID</link>
				<description>
				
				In the past when I need a random string for something, I have used the createUUID() function and modified it as required.

This is slow.

I think the reason this is slow is because it&apos;s not a &quot;random&quot; string, but a &quot;unique&quot; string.

From the &lt;a&gt;http://livedocs.adobe.com/coldfusion/8/htmldocs/functions_c-d_24.html,Docs&lt;/a&gt;:
&lt;div style=&quot;border:1px solid silver;backgound-color:#EEEEEE&quot;&gt;
Creates a Universally Unique Identifier (UUID). 
&lt;/div&gt;

I ran this code:
&lt;code&gt;
&lt;cfloop from = &quot;1&quot; to=&quot;5&quot; index=&quot;iCount&quot;&gt;
	&lt;cfoutput&gt;#createUUID()#&lt;/cfoutput&gt;&lt;br /&gt;
&lt;/cfloop&gt;
&lt;/code&gt;

and got:

&lt;code&gt;
1330544F-C09F-F023-3B5732BB3AB1E6FC
1330546E-C09F-F023-3B427B03747AD651
1330547E-C09F-F023-3B32F655A3898333
1330548D-C09F-F023-3B272F4E96E41BED
1330549D-C09F-F023-3B342477C11A9E36
&lt;/code&gt;

From this it is obvious that while each of those strings are Unique, they are not random.
So I am guessing that the algorithm used is based on the time of the server and some randomness.

It was taking about 1.5 - 2 seconds to run this code:
&lt;code&gt;
&lt;cfloop from = &quot;1&quot; to=&quot;100&quot; index=&quot;iCount&quot;&gt;
	&lt;cfset createUUID()&gt;
&lt;/cfloop&gt;
&lt;/code&gt;

As all I needed was a random string that I was not planning to use again, I came up with this:
&lt;code&gt;
#hash( rand() )#
&lt;/code&gt;
that was a lot quicker.
Creating 100 of those took 15ms or less.

I ran the code below(which took about 3secs), and got NO duplicates, so it&apos;s random enough for me!
&lt;code&gt;
&lt;cfset stData = structNew()&gt;
&lt;cfloop from = &quot;1&quot; to=&quot;100000&quot; index=&quot;iCount&quot;&gt;
	&lt;cfset randValue = &quot;_#hash( rand() )#&quot;&gt;
	&lt;cfif structKeyExists( stData , randValue )&gt;
		&lt;p&gt;Found it! &lt;cfoutput&gt;#randValue#&lt;/cfoutput&gt;&lt;/p&gt;
	&lt;/cfif&gt;
	&lt;cfset stData[ randValue ] = &quot;&quot;&gt;
&lt;/cfloop&gt;
&lt;/code&gt;

I wouldn&apos;t recommend using this as a prim key in a DB table, but it does what I need if for! 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Tue, 06 Nov 2007 15:42:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2007/11/6/Need-a-throwaway-random-String-Dont-use-createUUID</guid>
				
			</item>
			
			<item>
				<title>CFCamp - Australia sign up</title>
				<link>http://www.harrisfamily.net.nz/devblog/index.cfm/2007/10/29/CFCamp--Australia-sign-up</link>
				<description>
				
				Following up from my previous post about CFCamp, the sign up for the event has baan posted.

Go to &lt;a&gt;http://cfcamp.eventbrite.com/&lt;/a&gt; to sign up!

&lt;small&gt;PS: Still working on the New Zealand Connection!&lt;/small&gt; 
				</description>
				
				<category>Adobe</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 29 Oct 2007 09:56:00 -0500</pubDate>
				<guid>http://www.harrisfamily.net.nz/devblog/index.cfm/2007/10/29/CFCamp--Australia-sign-up</guid>
				
			</item>
			</channel></rss>