<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>RSS feed for InstantSpot site orangepips</title><link>http://orangepips.instantspot.com</link><language>en-us</language><copyright>This work is Copyright &#xA9; 2009 by orangepips</copyright><generator>RSSVille ColdFusion FeedMaker, version 1.0</generator><pubDate>Sat, 21 Nov 2009 10:15:42 GMT</pubDate><item><title>Railo: A Lot to Like &amp; the US Tour 08</title><link>http://orangepips.instantspot.com/blog/2008/07/31/Railo-A-Lot-to-Like--the-US-Tour-08</link><description>Impressions from the Railo US Tour 08 stop in Baltimore. </description><pubDate>Thu, 31 Jul 2008 16:09:00 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2008/07/31/Railo-A-Lot-to-Like--the-US-Tour-08</guid><category>Coldfusion</category></item><item><title>CF Equivalent MD5 Hashing Functions for SQL Server 2005+ &amp; Oracle 8+</title><link>http://orangepips.instantspot.com/blog/2008/05/23/CF-Equivalent-MD5-Hashing-Functions-for-SQL-Server-2005--Oracle-8</link><description>&lt;p&gt;Both Oracle and SQL Server have built-in hashing functions. The trick is neither returns a value that is immediately comparable to a hashed value in ColdFusion (i.e. 32 character, hex based, upper case). So some additional conversion is required.&lt;/p&gt; &lt;h1&gt;Oracle 8+&lt;/h1&gt; &lt;p&gt;I couldn&apos;t figure out how to make it work inline with a SELECT statement, so first create a database function MD5_HASH: &lt;br /&gt; &lt;font face=&quot;Courier New&quot;&gt;&lt;br /&gt; CREATE OR REPLACE FUNCTION MD5_HASH (v_input_string in varchar2) RETURN VARCHAR2 IS&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; v_checksum VARCHAR2(20);&lt;br /&gt; BEGIN&lt;br /&gt; &amp;nbsp;&amp;nbsp; v_checksum := dbms_obfuscation_toolkit.md5 (input_string =&amp;gt; v_input_string);&lt;br /&gt; &amp;nbsp;&amp;nbsp; RETURN utl_raw.cast_to_raw(v_checksum);&lt;br /&gt; END;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;Then use this with a SELECT statement. The &amp;quot;dbms_obfuscation_toolkit.md5()&amp;quot; generates a RAW value that is then converted with &amp;quot;utl_raw.cast_to_raw()&amp;quot; to return a string than is equivalent to a CF hash() call. So an example SELECT statement:&lt;/p&gt; &lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;SELECT MD5_HASH([column]) FROM [table]&lt;/font&gt;&lt;/p&gt; &lt;h1&gt;SQL Server 2005+&lt;/h1&gt; &lt;p&gt;Note there is an &lt;a href=&quot;http://www.codeproject.com/KB/database/xp_md5.aspx&quot;&gt;option for earlier versions of SQL Server that involve installing a .dll&lt;/a&gt;, but this example takes advantage of a function introduced in 2005 &amp;quot;HashBytes()&amp;quot;.&lt;/p&gt; &lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;SELECT UPPER( RIGHT( master.dbo.fn_varbintohexstr( HashBytes( &apos;MD5&apos;, [column] ) ), 32) )&lt;/font&gt;&lt;font face=&quot;Courier New&quot;&gt;&lt;br /&gt; FROM [table]&lt;/font&gt;&lt;/p&gt; &lt;p&gt;A few notes:&lt;/p&gt; &lt;ol&gt;     &lt;li&gt;&lt;font face=&quot;Courier New&quot;&gt;master.dbo.fn_varbintohexstr()&lt;/font&gt; is an undocumented function, but &lt;a href=&quot;http://www.novicksoftware.com/udfofweek/Vol1/T-SQL-UDF-Volume-1-Number-26-fn_varbintohexstr.htm&quot;&gt;it has been around for awhile&lt;/a&gt;, and &lt;a href=&quot;http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=101713&quot;&gt;doesn&apos;t appear to be going anywhere&lt;/a&gt;, and I don&apos;t know another way to do the conversion&lt;/li&gt;     &lt;li&gt;&lt;font face=&quot;Courier New&quot;&gt;RIGHT( [value], 32) &lt;/font&gt;is needed because the value returned has a leading 0x to indicate the value is hexadecimal, which ColdFusion does not do.&lt;/li&gt;     &lt;li&gt;Finally &lt;font face=&quot;Courier New&quot;&gt;UPPER()&lt;/font&gt; is there because the value returned is lower cased.&lt;/li&gt; &lt;/ol&gt;</description><pubDate>Fri, 23 May 2008 19:00:00 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2008/05/23/CF-Equivalent-MD5-Hashing-Functions-for-SQL-Server-2005--Oracle-8</guid><category>Coldfusion,Database</category></item><item><title>Hiring a Coldfusion Software Engineer North of Baltimore, MD</title><link>http://orangepips.instantspot.com/blog/2008/05/15/Hiring-a-Coldfusion-Software-Engineer-North-of-Baltimore-MD</link><description>&lt;p&gt;I work on a Coldfusion Content Management System &lt;a href=&quot;http://www.siteexecutive.com&quot;&gt;SiteExecutive&lt;/a&gt;. This is very much a product with an&lt;a href=&quot;http://www.siteexecutive.com/cms_clients/index.html&quot;&gt; established client base in the dozens&lt;/a&gt;. We are looking &lt;a href=&quot;http://www.systemsalliance.com/careers/internal-jobs/baltimore/Web_Developer.html&quot;&gt;to hire another programmer&lt;/a&gt; to work on the product to join a team of programmers including myself.&lt;/p&gt; &lt;p&gt;I think this is an opportunity to solve some interesting problems with datasets that number in the hundreds of thousands of records (and continually growing). It involves understanding and applying concepts and technologies particularly in the parsing and search algorithms space. Generally speaking, the focus is on doing the right thing as opposed to the expedient.&lt;/p&gt; &lt;p&gt;That said, rather than tell you &amp;quot;It&apos;s the greatest place to work in the world!&amp;quot; here are some specifics and I&apos;ll leave it up to you to make up your mind. Feel free to drop me a line here with questions. The link above includes information about how to apply.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Technologies&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;&lt;strong&gt;Languages&lt;/strong&gt;: ColdFusion 8, Java 5&lt;/li&gt;     &lt;li&gt;&lt;strong&gt;Web Servers&lt;/strong&gt;: IIS, Apache&lt;/li&gt;     &lt;li&gt;&lt;strong&gt;Databases&lt;/strong&gt;: Oracle 10, SQL Server 2005 (looking at 2008 this year). There is an opportunity to add MySQL to this stack as well&lt;/li&gt;     &lt;li&gt;&lt;strong&gt;OSes&lt;/strong&gt;: Windows Server 2003 (looking at 2008 this year), Redhat &amp;amp; Solaris (not sure which versions)&lt;/li&gt;     &lt;li&gt;&lt;strong&gt;Defect Tracking&lt;/strong&gt;: Trac&lt;/li&gt;     &lt;li&gt;&lt;strong&gt;Source Control&lt;/strong&gt;: Subversion&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Process&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;&lt;strong&gt;Requirements &amp;amp; Use Cases&lt;/strong&gt;: from the &lt;a href=&quot;http://alistair.cockburn.us/index.php/Main_Page&quot;&gt;Alistair Cockburn&lt;/a&gt; school of thought (i.e. not UML).&lt;/li&gt;     &lt;li&gt;&lt;strong&gt;Coding&lt;/strong&gt;: no finicky coding standards, emphasis is on &lt;a href=&quot;http://en.wikipedia.org/wiki/Big_O_notation&quot;&gt;avoiding lousy algorithms&lt;/a&gt; (e.g. O(n&lt;sup&gt;2&lt;/sup&gt;))&lt;/li&gt;     &lt;li&gt;&lt;strong&gt;Testing &amp;amp; Support&lt;/strong&gt;: developers are not the front line for either&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Thu, 15 May 2008 20:50:00 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2008/05/15/Hiring-a-Coldfusion-Software-Engineer-North-of-Baltimore-MD</guid><category>Coldfusion</category></item><item><title>CF Development on Linux: Looking for Suggestions</title><link>http://orangepips.instantspot.com/blog/2008/03/27/CF-Development-on-Linux-Looking-for-Suggestions</link><description>&lt;p&gt;Looking for comments from people who are doing Coldfusion develoment on Linux about their experiences. Note, moving to Macs is not one of the options on the table. See below:&lt;/p&gt; &lt;p&gt;Email from my boss:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;What are your thought of a development team using Linux OS instead of Windows?  Is there sufficient development tools at work well on  Linux?&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;My response:&lt;/p&gt; &lt;blockquote&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: navy; font-family: Arial;&quot;&gt;Doable.  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;u&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: navy; font-family: Arial;&quot;&gt;Problems to  Solve&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt; &lt;ol type=&quot;1&quot; style=&quot;margin-top: 0in;&quot;&gt;     &lt;li class=&quot;MsoNormal&quot; style=&quot;color: navy;&quot;&gt;&lt;strong&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-weight: bold; font-size: 10pt; font-family: Arial;&quot;&gt;Laptops&lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Arial;&quot;&gt;: loading  *nix thereon is more painful than a desktop install. VM is not a solution  because disk I/O too slow. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;     &lt;li class=&quot;MsoNormal&quot; style=&quot;color: navy;&quot;&gt;&lt;strong&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-weight: bold; font-size: 10pt; font-family: Arial;&quot;&gt;Microsoft&lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Arial;&quot;&gt;:  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;     &lt;ol type=&quot;a&quot; style=&quot;margin-top: 0in;&quot;&gt;         &lt;li class=&quot;MsoNormal&quot; style=&quot;color: navy;&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Arial;&quot;&gt;.NET / Coldfusion integration only  runs on Windows.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;         &lt;li class=&quot;MsoNormal&quot; style=&quot;color: navy;&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Arial;&quot;&gt;SQL Server don&amp;rsquo;t run on no *nix I&amp;rsquo;m  aware of. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;         &lt;li class=&quot;MsoNormal&quot; style=&quot;color: navy;&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Arial;&quot;&gt;Exchange Email Client. I know there  are *nix options, but never seen them &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;     &lt;/ol&gt;     &lt;/li&gt;     &lt;li class=&quot;MsoNormal&quot; style=&quot;color: navy;&quot;&gt;&lt;strong&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-weight: bold; font-size: 10pt; font-family: Arial;&quot;&gt;Coldfusion *Nix  Support &lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Arial;&quot;&gt;only&lt;strong&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; &lt;/span&gt;&lt;/strong&gt;on commercial *nix OSes, such as Redhat.  The open source versions are not, such as Fedora, but still work (at least with  some fiddling). So could be a pain point.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt; &lt;/ol&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: navy; font-family: Arial;&quot;&gt;Think there are  probably sufficient development tools. &lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;u&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: navy; font-family: Arial;&quot;&gt;Development  Tools&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/u&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: navy; font-family: Arial;&quot;&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;ol type=&quot;1&quot; style=&quot;margin-top: 0in;&quot;&gt;     &lt;li class=&quot;MsoNormal&quot; style=&quot;color: navy;&quot;&gt;&lt;strong&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-weight: bold; font-size: 10pt; font-family: Arial;&quot;&gt;IDE&lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Arial;&quot;&gt;: Eclipse,  Netbeans, Emacs &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;     &lt;li class=&quot;MsoNormal&quot; style=&quot;color: navy;&quot;&gt;&lt;strong&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-weight: bold; font-size: 10pt; font-family: Arial;&quot;&gt;Database:&lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Arial;&quot;&gt; Oracle SQL  Developer &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;     &lt;li class=&quot;MsoNormal&quot; style=&quot;color: navy;&quot;&gt;&lt;strong&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-weight: bold; font-size: 10pt; font-family: Arial;&quot;&gt;Productivity&lt;/span&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: Arial;&quot;&gt;: Open  Office&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt; &lt;/ol&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;font size=&quot;2&quot; face=&quot;Arial&quot; color=&quot;navy&quot;&gt;&lt;span style=&quot;font-size: 10pt; color: navy; font-family: Arial;&quot;&gt;Course we could all  move to Macs as well. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;</description><pubDate>Thu, 27 Mar 2008 15:47:00 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2008/03/27/CF-Development-on-Linux-Looking-for-Suggestions</guid><category>Coldfusion</category></item><item><title>Coldfusion UI Tags Suggestion</title><link>http://orangepips.instantspot.com/blog/2008/03/25/Coldfusion-UI-Tags-Suggestion</link><description>&lt;p&gt;A &lt;a href=&quot;http://www.brooks-bilson.com/blogs/rob/index.cfm/2008/3/24/Rethinking-ColdFusion-8s-New-UI-Controls&quot;&gt;Rob Brooks-Bilson post&lt;/a&gt; touched a nerve of mine regarding Coldfusion&apos;s UI tags, like cfform and cfwindow. As well as its integration with third party libraries, such as Verity. In short, they&apos;re great if you can live within their limits. But, if you need to go beyond it&apos;s a big can&apos;t-get-there-from-here.&lt;/p&gt; &lt;p&gt;Take cfform for instance, great idea, but what happens when you start to need things like related select boxes? Little challenging. Or in the more recent case, the issue is the libraries continue to advance, such as &lt;a href=&quot;http://extjs.com/&quot;&gt;Ext &lt;/a&gt;and &lt;a href=&quot;http://www.fckeditor.net/&quot;&gt;FCKEdit&lt;/a&gt;, but the Coldfusion tags lag behind.&lt;/p&gt; &lt;p&gt;My suggestions:&lt;/p&gt; &lt;ol&gt;     &lt;li&gt;divorce the release cycles between UI/third-party integration tags and Coldfusion&lt;/li&gt;     &lt;li&gt;open source the UI tags with a license that requires changes be made freely available&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Tue, 25 Mar 2008 15:17:00 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2008/03/25/Coldfusion-UI-Tags-Suggestion</guid><category>Coldfusion,Suggestion</category></item><item><title>Baltimore Adobe User&apos;s Group</title><link>http://orangepips.instantspot.com/blog/2008/03/25/Baltimore-Adobe-Users-Group</link><description>&lt;p&gt;So &lt;a href=&quot;http://www.baltimore-aug.org/index.cfm&quot;&gt;AboutWeb&lt;/a&gt;, which has expanded beyond it&apos;s I270 / DC / NoVa territory in Baltimore, is hosting an inagural &lt;a href=&quot;http://www.baltimore-aug.org/index.cfm&quot;&gt;Baltimore Adobe User Group&lt;/a&gt;. In my opinion this is a Good Thing&lt;sup&gt;TM&lt;/sup&gt; Several years ago, &lt;a href=&quot;http://www.figleaf.com/&quot;&gt;Fig Leaf &lt;/a&gt;ran a Baltimore Coldfusion User Group, but it died most likely due to lack of interest. Finally, there is also the &lt;a href=&quot;http://www.teratech.com/&quot;&gt;TeraTech&lt;/a&gt; &lt;a href=&quot;http://mdcfug.org/index.cfm&quot;&gt;Maryland Coldfusion Users&apos;s Group&lt;/a&gt;. But this is a misleading name, as someone with a familiarity with MD geography can tell you, and really should be named something like the Montgomery County / Washington, DC Coldfusion Users&apos;s Group. But I suppose that doesn&apos;t quite have the same ring.&lt;/p&gt; &lt;p&gt;Anyway, glad to see it happening. And am looking forward to being there. If you are in the Baltimore metro area hope you show up.&lt;/p&gt; &lt;p&gt;P.S. You can also check out &lt;a href=&quot;http://nictunney.com/index.cfm?mode=entry&amp;amp;entry=E3ED8FFF-FF61-56C5-E9973DC0BD821B58&quot;&gt;Nic Tunney&apos;s blog&lt;/a&gt; for a little more information as well.&lt;/p&gt;</description><pubDate>Tue, 25 Mar 2008 11:15:00 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2008/03/25/Baltimore-Adobe-Users-Group</guid><category>Coldfusion</category></item><item><title>Coldfusion, Open Source &amp; C Syntax for cfscript</title><link>http://orangepips.instantspot.com/blog/2008/03/21/Coldfusion-Open-Source--C-Syntax-for-cfscript</link><description>&lt;p&gt;&lt;em&gt;I wrote this post over a month ago calling for the addition of a full fledged C syntax for  ColdFusion.And, I still want that to happen. But at the time felt it was not worth publishing. Also, &lt;/em&gt;&lt;em&gt;I admit upfront I am absolutely guilty of previously calling for cfscript&apos;s demise. &lt;/em&gt;&lt;em&gt;But now with &lt;a href=&quot;http://blog.newatlanta.com/index.cfm?mode=entry&amp;amp;entry=EABF951D-453A-486E-9647E2825D1E6F39&quot;&gt;New Atlanta&apos;s annoucement they will Open Source Blug Dragon&lt;/a&gt; and a &lt;a href=&quot;http://www.danvega.org/blog/index.cfm/2008/3/21/ColdFusion-9-Scripting&quot;&gt;recent Dan Vega post about how to change cfscript&lt;/a&gt; I decided to revisit and post. &lt;/em&gt;&lt;/p&gt; &lt;h1&gt;Has Been&lt;/h1&gt; &lt;p&gt;I&apos;ve worked with ColdFusion since 1999 and in that time ColdFusion:&lt;/p&gt; &lt;ul&gt;     &lt;li&gt;has been proclaimed, or implied, dead multiple times (&lt;a href=&quot;http://www.computerworld.com/action/article.do?command=printArticleBasic&amp;amp;articleId=9020942&quot;&gt;Computerworld&lt;/a&gt;, &lt;a href=&quot;http://www.halhelms.com/index.cfm?fuseaction=newsletters.show&amp;amp;issue=10032002&quot;&gt;Hal Helms&lt;/a&gt;, &lt;a href=&quot;http://groups.google.com/group/macromedia.coldfusion.cfml_general_discussion/browse_thread/thread/54e3723fde1182fe/43a9013ccab5b158?lnk=st&amp;amp;q=coldfusion+dead#43a9013ccab5b158&quot;&gt;macromedia.coldfusion.cfml_general_discussion&lt;/a&gt;, et al. I&apos;m sure.).&lt;/li&gt;     &lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/ColdFusion#History&quot;&gt;rewritten from C++ to Java&lt;/a&gt;&lt;/li&gt;     &lt;li&gt;parent company was bought out twice - Allaire to Macromedia to Adobe&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;Each aquisition  produced hand wringing. I am certainly guilty of doubting its survival. &lt;a href=&quot;http://www.adrocknaphobia.com/post.cfm/i-lvld-up-cf-specialist-adobe-evangelist&quot;&gt;Even its own evangalist has noted ownership disregard as a red-headed step child&lt;/a&gt;. Yet it continues to chug along.&lt;/p&gt; &lt;p&gt;What has surprised me then is that the evolution includes players (&lt;a href=&quot;http://www.newatlanta.com/products/bluedragon/index.cfm&quot;&gt;Blue Dragon&lt;/a&gt;, &lt;a href=&quot;http://www.railo-technologies.com/en/index.cfm&quot;&gt;Railo&lt;/a&gt;, &lt;a href=&quot;http://www.smithproject.org/&quot;&gt;Smith&lt;/a&gt;) other than &lt;a href=&quot;http://www.smithproject.org/&quot;&gt;ColdFusion&apos;s &amp;quot;owner&amp;quot;&lt;/a&gt;. Of course that Adobe has posited &lt;a href=&quot;http://www.cfinsider.com/index.cfm/2007/11/10/Things-ColdFusion-is-not-and-Why-ColdFusion-isnt-free&quot;&gt;Coldfusion is NOT a language, but rather a platform&lt;/a&gt;. This argument of platform vs. language stikes me as semantic. After all what&apos;s a language without its libraries?&lt;/p&gt; &lt;p&gt;I think this is a lesson Java has learned very well. Putting aside the idea of a polyglot VM for a moment, Java has incorporated ideas from a number of projects that began outside of Sun, including &lt;a href=&quot;http://www.springframework.org/&quot;&gt;Spring&lt;/a&gt;, &lt;a href=&quot;http://www.hibernate.org/&quot;&gt;Hibernate&lt;/a&gt; and &lt;a href=&quot;http://stax.codehaus.org/&quot;&gt;StAX&lt;/a&gt; XML processing to name a few. As well as language concepts such as generics (&lt;a href=&quot;http://www.mindview.net/WebLog/log-0050&quot;&gt;badly perhaps&lt;/a&gt;), enumerated types and &lt;a href=&quot;http://www.javac.info/&quot;&gt;possibly closures in the future&lt;/a&gt;. All of which Sun, to its credit, has fostered via the &lt;a href=&quot;http://www.google.com/url?sa=t&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fjcp.org%2F&amp;amp;ei=6gyzR-qyCoL-gASV3_jcAw&amp;amp;usg=AFQjCNGrDOL-B1eHAIwUs7bJL8n2XpYjrg&amp;amp;sig2=QmG5bUh_8fUZYlNuG3Bu8Q&quot;&gt;Java Community Process&lt;/a&gt;.&lt;/p&gt; &lt;h1&gt;Err Is?&lt;/h1&gt; &lt;p&gt;This is not to say Coldfusion has not evolved as well; rather its survival oft times appears to be in spite of its master. I have always found it frustrating that each new Macromedia, now Adobe, initiative targets another language/platform. Want Live Cycle? Or, a back end for Flex? Take a look at Java. And, developers matter.&lt;/p&gt; &lt;p&gt;Lots have weighed in on how to find these elusive good programmers such as &lt;a href=&quot;http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html&quot;&gt;Spolsky&lt;/a&gt;, &lt;a href=&quot;http://steve.yegge.googlepages.com/five-essential-phone-screen-questions&quot;&gt;Yegge&lt;/a&gt; and &lt;a href=&quot;http://weblog.raganwald.com/2008/02/naive-approach-to-hiring-people.html&quot;&gt;Braithwaite&lt;/a&gt;.  In other words, it&apos;s always hard to find good help. And at least once a month I heard how much easier it is to find .NET, Java or something else programmers. So, what happens then if the people who could help you don&apos;t want to?&lt;/p&gt; &lt;h1&gt;Could Be&lt;/h1&gt; &lt;p&gt;Make Coldfusion a language programmers want to work with. Do this by giving them the C-like syntactical goodness that has ruled the day in the software engineering world for the past 20+ years. &lt;strong&gt;Make cfscript &lt;a href=&quot;http://www.google.com/url?sa=t&amp;amp;ct=res&amp;amp;cd=5&amp;amp;url=http%3A%2F%2Fwww.ecmascript.org%2F&amp;amp;ei=VxCzR-nTDY_AggSrwvDXAw&amp;amp;usg=AFQjCNEcdfcLx2WrOyGSHq5SiUEqzaL2KQ&amp;amp;sig2=8A4zBZbTBqH4knBLIwwXFA&quot;&gt;ECMAScript&lt;/a&gt; compliant. &lt;/strong&gt;&lt;a href=&quot;http://www.adobe.com/devnet/flash/articles/flex2_flash.html&quot;&gt;Flex is there&lt;/a&gt;. Some people believe the &lt;a href=&quot;http://www.google.com/url?sa=t&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fsteve-yegge.blogspot.com%2F2007%2F02%2Fnext-big-language.html&amp;amp;ei=bA6zR_7nJqTAggSqyojYAw&amp;amp;usg=AFQjCNH3FsK7BgFUORuy3ARCVyDuV_Rogw&amp;amp;sig2=r26aPkfcItDyGoBSjVUluQ&quot;&gt;Next Big Language&lt;/a&gt; will be such. So take the red-headed stepchild&apos;s runt of the litter and make it a worthwhile feature.&lt;/p&gt; &lt;p&gt;Make cfscript a full fledged language. Make it ActionScript. Make it Groovy. &lt;em&gt;&lt;strong&gt;Do something. &lt;/strong&gt;&lt;/em&gt;Create a Coldfusion paradigm that encourages the separation of presentation (i.e. CFML) and logic (cfscript) in a way that&apos;s approachable to the rest of the programming world.&lt;/p&gt; &lt;p&gt;In short, Coldfusion is approachable for greenhorns, and easy to dismiss for veterans. Making Coldfusion something that experienced programmers &lt;em&gt;want to use&lt;/em&gt; is the right next step. The &lt;a href=&quot;http://www.google.com/search?q=from+PHP+to+coldfusion&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=org.mozilla:en-US:official&amp;amp;client=firefox-a&quot;&gt;stories of people switching to Coldfusion from something else&lt;/a&gt; are few and far in between. And, that is the tide to change.&lt;/p&gt; &lt;h1&gt;Could Could Be&lt;/h1&gt; &lt;p&gt;So the &lt;a href=&quot;http://www.newatlanta.com/products/bluedragon/open_source/faq.cfm&quot;&gt;Blue Dragon is out the bag&lt;/a&gt;. &lt;a href=&quot;http://blog.newatlanta.com/index.cfm?mode=entry&amp;amp;entry=721992F3-B1B8-4975-8E3A1D3EB33AA435&quot;&gt;As New Atlant CEO Vince Bonifanti posted&lt;/a&gt;, I think the most important aspect of this decision is that the &amp;quot;free&amp;quot; rather than open. While &lt;a href=&quot;http://www.coldfusionweekly.com/index.cfm?event=showArchive#3-04&quot;&gt;some have pointed out that the real push for Blue Dragon is .NET&lt;/a&gt; that the J2EE version will be available for free opens up possibilities. Such as C-like syntax for cfscript.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Fri, 21 Mar 2008 17:40:00 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2008/03/21/Coldfusion-Open-Source--C-Syntax-for-cfscript</guid><category>Coldfusion,Suggestion</category></item><item><title>TDD Backlash</title><link>http://orangepips.instantspot.com/blog/2008/03/03/TDD-Backlash</link><description>&lt;p&gt;It&apos;s been said, &amp;quot;&lt;a href=&quot;http://www.bartleby.com/59/3/foolishconsi.html&quot;&gt;A foolish consistency is the hobgoblin of little minds&lt;/a&gt;.&amp;quot; And, in my experience TDD can easily slide into this fallacy. So it gladens me to see someone like C&amp;eacute;dric Beust, creator of the &lt;a href=&quot;http://testng.org/doc/&quot;&gt;TestNG unit testing framework&lt;/a&gt;, &lt;a href=&quot;http://beust.com/weblog/archives/000477.html&quot;&gt;call out the TDD zealots&lt;/a&gt;. In addition he also offers some heuristics that I think really capture the essence of how unit testing should be approached.&lt;/p&gt; &lt;p&gt;To wit, I tried introducting unit testing at my workplace and ran into this very problem. But, some background first:&lt;/p&gt; &lt;p&gt;The product I work on is closing in on a decade of development. And stuff that was almost 10 years ago, which is still around and used, has UI, database I/O and business logic all intertwined. Very much a &lt;a href=&quot;http://en.wikipedia.org/wiki/Model_1&quot;&gt;Model 1&lt;/a&gt; architecture. But, before you start ranting about bad design practices and MVC and so forth, know the product works, and makes money. And, it started out in Coldfusion 4. So objects were not an option and Fusebox was nascent at best.&lt;/p&gt; &lt;p&gt;With a codebase like this, you cannot just flip a switch and make it unit testable. Anyone who proclaims changes to said code must be unit testable is not living in reality. It&apos;s possible to &lt;a href=&quot;http://www.amazon.com/Working-Effectively-Legacy-Robert-Martin/dp/0131177052&quot;&gt;move in that direction&lt;/a&gt;, but if it took you years to create that codebase, don&apos;t expect it to take days, weeks or months to get to a unit testable state. These things are intertwined and must be broken apart carefully with planning and coordination with testing.&lt;/p&gt; &lt;p&gt;Programming is fundamentally just as much a social and technical problem. Attempting to impose a command and control structure on programmers == bad idea. But the appeal of implementing a &lt;em&gt;Good Idea&lt;/em&gt; as the &lt;em&gt;Only Idea&lt;/em&gt; can be overwhelming.&amp;nbsp; This was definitely the case for my environment, where instead of focusing on the notion of having good unit tests, TDD ruled the day and it became &lt;em&gt;you must have unit tests before you code&lt;/em&gt;.&lt;/p&gt; &lt;p&gt;This crashed and burned rather quickly as developers pushed back.&lt;/p&gt; &lt;p&gt;Now personally I write unit tests for my code that does not involve database I/O or UI. Where I find the configuring the dependencies, even through injection, outweigh the benefits of unit testing. But as a result, most code that I write separates these aspects out leaving everything else in a unit testable state.&lt;/p&gt; &lt;p&gt;What I do find is that sometimes unit tests makes maintenance easier. But, that sometimes if the change is large, I need to throw out the old tests. Maybe I write new tests or maybe I don&apos;t. It just depends on complexity and time. And, for TDD adherents I am sure this is probaby heresay.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Mon, 03 Mar 2008 19:17:00 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2008/03/03/TDD-Backlash</guid><category>Coldfusion,Unit Testing</category></item><item><title>cfindex:Unable to connect to the ColdFusion Search service</title><link>http://orangepips.instantspot.com/blog/2008/02/20/cfindexUnable-to-connect-to-the-ColdFusion-Search-service</link><description>&lt;p&gt;Problem I ran into recently where I knew the collection existed. Running Coldfusion 8 in multiserver configuration on a Windows machine that previously had Coldfusion 7 installed. Tried to use the cfindex tag to no avail.&lt;/p&gt; &lt;p&gt;Trial and error and &lt;a href=&quot;http://kb.adobe.com/selfservice/viewContent.do?externalId=kb400967&amp;amp;sliceId=1&quot;&gt;some reading here on Adobe&apos;s site&lt;/a&gt; led me to this:&lt;/p&gt; &lt;ol&gt;     &lt;li&gt;Uninstalled Coldfusion 7 Search Service still on the box&lt;/li&gt;     &lt;li&gt;Checked cfadmin to see what ports should be used 9951, 9921 &amp;amp; 9961&lt;/li&gt;     &lt;li&gt;Noted that k2index.exe and k2server.exe services were not running via &lt;a href=&quot;http://www.nirsoft.net/utils/cports.html&quot;&gt;cports&lt;/a&gt; (i.e. 9921 &amp;amp; 9961)&lt;/li&gt;     &lt;li&gt;ran &lt;font face=&quot;Courier New&quot;&gt;C:\JRun4\verity\verity-install.bat&lt;/font&gt; and noted the following errors:     &lt;ol&gt;         &lt;li&gt;&lt;font face=&quot;Courier New&quot;&gt;WARNING: The RCAdmin call failed. Command = styleset 1 &amp;quot;Def_FileSystem&amp;quot; 1 1&lt;strong&gt; &lt;/strong&gt;filesys &amp;quot;default File System style files&amp;quot; y exit&lt;/font&gt;&lt;/li&gt;         &lt;li&gt;&lt;font face=&quot;Courier New&quot;&gt;WARNING: The RCAdmin call failed. Command = styleset 1 &amp;quot;ColdFusionK2&amp;quot; 1 1 filesys &amp;quot;ColdFusion K2 Style Files&amp;quot; y exit&lt;/font&gt;&lt;/li&gt;         &lt;li&gt;&lt;font face=&quot;Courier New&quot;&gt;WARNING: The RCAdmin call failed. Command = styleset 1 &amp;quot;ColdFusionVspider&amp;quot; 1 1 filesys &amp;quot;ColdFusion Vspider Style Files&amp;quot; y exit&lt;/font&gt;&lt;/li&gt;         &lt;li&gt;&lt;font face=&quot;Courier New&quot;&gt;WARNING: The RCAdmin call failed. Command = serverset 1 &amp;quot;ColdFusionK2_server1&amp;quot; 9921 &amp;quot;ColdFusion K2Server&amp;quot; y y y ColdFusionK2 &amp;quot;C:\JRun4\verity\k2\common&amp;quot; 200 2 n 300000 900000 y exit&lt;/font&gt;&lt;/li&gt;         &lt;li&gt;&lt;font face=&quot;Courier New&quot;&gt;WARNING: The RCAdmin call failed. Command = indexerset 1 &amp;quot;ColdFusionK2_indexserver1&amp;quot; 9961 &amp;quot;ColdFusion K2 Index Server&amp;quot; ColdFusionK2 4 1 y exit&lt;/font&gt;&lt;/li&gt;     &lt;/ol&gt;     &lt;/li&gt;     &lt;li&gt;ran &lt;font face=&quot;Courier New&quot;&gt;C:\JRun4\verity\k2\_nti40\bin\rcadmin.exe&lt;/font&gt;     &lt;ol&gt;         &lt;li&gt;styledel Def_FileSystem&lt;/li&gt;         &lt;li&gt;styledel ColdfusionK2&lt;/li&gt;         &lt;li&gt;styledel ColdfusionVspider&lt;/li&gt;     &lt;/ol&gt;     &lt;/li&gt;     &lt;li&gt;ran &lt;font face=&quot;Courier New&quot;&gt;C:\JRun4\verity\verity-install.bat &lt;font face=&quot;Arial&quot;&gt;(still will get&lt;/font&gt; serverset &lt;font face=&quot;Arial&quot;&gt;and &lt;/font&gt;indexerset &lt;font face=&quot;Arial&quot;&gt;failure messages)&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;Works again.&lt;/p&gt; &lt;p&gt;Think the problem is either because (a) had Coldfusion 7 search service installed or (b) the admin.xml files inside the verity directory (subdirectory) had bad values in them and running styledel and subsequently the .bat file resolved it.&lt;/p&gt;</description><pubDate>Wed, 20 Feb 2008 17:58:00 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2008/02/20/cfindexUnable-to-connect-to-the-ColdFusion-Search-service</guid><category>Coldfusion,Verity</category></item><item><title>Code Snippet: Rolling Paged Navigation Control </title><link>http://orangepips.instantspot.com/blog/2008/02/15/Code-Snippet-Rolling-Paged-Navigation-Control-</link><pubDate>Fri, 15 Feb 2008 22:10:00 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2008/02/15/Code-Snippet-Rolling-Paged-Navigation-Control-</guid><category>Coldfusion,UI</category></item><item><title>cfflush Problem (and Solution) on CF8 with IIS </title><link>http://orangepips.instantspot.com/blog/2007/12/12/cfflush-Problem-and-Solution-on-CF8-with-IIS-</link><description>&lt;p&gt;  Posting for three reasons:   &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Googlers can confirm their suspicion that others are having the same problem.&lt;/li&gt;   &lt;li&gt;Provide a solution that, while perhaps inelegant, works. &lt;br /&gt;   &lt;/li&gt;   &lt;li&gt;Avoids all the &amp;quot;must be something other than Coldfusion&amp;#39;s fault&amp;quot; posts that seem to have accreted around the topic. &lt;/li&gt;  &lt;/ol&gt;  &lt;p&gt;  &lt;strong&gt;The Problem&lt;/strong&gt;   &lt;/p&gt;  &lt;p&gt;  &lt;em&gt;The problem exists in CF8 through Cumulative Hotfix 2.&lt;/em&gt;    &lt;/p&gt;  &lt;p&gt;  So yes, others are having the same problem, including posters to &lt;a href=&quot;http://sdc.shockwave.com/cfusion/webforums/forum/messageview.cfm?forumid=1&amp;amp;catid=7&amp;amp;threadid=1298529&amp;amp;enterthread=y&quot;&gt;Adobe&lt;/a&gt; and &lt;a href=&quot;http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:53167&quot;&gt;House of Fusion&lt;/a&gt;&amp;#39;s forums. The issue appears to only happen on a combination of CF8 and IIS. I have personally verified this on CF8 with IIS6 and &lt;a href=&quot;http://sdc.shockwave.com/cfusion/webforums/forum/messageview.cfm?forumid=1&amp;amp;catid=7&amp;amp;threadid=1298529&amp;amp;enterthread=y#4713079&quot;&gt;others have claimed the same problem on IIS7&lt;/a&gt;. This does not happen with Apache 2.2, which I have verified, and I have not tested it on other Apache versions.   &lt;/p&gt;  &lt;p&gt;  Why the problem happens is unclear. &lt;em&gt;Note, in the scenarios described it does not have to do with &lt;a href=&quot;http://www.bennadel.com/blog/862-Maybe-Building-The-View-Last-IS-The-Best-Way-To-Go.htm&quot;&gt;IIS compression&lt;/a&gt;&lt;/em&gt; (see the Dan G. Switzer&amp;#39;s comment). Multiple people have posted that &lt;a href=&quot;http://sdc.shockwave.com/cfusion/webforums/forum/messageview.cfm?forumid=1&amp;amp;catid=7&amp;amp;threadid=1298529&amp;amp;enterthread=y#4704732&quot;&gt;IIS has some sort of &lt;/a&gt;&lt;a href=&quot;http://sdc.shockwave.com/cfusion/webforums/forum/messageview.cfm?forumid=1&amp;amp;catid=7&amp;amp;threadid=1298529&amp;amp;enterthread=y#4704732&quot;&gt;minimum &lt;/a&gt;&lt;a href=&quot;http://sdc.shockwave.com/cfusion/webforums/forum/messageview.cfm?forumid=1&amp;amp;catid=7&amp;amp;threadid=1298529&amp;amp;enterthread=y#4704732&quot;&gt;buffer length before it will return content&lt;/a&gt; to the client (i.e. browser), albeit this does not manifest itself on CF7.   &lt;/p&gt;  &lt;p&gt;  Is it a bug? I&amp;#39;m sure I don&amp;#39;t know. Adobe has not acknowledged it as  such. But if you are here, chances are you are having a problem. So read on for a solution that works.&amp;nbsp;    &lt;/p&gt;  &lt;p&gt;  &lt;strong&gt;A Solution&lt;/strong&gt;   &lt;/p&gt;  &lt;p&gt;  The solution is outputting enough data before a cfflush call that it will cause CF8/IIS to send to the client. The problem is evident in situations using JavaScript or Flash where an image or DOM object is updated during a long running process (think progress bar UI convention)&lt;sup&gt;1&lt;/sup&gt;. With CF8 and IIS, depending on the amount of output before a call to  cfflush, the client may update only sporadically or only show the final output when the page request finishes.    &lt;/p&gt;  &lt;p&gt;  A way to do this is create a proxy custom tag (e.g. cf_flush) with the content as such:  &lt;/p&gt;  &lt;p&gt;  [codeshare dec49f28]&lt;br /&gt;  &lt;/p&gt;  &lt;p&gt;  The 73729 value is one from the Adobe forum discovered by a poster there as the minimum data length needed to send to the client.   &lt;/p&gt;  &lt;p&gt;  Yes this could be more sophisticated, doing things such as testing on the Coldfusion version and Web Server, but making the assumption that if you made it this far you can figure that out for yourself if you need it.   &lt;/p&gt;  &lt;p&gt;  &lt;sup&gt;1&lt;/sup&gt; Yes use you could use AJAX, instead of flushing, and avoid the problem altogether.   &lt;/p&gt;  </description><pubDate>Wed, 12 Dec 2007 13:39:02 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2007/12/12/cfflush-Problem-and-Solution-on-CF8-with-IIS-</guid><category>Coldfusion</category></item><item><title>Coldfusion and UUIDs </title><link>http://orangepips.instantspot.com/blog/2007/11/12/Coldfusion-and-UUIDs-</link><description>&lt;p&gt;  Addressing some common questions and issues seen with UUIDs and Coldfusion.    &lt;/p&gt;  &lt;p&gt;  Through version 7, the Coldfusion UUID implementation, createUUID(), is slow. So here are some alternatives depending on JVM version. &lt;br /&gt;  &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;1.5+&lt;/strong&gt;: look at &lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/java/util/UUID.html&quot;&gt;java.util.UUID&lt;/a&gt;. &lt;br /&gt;   &lt;/li&gt;   &lt;li&gt;&lt;strong&gt;1.4 &amp;amp; earlier&lt;/strong&gt;: see the Java Uuid   Generator (JUG) that the 1.5 implementation is based upon (&lt;a href=&quot;http://jug.safehaus.org/&quot; target=&quot;_blank&quot;&gt;http://jug.safehaus.org/&lt;/a&gt;)&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;  Even if UUID generation performance is not an issue you may still want to use something other than Coldfusion&amp;#39;s implementation: see the &lt;strong&gt;Security&lt;/strong&gt; heading below.  &lt;/p&gt;  &lt;p&gt;  &lt;strong&gt;Unique != Random&lt;/strong&gt;  &lt;/p&gt;  &lt;p&gt;  The &lt;a href=&quot;http://en.wikipedia.org/wiki/UUID&quot;&gt;Version 1 UUID algorithm&lt;/a&gt; used by Coldfusion virtually guarantees a globally unique value. In other words a call to createUUID() will generate a value different than any other computer in existence. And, the design ensures that repeated calls will generate a new, globally unique value each time.   &lt;/p&gt;  &lt;p&gt;  However, to achieve this end the Version 1 UUID algorithm relies upon the time and MAC address of the computer generating the value. This means that a given UUID value can be reverse engineered to determine the MAC address and timestamp of the generator. In addition, a UUID can be generated to appear as if it came from the computer in question as well, given its MAC address.  &lt;/p&gt;  &lt;p&gt;  As a result the value is predictable, i.e. not random, and may present a security problem.   &lt;/p&gt;  &lt;p&gt;  &lt;strong&gt;Security&lt;/strong&gt;  &lt;/p&gt;  &lt;p&gt;  One proposed solution for making UUIDs secure is using an MD5 hash of the value. This is probably not a good solution because &lt;a href=&quot;http://en.wikipedia.org/wiki/Rainbow_table&quot;&gt;rainbow table&lt;/a&gt; attacks have made breaking this technique relatively cheap and straightforward. Instead, the Java options above both offer static methods that generate a random UUID value, not tied to the computer&amp;#39;s timestamp and MAC address.   &lt;/p&gt;  &lt;p&gt;  However, randomness creates a potential collision problem because the possibility exists that multiple calls may generate a duplicate value. For throwaway values, this may not be much of an issue, but for use with database primary keys it requires extra care to deal with dupes.     &lt;/p&gt;  &lt;p&gt;  &lt;strong&gt;Database Primary Key for Replication&lt;/strong&gt;  &lt;/p&gt;  &lt;p&gt;  Replication is a problem when dealing large volumes of database records. The problem arises when copying a subset of records from a source to target system. Often key conflicts arise. UUIDs are a viable solution.    &lt;/p&gt;  &lt;p&gt;  Auto-incrementing primary keys are a problem in this scenario because the target server may have already assigned the IDs. And, attempting to insert copied records  may also violate foreign key constraints, particularly if data is  coming from more than one table. So, UUIDs (at least version 1 UUIDs) as database primary keys guarantee records will not conflict when replicated.     &lt;/p&gt;  </description><pubDate>Mon, 12 Nov 2007 13:57:53 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2007/11/12/Coldfusion-and-UUIDs-</guid><category>Coldfusion</category></item><item><title>XML StAX Processing with Coldfusion</title><link>http://orangepips.instantspot.com/blog/2007/03/28/XML-StAX-Processing-with-Coldfusion</link><description>&lt;p&gt;Several problems with Coldfusion XML processing and solution set:&lt;/p&gt; &lt;ol&gt;     &lt;li&gt;&lt;strong&gt;Slow&lt;/strong&gt;: due to DOM processor (&lt;a href=&quot;http://xerces.apache.org/&quot;&gt;Xerces&lt;/a&gt;)&lt;/li&gt;     &lt;li&gt;&lt;strong&gt;Inconsistent Round-Tripping&lt;/strong&gt; (i.e.  serialization / deserialization) :     &lt;ol&gt;         &lt;li&gt;(un-) escaping characters&lt;/li&gt;         &lt;li&gt;non-printable characters&lt;/li&gt;         &lt;li&gt;missing / multiple XML declaration(s)&lt;/li&gt;         &lt;li&gt;character set problems&lt;/li&gt;         &lt;li&gt;et al.&lt;/li&gt;     &lt;/ol&gt;     &lt;/li&gt;     &lt;li&gt;&lt;strong&gt;Kludgy Tree API&lt;/strong&gt; yes you can use structure and  array functions, just don&apos;t like it.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;Note, don&apos;t see this as a flame on Adobe/Macromedia. The Coldfusion XML implementation uses best available technology at the time and APIs that fit in with the language paradigm. Just have better options now.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Slow Solution&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://woodstox.codehaus.org/&quot;&gt;Woodstox&lt;/a&gt;&lt;/strong&gt;: &lt;a title=&quot;CFDJ: Advanced XML Processing with StAX in ColdFusion&quot; href=&quot;http://coldfusion.sys-con.com/read/236002.htm&quot;&gt;Jim Collins wrote a CFDJ article about using a StAX XML processor with Coldfusion&lt;/a&gt;. Unfortunately, as near as I can tell, his &lt;a href=&quot;http://sourceforge.net/projects/cfsynergy&quot;&gt;open source project to integrate Coldfusion with Woodstox&lt;/a&gt; was never released. &lt;a title=&quot;SUN: Streaming APIs for XML Parsers&quot; href=&quot;http://java.sun.com/performance/reference/whitepapers/StAX-1_0.pdf&quot;&gt;Testing demonstrates&lt;/a&gt; a StAX processor, such as Woodstox, provides very efficient (read: fast) XML processing, and a more intuitive API, than a SAX processor. But still not intuitive enough for me. So enter...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Round-Tripping &amp;amp; API Solutions&lt;br /&gt; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a title=&quot;XML object model&quot; href=&quot;http://www.xom.nu/&quot;&gt;XOM&lt;/a&gt;&lt;/strong&gt; provides a very easy to use API that roundtrips XML like a champ. Correct I/O is XOM&apos;s middle name. But it doesn&apos;t integrate natively with a StAX processor unless you use...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://dsd.lbl.gov/nux/&quot;&gt;NUX&lt;/a&gt; &lt;/strong&gt;is like a Swiss Army knife for XML. But the purpose of this entry just know it&apos;s the glue between XOM and Woodstox (&lt;em&gt;note that NUX includes the XOM jar so you do not need to download it separately&lt;/em&gt;).&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Download the Woodstox and NUX jars and configure them in your Coldfusion classpath. The examples below build upon each other.&lt;/p&gt; &lt;p&gt;&lt;u&gt;Setup&lt;/u&gt;&lt;/p&gt; &lt;p&gt;Creates a &lt;a href=&quot;http://www.xom.nu/apidocs/nu/xom/Builder.html&quot;&gt;XOM Builder object&lt;/a&gt; backed by a StAX processor.&lt;font face=&quot;courier new,courier&quot;&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;courier new,courier&quot;&gt;inputFactory = createObject(&amp;quot;java&amp;quot;, &amp;quot;com.ctc.wstx.stax.WstxInputFactory&amp;quot;).init()&lt;br /&gt; builder = createObject(&amp;quot;java&amp;quot;, &amp;quot;nux.xom.io.StaxUtil&amp;quot;).createBuilder(local.joInputFactory, javacast(&amp;quot;null&amp;quot;, &amp;quot;&amp;quot;)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;u&gt;XMLParse() Alternative&lt;/u&gt;&lt;/p&gt; &lt;p&gt;Returns a &lt;a href=&quot;http://www.xom.nu/apidocs/nu/xom/Document.html&quot;&gt;XOM Document object&lt;/a&gt;. Note: provide &lt;em&gt;XMLString &lt;/em&gt;variable.&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;courier new,courier&quot;&gt;document = builder.create(XMLString)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;u&gt;XMLSearch() Alternative&lt;/u&gt;&lt;/p&gt; &lt;p&gt;Returns a &lt;a href=&quot;http://www.xom.nu/apidocs/nu/xom/Nodes.html&quot;&gt;XOM Nodes object&lt;/a&gt; (i.e. an iterator of Node objects). Note: provide &lt;em&gt;XQueryString&lt;/em&gt; variable.&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;courier new,courier&quot;&gt;nodes = createObject(&amp;quot;java&amp;quot;, &amp;quot;nux.com.xquery.XQueryUtil&amp;quot;).xquery(document, XQueryString)&lt;br /&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;courier new,courier&quot;&gt;loop from=&amp;quot;0&amp;quot; to=&amp;quot;#nodes.size() - 1#&amp;quot; index=&amp;quot;idx&amp;quot; &lt;br /&gt; element = nodes.get(javacast(&amp;quot;int&amp;quot;, idx)) &lt;br /&gt; attributeValue = element.getAttribute(&amp;quot;attributeName&amp;quot;).getValue() &lt;br /&gt; attributeText = element.getValue &lt;br /&gt; /loop &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;u&gt;ToString() Alternative&lt;/u&gt;&lt;/p&gt; &lt;p&gt;Creates a string representation of the XML.&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;courier new,courier&quot;&gt;XMLString = document.toXML()&lt;/font&gt;&lt;/p&gt;</description><pubDate>Wed, 28 Mar 2007 15:04:00 GMT</pubDate><guid>http://orangepips.instantspot.com/blog/2007/03/28/XML-StAX-Processing-with-Coldfusion</guid><category>XML,Coldfusion</category></item></channel></rss>