<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>madfellas</title>
			<link>http://www.madfellas.com/blog/index.cfm</link>
			<description></description>
			<language>en-us</language>
			<pubDate>Wed, 08 Sep 2010 18:30:36 -0700</pubDate>
			<lastBuildDate>Thu, 19 Aug 2010 02:05:00 -0700</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>justin.w.carter@gmail.com</managingEditor>
			<webMaster>justin.w.carter@gmail.com</webMaster>
			
			<item>
				<title>My Current Desktop</title>
				<link>http://www.madfellas.com/blog/index.cfm/2010/8/19/My-Current-Desktop</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;&lt;a href=&quot;http://www.andyjarrett.co.uk/blog/index.cfm/2010/8/18/My-desktop&quot;&gt;Andy Jarrett&lt;/a&gt; and &lt;a href=&quot;http://www.markdrew.co.uk/blog/post.cfm/my-desktop&quot;&gt;Mark Drew&lt;/a&gt; both showed us what their desktops look like so I thought I&apos;d join in on the fun. This month I&apos;ve been sporting a &lt;a href=&quot;http://en.wikipedia.org/wiki/Monkey_Island_(series)&quot;&gt;Monkey Island&lt;/a&gt; desktop wallpaper from &lt;a href=&quot;http://www.gamewallpapers.com&quot;&gt;GameWallpapers.com&lt;/a&gt; since I&apos;ve recently been playing with &lt;a href=&quot;http://www.scummvm.org/&quot;&gt;ScummVM&lt;/a&gt; for Android and (jailbroken) iPod :) The rest of my desktop is of course clutter free!&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;desktop-monkeyisland&quot; border=&quot;0&quot; alt=&quot;desktop-monkeyisland&quot; src=&quot;http://www.madfellas.com/blog/enclosures/desktop-monkeyisland_thumb.jpg&quot; width=&quot;640&quot; height=&quot;400&quot;&gt;&lt;br&gt;&lt;/p&gt; &lt;p&gt;What&apos;s on your desktop?&lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>General</category>				
				
				<category>Wallpaper</category>				
				
				<pubDate>Thu, 19 Aug 2010 02:05:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2010/8/19/My-Current-Desktop</guid>
				
			</item>
			
			<item>
				<title>CFML proposal: XML and CFML tag literals for cfscript (C4X)</title>
				<link>http://www.madfellas.com/blog/index.cfm/2010/5/16/CFML-proposal-XML-and-CFML-tag-literals-for-cfscript-C4X</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;&lt;em style=&quot;font-size: 95%;&quot;&gt;&lt;font color=&quot;#777&quot;&gt;This is a feature proposal for the CFML standard and for ColdFusion 10. It&apos;s reasonably long  so you might want to grab a coffee or a cold drink before settling in for the ride. You can&apos;t say I didn&apos;t warn you :)&lt;br&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Almost a year ago &lt;a href=&quot;http://corfield.org/&quot;&gt;Sean Corfield&lt;/a&gt; called for comments to &lt;a href=&quot;http://corfield.org/blog/post.cfm/Help_the_CFML_Advisory_Committee&quot;&gt;help the CFML Advisory Committee&lt;/a&gt; decide on how some parts of cfscript should be implemented in future versions of ColdFusion. Full script based components were mostly under control, the only real sticking point was how to handle the script equivalent of nested CFML tags that also include body text - such as cfmail, cfquery and custom tags - which I&apos;ll call the &quot;problem tags&quot;. A month later, after reviewing the 145 replies in the discussion, Sean made his &lt;a href=&quot;http://corfield.org/entry/Help_the_Committee__Summary&quot;&gt;recommendation to the committee&lt;/a&gt; to introduce a set of objects for the &quot;problem tags&quot;. The use of objects was a logical, straight forward solution which would not introduce any new syntax and would therefore have no direct impact on the learning curve of the language or on the compiler(s). It was definitely the right step for bringing the capabilities of cfscript into line with the capabilities of CFML tags.&lt;/p&gt; &lt;p&gt;ColdFusion 9 was released in October 2009 and brought with it the much desired enhancements to cfscript, including full script based components, implicit getters and setters, many of the missing functions that developers have typically created UDF wrappers for, script equivalents of newly introduced tags, and the new &quot;problem tag&quot; objects which Adobe called &lt;a href=&quot;http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSe9cbe5cf462523a0693d5dae123bcd28f6d-8000.html&quot;&gt;script functions implemented as CFCs&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;The CFML Advisory Committee and Adobe have finally brought cfscript up to the point where, in most cases, there is no need to chop and change between script and tag based approaches because the majority of code can now be written successfully either way. Which brings us to today...&lt;br&gt;&lt;/p&gt; &lt;h3&gt;Can cfscript be further improved?&lt;/h3&gt; &lt;p&gt;At the moment cfscript is in good shape but I think most developers would agree that there are still things that could be done to improve our productivity and help with code readability and maintenance.&lt;/p&gt; &lt;p&gt;There are some CFML tags that still do not have script equivalents such as &lt;a href=&quot;http://www.clearcrystalmedia.com/pm/full-cfscript-cfcs-not-where-they-need-to-be/&quot;&gt;cffeed and cfldap&lt;/a&gt; (as noted by &lt;a href=&quot;http://www.clearcrystalmedia.com/pm/&quot;&gt;Chris Peters&lt;/a&gt; in his post on &lt;a href=&quot;http://www.clearcrystalmedia.com/pm/full-cfscript-cfcs-not-where-they-need-to-be/&quot;&gt;Full script CFCs aren&apos;t yet where they need to be&lt;/a&gt;), cfcontent, cfheader, cfschedule and &lt;a href=&quot;http://www.mail-archive.com/cf-talk@houseoffusion.com/msg343977.html&quot;&gt;cfsetting&lt;/a&gt;. We could continue to write UDF and CFC wrappers for these tags but of course it would be nicer if the language specification and vendors had clear rules about providing a consistent implementation for all tags and their equivalent functions or objects. Consistency and coverage are important.&lt;/p&gt; &lt;p&gt;There are also some things about the script functions implemented as CFCs which are not quite optimal. For tags like cfmail and cfquery the script equivalent tends to be slightly more verbose than the tag based approach - which in itself isn&apos;t a problem, more like a potential target for optimisation. &lt;a href=&quot;http://www.bennadel.com/blog/&quot;&gt;Ben Nadel&lt;/a&gt; has also found a couple of issues* with the Query.cfc implementation, one of which is a bug in the &lt;a href=&quot;http://www.bennadel.com/blog/1678-Learning-ColdFusion-9-Using-CFQuery-And-Other-Service-Tags-In-CFScript.htm&quot;&gt;parsing of named parameters&lt;/a&gt; and the other which can potentially expose a &lt;a href=&quot;http://www.bennadel.com/blog/1680-Learning-ColdFusion-9-Using-CFQuery-In-CFScript-Can-Enable-SQL-Injection-Attacks.htm&quot;&gt;SQL injection vulnerability&lt;/a&gt; that wouldn&apos;t exist when using the cfquery tag. Ben does note that this is only a problem &quot;when you are using horrible SQL to begin with&quot; but you could say that any code which exposes a vulnerability is horrible. Ben also concluded that some of the &lt;a href=&quot;http://www.bennadel.com/blog/1663-Learning-ColdFusion-9-CFScript-Updates-For-Tag-Operators.htm&quot;&gt;cfscript &quot;tag operators&quot; are inconsistent&lt;/a&gt; in the way they are implemented (with/without named arguments, with/without parenthesis, etc). So there may be some opportunities for improvement in this area. (*Please note: one or both of the above Query.cfc issues may have been addressed after the RC or Gold release of CF9 but I have so far been unable to confirm it).&lt;/p&gt; &lt;p&gt;Finally, cfscript doesn&apos;t yet attempt to tackle support for custom tags. The main reason for this, and any tags which use body text and nested tags, is that trying to morph the syntax into something that looks like script - and yet will actually work - is difficult. Sean was the first to admit this, and it became evident after many attempts that there isn&apos;t really a nice &quot;scripty looking&quot; way to do it. &lt;a href=&quot;http://blog.newatlanta.com/&quot;&gt;Vince Bonfanti&lt;/a&gt; says that we shouldn&apos;t even try to solve the problem, and that we should &lt;a href=&quot;http://blog.newatlanta.com/index.cfm/2009/7/10/Thoughts-on-CFML-tags-CFSCRIPT-Custom-Tags-and-the-CFML2009-specification&quot;&gt;ban the use of cfcomponent and cffunction tags&lt;/a&gt; and the writeOutput() function as soon as is feasible. Personally I couldn&apos;t disagree more. Banning tag based CFCs is pretty extreme, but there is also nothing wrong with allowing developers the flexibility to build something the way they want to build it - after all that is what we&apos;ve been fighting for in regards to cfscript! Let&apos;s leave the choice of syntactic optimisation up to the developers and not dictate it in the language. (As a side note, Railo supports &lt;a href=&quot;http://www.railo.ch/blog/index.cfm/2009/6/2/CFCbased-Custom-Tags-by-Example--Part-1&quot;&gt;component based custom tags&lt;/a&gt; which I think are also quite exciting for CFML and cfscript).&lt;/p&gt; &lt;p&gt;Overall these issues aren&apos;t show stoppers though and I&apos;m sure the tag to script coverage will push further towards 100% in future releases. &lt;/p&gt; &lt;p&gt;However, there is one more important issue to recognise with the balance of tags versus script. &lt;strong&gt;You can use cfscript anywhere you like within a tag based component or page, but you cannot use CFML tags within a script based component. &lt;/strong&gt;You might ask, &quot;Why would you want to do that anyway?&quot; Well, the answer, as I alluded to above, is simply: flexibility.&lt;/p&gt; &lt;h3&gt;What is cfscript for XML (C4X)?&lt;/h3&gt; &lt;p&gt;If you are not familiar with ECMAScript for XML have a quick read of the &lt;a href=&quot;http://en.wikipedia.org/wiki/ECMAScript_for_XML&quot;&gt;E4X entry on Wikipedia&lt;/a&gt;. There are a couple of ways that the addition of E4X-style syntax could benefit CFML so I want to describe them in incremental steps. I&apos;ll call this concept C4X meaning &quot;cfscript for XML&quot;.&lt;/p&gt; &lt;p&gt;The idea of having something like C4X in cfscript is not mine. I saw it first mentioned by &lt;a href=&quot;http://rickosborne.org/blog/&quot;&gt;Rick Osborne&lt;/a&gt; in Sean&apos;s call for comments where it received some good support by a number of people. Rick then went on to expand on his ideas in a blog entry titled &lt;a href=&quot;http://rickosborne.org/blog/index.php/2009/05/19/cf9-e4x-c4x/&quot;&gt;CF9 + E4X + C4X&lt;/a&gt;. Even more interesting is that 3 months prior he had &lt;a href=&quot;http://rickosborne.org/blog/index.php/2009/02/05/cfscript-v2-as-told-by-jeff-atwood/&quot;&gt;already suggested&lt;/a&gt; that cfscript should have E4X-like support (and commented that it was already too late to get it into CF9):&lt;/p&gt; &lt;blockquote style=&quot;padding: 5px 5px 5px 25px; font-weight: bold;&quot;&gt; &lt;p&gt;&lt;font color=&quot;#999&quot;&gt;&quot;There&apos;s no way we&apos;re going to see something E4X-like with XML fragments built into CF9. If we scream loud enough we &lt;em&gt;might&lt;/em&gt; see it in CF10. Maybe.&quot; -- Rick Osborne&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;This is my attempt to get the conversation going again, and if enough people are interested then we can all &quot;scream&quot; together. So, on to the actual examples...&lt;br&gt;&lt;/p&gt; &lt;h3&gt;XML literals&lt;/h3&gt; &lt;p&gt;The first and most obvious benefit of C4X is the ability to declare XML literals. When XML is treated as a primitive type it means you could assign a chunk of XML directly to a variable, i.e. there is no need to create a string and then use the xmlParse() function to parse it into an XML object. &lt;/p&gt; &lt;p style=&quot;font-weight: bold;&quot;&gt;Creating an XML object in cfscript &lt;em&gt;without&lt;/em&gt; C4X:&lt;/p&gt;
&lt;pre class=&quot;xml&quot; name=&quot;code&quot;&gt;person = xmlParse(&quot;&amp;lt;person&amp;gt;
  &amp;lt;firstname&amp;gt;Ben&amp;lt;/firstname&amp;gt;
  &amp;lt;lastname&amp;gt;Forta&amp;lt;/lastname&amp;gt;
&amp;lt;/person&amp;gt;&quot;);&lt;/pre&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;Creating an XML object in cfscript &lt;span style=&quot;text-decoration: underline;&quot;&gt;with C4X&lt;/span&gt;:&lt;/p&gt;
&lt;pre class=&quot;xml&quot; name=&quot;code&quot;&gt;person = &amp;lt;person&amp;gt;
  &amp;lt;firstname&amp;gt;Ben&amp;lt;/firstname&amp;gt;
  &amp;lt;lastname&amp;gt;Forta&amp;lt;/lastname&amp;gt;
&amp;lt;/person&amp;gt;;&lt;/pre&gt;
&lt;p&gt;This is the most basic example and as you can see it saves a dozen keystrokes and makes the code slightly cleaner and easier to read. It&apos;s not ground breaking but it&apos;s an improvement. &lt;/p&gt;
&lt;p&gt;XML literals would also support variable / statement evaluation and could be useful for working with XML-compliant chunks of HTML. You could build fragments of HTML from a data set and then do further processing on them as XML (using the existing functions of the language) - something which would be difficult to do with strings - before finally using / rendering them.&lt;/p&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;Creating an XML-compliant HTML fragment including variable evaluations &lt;span style=&quot;text-decoration: underline;&quot;&gt;with C4X&lt;/span&gt;:&lt;/p&gt;
&lt;pre class=&quot;xml&quot; name=&quot;code&quot;&gt;article = &amp;lt;div class=&quot;article&quot;&amp;gt;
  &amp;lt;h2&amp;gt;#qArticle.title#&amp;lt;/h2&amp;gt;
  &amp;lt;p&amp;gt;#qArticle.teaser#&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;;&lt;/pre&gt;
&lt;p&gt;A full E4X-style implementation would also include filtering, manipulation via operators (e.g. using + for appending nodes) and a bunch of other stuff, but at this stage I am a little hesitant to suggest taking it that far (though this is up for debate). The main thing I wanted to do was explain XML literals and their benefits so that I could introduce the next C4X concept.&lt;/p&gt;
&lt;h3&gt;CFML tag literals&lt;/h3&gt;
&lt;p&gt;This is where we get to the meat of the proposal. C4X could overcome some of the issues raised above by allowing us to write declarative code where it makes the most sense: when dealing with nested CFML tags and tag body text. I&apos;m not sure that &quot;tag literals&quot; is the right term but I&apos;ll run with it.&lt;/p&gt;
&lt;p&gt;Since the cfquery and cfmail (and other) tags now have a script equivalent in CF9 we can begin to look at ways in which our cfscript code can be further enhanced. I&apos;ll demonstrate this by showing CF9&apos;s script version followed by the proposed C4X version.&lt;/p&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;Executing a query in cfscript &lt;em&gt;without&lt;/em&gt; C4X:&lt;/p&gt;
&lt;pre class=&quot;xml&quot; name=&quot;code&quot;&gt;qry = new Query(datasource=&quot;myDSN&quot;);
qry.setSql = &quot;SELECT * FROM users&quot;;
qUsers = qry.execute().getResult();&lt;/pre&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;Executing a query in cfscript &lt;span style=&quot;text-decoration: underline;&quot;&gt;with C4X&lt;/span&gt;:&lt;/p&gt;
&lt;pre class=&quot;xml&quot; name=&quot;code&quot;&gt;qUsers = &amp;lt;cfquery datasource=&quot;myDSN&quot;&amp;gt;
  SELECT * FROM users
&amp;lt;/cfquery&amp;gt;;&lt;/pre&gt;
&lt;p&gt;The first thing you&apos;ll notice is how tidy the C4X version is, at around 70% of the keystrokes of the script equivalent. The second thing is that the (usually required) name attribute is omitted from the cfquery tag because the assignment implies that the cfquery tag will assign the resultant query object directly to the qUsers variable. This implied attribute assignment could also work for all other tags that typically have a name or result attribute (note: since it&apos;s not quite consistent across all the built-in tags the actual attribute name will vary from tag to tag - I haven&apos;t done a full analysis but in most cases the implied attribute should be a single, obvious attribute).&lt;/p&gt;
&lt;p&gt;So those query examples were pretty trivial. Let&apos;s beef it up a little with some logic and a parameterised value.&lt;/p&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;Executing a query in cfscript &lt;em&gt;without&lt;/em&gt; C4X:&lt;/p&gt;
&lt;pre class=&quot;xml&quot; name=&quot;code&quot;&gt;function getUsers(userID=&quot;0&quot;) { 
  var qry = new Query(datasource=&quot;myDSN&quot;);
  var sql = &quot;SELECT * FROM users&quot;;
  if (arguments.userID neq 0) {
    sql += &quot; WHERE userID = :userID&quot;;
    qry.addParam(name=&quot;userID&quot;, value=arguments.userID, cfsqltype=&quot;cf_sql_integer&quot;);
  }
  qry.setSQL(sql);
  var qUsers = qry.execute().getResult();
  return qUsers;
}&lt;/pre&gt;
&lt;p style=&quot;font-weight: bold;&quot;&gt;Executing a query in cfscript &lt;span style=&quot;text-decoration: underline;&quot;&gt;with C4X&lt;/span&gt;:&lt;/p&gt;
&lt;pre class=&quot;xml&quot; name=&quot;code&quot;&gt;function getUsers(userID=&quot;0&quot;) { 
  var qUsers = &amp;lt;cfquery datasource=&quot;myDSN&quot;&amp;gt;
    SELECT * FROM users
    &amp;lt;cfif arguments.userID neq 0&amp;gt;
      WHERE userID = &amp;lt;cfqueryparam name=&quot;userID&quot; value=&quot;#arguments.userID#&quot; cfsqltype=&quot;cf_sql_integer&quot;&amp;gt;
    &amp;lt;/cfif&amp;gt;
  &amp;lt;/cfquery&amp;gt;;
  return qUsers;
}&lt;/pre&gt;
&lt;p&gt;With the slightly more complex query the C4X example is around 80% of the keystrokes of the script equivalent and a couple of lines of code shorter. I think at this point it&apos;s becoming clearer how workable this solution could be.&lt;/p&gt;
&lt;p&gt;So which tags could be used as a CFML tag literal? Pretty much any CFML tag except for flow control tags I think. If it&apos;s a tag that &quot;returns&quot; a value like cfquery then definitely. If it&apos;s a tag that just does some processing and doesn&apos;t return anything then there&apos;s no reason it couldn&apos;t return &quot;true&quot; if no exceptions were thrown. If it&apos;s a tag that outputs something to the response stream then the output could either be assigned to the variable or we could use the cfsavecontent tag as a wrapper to capture it (the latter would probably be better).&lt;/p&gt;
&lt;h3&gt;How does a compiler handle C4X?&lt;/h3&gt;
&lt;p&gt;I don&apos;t think C4X is a difficult thing for a compiler to deal with. If the root node is a CFML tag (or a custom tag) then it&apos;s clearly a block of CFML code. Otherwise, it&apos;s assumed that it&apos;s a chunk of XML that could contain some variables or statements that need to be evaluated, and invalid XML should throw a compile time error. And, obviously, for this to work the XML or CFML literal would have to have a single root node / tag.&lt;/p&gt;
&lt;p&gt;Internally, CFML engines may choose to treat XML literals as a subclass of their existing XML classes if that provides some benefit during compilation or for any future additions to C4X (such as full E4X-style filtering syntax and other operations, if they were deemed feasible; again, I&apos;m still on the fence). I don&apos;t know enough about how the engines work under the hood to make any further suggestions here though.&lt;/p&gt;
&lt;p&gt;One more consideration is how do IDE&apos;s handle C4X? Well, if an IDE can handle E4X&apos;s XML literals then C4X support should be somewhere in the same ball park, and so I&apos;d be hopeful that it&apos;s within the realm of possibility for the IDEs that we use today.&lt;/p&gt;
&lt;h3&gt;Final thoughts&lt;/h3&gt;
&lt;p&gt;Personally I think it only takes a glance to see that C4X could be quite nice to work with, and the beauty of it is that it&apos;s not the only way to write the code - if you want to use a purely object based scripting solution then you can, because it already exists. On top of that, this is just the same as existing code that we have always had to write in CFML, just used in a new way (with a variable name, assignment operator and a semi-colon - definitely not rocket science!). There is barely any learning curve at all.&lt;/p&gt;
&lt;p&gt;I&apos;d be very interested to hear the thoughts of the ColdFusion community, staff/members of the CFML Advisory Committee, Adobe, Railo and OpenBD, and especially from those who thought E4X-style syntax was a bad idea 12 months ago. Now that a pure, object based solution exists, is there room for an improvement like C4X, and if not is there a better reason than &quot;I just don&apos;t like tags inside script&quot;, even though in most cases the code could be considered cleaner and easier to read?&lt;/p&gt;
&lt;p&gt;I think C4X could be another step in the right direction for CFML. Let us know what you think!&lt;/p&gt;
&lt;style type=&quot;text/css&quot;&gt;
.body p a { font-weight: normal; }
&lt;/style&gt;&lt;/p&gt; 
				</description>
				
				<category>CFML</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Sun, 16 May 2010 17:50:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2010/5/16/CFML-proposal-XML-and-CFML-tag-literals-for-cfscript-C4X</guid>
				
			</item>
			
			<item>
				<title>Google Maps Street View in 3D!</title>
				<link>http://www.madfellas.com/blog/index.cfm/2010/4/1/Google-Maps-Street-View-in-3D</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;It&apos;s April 1st, and I don&apos;t actually have a pair of 3D glasses handy to try this out, but it looks like Google have just rolled with either the coolest feature or the coolest April Fools day joke ever! Since it&apos;s Easter this weekend I was just browsing Google Maps Street View to check out some places I&apos;ll be visiting, and immediately I noticed a little figure with a pair of 3D glasses on it&apos;s head. Clicking the icon gives an anaglyph image view &amp;ndash; now if only I had smuggled some glasses out of the cinema after seeing Avatar a couple of months back...&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;Google Maps Street View in 3D&quot; border=&quot;0&quot; alt=&quot;Google Maps Street View in 3D&quot; src=&quot;http://www.madfellas.com/blog/enclosures/google-maps-3d_a0772a26-2628-4517-b5d4-832cb754c2e1.jpg&quot; width=&quot;645&quot; height=&quot;477&quot;&gt;&amp;nbsp; &lt;br&gt;&lt;/p&gt; &lt;p&gt;3D is definitely one of the most hyped topics in technology this year :P&lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>Google</category>				
				
				<pubDate>Thu, 01 Apr 2010 15:11:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2010/4/1/Google-Maps-Street-View-in-3D</guid>
				
			</item>
			
			<item>
				<title>Book review: Ext JS 3.0 Cookbook by Jorge Ramon</title>
				<link>http://www.madfellas.com/blog/index.cfm/2010/3/22/Book-review-Ext-JS-30-Cookbook-by-Jorge-Ramon</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;A few months back the folks at &lt;a href=&quot;http://www.packtpub.com&quot;&gt;Packt Publishing&lt;/a&gt; kindly sent me a free copy of the &lt;a href=&quot;http://www.packtpub.com/ext-js-3-0-cookbook/mid/231009qwylj4&quot;&gt;Ext JS 3.0 Cookbook&lt;/a&gt; by &lt;a href=&quot;http://miamicoder.com&quot;&gt;Jorge Ramon&lt;/a&gt; to review. I have to apologize for not getting this review published sooner, since I expected to have it online in January, but the last two months just flew by. So, without further ado...&lt;br&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://www.packtpub.com/ext-js-3-0-cookbook/mid/231009qwylj4&quot;&gt;&lt;img style=&quot;border-right-width: 0px; margin: 0px 0px 16px 16px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;extjscookbook&quot; border=&quot;0&quot; alt=&quot;extjscookbook&quot; align=&quot;right&quot; src=&quot;http://www.madfellas.com/blog/enclosures/extjscookbook_ec489006-39aa-4a58-88a2-72f1e087cd6e.jpg&quot; width=&quot;195&quot; height=&quot;240&quot;&gt;&lt;/a&gt; The Ext JS 3.0 Cookbook is a straight forward, no nonsense book that is quick to read and easy to follow. It appears to be marketed towards developers who already have some experience with &lt;a href=&quot;http://extjs.com&quot;&gt;Ext JS&lt;/a&gt; however I also think anyone who has a good understanding of JavaScript but no real exposure to Ext JS will find the content extremely empowering.&lt;/p&gt; &lt;p&gt;In true cookbook style the articles are presented as recipes which show a screenshot of the finished product (where applicable) and guide you from start to finish. Each recipe contains a &quot;How to do it&quot; section in the form of full code examples, a &quot;How it works&quot; section which highlights the critical concepts of the recipe and a &quot;See also&quot; section which can point you towards other related recipes. Many recipes also include a &quot;There&apos;s more&quot; section which gives the author the opportunity to discuss quirks, best practices or other advanced aspects of the recipe, which is great for getting ideas about how to take an implementation that extra step further. &lt;/p&gt; &lt;p&gt;Chapter 1 introduces the fundamentals of working with the Ext JS framework plus a couple of things that first timers might find slightly scary like namespaces and extending Ext classes. These are definitely recipes that you would refer back to quite a few times as these more advanced concepts come into your applications.&lt;/p&gt; &lt;p&gt;Chapter 2 starts off a little heavy with Layouts; there is no &quot;Hello world!&quot; type example for just displaying a Panel, even though some of the other UI components are shown in their most basic forms in some later chapters. That said, the rendering of Layouts is one of the most important concepts in Ext JS and so, again, these recipes are something that you would refer back to quite often until you have your head around them all. &lt;/p&gt; &lt;p&gt;Chapters 3 to 9 deal well with introducing the Ext JS UI components and how they would be used in a typical application to solve common problems. It&apos;s important to note that these recipes aren&apos;t just rehashes of the demos that ship with Ext JS as they go into quite a bit more detail on how components can be implemented to work together. The picks of the recipes for me are probably the ones that deal with related combo boxes, the JSON Writer and the drag and drop examples. There are also bunch of new Ext 3.x components in there such as the Grid Row Editor, the new List View as a light-weight, high performance grid component, the new Button layouts in Toolbars, and the entire of Chapter 9 is dedicated to the new Charting components. There are a few recipes that are almost carbon copies of others with just one or two attributes changed to show off subtle configuration options in some components, and perhaps these could have been condensed into one recipe, but it doesn&apos;t really detract from the variety of recipes considering there are 109 in total. Overall the recipes have very good coverage of the component&apos;s different uses and in many cases show the implementation from the front-end right through to the back-end exposing data from a MySQL database. &lt;/p&gt; &lt;p&gt;Chapter 10 has some very meaty recipes which deal with the more advanced Ext JS concepts such as Actions, lazy component instantiation, customising Ext components, building plugins and pre-configured classes. These are the types of things Ext JS developers should strive for in writing more robust, reusable code. This chapter could easily consume an entire book its own but I&apos;m glad Jorge introduced these concepts here because it provides that initial guidance for reader to be able to go and learn even more about how to build great Ext JS apps.&lt;/p&gt; &lt;p&gt;In summary, I really enjoyed reading the Ext JS 3.0 Cookbook. If you&apos;re looking to take the next steps in learning Ext JS then I can recommend reading it from cover to cover, rather than just skimming between recipes, and you&apos;ll undoubtedly pick up a lot of great tips along the way.&lt;/p&gt; &lt;p&gt;The verdict: 4 out of 5 stars.&lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>Ext</category>				
				
				<category>Review</category>				
				
				<pubDate>Mon, 22 Mar 2010 17:54:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2010/3/22/Book-review-Ext-JS-30-Cookbook-by-Jorge-Ramon</guid>
				
			</item>
			
			<item>
				<title>Dreamweaver tag library for ColdExt RC 1</title>
				<link>http://www.madfellas.com/blog/index.cfm/2009/3/10/Dreamweaver-tag-library-for-ColdExt-RC-1</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;ColdExt has had support for &lt;a href=&quot;http://www.madfellas.com/blog/index.cfm/2008/3/17/ColdExt-Beta-1-with-CFEclipse-tag-insight&quot;&gt;tag insight in CFEclipse&lt;/a&gt; since way back in Beta 1 (wow, almost 12 months ago now!), but thanks to &lt;a href=&quot;http://blog.dkferguson.com&quot;&gt;Dave Ferguson&apos;s&lt;/a&gt; recent efforts you can now have the same tag insight experience in Dreamweaver.&lt;/p&gt; &lt;p&gt;Today, Dave has released an updated &lt;a href=&quot;http://blog.dkferguson.com/index.cfm/2009/3/9/ColdExt-Dreamweaver-Tag-Library-RC1&quot;&gt;Dreamweaver tag library for ColdExt RC 1&lt;/a&gt; so grab it while it&apos;s hot!&lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>ColdExt</category>				
				
				<pubDate>Tue, 10 Mar 2009 04:54:06 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2009/3/10/Dreamweaver-tag-library-for-ColdExt-RC-1</guid>
				
			</item>
			
			<item>
				<title>ColdExt RC 1 released!</title>
				<link>http://www.madfellas.com/blog/index.cfm/2009/3/7/ColdExt-RC-1-released</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;Now up on RIAForge is the &lt;a href=&quot;http://coldext.riaforge.org&quot;&gt;first Release Candidate of ColdExt&lt;/a&gt;. ColdExt is a ColdFusion tag library which makes it easier to build rich user interfaces using the amazing &lt;a href=&quot;http://extjs.com/&quot;&gt;Ext JS&lt;/a&gt; library. ColdExt supports multiple CFML engines including CFMX 7, CF8, Railo 3.0.1 and OpenBD 1.0.&lt;/p&gt; &lt;p&gt;This release provides support for ExtJS 2.2.1 plus 6 new demos and 2 new user extensions - fileUploadField and gridSearch.&lt;/p&gt; &lt;p&gt;The main enhancement in RC 1 is to allow the JS and CSS resources for User Extensions to be loaded up front on the calling page, meaning that UX components can now be used in remote pages loaded via Ajax. This can be configured on the onReady tag using the uxLoad attribute, by specifying a comma delimited list of the extensions to load (based on the folder name of the extension in the /ext/ux folder) or by specifying &quot;all&quot; to load the resources for all extensions. For e.g.&lt;/p&gt; &lt;p style=&quot;padding-left: 2em; font-family: consolas, monaco, courier new, courier; color: #aaa&quot;&gt;&amp;lt;ext:onReady loadingMask=&quot;true&quot; uxLoad=&quot;all&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;Check out the &lt;a href=&quot;http://www.madfellas.com/docs/&quot;&gt;latest demos&lt;/a&gt; for a bit more of a taste of ColdExt, and be sure to view the source of each demo to see how easy ColdExt is to implement.&lt;/p&gt;
 &lt;p&gt;&lt;br&gt;&lt;a href=&quot;http://www.madfellas.com/docs/&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;coldext-rc-1&quot; border=&quot;0&quot; alt=&quot;coldext-rc-1&quot; src=&quot;http://www.madfellas.com/blog/enclosures/coldext-rc-1_3.jpg&quot; width=&quot;536&quot; height=&quot;376&quot;&gt;&lt;/a&gt; &lt;br&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;In other news, &lt;a href=&quot;http://www.objectiveaction.com/Kevin/index.cfm/Ext-JS&quot;&gt;Kevin Roche wrote a nice series of blog posts&lt;/a&gt; on ColdExt back in December documenting some of the issues he faced in implementing some components. ColdExt also got a mention in &lt;a href=&quot;http://cfhour.com/detail.cfm?entry=AE2A5605-9622-2978-8F1B2E3AECE12ABC&quot;&gt;Episode 2 of the CF Hour podcast&lt;/a&gt; by Dave Ferguson and and Michael Sean Becker &#xe2;¬&quot; cheers guys :)&lt;/p&gt; &lt;p&gt;Also be sure to mark your calendars for April 14-16 2009 as the first ever &lt;a href=&quot;http://extjs.com/conference/&quot;&gt;Ext Conference&lt;/a&gt; will see the release of Ext JS 3.0! Expect a ColdExt release to follow during April.&lt;/p&gt; &lt;p&gt;&lt;br&gt;If you have any feedback or feature requests for ColdExt please get in touch by leaving a comment here, using the contact form on the &lt;a href=&quot;http://coldext.riaforge.org&quot;&gt;ColdExt project page&lt;/a&gt; or emailing me directly (my email address is in the readme.txt file in the downloadable zip!) &lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>ColdExt</category>				
				
				<category>Ext</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Sat, 07 Mar 2009 09:45:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2009/3/7/ColdExt-RC-1-released</guid>
				
			</item>
			
			<item>
				<title>Running CF7 and CF8 Services with a batch file menu</title>
				<link>http://www.madfellas.com/blog/index.cfm/2008/12/21/Running-CF7-and-CF8-Services-with-a-batch-file-menu</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;As a follow up to my previous post on &lt;a href=&quot;http://www.madfellas.com/blog/index.cfm/2008/12/21/Running-CF7-and-CF8-simultaneously-on-IIS7&quot;&gt;Running CF7 and CF8 simultaneously on IIS7&lt;/a&gt; I thought I would share the batch file I use to manage the starting and stopping of the ColdFusion services and some other tips. Note that this mostly Vista specific stuff, including the batch file itself (it uses the &apos;choice&apos; command which is different in Vista compared to previous versions of Windows).&lt;/p&gt; &lt;p&gt;When running both CF7 and CF8 on the same development machine I generally set all the services to Manual start-up and set only one of the ColdFusion Application Server services to Automatic (Delayed Start). Delayed Start is a new option in Vista that aims to keep your system snappier at boot up, so any services that are set to Delayed Start won&apos;t be started immediately during the boot process and will instead execute later when other services have had time to start and finish using time-critical resources.&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;img border=&quot;0&quot; alt=&quot;cf-services&quot; src=&quot;http://www.madfellas.com/blog/enclosures/cf-services_8d877761-a6d6-44a4-a97a-c46b6376e26f.png&quot; width=&quot;443&quot; height=&quot;175&quot;&gt; &lt;/p&gt; &lt;p&gt;&lt;br&gt;To manage the starting and stopping of the ColdFusion services I wrote a simple batch file that has a menu for selecting which service you want to start or stop. If you save the batch file as User\Documents\scripts\cf.bat it is easy to have quick access to the file by hitting the windows key and typing &apos;cf.bat&apos;. You can then right click on the file and choose &quot;Run as administrator&quot; so that the process will have permission to start and stop services.&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;img border=&quot;0&quot; alt=&quot;cf-batch-file&quot; src=&quot;http://www.madfellas.com/blog/enclosures/cf-batch-file_c7f23638-5b69-40c1-8096-a7ad33c73b78.png&quot; width=&quot;301&quot; height=&quot;163&quot;&gt; &lt;/p&gt; &lt;p&gt;&lt;br&gt;When the script is running you will be presented with a simple, straight forward menu.&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;img border=&quot;0&quot; alt=&quot;cf-service-menu&quot; src=&quot;http://www.madfellas.com/blog/enclosures/cf-service-menu_bef27bc7-1a12-4cb6-9dce-be04c98cd84f.png&quot; width=&quot;395&quot; height=&quot;177&quot;&gt; &lt;/p&gt; &lt;p&gt;&lt;br&gt;Below is the full script if you would like to use it. It could be customised to add any other services you might want to start and stop such as MS SQL Server, MySQL, PostgreSQL, IIS, Apache, etc. Note: use the &quot;view plain&quot; or &quot;copy to clipboard&quot; links to easily copy the code, paste into Notepad, and save as cf.bat.&lt;/p&gt; &lt;p&gt;Enjoy!&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;pre class=&quot;xml&quot; name=&quot;code&quot;&gt;@echo off
REM ColdFusion Services helper batch file, by Justin Carter
REM http://www.madfellas.com
REM 
REM This script is provided as is, with no warranty of any kind.
REM Use at your own risk :)
 
:menu
echo.
echo. 1) Start ColdFusion 8
echo. 2) Stop ColdFusion 8
echo.
echo. 3) Start ColdFusion MX 7
echo. 4) Stop ColdFusion MX 7
echo.
echo. Q) Quit
 
echo.
choice /c 1234Q /n /m &quot; Choose a menu option:&quot;
echo.
 
if Errorlevel 5 goto quit
if Errorlevel 4 goto stopcf7
if Errorlevel 3 goto startcf7
if Errorlevel 2 goto stopcf8
if Errorlevel 1 goto startcf8
goto quit
 
:startcf8
echo.
net start &quot;ColdFusion 8 Application Server&quot;
REM net start &quot;ColdFusion 8 .NET Service&quot;
REM net start &quot;ColdFusion 8 ODBC Agent&quot;
REM net start &quot;ColdFusion 8 ODBC Server&quot;
REM net start &quot;ColdFusion 8 Search Server&quot;
cls
echo.
echo. ColdFusion 8 Services started
echo.
goto menu
 
:stopcf8
echo.
net stop &quot;ColdFusion 8 Application Server&quot;
net stop &quot;ColdFusion 8 .NET Service&quot;
net stop &quot;ColdFusion 8 ODBC Agent&quot;
net stop &quot;ColdFusion 8 ODBC Server&quot;
net stop &quot;ColdFusion 8 Search Server&quot;
cls
echo.
echo. ColdFusion 8 Services stopped.
echo.
goto menu
 
:startcf7
echo.
net start &quot;ColdFusion MX 7 Application Server&quot;
REM net start &quot;ColdFusion MX 7 ODBC Agent&quot;
REM net start &quot;ColdFusion MX 7 ODBC Server&quot;
REM net start &quot;ColdFusion MX 7 Search Server&quot;
cls
echo.
echo. ColdFusion MX 7 Services started.
echo.
goto menu
 
:stopcf7
echo.
net stop &quot;ColdFusion MX 7 Application Server&quot;
net stop &quot;ColdFusion MX 7 ODBC Agent&quot;
net stop &quot;ColdFusion MX 7 ODBC Server&quot;
net stop &quot;ColdFusion MX 7 Search Server&quot;
cls
echo.
echo. ColdFusion MX 7 Services stopped.
echo.
goto menu
 
:quit&lt;/pre&gt;&lt;/p&gt; 
				</description>
				
				<category>Vista</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Sun, 21 Dec 2008 11:33:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2008/12/21/Running-CF7-and-CF8-Services-with-a-batch-file-menu</guid>
				
			</item>
			
			<item>
				<title>Running CF7 and CF8 simultaneously on IIS7</title>
				<link>http://www.madfellas.com/blog/index.cfm/2008/12/21/Running-CF7-and-CF8-simultaneously-on-IIS7</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;Recently I started work at a new job in London and found myself needing to do some local development with CFMX7 while still keeping my existing CF8 installation available for local development as well. One option &amp;mdash; which is what I did initially to get up and running quickly &amp;mdash; was to run CFMX7 in stand-alone mode using the built-in web server, but eventually I needed to be able to switch between multiple projects (web roots) easily because I could be working on more than one project at a time.&lt;/p&gt; &lt;p&gt;Since we use IIS in our production environments it makes sense to use it in a development environment as well, rather than playing with Apache or another web server, and I also wanted to keep everything under a single web server instance so that I didn&apos;t have to worry about fiddling with port numbers and and multiple web server services. Thankfully IIS7 makes per-web site configuration really easy with it&apos;s web.config files, as you will see below.&lt;/p&gt; &lt;h3&gt;Installation&lt;/h3&gt; &lt;p&gt;I started with an existing CF8 installation that was originally set up to apply to all IIS web sites. I also store all my data on D: and so the the CFIDE and CFDOCS folders for CF8 were initially installed to D:\inetpub\wwwroot.&lt;/p&gt; &lt;p&gt;When it came time to install CF7 I chose to install it in server mode using the built-in web server. This places the CFIDE and CFDOCS folders for CF7 in C:\CFusionMX7\wwwroot, so you won&apos;t have to worry about overwriting the CF8 files.&lt;/p&gt; &lt;h3&gt;ColdFusion Configuration&lt;/h3&gt; &lt;p&gt;To allow IIS to talk to ColdFusion we need to make sure the &lt;strong&gt;JRunProxyService&lt;/strong&gt; isn&apos;t deactivated which you can do by editing C:\CFusionMX7\runtime\servers\coldfusion\SERVER-INF\jrun.xml. To do this just follow the &lt;em&gt;first&lt;/em&gt; step in the Adobe TechNote titled &lt;a href=&quot;http://www.adobe.com/go/tn_19575&quot;&gt;ColdFusion MX: Manually configuring the web server connector for ColdFusion MX Standalone&lt;/a&gt;. This simply changes the deactivated value from true to false. (You can also use this opportunity to deactivate the JRun built-in web server by editing the same flag just above in the &lt;strong&gt;WebServer&lt;/strong&gt; service config).&lt;/p&gt; &lt;p&gt;Next we need to make sure the web connector DLL&apos;s and configuration files are available. These files won&apos;t have been installed and/or created when we chose to use the built-in web server so we will have to extract and configure them manually. We could follow the rest of the above TechNote to get up and running, but it has been summarised much better (and specifically for IIS7) on page 6 of a Community MX article called &lt;a href=&quot;http://www.communitymx.com/content/article.cfm?page=6&amp;amp;cid=224AA&quot;&gt;Getting ColdFusion MX 7.0.2 Running on Vista and IIS&lt;/a&gt;. Following steps 1 to 7 you will extract the IIS related DLL files from C:\CFusionMX7\runtime\lib\wsconfig.jar and create two configuration files to go with them. Give the ColdFusion MX 7 Application Server service a restart now for good measure.&lt;/p&gt; &lt;h3&gt;IIS7 Configuration&lt;/h3&gt; &lt;p&gt;In IIS Manager create a new web site as you would normally, with a new web root and using host headers to differentiate between web sites (e.g. create the site in D:\inetpub\cfmx7, give it the host header cfmx7.local and edit your hosts file to alias 127.0.0.1 as cfmx7.local).&lt;/p&gt; &lt;p&gt;The new site will be created with the Handler Mappings from the top level web server configuration which will be pointing to the CF8 files (meaning if you were creating a new site using CF8 then it would be ready to go without any configuration). To get this site to work with CF7 we just need to change each of the ColdFusion-related mappings to use the web connector that we just extracted and configured above.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;br&gt;&lt;img border=&quot;0&quot; alt=&quot;IIS7 Handler Mappings for ColdFusion MX 7&quot; src=&quot;http://www.madfellas.com/blog/enclosures/iis7-handler-mappings_8efedeb2-5e61-4f64-bc67-742eb9a9e4fd.png&quot; width=&quot;620&quot; height=&quot;341&quot;&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;Select the newly created site in the site tree, double-click on the Handler Mappings icon, and set the executable for each CF-related mapping to C:\CFusionMX7\runtime\lib\wsconfig\1\jrun_iis6_wildcard.dll. The most important ones will be the wildcard (*), *.cfm(l), *.cfc and *.cfr, though it only takes a few seconds to configure the other 4 or 5 while you&apos;re at it.&lt;/p&gt; &lt;p&gt;That should be it, you will now have an IIS7 site running CFMX7! Create a new .cfm file and use &amp;lt;cfdump var=&quot;#server#&quot;&amp;gt; to confirm :)&lt;/p&gt; &lt;h3&gt;Creating additional CF7 sites&lt;/h3&gt; &lt;p&gt;The beauty of IIS7 is that site-specific configuration is written to an XML file in your web root called web.config. This means no more stuffing around with the IIS metabase as in IIS6, and the benefit we get here is that you can keep a copy of this file (like a &quot;template&quot;) and then next time you create a new web site that will use CF7, simple copy and paste the file into the web root and you are ready to rock without any additional configuration! This is what my own web.config file looks like: &lt;/p&gt; &lt;p&gt;&lt;pre class=&quot;xml&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;configuration&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;system.webServer&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;handlers&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove name=&quot;AboMapperCustom-75808&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove name=&quot;AboMapperCustom-75807&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove name=&quot;AboMapperCustom-75806&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove name=&quot;AboMapperCustom-75805&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove name=&quot;AboMapperCustom-75804&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove name=&quot;AboMapperCustom-75803&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove name=&quot;AboMapperCustom-75802&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove name=&quot;AboMapperCustom-75801&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;remove name=&quot;AboMapperCustom-75800&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name=&quot;AboMapperCustom-75800&quot; path=&quot;*&quot; verb=&quot;*&quot; modules=&quot;IsapiModule&quot; scriptProcessor=&quot;C:\CFusionMX7\runtime\lib\wsconfig\1\jrun_iis6_wildcard.dll&quot; resourceType=&quot;Unspecified&quot; requireAccess=&quot;None&quot; responseBufferLimit=&quot;0&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name=&quot;AboMapperCustom-75801&quot; path=&quot;*.jsp&quot; verb=&quot;*&quot; modules=&quot;IsapiModule&quot; scriptProcessor=&quot;C:\CFusionMX7\runtime\lib\wsconfig\1\jrun_iis6_wildcard.dll&quot; resourceType=&quot;Unspecified&quot; requireAccess=&quot;Script&quot; responseBufferLimit=&quot;0&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name=&quot;AboMapperCustom-75802&quot; path=&quot;*.jws&quot; verb=&quot;*&quot; modules=&quot;IsapiModule&quot; scriptProcessor=&quot;C:\CFusionMX7\runtime\lib\wsconfig\1\jrun_iis6_wildcard.dll&quot; resourceType=&quot;Unspecified&quot; requireAccess=&quot;Script&quot; responseBufferLimit=&quot;0&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name=&quot;AboMapperCustom-75803&quot; path=&quot;*.cfm&quot; verb=&quot;*&quot; modules=&quot;IsapiModule&quot; scriptProcessor=&quot;C:\CFusionMX7\runtime\lib\wsconfig\1\jrun_iis6_wildcard.dll&quot; resourceType=&quot;Unspecified&quot; requireAccess=&quot;Script&quot; responseBufferLimit=&quot;0&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name=&quot;AboMapperCustom-75804&quot; path=&quot;*.cfml&quot; verb=&quot;*&quot; modules=&quot;IsapiModule&quot; scriptProcessor=&quot;C:\CFusionMX7\runtime\lib\wsconfig\1\jrun_iis6_wildcard.dll&quot; resourceType=&quot;Unspecified&quot; requireAccess=&quot;Script&quot; responseBufferLimit=&quot;0&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name=&quot;AboMapperCustom-75805&quot; path=&quot;*.cfc&quot; verb=&quot;*&quot; modules=&quot;IsapiModule&quot; scriptProcessor=&quot;C:\CFusionMX7\runtime\lib\wsconfig\1\jrun_iis6_wildcard.dll&quot; resourceType=&quot;Unspecified&quot; requireAccess=&quot;Script&quot; responseBufferLimit=&quot;0&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name=&quot;AboMapperCustom-75806&quot; path=&quot;*.cfr&quot; verb=&quot;*&quot; modules=&quot;IsapiModule&quot; scriptProcessor=&quot;C:\CFusionMX7\runtime\lib\wsconfig\1\jrun_iis6_wildcard.dll&quot; resourceType=&quot;Unspecified&quot; requireAccess=&quot;Script&quot; responseBufferLimit=&quot;0&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name=&quot;AboMapperCustom-75807&quot; path=&quot;*.cfswf&quot; verb=&quot;*&quot; modules=&quot;IsapiModule&quot; scriptProcessor=&quot;C:\CFusionMX7\runtime\lib\wsconfig\1\jrun_iis6_wildcard.dll&quot; resourceType=&quot;Unspecified&quot; requireAccess=&quot;Script&quot; responseBufferLimit=&quot;0&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add name=&quot;AboMapperCustom-75808&quot; path=&quot;*.mxml&quot; verb=&quot;*&quot; modules=&quot;IsapiModule&quot; scriptProcessor=&quot;C:\CFusionMX7\runtime\lib\wsconfig\1\jrun_iis6_wildcard.dll&quot; resourceType=&quot;Unspecified&quot; requireAccess=&quot;Script&quot; responseBufferLimit=&quot;0&quot; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/handlers&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/system.webServer&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;
&lt;p&gt;&lt;br&gt;Though I haven&apos;t tested it, you could probably use a similar procedure for older releases of CF such as CFMX 6.1, or maybe even future versions such as CF9 ;)&lt;/p&gt;
&lt;p&gt;Happy configuring!&lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>IIS</category>				
				
				<category>Vista</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Sun, 21 Dec 2008 09:08:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2008/12/21/Running-CF7-and-CF8-simultaneously-on-IIS7</guid>
				
			</item>
			
			<item>
				<title>Weekend Coding Riffs - Issue #3</title>
				<link>http://www.madfellas.com/blog/index.cfm/2008/12/6/Weekend-Coding-Riffs--Issue-3</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;This issue is a rather short one, covering a band which I&apos;ve only just discovered in the last few days. &lt;/p&gt; &lt;p&gt;They are &lt;a href=&quot;http://www.amplifiertheband.com&quot;&gt;Amplifier&lt;/a&gt;, an alternative / progressive rock trio from Manchester, UK. For a three-piece band with only 2 full length albums under their belt they have a huge, solid sound with a good range of variety in their songs. Their super fat guitars remind me of a cross between the early 90&apos;s sound of The Smashing Pumpkins, the presence of Porcupine Tree, and the bass, digital effects and riff wizardry of Tool. Pretty damn good combination right there I think!&lt;/p&gt; &lt;p&gt;According to their &lt;a href=&quot;http://en.wikipedia.org/wiki/Amplifier_(band)&quot;&gt;entry on Wikipedia&lt;/a&gt;, Amplifier have toured with bands such as Deftones, Opeth, and Porcupine Tree. They have also finished recording on their 3rd studio album which should be released in the coming months - something to keep an eye out for.&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;a href=&quot;http://www.last.fm/music/Amplifier&quot;&gt;&lt;img style=&quot;border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;154&quot; alt=&quot;amplifier-page&quot; src=&quot;http://www.madfellas.com/blog/enclosures/amplifier-page_3.png&quot; width=&quot;480&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;I don&apos;t have any players to embed in this issue, so head on over to the &lt;a href=&quot;http://www.last.fm/music/Amplifier&quot;&gt;Amplifier page on last.fm&lt;/a&gt; to listen to their top 10 most played songs. I&apos;ve been playing them a bit and would love to pick up their albums! Dear Santa... :)&lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>Coding Riffs</category>				
				
				<pubDate>Sat, 06 Dec 2008 14:19:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2008/12/6/Weekend-Coding-Riffs--Issue-3</guid>
				
			</item>
			
			<item>
				<title>Blog redesign, Twittering, OS X and more...</title>
				<link>http://www.madfellas.com/blog/index.cfm/2008/12/6/Blog-redesign-Twittering-OS-X-and-more</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;About a week or so ago I gave my blog &lt;em&gt;another&lt;/em&gt; redesign :D This time I&apos;ve gone a bit more minimalist by using just a couple of gradients and some old-school pixelated design elements for the logo and edge of the content area. In my search for an image to go in the header I thought of using the CF logo somehow but didn&apos;t quite know what to put with it; then I stumbled on Kai Koenig&apos;s &quot;&lt;a href=&quot;http://flickr.com/photos/grmblzmpf/3036751201/&quot;&gt;coolest CF t-shirt ever&lt;/a&gt;&quot; photo on Flickr featuring the (slightly modified) CF dude from the &lt;a href=&quot;http://hello.eboy.com/eboy/2008/02/25/poster-for-adobe-air-launch/&quot;&gt;AIR Launch Party poster&lt;/a&gt; by eboy. &amp;lt;boratVoice&amp;gt;Great success!&amp;lt;/boratVoice&amp;gt;&lt;/p&gt; &lt;p&gt;Next, I&apos;ve begun using &lt;a href=&quot;http://twitter.com&quot;&gt;Twitter&lt;/a&gt; on a regular basis now and you can see my last few messages on the madfellas home page or &lt;a href=&quot;http://twitter.com/justincarter&quot;&gt;follow me&lt;/a&gt; if you&apos;re also using Twitter. I&apos;ll mostly be twittering about CF and tech related topics with the usual funny web stuff thrown in. At the moment I&apos;m using the &lt;a href=&quot;http://www.tweetdeck.com&quot;&gt;TweetDeck&lt;/a&gt; client and I&apos;m finding it quite good.&lt;/p&gt; &lt;p&gt;Over the course of the weekend I&apos;ll be playing around with setting up my development environment in OS X along with replacements for my frequently used Windows apps. So far everything is going well and the only things I am really missing are a Windows Media Player 11 which I&apos;m replacing with VLC, and Windows Live Writer which I am running (and composing this blog entry with) using VMware Fusion&apos;s Unity feature :)&lt;br&gt;&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;300&quot; alt=&quot;os-x-live-writer&quot; src=&quot;http://www.madfellas.com/blog/enclosures/os-x-live-writer_7.png&quot; width=&quot;480&quot; border=&quot;0&quot;&gt; &lt;/p&gt; &lt;p&gt;&lt;br&gt;I&apos;ve also got a few updates to make to &lt;a href=&quot;http://coldext.riaforge.org&quot;&gt;ColdExt&lt;/a&gt; in regard to user extensions and some other new features to investigate.&lt;/p&gt; &lt;p&gt;And last but not least... I&apos;ll finally be starting work in London next week! More on that to follow later ;)&lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>ColdExt</category>				
				
				<category>General</category>				
				
				<category>Cool Stuff</category>				
				
				<category>London</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Sat, 06 Dec 2008 13:27:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2008/12/6/Blog-redesign-Twittering-OS-X-and-more</guid>
				
			</item>
			
			<item>
				<title>Ext JS 3.0 Designer tool... Whoa!</title>
				<link>http://www.madfellas.com/blog/index.cfm/2008/11/10/Ext-JS-30-Designer-tool-Whoa</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;Jack Slocum has shared some sneak peak screencasts of the new &lt;a href=&quot;http://extjs.com/forum/showthread.php?t=52258&quot;&gt;Designer tool in Ext JS 3.0&lt;/a&gt;, and all I have to say is: coooool! It&apos;s a slick looking AIR app (built with Ext JS obviously) which lets you drag and drop UI components and data stores onto a canvas to design your UI with no real coding at all. Jack says that it is a tool that he would use himself which speaks volumes for how powerful a tool it will be.&lt;/p&gt; &lt;p&gt;Check it out for yourself :)&lt;/p&gt; &lt;p&gt;&lt;a title=&quot;c4T3Gbfhn&quot; href=&quot;http://www.screencast.com/t/c4T3Gbfhn&quot;&gt;Watch the Ext JS 3.0 Designer preview&lt;/a&gt;&lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>Ext</category>				
				
				<category>Cool Stuff</category>				
				
				<pubDate>Mon, 10 Nov 2008 06:47:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2008/11/10/Ext-JS-30-Designer-tool-Whoa</guid>
				
			</item>
			
			<item>
				<title>Weekend Coding Riffs - Issue #2</title>
				<link>http://www.madfellas.com/blog/index.cfm/2008/11/9/Weekend-Coding-Riffs--Issue-2</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;This issue in my Weekend Coding Riffs series is a bit of a tribute to one of my all time favourite bands &lt;a href=&quot;http://www.porcupinetree.com&quot;&gt;Porcupine Tree&lt;/a&gt;. Porcupine tree are one of those bands that are hard to put into a box because their back catalogue has so much depth and range in musical styles, from psychedelic rock through to progressive metal. Steven Wilson creates awesome guitar riffs, Gavin Harrison is an amazing drummer, and the whole package of Porcupine Tree playing live is, I think, unparalleled. A dash of Porcupine Tree in my headphones definitely puts me into the coding zone. \m/&lt;/p&gt; &lt;p&gt;The first two tracks in this playlist, Blackest Eyes and Shallow, were chosen because they bring a smile to my face every time I hear their opening riffs; if you&apos;re a guitar player you probably know what I mean :) How is it possible to fit so much rock into a riff? Both of these songs, as Jack Black would say, &quot;rock my f#$!^@&amp;amp; socks off&quot;.&lt;/p&gt; &lt;p&gt;The last two tracks, Arriving Somewhere and Anesthetize, are both monsters at 12 minutes and over 17 minutes respectively, but these songs prove that a &quot;long&quot; track doesn&apos;t necessarily mean boring or repetitive. In fact most of my favourite songs probably weigh in at well over 7 or 8 minutes, and I&apos;d liken it to contrasting novels (and in some cases a series) against short stories. They&apos;re all great for different occasions, of course, but when you want to listen to something with some real substance and weight behind it these songs are excellent.&lt;/p&gt; &lt;p&gt;So go on - sit back, press play and write some code!&lt;br&gt;&amp;nbsp;&lt;/p&gt; &lt;div style=&quot;width: 180px; height: 236px&quot;&gt;&lt;embed height=&quot;236&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;180&quot; src=&quot;http://www.deezer.com/embedded/widget.swf?path=14261957&amp;amp;lang=en&amp;amp;colorBack=0x525252&amp;amp;colorVolume=0x00CCFF&amp;amp;colorScrollbar=0x666666&amp;amp;colorText=0xFFFFFF&amp;amp;autoplay=0&amp;amp;autoShuffle=0&amp;amp;id=1685901&quot;&gt;&lt;/embed&gt;&lt;br&gt;&lt;font color=&quot;#000000&quot; size=&quot;1&quot; face=&quot;Arial&quot;&gt;Discover &lt;a href=&quot;http://www.deezer.com/en/porcupine-tree.html&quot;&gt;Porcupine Tree&lt;/a&gt;!&lt;/font&gt;&lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;P.S. You&apos;re going to need a good 45+ minutes to give these songs a listen right the way through, but it&apos;s most definitely worth it ;) &lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>Coding Riffs</category>				
				
				<pubDate>Sun, 09 Nov 2008 12:14:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2008/11/9/Weekend-Coding-Riffs--Issue-2</guid>
				
			</item>
			
			<item>
				<title>Rolling with a new design, settling in to London life</title>
				<link>http://www.madfellas.com/blog/index.cfm/2008/11/6/Rolling-with-a-new-design-settling-in-to-London-life</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;It&apos;s been almost a year since I&apos;ve given madfellas.com a redesign so I&apos;ve rolled in a bit of grungy stuff while still keeping a similar colour scheme and layout. I&apos;ve used a large background image with a gradient on purpose so that I can switch it out easily, at any time, to change the mood of the site. It&apos;s not exactly a designer-quality layout, but hey, it&apos;s not bad for a nights work :)&lt;/p&gt; &lt;p&gt;We&apos;re all settled in to our new place in Shepherds Bush (yes, yes, I know, that&apos;s where all the Aussies live!) and have had a relatively quiet week; except for the couple of times we have been to the new Shepherds Bush Westfield shopping centre, that place is nuts!&lt;/p&gt; &lt;p&gt;My girlfriend &lt;a href=&quot;http://www.ayartee.com&quot;&gt;Monique&lt;/a&gt; is finding it a bit tough on the web design job front, even though she has a nice &lt;a href=&quot;http://www.ayartee.com/portfolio.pdf&quot;&gt;portfolio&lt;/a&gt; and plenty of experience. On the CF job front it&apos;s pretty quiet too but I&apos;m hoping to get some good news before the end of the week about possible interviews - fingers crossed. We&apos;ll see how things go for us in the coming days/weeks.&lt;/p&gt; &lt;p&gt;I&apos;m also off to the &lt;a href=&quot;http://www.ukcfug.org&quot;&gt;UKCFUG&lt;/a&gt; tonight which should be cool. It&apos;ll be the first CFUG meeting that I&apos;ve had the opportunity to attend, and hopefully not the last :) Maybe I&apos;ll see you there...&lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>General</category>				
				
				<category>London</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Thu, 06 Nov 2008 10:20:40 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2008/11/6/Rolling-with-a-new-design-settling-in-to-London-life</guid>
				
			</item>
			
			<item>
				<title>ColdExt Beta 3: Lots of Ext JS goodness!</title>
				<link>http://www.madfellas.com/blog/index.cfm/2008/10/27/ColdExt-Beta-3-Lots-of-Ext-JS-goodness</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;Quite a lot has happened in this release of ColdExt, but I&apos;ll try to keep things as short and sweet... If that&apos;s possible :)&lt;/p&gt; &lt;p&gt;If you haven&apos;t heard of ColdExt before you are probably wondering what it is. ColdExt is a ColdFusion tag library which makes it easier to build rich user interfaces using the amazing &lt;a href=&quot;http://extjs.com&quot;&gt;Ext JS&lt;/a&gt; library. ColdFusion 8 has built-in support for some of the features of Ext JS 1.1, but the idea behind ColdExt is to stay up to date with the current Ext JS release (currently version 2.2) while providing support for as many UI components as possible, and to support CFMX7 as well as other CFML engines (more on this below).&lt;/p&gt; &lt;p&gt;I had originally planned to get Beta 3 out the door much sooner, but after reviewing the small amount of code generation I was doing I thought I should take it a step further. The result is that almost 75% of the ColdExt tags are being generated from a set of easy to update metadata (courtesy of some data scraping). In the event of a new version of Ext JS being released (as was the case with Ext JS 2.2) I can update existing tags with modified attributes or help text, across the whole library, in minutes instead of hours. This also makes it much easier to add new tags to support new components, which is fairly evident from the tag counts in this release (see below).&lt;/p&gt; &lt;p&gt;Making an appearance in Beta 3 is support for User Extensions which live in the new &quot;ux&quot; tag namespace, i.e. &amp;lt;ux:tagName&amp;gt;. The first wave of supported extensions include Grid Filters, Grid Group Summary, Grid Panel Resizer, Grid Row Expander, Grid Row Actions and Portals. If you&apos;re after support for a particular extension please put a request on the &lt;a href=&quot;http://coldext.riaforge.org/index.cfm?event=page.forums&quot;&gt;ColdExt forums&lt;/a&gt; and I&apos;ll see what I can do.&lt;/p&gt; &lt;p&gt;&lt;br&gt;The changes to ColdExt Beta 3 in a nutshell:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Supports Ext JS 2.2  &lt;li&gt;12 new Ext core tags, 11 new User Extension tags (supporting 6 extensions) and 11 new Demos &lt;li&gt;Support for new UI components such as Checkbox and Radio Groups, Date Picker (different to Date Field), Label, Progress Bar and Status Bar &lt;li&gt;Support for User Extensions such as Grid Filters, Grid Group Summary, Grid Panel Resizer, Grid Row Expander, Grid Row Actions and Portals &lt;li&gt;75% of the tags built by code generation, improving consistency and reliability  &lt;li&gt;The &amp;lt;ext:init&amp;gt; tag is now implicit in the &amp;lt;ext:onReady&amp;gt; tag and so is no longer required on every page, however it is still useful for page-level settings such as turning on ext-all-debug.js with the debug attribute&amp;nbsp; &lt;li&gt;New loadingMask boolean attribute on the &amp;lt;ext:onReady&amp;gt; tag to enable a loading indicator while the page and resources load  &lt;li&gt;New passThrough attribute on all tags to allow insertion of arbitrary JSON-formatted data (including potentially unimplemented Ext config properties) directly into Ext components for greater flexibility  &lt;li&gt;New attributeCollection attribute on all tags to support passing a ColdFusion Struct into the tag as attribute config data  &lt;li&gt;All string type attributes formatted with JSStringFormat() to avoid JavaScript errors  &lt;li&gt;Updated ColdExt XML dictionary for CFEclipse tag insight&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;br&gt;Also, good news on the CFML engine compatibility front is that ColdExt is now supported on &lt;a href=&quot;http://www.railo.ch&quot;&gt;Railo&lt;/a&gt; 3.0.0.008. The latest version on the Railo site is still 3.0.0.005 but you can update to the latest preview release by following the &lt;a href=&quot;http://preview.railo.ch/patch-preview-en.pdf&quot;&gt;preview patch instructions&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Unfortunately there is no &lt;a href=&quot;http://www.openbluedragon.org/&quot;&gt;OpenBD&lt;/a&gt; support just yet as there is &lt;a href=&quot;http://code.google.com/p/openbluedragon/issues/detail?id=53&quot;&gt;a bug with nested custom tags&lt;/a&gt; that I&apos;m waiting on a fix for, but hopefully ColdExt will be supported on all major CFML engines soon. Feel the love :)&lt;/p&gt; &lt;p&gt;So without further ado, download ColdExt Beta 3 and see the demos in action!&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;http://coldext.riaforge.org/&quot;&gt;Download ColdExt Beta 3 from RIAForge&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;http://www.madfellas.com/docs&quot;&gt;View the ColdExt Beta 3 Demos&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;br&gt;P.S. I moved to London last week and I&apos;ll be attending the &lt;a href=&quot;http://www.ukcfug.org/&quot;&gt;UKCFUG&lt;/a&gt; meeting on 6th November, so feel free to say &quot;Hi&quot; if you see me because I don&apos;t know any CF&apos;ers in London yet :) Happily I&apos;ve found a great room to rent which I&apos;ll be moving into on Sunday with my girlfriend, so now the big challenge is to find a job at a time where the world&apos;s economy is in rather poor shape. Fingers crossed...&lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>ColdExt</category>				
				
				<category>Ext</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 27 Oct 2008 10:36:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2008/10/27/ColdExt-Beta-3-Lots-of-Ext-JS-goodness</guid>
				
			</item>
			
			<item>
				<title>Weekend Coding Riffs - Issue #1</title>
				<link>http://www.madfellas.com/blog/index.cfm/2008/10/18/Weekend-Coding-Riffs--Issue-1</link>
				<description>
				
				&lt;p&gt;&lt;p&gt;I love coding while listening to music. Not only does it help block out unwanted background noise - like phones ringing, people typing loudly or the bad jokes of the office clown (just kidding, those things don&apos;t bother me so much) - a good guitar riff and some heavy drumming puts me &quot;in the zone&quot; for coding.&lt;/p&gt; &lt;p&gt;(Weird observation: I&apos;ve frequently had the experience where I&apos;ve been listening to music at work and paused a track to get up and go to lunch, and upon returning 45 minutes later I&apos;ve pressed play and the resumption of the song has put me straight back into &quot;the zone&quot;; almost like I didn&apos;t have a break in concentration. Weird but cool!)&lt;/p&gt; &lt;p&gt;So I thought I&apos;d start sharing some of the music I like, in a series of &quot;Weekend Coding Riffs&quot; postings. There are a couple of good music services around which let you share songs or playlists online, such as &lt;a href=&quot;http://www.deezer.com&quot;&gt;Deezer&lt;/a&gt; (my favourite at the moment, supports playlist) and &lt;a href=&quot;http://www.songza.com&quot;&gt;Songza&lt;/a&gt; (good for individual songs). I know there are other services like Pandora but these days it&apos;s unfortunately restricted to the US only. If you know of any others that work well then let me know ;)&lt;/p&gt; &lt;p&gt;I had a few great songs in mind today from upcoming Australian artists but some are really quite difficult to find online. Instead, I&apos;ve just picked a couple of songs with similarly themed names, from two of my favourite Aussie bands. Without further ado...&lt;br&gt;&lt;/p&gt; &lt;h3&gt;Cog - No Other Way&lt;/h3&gt; &lt;p&gt;Via &lt;a href=&quot;http://www.last.fm/music/Cog&quot;&gt;last.fm/music/Cog&lt;/a&gt;: &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;&quot;Organic in the sense that Cog play their instruments, some people would say Cog&#xe2;¬"s music resembles some sort of progressive rock that flows effortlessly from thick slabs of distorted guitars, twisting rhythms through to vast playgrounds of ambient organospace and back again. Not shy to incorporate sequencing and sampling to propagate more ideas in a live and recording environment, Cog feels this has opened the possibilities for more musical exploration.&quot;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;This is the opening track from Cog&apos;s latest release. This song has an amazing climax and is just a taste of the power they deliver in the other tracks.&lt;/p&gt; &lt;div style=&quot;width: 220px; height: 55px&quot;&gt;&lt;embed height=&quot;55&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;220&quot; src=&quot;http://www.deezer.com/embedded/small-widget-v2.swf?idSong=884707&amp;amp;colorBackground=0x555552&amp;amp;textColor1=0xFFFFFF&amp;amp;colorVolume=0x00C7F2&amp;amp;autoplay=0&quot;&gt;&lt;/embed&gt;&lt;br&gt;&lt;font color=&quot;#000000&quot; size=&quot;1&quot; face=&quot;Arial&quot;&gt;Discover &lt;a href=&quot;http://www.deezer.com/en/cog.html&quot;&gt;Cog&lt;/a&gt;!&lt;/font&gt;&lt;/div&gt; &lt;p&gt;&lt;br&gt;If you&apos;re a fan of any progressive rock / metal you need to &lt;a href=&quot;http://www.deezer.com/#music/album/100390&quot;&gt;listen to the whole album&lt;/a&gt;! :)&lt;br&gt;&lt;/p&gt; &lt;h3&gt;Karnivool - The Only Way (cover)&lt;/h3&gt; &lt;p&gt;Via &lt;a href=&quot;http://www.last.fm/music/Karnivool&quot;&gt;last.fm/music/Karnivool&lt;/a&gt;:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;&quot;Karnivool is a five-piece music group from Perth, Australia. Their music style is a combination of melodic progressive rock and alternative rock, with alternative metal influences. Major influences of the band are &lt;/em&gt;&lt;em&gt;Nirvana&lt;/em&gt;&lt;em&gt;, &lt;/em&gt;&lt;em&gt;Meshuggah&lt;/em&gt;&lt;em&gt; and &lt;/em&gt;&lt;em&gt;Carcass&lt;/em&gt;&lt;em&gt;. Capturing a perfect blend of both melodic beauty and heavy, spine-bending rock, Karnivool will appeal to anyone who desires a truly unique sound.&quot;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;This song is cover of an original song by &lt;a href=&quot;http://www.last.fm/music/Gotye&quot;&gt;Gotye&lt;/a&gt;, but the Karnivool guys do it amazing justice. I&apos;ve seen them play this song live and my spine was tingling the whole time, so turn it up loud!&lt;/p&gt;&lt;embed height=&quot;114&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;425&quot; src=&quot;http://songza.com/e/listen&quot; flashvars=&quot;zName=Karnivool%20-%20The%20Only%20Way&amp;amp;zId=a2r3-lwcUl3C8IXI&amp;amp;zAutostart=false&amp;amp;zType=flv&quot;&gt; &lt;/embed&gt; &lt;p&gt;Jump on over to their &lt;a href=&quot;http://www.myspace.com/karnivool&quot;&gt;MySpace page&lt;/a&gt; to check out some of their original songs. (In fact, the version of The Only Way on their MySpace page is much better quality, but I don&apos;t think it&apos;s possible to embed them, bah!).&lt;/p&gt; &lt;p&gt;&lt;br&gt;I hope someone finds these tracks interesting, and maybe in a fortnight I&apos;ll whip up another post. (Definitely not next weekend though, because &lt;a href=&quot;http://www.madfellas.com/blog/index.cfm/2008/10/16/Moving-to-London-looking-for-excitement&quot;&gt;I&apos;m moving to London&lt;/a&gt; ;) Haha...)&lt;/p&gt;&lt;/p&gt; 
				</description>
				
				<category>Coding Riffs</category>				
				
				<category>Cool Stuff</category>				
				
				<pubDate>Sat, 18 Oct 2008 11:02:00 -0700</pubDate>
				<guid>http://www.madfellas.com/blog/index.cfm/2008/10/18/Weekend-Coding-Riffs--Issue-1</guid>
				
			</item>
			</channel></rss>