<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>JR-Holmes - ColdFusion</title>
			<link>http://www.bifrost.com.au/blog/index.cfm</link>
			<description>Yet Another CF Developer</description>
			<language>en-us</language>
			<pubDate>Tue, 07 Sep 2010 17:15:07 -0700</pubDate>
			<lastBuildDate>Thu, 01 Nov 2007 19:16:00 -0700</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>james.holmes@gmail.com</managingEditor>
			<webMaster>james.holmes@gmail.com</webMaster>
			
			
			
			
			
			<item>
				<title>Notes on the Fusion Authority Quarterly Update FLEX/AIR articles</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2007/11/1/Notes-on-the-Fusion-Authority-Quarterly-Update-FLEXAIR-articles</link>
				<description>
				
				The last &lt;a href=&quot;http://www.fusionauthority.com/quarterly/&quot;&gt;Fusion Authority Quarterly Update&lt;/a&gt; focussed on User Interfaces and related topics, including an article on AIR by yours truly and some other Flex/AIR articles.

As it turns out, Adobe were nice enough to release AIR beta 2 and Flex Builder 3 Beta 2 at just about the same time the Journal came out, so some of our articles are now out of date.  Such is life in the fast moving world of software development.

Anyway, the basics are still the same, but AIR apps now need to be signed and there are some other minor changes that are all detailed in the docs on Adobe labs; the FAQ-U 4 articles are still well worth reading. Anyone with questions on the differences for my article is welcome to comment here or send me an email (james.holmes at gmail dot com).
				
				</description>
						
				
				<category>AIR</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 01 Nov 2007 19:16:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2007/11/1/Notes-on-the-Fusion-Authority-Quarterly-Update-FLEXAIR-articles</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Coldfusion server restarts after a few days? Here&apos;s a possible solution.</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2007/9/25/Coldfusion-server-restarts-after-a-few-days-Heres-a-possible-solution</link>
				<description>
				
				After experiencing a random cf7 restart recently, I dug around and found this in the log:

&lt;code&gt;Exception java.lang.OutOfMemoryError: requested 1024000 bytes for GrET* in /export1/jdk142-update/ws/fcs/hotspot/src/share/vm/utilities/growableArray.cpp. Out of swap space?
autorestart: Restarting process&lt;/code&gt;

I found some bug reports on Sun&apos;s site, with the usual buck-passing and claims regarding non-reproducibility, with no solid resolution; then I found Steven Erat&apos;s blog on the subject:

&lt;a href=&quot;http://www.talkingtree.com/blog/index.cfm/2006/4/28/Understanding-HotSpot-in-Plain-English&quot;&gt;http://www.talkingtree.com/blog/index.cfm/2006/4/28/Understanding-HotSpot-in-Plain-English&lt;/a&gt;

Now it all makes sense. After a few days, the hotspot engine is compiling to native code instead of bytecode and has an issue. It fails bad enough that restarting the JVM is necessary.

Now to a question - has anyone seen this with CF8, running Java 6? The Sun bug reports all show 1.4 and 1.5 versions with issues, but I haven&apos;t seen it on 6.
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Tue, 25 Sep 2007 19:34:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2007/9/25/Coldfusion-server-restarts-after-a-few-days-Heres-a-possible-solution</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>New cumulative Coldfusion hotfix includes a backported fix from CF8</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2007/9/19/New-cumulative-Coldfusion-hotfix-includes-a-backported-fix-from-CF8</link>
				<description>
				
				People will probably be aware that CF7.02 cumulative hotfix 3 is now available:

&lt;a href=&quot;http://kb.adobe.com/selfservice/viewContent.do?externalId=kb402465&quot;&gt;http://kb.adobe.com/selfservice/viewContent.do?externalId=kb402465&lt;/a&gt;

One of the items fixed is a personal favourite and it&apos;s been broken for ages:

67753; Disabling connections for a datasource in the cfadmin or using AdminAPI has no effect

This was first fixed in CF8. Thankfully it&apos;s been reworked for CF7 too - thanks Adobe. This was causing us all sorts of issues when we needed to to DB maintenance.
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 19 Sep 2007 19:49:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2007/9/19/New-cumulative-Coldfusion-hotfix-includes-a-backported-fix-from-CF8</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>PHP on JRun Update - hacked and working</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2007/6/10/PHP-on-JRun-Update--hacked-and-working</link>
				<description>
				
				For anyone still interested, with minor hacking I now have PHP apps running on JRun next to CF. Two things needed hacking so far:

1) The class that deals with the $_SERVER variable, com.caucho.quercus.env.ServerArrayValue, called a method not supported on JRun (see the related entry for details). I just got rid of that call.

2) On my server, for some reason, com.caucho.util.RandomUtil fails when seeding SecureRandom() with System.currentTimeMillis() (the value isn&apos;t long enough). I just commented out the seeding part as SecureRandom sets itself up properly without it (according to the Java 6 docs anyway).

Now I have DokuWiki working fine and as soon as I can get a DB into play I can get phpBB working as well.
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Sun, 10 Jun 2007 19:24:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2007/6/10/PHP-on-JRun-Update--hacked-and-working</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>New mxAjax screencast - mxData</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2007/6/7/New-mxAjax-screencast--mxData</link>
				<description>
				
				Arjun has added a screencast dealing with the mxAjax mxData tag:

&lt;a href=&quot;http://www.techscreencast.com/screencast/mxajax_mxdata/mxajax_mxdata.html&quot;&gt;http://www.techscreencast.com/screencast/mxajax_mxdata/mxajax_mxdata.html&lt;/a&gt;
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>AJAX</category>				
				
				<pubDate>Thu, 07 Jun 2007 23:39:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2007/6/7/New-mxAjax-screencast--mxData</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>PHP on JRun doesn&apos;t work just yet</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2007/6/7/PHP-on-JRun-doesnt-work-just-yet</link>
				<description>
				
				A number of us have been following &lt;a href=&quot;http://scripting.riaforge.org/&quot;&gt;Sean Corfield&apos;s JSR-223 experiments&lt;/a&gt; with interest. The PHP flavour relies on &lt;a href=&quot;http://quercus.caucho.com/&quot;&gt;Quercus&lt;/a&gt;, part of the Resin J2EE app server.

For some fun, I deployed Quercus next to CF 8 on the Multiserver install. As it turns out, this won&apos;t work with Quercus in its current form as JRun implements an older Servlet Spec (version 2.3). Quercus uses ServletRequest.getRemotePort(), which is part of the 2.4 version of the spec; this is the error that occurs with apps like phpBB and DocuWiki (and anything else that uses $_SERVER):

error javax.servlet.http.HttpServletRequest.getRemotePort()I
[1]java.lang.NoSuchMethodError

Of course, Quercus could be rewritten for JRun to get around this.
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 07 Jun 2007 23:19:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2007/6/7/PHP-on-JRun-doesnt-work-just-yet</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>mxAjax - closing a DomInclude from within the popup window</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2007/6/7/mxAjax--closing-a-DomInclude-from-within-the-popup-window</link>
				<description>
				
				The mxAjax DomInclude (&lt;a href=&quot;http://www.indiankey.com/mxajax/examples/mxDomInclude1.cfm&quot;&gt;http://www.indiankey.com/mxajax/examples/mxDomInclude1.cfm&lt;/a&gt;) automatically provides a way to close the popup content (by clicking the link used to open it). However you might wish to have a link inside the popup that closes the DomInclude.

When you create the DomInclude, keep the created object:

&lt;code&gt;function init() {
  myDomInclude = new mxAjax.DomInclude( {source:&quot;testlink&quot;});
}

addOnLoadEvent(function() {init();});&lt;/code&gt;

Then in your included content, refer to the object you just created:

&lt;code&gt;&lt;a href=&quot;#&quot; onclick=&quot;parent.myDomInclude.killPopup(&apos;external&apos;);&quot;&gt;close&lt;/a&gt;&lt;/code&gt;
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>AJAX</category>				
				
				<pubDate>Thu, 07 Jun 2007 18:19:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2007/6/7/mxAjax--closing-a-DomInclude-from-within-the-popup-window</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>mxAjax installation screencast</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2007/6/3/mxAjax-installation-screencast</link>
				<description>
				
				Arjun has created a screencast dealing with mxAjax installation:

&lt;a href=&quot;http://www.techscreencast.com/screencast/mxajaxinstallation/mxajaxinstallation.html&quot;&gt;http://www.techscreencast.com/screencast/mxajaxinstallation/mxajaxinstallation.html&lt;/a&gt;

mxAjax is a ColdFusion AJAX tookit providing everything necessary to use AJAX on ColdFusion. It&apos;s based on Scriptaculous/Prototype and uses JSON as the data transport.
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>AJAX</category>				
				
				<pubDate>Sun, 03 Jun 2007 21:57:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2007/6/3/mxAjax-installation-screencast</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Getting BlogCFC to work on BlueDragon</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2007/4/6/Getting-BlogCFC-to-work-on-BlueDragon</link>
				<description>
				
				If you use CAPTCHA on your BlueDragon 6.2 based install of BlogCFC, you will probably have an issue with the LylaCaptcha code. The fix is detailed here:

&lt;a href=&quot;http://ray.camdenfamily.com/forums/messages.cfm?threadid=9021AD4F-CDBB-773C-50E1F0EB6364795F&quot;&gt;http://ray.camdenfamily.com/forums/messages.cfm?threadid=9021AD4F-CDBB-773C-50E1F0EB6364795F&lt;/a&gt;

I modified captchaService.cfc at around line 265 to read:

&lt;code&gt;&lt;!--- Compute the next character lef tposition ---&gt;
&lt;cfset aCharacter = CreateObject(&quot;Java&quot;,&quot;java.lang.Character&quot;)&gt;
            &lt;cfset left = left + ((RandRange(150, 200) / 100) * graphics.getFontMetrics().charWidth(JavaCast(&quot;int&quot;,aCharacter.getNumericValue(char)))) /&gt;&lt;/code&gt;

CF7 seems to handle the different methods for getFontMetrics().charWidth() but BlueDragon 6.2 can&apos;t without some help.

UPDATE: added BD version info; this bug should be fixed in BD 7.0.
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 06 Apr 2007 20:01:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2007/4/6/Getting-BlogCFC-to-work-on-BlueDragon</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Become the hunted...</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2006/10/25/Become-the-hunted</link>
				<description>
				
				&lt;p&gt;This blog was just added to &lt;a href=&quot;http://www.cfhunt.com/&quot; title=&quot;Go to CFHunt&quot;&gt;CFHunt&lt;/a&gt;. I recommend you add yours too, and let Joshua know about any other sites that should be added.&lt;/p&gt;&lt;p&gt;Here&amp;#39;s more info on &lt;a href=&quot;http://www.usefulconcept.com/index.cfm/2006/10/24/CFHunt--coldfusion-search-engine&quot; title=&quot;CFHunt Info&quot;&gt;CFHunt&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 25 Oct 2006 21:17:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2006/10/25/Become-the-hunted</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Changed CGI.REQUEST_URI behaviour with CF7/Apache - A Solution</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2006/10/18/Changed-CGIREQUESTURI-behaviour-with-CF7Apache--A-Solution</link>
				<description>
				
				&lt;p&gt;Those who have upgraded their Apache 2 CF servers to CF7 may have noticed that CGI.REQUEST_URI no longer contains the original request URL and query string when Apache does a 404 redirect to a CF page. For example, we just found this the hard way. In 6.1, the var would contain the original URL and the query string - it now contains the 404&amp;#39;s URL and no query string info.&lt;br /&gt;&lt;br /&gt;Well, there are other CGI vars available that do the trick: CGI.REDIRECT_URL and CGI.REDIRECT_QUERY_STRING. These contain all the original info on the request so you can get back to the way things worked before the upgrade.&lt;/p&gt;&lt;p&gt;http://httpd.apache.org/docs/2.0/custom-error.html&lt;/p&gt;
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>Apache</category>				
				
				<pubDate>Wed, 18 Oct 2006 22:09:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2006/10/18/Changed-CGIREQUESTURI-behaviour-with-CF7Apache--A-Solution</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>MXAJAX - mxData tag basics</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2006/9/29/MXAJAX--mxData-tag-basics</link>
				<description>
				
				&lt;p&gt;The &lt;a href=&quot;http://www.indiankey.com/mxajax/&quot; target=&quot;_blank&quot; title=&quot;The mxajax framework&quot;&gt;MXAJAX &lt;/a&gt;mxData tag is for those using MXAJAX who want complete control over the data (for integration with their own JS controls etc). The tag calls a CFC method or CF function (depending on your setup) and returns JSON corresponding to the CF return type.&amp;nbsp; In a future post I&amp;#39;ll discuss each return type, but for now I&amp;#39;m going to demonstrate how to get at the info as the &lt;a href=&quot;http://www.indiankey.com/mxajax/examples/mxData1.cfm&quot; target=&quot;_blank&quot; title=&quot;mxData example 1&quot;&gt;online example&lt;/a&gt; doesn&amp;#39;t make it clear.&lt;/p&gt;&lt;p&gt;To parse JSON I recommend using the parser (strangely enough) rather that just evaluating it. It&amp;#39;s all packaged with MXAJAX, so you can just go ahead in include it in your page.&amp;nbsp; Once it&amp;#39;s been parsed, you can do with it what you want; the example below (a slightly modified version of the official mxData 1 example) writes the return into a span:&lt;/p&gt;&lt;p&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Returning Data from CF page&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type=&amp;#39;text/javascript&amp;#39; src=&amp;#39;../core/js/prototype.js&amp;#39;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type=&amp;#39;text/javascript&amp;#39; src=&amp;#39;../core/js/mxAjax.js&amp;#39;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type=&amp;#39;text/javascript&amp;#39; src=&amp;#39;../core/js/mxData.js&amp;#39;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script type=&amp;#39;text/javascript&amp;#39; src=&amp;#39;../core/js/json.js&amp;#39;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var url = &amp;quot;&amp;lt;cfoutput&amp;gt;#ajaxUrl#&amp;lt;/cfoutput&amp;gt;&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; function init() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new mxAjax.Data({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; executeOnLoad:true,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; paramArgs: new mxAjax.Param(url,{param:&amp;quot;id=1&amp;quot;, cffunction:&amp;quot;getContent&amp;quot;}),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; postFunction: handleData&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; function handleData(response) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var myHTMLOutput = JSON.parse(response);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById(&amp;quot;myTargetSpan&amp;quot;).innerHTML = myHTMLOutput;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; addOnLoadEvent(function() {init();});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/head&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h1&amp;gt;Returning Data from CF page&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;span id=&amp;quot;myTargetSpan&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt; &lt;/p&gt;&lt;p&gt;The next post will be a more complicated example, doing something with a CF query. &lt;br /&gt;&lt;/p&gt;
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<category>AJAX</category>				
				
				<pubDate>Fri, 29 Sep 2006 05:20:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2006/9/29/MXAJAX--mxData-tag-basics</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Generating Barcodes with Barbecue and Coldfusion</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2006/8/24/Generating-Barcodes-with-Barbecue-and-Coldfusion</link>
				<description>
				
				&lt;p&gt;If you need to generate a barcode within your web app, you have a few options. To keep it completely server-side (i.e. not dependent on the client&amp;#39;s fonts etc) one option is the open-source java package &lt;a href=&quot;http://barbecue.sourceforge.net/&quot; target=&quot;_blank&quot; title=&quot;Barbecue site&quot;&gt;Barbecue&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;This is a graphics solution, so the server needs to properly support graphics. Windows servers will be fine; *nix servers may be fine and they may not. Some help with graphics on *nix:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.macromedia.com/support/flex/ts/documents/java_awt_headless.htm&quot;&gt;http://www.macromedia.com/support/flex/ts/documents/java_awt_headless.htm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.doughughes.net/index.cfm/page-blogLink/entryId-29&quot;&gt;http://www.doughughes.net/index.cfm/page-blogLink/entryId-29&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;(Thanks &lt;a href=&quot;http://www.olimpo.ch/tmt/&quot; target=&quot;_blank&quot;&gt;Massimo&lt;/a&gt; for putting the links in one place)&lt;/p&gt;&lt;p&gt;Now that&amp;#39;s out of the way, onto Barbecue itself. If you have a servlet container you can use the servlet supplied with Barbecue. CF Enterprise will suffice, as will anything like Tomcat or a J2EE server if you want. However, you may not want to have a servlet that any old muggins can call, generating random barcodes at will. It is for this purpose I wrote a simple java wrapper:&lt;/p&gt; &lt;pre&gt;package net.sourceforge.barbecue;&lt;br /&gt;&lt;br /&gt;import java.io.ByteArrayOutputStream;&lt;br /&gt;import java.io.FileOutputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;&lt;br /&gt;import net.sourceforge.barbecue.env.EnvironmentFactory;&lt;br /&gt;import net.sourceforge.barbecue.linear.code39.Code39Barcode;&lt;br /&gt;&lt;br /&gt;public class BarcodeCF {&lt;br /&gt;	&lt;br /&gt;	public void main() {};&lt;br /&gt;	&lt;br /&gt;	public ByteArrayOutputStream getCFBarcode (String data) {&lt;br /&gt;		Barcode barcode = null;&lt;br /&gt;		ByteArrayOutputStream bos = new ByteArrayOutputStream();&lt;br /&gt;        try {&lt;br /&gt;        	EnvironmentFactory.setDefaultMode();&lt;br /&gt;            barcode = new Code39Barcode(data, false, true);&lt;br /&gt;            barcode.setBarWidth(2);&lt;br /&gt;            barcode.setDrawingText(true);&lt;br /&gt;        } catch (BarcodeException e) {&lt;br /&gt;            // Error handling&lt;br /&gt;        	throw new RuntimeException(e);&lt;br /&gt;        }&lt;br /&gt;        try {&lt;br /&gt;            // Let the barcode image handler do the hard work&lt;br /&gt;            BarcodeImageHandler.outputBarcodeAsJPEGImage(barcode, bos);&lt;br /&gt;        } catch (IOException e) {&lt;br /&gt;            // Error handling here&lt;br /&gt;        	throw new RuntimeException(e);&lt;br /&gt;        }&lt;br /&gt;      return bos;&lt;br /&gt;      }&lt;br /&gt;	&lt;br /&gt;	public void writeBarcode(String data, String filePath) {&lt;br /&gt;		// TODO Auto-generated method stub&lt;br /&gt;      ByteArrayOutputStream whatever =  new BarcodeCF().getCFBarcode(data);&lt;br /&gt;      try {&lt;br /&gt;        FileOutputStream fos = new FileOutputStream(filePath);&lt;br /&gt;        whatever.writeTo(fos);&lt;br /&gt;        fos.close();&lt;br /&gt;      }&lt;br /&gt;      catch (IOException e) {&lt;br /&gt;          // Error handling here&lt;br /&gt;    	  throw new RuntimeException(e);&lt;br /&gt;      }&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt; &lt;/pre&gt; &lt;p&gt;You may want to change the kind of barcode you create; this example uses the Code39Barcode class.&lt;/p&gt;&lt;p&gt;Calling it is simple. If we&amp;#39;ve used createobject or some other method of getting an instance of net.sourceforge.barbecue.BarcodeCF called BarcodeCF:&lt;/p&gt;&lt;p&gt;&amp;lt;cfset BarcodeCF.writeBarcode(&amp;quot;Barcode Text Here&amp;quot;,&amp;quot;/barcode/location/here.jpg&amp;quot;)&amp;gt;&lt;/p&gt;&lt;p&gt;The BarcodeCF class will write the image file to the desired location. &lt;/p&gt;&lt;p&gt;Somebody who&amp;#39;s paying attention will be thinking, well why not just write the CF equivalent of that Java. Yes, you can if you have access to get the Barbecue jar into the classpath on the machine, but this gives you a class you can use with a dynamic classloader, like &lt;a href=&quot;http://www.spike.org.uk/blog/index.cfm?do=blog.entry&amp;amp;entry=B49509DF-D565-E33F-31C9E574EA1591EE&quot; title=&quot;URL Classloader example&quot;&gt;Spikes method&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 24 Aug 2006 11:19:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2006/8/24/Generating-Barcodes-with-Barbecue-and-Coldfusion</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>ColdFusion Community Consensus page layout drafts</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2006/7/28/ColdFusion-Community-Consensus-page-layout-drafts</link>
				<description>
				
				&lt;p&gt;First drafts of the ColdFusion Community Consensus pages are now available for comment:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;../../c3/&quot; target=&quot;_blank&quot; title=&quot;Main Page Layout&quot;&gt;www.bifrost.com.au/c3/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;../../c3/topic.cfm&quot; target=&quot;_blank&quot; title=&quot;Topic Page Layout&quot;&gt;www.bifrost.com.au/c3/topic.cfm&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
				
				</description>
						
				
				<category>C3</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 28 Jul 2006 11:30:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2006/7/28/ColdFusion-Community-Consensus-page-layout-drafts</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>The CF Best Solutions Comparison App</title>
				<link>http://www.bifrost.com.au/blog/index.cfm/2006/7/14/The-CF-Best-Solutions-Comparison-App</link>
				<description>
				
				&lt;p&gt;On CF-Talk, the idea of an application that allows people to rate solutions to CF-Related problems came up. For example, which framework is best, which forum app, which webserver etc. User comments and a star rating based on votes were put forward as features.  Here&amp;#39;s the CF-Talk thread:  &lt;a href=&quot;http://www.houseoffusion.com/cf_lists/messages.cfm/forumid:4/threadid:46751&quot; target=&quot;_blank&quot; title=&quot;CF-Talk at House Of Fusion&quot;&gt;http://www.houseoffusion.com/cf_lists/messages.cfm/forumid:4/threadid:46751&lt;/a&gt;  &lt;/p&gt;&lt;p&gt;If you have a requirement for this app, comment here or post in the forum:  &lt;a href=&quot;../../forums/messages.cfm?threadid=67DC9508-DBFF-39AD-4B0EDD65F06970FD&quot;&gt;http://www.bifrost.com.au/forums/messages.cfm?threadid=67DC9508-DBFF-39AD-4B0EDD65F06970FD&lt;/a&gt;&lt;/p&gt;
				
				</description>
						
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 14 Jul 2006 00:00:00 -0700</pubDate>
				<guid>http://www.bifrost.com.au/blog/index.cfm/2006/7/14/The-CF-Best-Solutions-Comparison-App</guid>
				
			</item>
			
		 	
			</channel></rss>