<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; 2008 by orangepips</copyright><generator>RSSVille ColdFusion FeedMaker, version 1.0</generator><pubDate>Thu, 28 Aug 2008 17:33:37 GMT</pubDate><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>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>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>