<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-30496245</id><updated>2011-11-27T18:56:51.024-05:00</updated><category term='Open Bluedragon'/><category term='podcast'/><category term='portlets'/><category term='Centaur'/><category term='documentation'/><category term='China'/><category term='unit tests'/><category term='IDE'/><category term='SQL injection'/><category term='sessions'/><category term='Fusebox'/><category term='cfUnited'/><category term='CFML conferences'/><category term='cfEclipse'/><category term='polyglot'/><category term='cost'/><category term='mxUnit'/><category term='TDD'/><category term='frameworks'/><category term='Application.cfc'/><category term='peer review'/><category term='CFUG'/><category term='Railo'/><category term='pulse2'/><category term='eclipse'/><category term='Adobe Feeds'/><category term='Peer design'/><category term='JEE'/><category term='code review'/><category term='BDSC'/><category term='pulse'/><category term='mentoring'/><category term='Disc Golf'/><category term='OpenBD'/><category term='personal'/><category term='polyglot programming'/><category term='cfDevCon'/><category term='security'/><category term='nontechnical'/><category term='CVS'/><category term='fusebox documentation'/><category term='Code Quality'/><category term='OO'/><category term='Java'/><category term='Presentations'/><category term='Open Source'/><category term='pair programming'/><category term='PHP'/><category term='extending openBD'/><category term='CFML'/><category term='ANT'/><category term='Guangzhoul'/><category term='coding'/><category term='FuseNG'/><category term='Rant'/><category term='ColdFusion'/><category term='bFusion'/><category term='cf.Objective'/><title type='text'>&lt;cfrant /&gt;</title><subtitle type='html'>Rants and other ramblings from a Software Architect.
&lt;br&gt;By Adam Haskell</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>86</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-30496245.post-6623024707234254431</id><published>2010-07-30T10:34:00.004-04:00</published><updated>2010-07-30T10:47:08.404-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML conferences'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='bFusion'/><title type='text'>BFusion Bound/I'm bbbaaccckkkk</title><content type='html'>If you've not noticed a blog post from me since January that's because I haven't blogged ;) Life has been busy and most of my time has been spent on things I can't just go blogging about. Besides the majority of the work is not CF related and most of the folks out there would not find much interest in it. That being said I am ecstatic to announce I'll be teaming with Matt Woodward to provide a complete day of sessions/training at BFusion concentrating on Open Source CFML. BFusion is one of those conferences that has an awesome mix of CFML and non CFML folks. Many of them college students that like PHP or some other cool open source completely free (all the time) web language. This is a great audience for Open BlueDragon and I love showing them how awesome the CF world is. I'm sad I missed CFUnited, and cf.Objective for that matter, this year but it just was not in the cards. I'll definitely be as BFusion and with luck I'll be at CF Open Summit as well. Maybe dust off my CFML portlets stuff and show you how we are using it at Kroger, hint: if you work for Kroger in a store you've seen it and probably never knew it was CF powered.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6623024707234254431?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6623024707234254431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6623024707234254431' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6623024707234254431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6623024707234254431'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2010/07/bfusion-boundim-bbbaaccckkkk.html' title='BFusion Bound/I&apos;m bbbaaccckkkk'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-8626699346075811291</id><published>2010-07-30T10:26:00.003-04:00</published><updated>2010-08-03T14:36:40.149-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><title type='text'>CF is not Java, it is a Java Framework</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; "&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:small;"&gt;So the other day I saw this on a ColdFusion mailing list and I am once again reminded how over simplified some of our developers view on the (Java) world is: &lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:small;"&gt;&lt;blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; "&gt;Why is no one mentioning the Java argument? Ask your friends if they think Java sucks and can't handle load.&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;I really dislike it when people say this. It simply shows a lack of understand and blind ignorance for the technology they love. Just because the engine is written in Java does not mean it is automatically at the same level as Java. There are many places where ColdFusion sucks (performance or other wise) compared to Java. There are indeed places where ColdFusion is better than Java. This is because ColdFusion is a Java framework and  it all depends on ColdFusion's architecture. Much of ColdFusion's architecture rely's on reflection, which still has a stigma in the Java community of poor performance (though that has largely gone away). Due to this reliance CF has been tweaked over the years to get performance so things like CF9's hibernate integration are wicked fast even compared to the typical Java implementations (you have to pay the reflection piper with Hibernate either way). Heavy objects though will not work as fast with ColdFusion. Yes this has become much faster but it is not Java and it will never be Java. ColdFusion is a Java framework, please stop with the it is Java argument. Yes it does compile to Java classes but recognize that those classes are absolutely useless without the CFML engine that runs as a &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:small;"&gt;&lt;i&gt;framework&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:small;"&gt; to execute the ColdFusion generated classes. The engine has it's strengths and weaknesses just like any other Java framework. In the Java community if a site crashes I immediately ask is it wicket? I ask this because I've had bad experiences with it and memory management, among other things. No one is going to say ohhh well it is Java, b/c wicket still sucks (sorry anyone that likes wicket, I've not looked at it in years so it may well have risen above stuck pig level) as a Java framework.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-8626699346075811291?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/8626699346075811291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=8626699346075811291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8626699346075811291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8626699346075811291'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2010/07/cf-is-not-java-it-is-java-framework.html' title='CF is not Java, it is a Java Framework'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-6117715371475401012</id><published>2010-01-18T10:11:00.004-05:00</published><updated>2010-01-18T10:29:01.738-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='portlets'/><title type='text'>CFML Portlets Update</title><content type='html'>Over the past week I've had the pleasure of working with an old coworker of mine &lt;a href="http://www.robertburns.me/blog/"&gt;Bob Burns&lt;/a&gt; on portal work. Thanks to some fine sleuth work from Bob we tackled a silly bug that prevented multiuple protlets per war. Bob added some nicer error handling and we have tested and confirmed ColdFusion 8 support on JBoss and Websphere. I found out ColdFusion is not quite as case insensitive as OpenBD when it comes to sharing JEE variables.  I'm hoping to get some more time this week to confirm Liferay support as well as Railo support on most of the portals as well. I am also contemplating if I want to add CFC support similar to how ColdFusion 9 is allowing to you use portlets. I haven't created a new build yet mostly because I am hoping to get a few of the aforementioned things tucked in before the .2 release. I will release .2 next Monday at the latest. Thanks to Bob for the help and a little needed motivation with the framework thus far.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6117715371475401012?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6117715371475401012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6117715371475401012' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6117715371475401012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6117715371475401012'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2010/01/cfml-portlets-update.html' title='CFML Portlets Update'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-7784641630720620038</id><published>2009-11-24T18:06:00.008-05:00</published><updated>2009-11-25T10:51:50.501-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML conferences'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Bluedragon'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><title type='text'>OpenBD and CF Conferences</title><content type='html'>Below is our, OpenBD Steering Committee's, official stance on the matter that was brought up &lt;a href="http://groups.google.com/group/openbd/browse_thread/thread/99b566461554bdb?hl=en"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;We feel it is more important for folks to know why they won't be seeing any OpenBD sessions at any CF conferences. While those involved with OpenBD are willing and happy to share some of the cool stuff we have done on OpenBD with the community at a conference, we'd hate to do that to the detriment of the conference by endangering a major sponsorship opportunity.&lt;br /&gt;&lt;br /&gt;OpenBD has two distinctly different development branches. We have our standard JEE development branch which has had tremendous contributions from the community, and we have the GAE branch which has received great accolades from both inside and outside the CFML community. New Atlanta employees have been very active in the development on the GAE branch of OpenBD, and these contributions go beyond OpenBD. They've been the focus of many developers outside the CFML community and helps show CFML in a positive light to developers outside the CFML community.&lt;br /&gt;&lt;br /&gt;As an example, Vince is creating a VFS for GAE that is a completely independent open source project (http://code.google.com/p/gaevfs/). This benefits not only OpenBD on GAE, but everyone deploying Java applications to GAE. It's a great contribution and by extension can only help reflect positively on CFML as a whole.&lt;br /&gt;&lt;br /&gt;Remember too that it's not at all unusual for open source projects to have significant resource contributions from commercial companies. In fact, most well-known open source projects operate this way. A large contribution to Eclipse comes from IBM associates, but Eclipse is certainly not an IBM product even though it's used extensively by IBM. An important distinction is that Eclipse's license allows for commercial use, one reason why IBM is interested in Eclipse. OpenBD's license (GPLv3) does not allow for commercial redistribution and that helps ensure companies like New Atlanta or Adobe can not take and sell OpenBD or its derivatives. We do this for the protection of the community to guarantee they will always have a free fully open sourced engine for CFML development.&lt;/blockquote&gt;Edit: The title has changed since the original post, to be less confrontational and I've modified the introduction as well to try not to be confrontational. The last thing we've intended to do was be negative or against any group or individual. And inresponse to a couple private messages and one public the reason this is on my blog and not OpenBD's blog is 2 fold: I typically am the communication liason with the CF community, in tandom with Matt and sometimes Niati, and OpenBD servers more than just the CF community and we did not want to pollute that space with politics like this. We try to avoid this stuff and would have been happy to not talk about it but it was brought up so we responded.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-7784641630720620038?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/7784641630720620038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=7784641630720620038' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7784641630720620038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7784641630720620038'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/11/openbd-will-most-likey-not-be-presented.html' title='OpenBD and CF Conferences'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-4625933945026015237</id><published>2009-11-11T15:27:00.004-05:00</published><updated>2009-11-11T15:43:01.966-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='FuseNG'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><title type='text'>FuseNG Update</title><content type='html'>A few months back I tweeted that anyone can build a framework in CF; what we need is more good software out there. Given the choice between maintaining a framework and listening to the nagging whining community or developing an open source application and listening to nagging and whining community I'll take the application. My heart is just not in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;FuseNG&lt;/span&gt;, or any other framework, and I can't hold onto the framework to make people happy or ensure it has a support person. That's just not what I want to do.&lt;br /&gt;&lt;br /&gt;For those that thought it would never get off the ground congratulation you were right! To those that had new hope for the future of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Fusebox&lt;/span&gt;,  sorry &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;FuseNG&lt;/span&gt; will not be it for you. You see over the past year my career has change drastically. I do not officially work on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;ColdFusion&lt;/span&gt; at work any longer and I never find myself in the situation where I am using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Fusebox&lt;/span&gt;.  I can not continue to develop a framework I don't use, it will stagnate. I hope someone else in Kroger will step up and take on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Fusebox&lt;/span&gt; or revive the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;FuseNG&lt;/span&gt; fork, but that is up to the other individuals that originally looked to me for leadership of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;FuseNG&lt;/span&gt;.  As much as I am sure some of you would like to leave feedback or comments I'd rather not open the potential for flames so comments are off. If you really must share your opinion feel free to email me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-4625933945026015237?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4625933945026015237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4625933945026015237'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/11/fuseng-update.html' title='FuseNG Update'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-4593276548290624353</id><published>2009-09-14T15:59:00.003-04:00</published><updated>2009-09-14T17:01:35.624-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Bluedragon'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><title type='text'>OpenBD is Free as in Speech</title><content type='html'>So I'll admit to not keeping up with the blogosphere lately, I've been to busy checking out Fail Blog and related sites. But Adam Lehman Pinged me and asked for my thoughts on his &lt;a href="http://www.adrocknaphobia.com/post.cfm/speech-vs-beer-why-all-open-source-projects-are-not-equal"&gt;recent post&lt;/a&gt;. What originally began as a comment turned into a little bit more than a comment length response so as the blogpshere goes sometimes I've created a blog entry instead. Since I think it is most important I will answer the second half of Adam's question first.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt; "Is the motivation of the OpenBD team ... [a] conscious effort to take CFML market share from Adobe?" &lt;/span&gt;&lt;/blockquote&gt;Nah. Hell there is a reality here right? If that was the motivation we are failing miserably since we don't present OpenBD at CF conferences (unless invited by the organizer) and we don't sponsor CF conferences. To date the only sponsoring OpenBD has done was $100 + raffle prizes at Spring BR 2008 which was largely to a PHP crowd (by design). So again just so there is no confusion we realize that by putting a "free" (as in cost) alternative out there, there will be some cannibalization. This happens but we have no interest in acquiring market share from inside the community.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;"Is the motivation of the OpenBD team based in raising the quality of CFML"&lt;/span&gt;&lt;/blockquote&gt; "Raising the quality of CFML" is sort of awkward terminology to me. We are certainly interested in trying out concepts and putting out new/innovative features (especially as related to the cloud) but I think our bigger goal is providing an open source engine. &lt;span style="font-weight: bold;"&gt;We want to provide a fully open sourced CFML engine to those interested in Open Source software.&lt;/span&gt; We certainly want to bring new ideas, new ways of thinking, new avenues for CFML but raising the quality? I guess that depends on how you qualify what is meant by quality. The key here for us is concepts, and bringing new concepts to the community.&lt;br /&gt;&lt;br /&gt;So there is my answer to your question Adam/community. I hope you accept is but I also feel like I need to add some additional commentary to the discussion of Free as in Speech v. Free as in Beer. From Adam's definition I agree I think OpenBD does straddle the lines a small bit. But I think there are a couple of things to mention to help clarify, as an example a lack of a road map. OpenBD does have a &lt;a href="http://wiki.openbluedragon.org/wiki/index.php/RoadMap"&gt;road map&lt;/a&gt;. Often times we do stray away from the road map and this the fault of a couple things. Sometimes contributors to OpenBD get a  idea about something not on the road map and a new feature will popup over night. OpenBD contributors are passionate programmers and this is going to happen. I've come embrace this as to do anything else would be futile  not to mention stifle creativity of the OpenBD team. To Andy and Alan's credit as they begin to implement features not on the road map they have done a superb job posting wiki entries and integrating feedback into the features.  The second issue with OpenBD's road map is a result of  poor project management rather than a conscious decision to hide what is going on. I talked with Alan about this many months ago and I stated my intent to step up and do more PM work. To date I have failed at this job, mostly due to a lack of effort and allow me to explain why (I think the explanation is telling).&lt;br /&gt;&lt;br /&gt;I only have so much time to devote to OpenBD and lack of a road map guidance has typically been an issue brought up by the CFML  community not folks outside of the community. Given my limited time to work on OpenBD I tend to spend most of my time focusing on what folks are saying outside of the CFML community as I think that is more important right now. As OpenBD matures and becomes slightly less erratic (think about the cloud development it is always innovating) we'll probably have more and more folks ask for a solid road map and that is the time when it will happen. Right now I think it is important but there are other pressing issues for me that I think will serve to grow the OpenBD community  (and the greater CFML community) rather than appease the ColdFusion users looking for alternatives.&lt;br /&gt;&lt;br /&gt;And the final topic licensing. This comes down to philosophy. As a commercial entity (Adobe, and a lesser extent Railo) and product manager (Adam specifically) I would expect these folks to have the stance that they do on  licensing. That's not to say put in another position they would not have the same opinion but I think given their position wanting a sharable license makes sense. As a staunch (rabid maybe?) advocate of Open Source the opinion of the OpenBD steering committee is slightly different. What I mean by this is OpenBD is open source for the reason of wanting to be open source and we don't feel others should take that source, modify it, and NOT share it with the community. I recognize this is not a popular position with some folks but it is the position of OpenBD. At the end of the day let's be realistic OpenBD's architecture is so wildly different that it'd typically be detrimental to take anything but concepts from the engine and concepts are not covered under GPL. This brings me back to my original statements above. We certainly want to try out new things and take CFML to new places and new markets but we are interested in doing this entirely open source and keeping it and all versions of OpenBD open source. That is the intent of OpenBD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-4593276548290624353?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/4593276548290624353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=4593276548290624353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4593276548290624353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4593276548290624353'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/09/openbd-is-free-as-in-speech.html' title='OpenBD is Free as in Speech'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-413889207461857529</id><published>2009-08-16T15:27:00.004-04:00</published><updated>2009-08-16T16:11:22.007-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML conferences'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Quality'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='mentoring'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><category scheme='http://www.blogger.com/atom/ns#' term='code review'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><category scheme='http://www.blogger.com/atom/ns#' term='sessions'/><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='unit tests'/><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='FuseNG'/><category scheme='http://www.blogger.com/atom/ns#' term='pair programming'/><category scheme='http://www.blogger.com/atom/ns#' term='cfUnited'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='mxUnit'/><title type='text'>CFUnited Presentation Roudup</title><content type='html'>CFunited was busy for everyone involved so I have no excuse for falling behind in making blog entries as many others just as busy as I did kept up just fine. I'll only post 2 entries for CFUnited this one with all my presentations and then a second one recapping my CFUnited experience (spoiler: It kicked ass!).  On with the recap!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Red Green Refactor&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://dl-client.getdropbox.com/u/64114/CFUnited09/289_Adam_Haskell_Red_Green_refactor.pdf"&gt;PDF&lt;/a&gt;  &lt;a href="http://dl-client.getdropbox.com/u/64114/CFUnited09/RGR-TDD.zip"&gt;Keynote&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was fortunate enough to be given the opportunity to present this topic 2 times at the conference. I feel like both presentations were solid and entertaining; including a reference to old Purple Pants (if you do not know, probably best not to ask :) ). Barney B was &lt;a href="http://www.barneyb.com/barneyblog/2009/08/15/cfunited-2009/"&gt;disappointed&lt;/a&gt; in my lack of gratuitous vulgarity, I'll attempt to not let him down next year.  I got really good feedback, even testimonial that TDD does speed up development!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fusebox Past Present Future (Busy Developers Guide to Fusebox)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://dl-client.getdropbox.com/u/64114/CFUnited09/233_Adam_Haskell_Fusebox.pdf"&gt;PDF&lt;/a&gt;  &lt;a href="http://dl-client.getdropbox.com/u/64114/CFUnited09/Fusebox%20PPF.zip"&gt;Keynote&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This was a bit awkward given the current situation surrounding Fusebox and Myself. The first half I did my best to sell on the framework and break down some of the old myths. At about 5:55 I entered my 5th Myth: Fusebox is Dead and instead of really getting into that I made the attendees aware of the current state (at the time) and announced I was resigning. I think spent the second half of the presentation talking about FuseNG (or Fork-a-doodle-doo). Expect more entries soon surrounding FuseNG 1.0 (code named Cuddles).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Code Review and Team Dynamics&lt;/span&gt;&lt;br /&gt;&lt;a href="http://dl-client.getdropbox.com/u/64114/CFUnited09/376_Adam_Haskell_Code_Review_Team_Dynamics.pdf"&gt;PDF&lt;/a&gt;  &lt;a href="http://dl-client.getdropbox.com/u/64114/CFUnited09/Code%20Rev%20and%20Mentoring.zip"&gt;Keynote&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This started my 3 hour marathon of presenting. It was also a late add to the conference, I was subbing for Jake Munson who was unable to present do to person reasons. I love this presentation, I've given it a few times previous. I felt really good about my delivery and I think everyone got something out of the presentation. I think I might create a new presentation on the same vein but with more emphasis on Team Dynamics and mentoring for next years conferences. I appreciate all the positive feedback from everyone!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Busy Developers Guide to Java Part 1&lt;/span&gt;&lt;br /&gt;&lt;a href="http://dl-client.getdropbox.com/u/64114/CFUnited09/292_Adam_Haskell_Java_part_1.pdf"&gt;PDF&lt;/a&gt; &lt;a href="http://dl-client.getdropbox.com/u/64114/CFUnited09/JavaPt1.zip"&gt;Keynote&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This was one of those presentations with so much content it has to go perfect or you run out of time. I screwed up 2 times and ran over. I was also called Drill Sgt. and Reverend after this presentation. Apparently I was too brash haha! I felt everyone still learn a great deal about java and I got some great positive feedback as well, definitely help enable folks in this one. This was the second session I got to repeat. The second iteration I tried not to preach as much I also pulled some content that might have been too preachy. I ended right on time and had some great interaction, just like the first time. I think this session has great replay potential for future conferences.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Busy Developers Guide to Java Part 2&lt;/span&gt;&lt;br /&gt;&lt;a href="http://dl-client.getdropbox.com/u/64114/CFUnited09/342_Adam%20Haskell_Java_part_2.pdf"&gt;PDF&lt;/a&gt; &lt;a href="http://dl-client.getdropbox.com/u/64114/CFUnited09/JavaPt2.zip"&gt;Keynote&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This was my final presentation of the 3 hour presentation marathon. I'll admit that about halfway through the Part1 session I felt ill. This continued into part 2. About half ways through one of the most embarrassing things happened, I had to excuse myself from the presentation for a moment. Luckily this was the last session of the day and everyone was very understanding and allowed me to run over the time and finish the content. I appreciate everyone's patients with me. Aside from the total misery I was in as far as how I felt I think this presentation was awesome. I got good participation from the attendees and very positive feedback from many folks. Anytime I stick around after a session to answer additional probing questions seeking to learn more is awesome.&lt;br /&gt;&lt;br /&gt;Overall I had a blast presenting. I hope everyone attending my presentations was entertained and learned or was motivate. As long as I was able to  positively affected at least one individual that is all the more I can ask for as a presenter the rest is gravy. Our community is growing and I am glad to be part of the growth. Here's to CFUnited and any other conference that facilitates collaboration and growing! Thanks Stellr for organizing, promoting and kicking ass.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-413889207461857529?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/413889207461857529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=413889207461857529' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/413889207461857529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/413889207461857529'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/08/cfunited-presentation-roudup.html' title='CFUnited Presentation Roudup'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-8940629651275556281</id><published>2009-08-13T07:32:00.002-04:00</published><updated>2009-08-13T07:56:37.092-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FuseNG'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><title type='text'>FuseNG Announced</title><content type='html'>I have a quick, and I mean quick, moment to post something exciting and sad to my blog. The creation of a new framework is official, the name: FuseNG. FuseNG (think, Fusebox Next Generation)  is the official name of the fork from Fusebox 5.5.1. I can't say it was a rough decision to make. I wish I could say otherwise in a sense but it was just so depressing seeing where we were as a community as Fusebox I felt I had no choice. On the other hand I am lucky enough to have a great community behind me; that was really empowering for me and helped make the decision to fork extraordinarily simple.&lt;br /&gt;&lt;br /&gt;I chose FuseNG as the name for a couple of reasons:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Suggestions like Fork a doodle doo, while very entertaining (the first 500 times it was suggested to my by someone), do not represent what I want people to remember about the framework.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I am a tad bit on the uncreative side and most of the cool names with Cold or Box are taken :)&lt;/li&gt;&lt;li&gt; I love Star Trek TNG so doing anything that resembles one of my favorite television series is cool &lt;/li&gt;&lt;li&gt;I feel that it reinforces a core value: FuseNG is not intended to alienate the Fusebox community with the fork. It really is about pushing the framework forward into the Next Generation of the framework. A bit of a history lesson Fusebox almost became FuseNG one other time interestingly enough I was told this after I chose the name without prior knowledge.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;I will remain active on the Fusebox forums and websites, I think  it is important that Fusebox exists in some capacity to provide those that may not know about our new endeavours a starting point to learning about frameworks, MVC and code generation. So with that I bid Teratech adieu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-8940629651275556281?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/8940629651275556281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=8940629651275556281' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8940629651275556281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8940629651275556281'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/08/fuseng-announced.html' title='FuseNG Announced'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-6419866540066273280</id><published>2009-08-09T10:19:00.004-04:00</published><updated>2009-08-09T10:25:52.420-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='cfUnited'/><title type='text'>CFUnited Introduction to Java</title><content type='html'>For anyone attending my Java part 1 session I have checked in all of my sample code to my SVN repo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://svn.cfinnovate.com/trunk/presentation-materials/"&gt;http://svn.cfinnovate.com/trunk/presentation-materials/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;   There are 2 Eclipse projects you will want to download from the repo. I wanted to make this available ahead of time for anyone interested in following along! I'd recommend download it now and then syncing at the conference, download speeds have historically sucked at conferences.&lt;br /&gt;&lt;br /&gt;    I do not think part 2 will have enough time for much code. Since it is all about JEE environment we'll spend most of our example time exploring the ColdFusion installation (Hopefully you have this already!).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6419866540066273280?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6419866540066273280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6419866540066273280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6419866540066273280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6419866540066273280'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/08/cfunited-introduction-to-java.html' title='CFUnited Introduction to Java'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-8431636061145611141</id><published>2009-08-05T17:07:00.013-04:00</published><updated>2009-08-08T21:55:01.290-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><title type='text'>An Open Letter to The Custodians of the Fusebox and the Community</title><content type='html'>I feel like I have shielded the community about strife that has existed within Fusebox team too much. It's not my intent to air dirty laundry out in public but I do think I should have been more open with the community about my disapproval of how Fusebox has been run. Presently, Teratech has ownership of the Fusebox domain and the rights to the source code. While I believe Teratech sought to gain those rights with the best interest of the community at heart, I believe it is time for a change.&lt;br /&gt;&lt;br /&gt;     Fusebox has the prestigious history of being the first major ColdFusion framework and Fusebox, in all its forms, powers thousands of applications worldwide. It is imperative Fusebox continues to prosper and advance. The Fusebox Framework has stalled and is as a rudderless ship among the seas of source code. What Fusebox needs is an injection of active, willing leaders that are willing to take an active role in the evolution of the framework, with the community at the forefront of road map. A group has formed, consisting of me (Adam Haskell), Robert Burns and Tony Bommarito and Chris Weller and is willing and able to provide the energy and leadership to move the framework forward.&lt;br /&gt;&lt;br /&gt;    After a spirited conversation with Michael Smith the other night it is clear we have irrevocable differences centering around the leadership of the team behind Fusebox. Fusebox has a bright future ahead of it under the proper leadership. We have an opportunity to make Fusebox easier to use and provide tools and options to allow a developer to grow with the framework. New active leaders can focus attention on more than just the framework's code by fostering more active community involvement in documentation and tutorials. Fusebox has grown tremendously under Teratech and provides great tools for developers and I think we now have the opportunity to make the framework easy to jump into, something that can be leveraged in less than 30 minutes. We can accomplish all this and more and remain free and open in source and in policy. The license can remain Apache licensed and free for everyone (let me be clear here Teratech is NOT threatening to change this). To be clear I have no intention of changing the license from Apache either. This is my commitment to the community.&lt;br /&gt;&lt;br /&gt;This is what I would like to see from Teratech to prevent a fork in the framework:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Pass control of Fusebox Domain and Source Code to Community under the leadership and copyright of myself (Adam Haskell), Sean Corfield*, and Robert Burns&lt;/li&gt;&lt;li&gt;Work closely with the community and be willing to provide certified Fusebox training produced by the core group&lt;/li&gt;&lt;li&gt;Become an active member of the community, the community can only gain from Teratech's involvement&lt;/li&gt;&lt;/ol&gt;On a final note I do want to sincerely thank Teratech for what they have done, if they (and Sean Corfield and Simeon Bateman) did not step up 3 years ago and subsequently get Fusebox under the Apache license I would not being posting this today. They have empowered the community to ensure Fusebox remains a stellar framework. Teratech has affirmed their rights to the domain and to the source code under the name of Fusebox. While I respect the law in this case, there are irreconcilable differences between me, as Lead Developer of the Fusebox Framework, and Teratech. As such, I ask the community to let their voices be heard and to act quickly. Should these differences between me and Teratech remain unresolved, I'll resign from Lead Developer of the Fusebox Framework on August 12th, 2009 at 6:00PM EST. At which point in time a fork will be made available to the public and the essence of Fusebox will live on under a new banner.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*Myself, Tony, Chris and Robert all work for the same company and I felt it best that a person from the community outside of our company was on the copyright. Since the mind share of the current version of Fusebox is Sean's I felt it appropriate that he be on the copyright, we have spoken and he is in agreement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-8431636061145611141?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/8431636061145611141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=8431636061145611141' title='38 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8431636061145611141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8431636061145611141'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/08/open-letter-to-custodians-of-fusebox.html' title='An Open Letter to The Custodians of the Fusebox and the Community'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>38</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-6092428461842825215</id><published>2009-08-03T09:54:00.008-04:00</published><updated>2009-08-03T16:14:41.425-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='cfUnited'/><category scheme='http://www.blogger.com/atom/ns#' term='OO'/><title type='text'>Want to Learn OO?</title><content type='html'>Last week Ben Nadel posted an &lt;a href="http://www.bennadel.com/blog/1672-Win-A-FREE-Ticket-To-CFUNITED-2009.htm"&gt;entry&lt;/a&gt; detailing how to win a free ticket to CFUnited, which rocks. Since I am giving 4 different presentation I didn't figure I was eligible for a free ticket. I resisted posting my anticipated topic, which is probably &lt;a href="http://cfunited.com/2009/topics/263"&gt;Living the in Cloud&lt;/a&gt; from Sean Corfield (which I will be missing the first time through thanks to my &lt;a href="http://cfunited.com/2009/topics/233"&gt;Fusebox&lt;/a&gt; presentation) or &lt;a href="http://cfunited.com/2009/topics/244"&gt;Thinking outside of the ColdFusion Box&lt;/a&gt;. I digress though, in reading the comment stream from Ben's entry (how you enter by the way) I've noticed a pattern that many of the respondents are wanting to learn more about OO. I find this so funny since we've all seen recently how &lt;a href="http://www.advantexllc.com/blog/post.cfm/how-oo-almost-destroyed-my-business"&gt;evil&lt;/a&gt; &lt;a href="http://groups.google.com/group/coldfusionoo"&gt;OO&lt;/a&gt; can be. I have not really weighed in and I will, mostly, not weigh in on that subject.   If you choose you would like to learn OO and have not been scared away!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Welcome to the Treadmill&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;      Learning OO is admirable and hard, we've seen this detailed hundreds of times.  The world is full folks using the big D word (depends)  and many folks on the treadmill known as learning OO. You see learning OO is not a steep learning curve it is a treadmill. You feel like you are getting no where because not matter what you do you really are getting no where. Don't give up on me yet, let's think about this for a second. You don't get on a treadmill to get somewhere, if you do you are indeed a moron. You get on a treadmill to get fit, stay in shape, build stamina etc.. Learning OO does not allow you to build anything new or different than before. Don't think that once you have learned OO you will magically have a different end result. You will not. The end result will be the same, a functional application. Now how it is accomplished will be drastically different but the end result is the same. What the hell does this all mean? Well a couple of things really.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Setting Expectations&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Firstly if you want to learn OO just do it.  Not just learning OO but give OO it a try and accept what ever comes out*. Remember this is a treadmill, there is no end only more running. If you get tired, annoyed or are otherwise not seeing the results you want get off the treadmill. Try something else for a while, and maybe you can come back and try again later. Next time you try though remember there is no end and learn from what you did last time. Maybe this time you can push yourself harder or dig a little deeper, or maybe now you have a new pair of shoes (but let's face it shoes may help on a real treadmill but typically when I program I don't wear shoes).&lt;br /&gt;&lt;br /&gt;Secondly, and this one is a bitch, you can not learn OO in 50 minute increments by listening to community leaders. No matter how great the presenter's OO foo is there will be so much context, back story and other situational circumstances encapsulating everything he/she divulges that you will inevitably misinterpret what he/she is saying at least 40% of the time. If you want to learn OO going to presentations like this is like drinking an energy drink; it is great for a short jittery unfocused burst of learning OO but it typically is no help in long term commitment to learning OO.&lt;br /&gt;&lt;br /&gt;Should this discourage anyone from going to these types of presentations? Heck no, just know what to expect and know that you have to focus that energy on 1 concept at a time as you learn. You should also try to learn/attend presentations that are more focused and/or that teach critical thinking skills.  While some presentation or practices will not mention anything about OO they will indeed go a very long way in enabling you to learn OO.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Red Bull Presentations&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So what presentation might one visit to learn the skills to use to learn OO? You may think oh hows about your &lt;a href="http://cfunited.com/2009/topics/292"&gt;presentations&lt;/a&gt; on &lt;a href="http://cfunited.com/2009/topics/342"&gt;Java&lt;/a&gt;. Java is OO that will enable me right? Nope that'll screw you up, bigger than life. Do not go into learning any other language with the hopes of learning how to program OO in another (drastically different)  language. That's like trying to kick your smoking habit by increasing the amount of alcohol you consume.  Might sound good at the time but it's just gonna fuck you up more in the long run. There are good reasons to learn Java wanting to learn OO in an "OO language" is not one of them.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cfunited.com/2009/topics/238"&gt;Design Patterns for ColdFusion&lt;/a&gt; that has got to be an enabler right? Nope, sorry it's an energy drink. Presentations like this are good for you if you've been on the treadmill for a bit; you know where your pulse is accelerated but you're still trying to find your rhythm. If you've been playing OO for a while but don't have that background or know a design pattern or 2 but don't quite grasp why or how these design patterns are use these types of sessions greatly help in clarifying and possibly introducing a new design pattern. The reality is it's buck shot, it's a spray of design patterns, if you try to pick them all up you are being unfocused, yep energy drink. Most design patterns warrant their own sessions to really allow the exploration of real life examples on how they solve a problem. Maybe next year we can have an evening of Design patterns with 25-30 minute BOFs (not presentations, BOFs) discussing a single design patter, and have 2 or 3 BOFs a night.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Getting the Tools to Fish&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Enough with the what not to go to, you want to learn OO right? At least at first take language out of it, that's what a good enabler will do. These are learned skills that are not specific to a language. &lt;span style="font-weight: bold;"&gt;Note&lt;/span&gt;: I said &lt;span style="font-style: italic;"&gt;at first&lt;/span&gt; sooner or later language is key to understanding what concepts to even attempt. A Presentation like &lt;a href="http://cfunited.com/2009/topics/243"&gt;Design Diagrams for CFCs and Databases&lt;/a&gt; is an enabler. This helps you learn the language of OO. What's the point of attending a design patterns presentation if you are not even going to entirely capture the real meaning of some of the words used? The beauty of learning the language of OO and how to design is you don't even have to code to see if your OO concepts you are learning will hold up. If you can diagram you can make a system with pretty cave drawings first and see how well it will work.&lt;br /&gt;&lt;br /&gt;Next one of my topics &lt;a href="http://cfunited.com/2009/topics/289"&gt;Red Green Refactor&lt;/a&gt;. Learning how testing works and why testing produces better code really can empower a person. Beyond improving code this gives you a mechanism to learn anything. I've found, as have others, when I want to learn a new language first thing I do is figure out how to write tests. In respect to OO, what you will find is that Tests, and TDD, allow you to first hand interact with the Objects you create. Its like a UAT for your objects. The theory is if I write a testable object I've written a better object. Sometimes reality begs to differ but at best I've written very nice Objects, at worst I now have tests that will help ensure my API and functionality is the same when I go back to refactor it later. That is pretty empowering and really helps you get off that treadmill of OO for a bit and pick back up later without concern of tripping on your shoe laces.&lt;br /&gt;&lt;br /&gt;Lastly, and admittedly this is a bit of a buck shot presentation, John Paul Ashtenfelter's &lt;a href="http://cfunited.com/2009/topics/244"&gt;Thinking Outside the CF Box &lt;/a&gt;will do just that bring you into a different world that forces you to think differently. I say earlier you should never learn another language with the motivation of learning a concept to apply somewhere else (don't learn Java so you can do OO in CF). That being said learning how other languages operate or how life is made simpler elsewhere can really open your eyes and help you think differently about how you solve today's problems in today's language. Learning concepts elsewhere is a good idea you just always have to make sure you temper those ideas and apply them (or not) in the proper way of the language you are working with at the time, otherwise you end up with interfaces in CFML.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Everything has it's place&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; I want to stress that all the presentations bring great value to the community. However, you need to know yourself and your comfort level and attend appropriately. Obviously I think learning Java is a great idea but the context/motivation for learning it is not learning OO it is learning it to leverage it in ColdFusion, or learning another skill set to increase you value in the technology community. Presentations on OO or OO concepts like design patterns help re-enforce what you are trying but unsure of, it also may provide the little extra boost of energy you need. Good luck to all that entered (hell the drawing will have happened by the time i publish this) and good luck to all that attend. If they will help please attend my sessions, I hope to see everyone at the bar sooner or later.&lt;br /&gt;&lt;br /&gt;*I've shared this story before but my first attempt at OO was back in ColdFusion 6.0 and I cfincluded my first object on the page. I quickly learned how stupid it was to do this and that&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;/span&gt;I really failed miserably at OO but I learned and got better. The key is I just tried and learned, I'm still on the treadmill.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6092428461842825215?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6092428461842825215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6092428461842825215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6092428461842825215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6092428461842825215'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/08/want-to-learn-oo.html' title='Want to Learn OO?'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-8466093610476450207</id><published>2009-06-25T23:42:00.005-04:00</published><updated>2009-06-25T23:57:47.561-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Railo'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><title type='text'>Railo on SVN and Team Project Sets</title><content type='html'>Finally! You can now build Railo of SVN. Unfortunately the architecture of Railo begs for some simplification but that's beside the point really I suppose. Sean Corfield has posted some &lt;a href="http://corfield.org/blog/index.cfm/do/blog.entry/entry/Building_Railo_from_Source"&gt;directions&lt;/a&gt;. The directions are pretty easy to follow but thanks to Railo's architecture it requires the setup of multiple projects in eclipse, which while not over complicated it is slightly annoying. To help out the enthusiastic folks I figure I'd take this opportunity to introduce everyone to Team Project Sets in Eclipse.  Team Project Sets in Eclipse make it easier to setup multiple projects and share that information with team mates or others. Whilst it does not setup as much as I'd like it does get all the projects setup and connected to SVN  with a simple import. I've put a Team Project file up on my drop box account &lt;a href="http://dl-client.getdropbox.com/u/64114/Railo.psf"&gt;here&lt;/a&gt;. To use this simply download the PSF, then in Eclipse select File-&gt;Import-&gt;Team-&gt;Team Project Set. Once you import this file Eclipse will get to work connecting to SVN and downloading all the source.  The only difference from Sean's directions is I placed the dependent jar's in an Eclipse project Railo-libs (which will allow for easier updates later) so when you re-add the Jars to the build path just select Add Jars instead of Add External Jars.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-8466093610476450207?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/8466093610476450207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=8466093610476450207' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8466093610476450207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8466093610476450207'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/06/railo-on-svn-and-team-project-sets.html' title='Railo on SVN and Team Project Sets'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-4430825457273462322</id><published>2009-06-07T09:14:00.004-04:00</published><updated>2009-06-07T09:21:36.943-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Quality'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML conferences'/><category scheme='http://www.blogger.com/atom/ns#' term='cf.Objective'/><category scheme='http://www.blogger.com/atom/ns#' term='code review'/><title type='text'>Code Review and Mentoring</title><content type='html'>I've had quite a few people ask about the presentation slides for my Code Review and Mentoring presentation at cfObjective. I've been intending to post them for a while and I keep getting distracted. I think this is one of my more enjoyable topics. I feel like sometimes technical how-tos are hard to cover in under an hour but Code Reviews and mentoring you can get a good bit of ideas across in an hour. I did not get to go on my Scrum rant this time but 50 minutes is 50 minutes. Thanks to all that attended and my appologies on the delay in my &lt;a href="http://dl-client.getdropbox.com/u/64114/CodeReview-v2.pdf"&gt;slides&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-4430825457273462322?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/4430825457273462322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=4430825457273462322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4430825457273462322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4430825457273462322'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/06/code-review-and-mentoring.html' title='Code Review and Mentoring'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-1067708886599241160</id><published>2009-05-14T18:54:00.002-04:00</published><updated>2009-05-14T19:06:40.129-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='cf.Objective'/><category scheme='http://www.blogger.com/atom/ns#' term='portlets'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>CFML Portlets</title><content type='html'>Finally the presentation has been given and the world (albeit a small world) has got its first glimpse at what we (my self and Bob Burns) have kept to ourselves for way too long. I haven't really said much recently and it's because I have been very busy getting ready for presentations at cfObjective.  I don't think I mentioned Bob enough, he really was to catalyst for this project many moons ago. He rocks in so many ways I really can not describe it. The presentation slides can be downloaded &lt;a href="http://dl-client.getdropbox.com/u/64114/CFML%20Portletsv1.pdf"&gt;here&lt;/a&gt;. The project documentation is a bit shallow right now, that will change, and all the information will be on the &lt;a href="http://cfmlportlets.cfinnovate.com"&gt;Wiki&lt;/a&gt;. The code is in &lt;a href="http://svn.cfinnovate.com/trunk/cfmlportlets"&gt;SVN&lt;/a&gt; (http://svn.cfinnovate.com). I'll keep this short but I promised links on my blog so there you go. If you are interested in hearing more about CFML portlets let me know I'll oblige!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-1067708886599241160?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/1067708886599241160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=1067708886599241160' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/1067708886599241160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/1067708886599241160'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/05/cfml-portlets.html' title='CFML Portlets'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-7074749208458182286</id><published>2009-04-26T17:05:00.002-04:00</published><updated>2009-05-15T08:20:58.448-04:00</updated><title type='text'>Happy Birthday OpenBD</title><content type='html'>Depending on how you look at it OpenBD is a year old or just about a year old (So the date is not exact but tonight at cfObjective we have BOFs which is when OpenBD went legit with its open sourceness 1 year ago). It has been a crazy year with adversity and acceptance. I was reading my Steering Committee interview (posted a little over a year ago now) and wanted to comment on a particular question in there:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Looking ahead 12months, what needs to happen before we can claim Open BD a success&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;I think there are multiple criterion for success and we'll discover new criteria as we move forward with this project. At this point I see our first major milestone as being a successful point, or version, release that incorporates functionality suggested by the community, voted on by the committee, executed by New Atlanta (or others), and verified/accepted by the community. In order for us to claim success I think we also need to see company adoption of Open BlueDragon, and contributions to the project from the community. Not really even code contributions but help with documentation, tutorials and evangelizing the product. Nothing less than world domination really. &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I have to say after rereading my success criteria I was pretty aggressive with what needed to be accomplished. I knew who was involved though and I have to say we have been a success! We have now had 3 successful releases (1 major 2 minor), including an awesome admin console built from the ground up. We have had functionality voted on/brought up by the community (some not from the ColdFusion community either might I add!) and subsequently added to the engine. New Atlanta (while never releasing the admin which I had originally hoped they would) has been active in contributions as has Alan and Andy (not part of New Atlanta). Lastly but certainly not least we have had an amazing community the google groups are active with questions, discussions, help and advice. We have a wiki that the community has helped publish content, and we have had multiple bugs submitted to us.&lt;br /&gt;&lt;br /&gt;I think this year we could stand to get better organized, offer a better/clearer road map and communicate what we are thinking about working on next. This is a challenge because we have super intelligent guys working on this project and sometimes when they get an idea BOOM its done before we have time to talk about.  Also I think something I didn't say but the intent was there is we should (and do) need to have a big focus on growing the CFML community. We'll probably never (as the small group of folks that we are with just enough scratch to buy some stickers for all 4 of our fans at cfObjective ;) ) grow the community 200k+ in 1 year like Adobe but I'd like to think we can contribute to growth as well. Are some of the folks using OpenBD as an alternative to ColdFusion, yeah sure it is going to happen. What  I'd really like to do is for every 1 person we get from inside the community I'd love to add 2 from outside the community. That is a lofty goal, and quite honestly I don't see us fulfilling it. If I set our expectations high maybe we can achieve a more realistic goal: grow the CFML community not just the OpenBD community.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That being said if you are at cfObjective and you have played with OpenBD and/or are using it find me or Matt Woodward and ask us for stickers we got 'em and I know we'd both love to hear success stories, and pains.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-7074749208458182286?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/7074749208458182286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=7074749208458182286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7074749208458182286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7074749208458182286'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/04/happy-birthday-openbd.html' title='Happy Birthday OpenBD'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-2830404543683878675</id><published>2009-04-16T20:40:00.000-04:00</published><updated>2009-04-16T20:43:49.264-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='Railo'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>CFML landscape</title><content type='html'>I had been meaning to publish this for a while but I decided to sit on it and wait for some of the dust to settle. I was eager to see exactly how many people would join &lt;strike&gt;the new Broadchoice&lt;/strike&gt; Railo.&lt;br /&gt;&lt;br /&gt;Now that Railo has &lt;span style="font-weight: bold;"&gt;finally&lt;/span&gt; opened up I think it is high time we take stock in the CFML landscape. What follows is how I view it with (of course) my personal twist/insight in each engine.  I've tried to keep my personal commentary to a minimum, or at least hold it off till the end.&lt;br /&gt;&lt;br /&gt;Open BlueDragon is GPLv3. It is the most open system with the most open development, though I think we could improve some. Anything that comes from OpenBD is GPLv3 or compatible. It is extensible but currently does not offer any store or other automated mechanism to add the extensions to the engine (though it is not hard and it is documented). So long as a commercial extension does not try to package and distribute the entire engine there are not problems with commercial extensions. Open BlueDragon is backed by a AW2, &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; New Atlanta. AW2's business model does not rely (primarily) on the CFML engine, though they do leverage it in some of their work from what I understand. When OpenBD was announced the project tried to gain confidence from the community by include some high profile names in the project steering committee (personal observation: BlueDragon had a bad name due to some old NA bad blood with Adobe and many were skeptical).&lt;br /&gt;&lt;br /&gt;Railo is LGPL (sorry I can not remember the version I think 2 but maybe 3). It is mostly open. The core offers compelling compatibility and an astounding set of functionality. It is extensible via an app store type model where modules can be added onto the engine (I have not done enough looking to see if this is still manual or automated through the admin). Railo itself plans to make some functionality for pay. Railo the engine is backed by Railo the company and the business model s structure entirely around the Railo engine (services and product sales). Railo has positioned themselves inside the CF community as a competitor to Adobe by sponsoring CF centric events and hiring prominent figures in the CFML community.&lt;br /&gt;&lt;br /&gt;ColdFusion is currently the most closed (in terms of source and openness to talk about what is being worked on). It is commercial and when you pay you get the whole kit and caboodle. ColdFusion can be extended through a couple of different means but not quite as tightly integrated as Railo or OpenBD at this point (the main extension point at the Java level is through CFX tags). ColdFusion is the original engine to use CFML and has gone through 2 acuisitions. It's a steady income for Adobe, they care about the CF community and do their part to keep it alive and happy (it is after all steady income for them).&lt;br /&gt;&lt;br /&gt;To Adam Lehman's credit I think the information about CF9 has been much more open than previous releases. Don't take this comment too lightly this is a large shift for a large corporation. This comes from some one involved in many previous releases of ColdFusion and I personally see a huge difference in this release. The last couple of releases of ColdFusion have been driven heavily by the community. This is good but at the same time, the community is not full of big thinkers and typically we ask for functionality we need right now. This has resulted in stagnation of the ColdFusion platform, sure it has kept up but it has not PUSH forward much. Let's face it while Adobe (and Macromedia before them) have done a stellar job developing a great product the whole platform itself has sort of dwindled as they have focused on the language too much (not saying the platform has not grown it has but more evolutionary than revolutionary). The innovation seems to have slipped away and as a direct result we have multiple engines available to us now.&lt;br /&gt;&lt;br /&gt;Ok now that I got my little side bar tangent out, which engine is right for you? I'm not going to make that decision for you, what is important (in Open BlueDragon team's eyes) is you have an option. We see that as possibly the most important part of being available, you have options. Each engine has compelling reasons to consider it for use. For me personally, in my development, I like the fact that I have complete control over the source code if I need/want it. I like that and that drives me towards OpenBD. For my company, we like a solid platform backed by a single entity and ColdFusion offers that to us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-2830404543683878675?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/2830404543683878675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=2830404543683878675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/2830404543683878675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/2830404543683878675'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/04/cfml-landscape.html' title='CFML landscape'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-1020741406156749020</id><published>2009-04-12T09:47:00.003-04:00</published><updated>2009-04-12T10:12:15.553-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='fusebox documentation'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><title type='text'>Fusebox Update</title><content type='html'>As of a little before the posting of this blog fuseboxframework.org has moved onto a new set of tools to communicate with the community, trac.fuseboxframework.org will begin redirecting shortly. Firstly, and one I am very excited about, is the move over to our new Confluence wiki. Confluence is a very powerful wiki with an amazingly easy GUI to edit entries. My hope is that this increase in ease of use over trac helps the community provide more documentation, as it seems like this has always been sore spot in Fusebox. I also found there was some pretty good documentation already on the wiki it was just hidden, hopefully the (complete, and auto updating) Tree view on the left will help expose that wonderful documentation that has been hiding. I've still got work to do to improve the wiki but I felt that since all the (known/important) content has been transferred it's time for the new wiki to launch. Feel free to check it out (and bookmark it!):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.fuseboxframework.org"&gt;http://wiki.fuseboxframework.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Second up, and admittedly not as smooth a transition, is Jira. I've worked with Jira for a long time at my work and I enjoy the product, though I will say I enjoy using it a lot more than setting it up. I think there are areas to improve in getting the Jira site really humming but I do feel like I've made it far enough. Tickets can now be create anonymously, as can comments, I am still working on all the spam filter stuff though. I have made an attempted to transfer all outstanding tickets that may warrant attention over to the new Jira system. Unfortunately there was no good tool to transfer from Trac to Jira so I might be missing content. You can find those tickets in a different project. If you have a ticket you want priority that is in the &lt;a href="http://jira.fuseboxframework.org/browse/OFBI"&gt;Old Fusebox Project &lt;/a&gt;I strongly suggest recreating it or sending me a note to move it (I'll be more than happy to move it). The new ticketing system can be found here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jira.fuseboxframework.org"&gt;http://jira.fuseboxframework.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SVN browsing is lagging behind but I do plan to stand up fisheye and I will be taking over the SVN repo in a short while. I want to thank Simeon for hosting Fusebox for such a long time, he's dedication to Open Source is really awesome. I felt it was time to take responsibility myself, I hope everyone enjoys the new tools as much as I do. I always interested in feedback, positive or constructive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-1020741406156749020?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/1020741406156749020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=1020741406156749020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/1020741406156749020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/1020741406156749020'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/04/fusebox-update.html' title='Fusebox Update'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-8305611315723096309</id><published>2009-04-01T23:40:00.002-04:00</published><updated>2009-04-01T23:57:21.552-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unit tests'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='mxUnit'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>MXUnit ExpectedException</title><content type='html'>I'm glad to see the next minor release of MXUnit :) I'm even happier to see ExpectedException make it into the release. I'd been doing a lot of development in Java and using the latest JUnit and the expected exception annotation was so nice. When I went back to writing test cases for Fusebox I found myself avoiding writing tests that would throw errors (like testing bad paths for Fusebox parsed files). Well long story short I found myself one night debugging something in Fusebox only to find Fusebox should have been throwing an error. Since I never tested for it I never caught that Fusebox was not throwing an error. That motivated me enough to spend the 30 or so minutes it took me to write a couple test cases and add the functionality to MXUnit.&lt;br /&gt;&lt;br /&gt;So the old way to test for an error was something like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;      &amp;lt;cffunction name="ensure_error_on_load_extentions_with_bad_path"&amp;gt;&lt;br /&gt;           &amp;lt;cftry&amp;gt;&lt;br /&gt;               &amp;lt;cfset extManager.loadExtensions(getDirectoryFromPath(getCurrentTemplatePath()) &amp;amp; '/notthere') /&amp;gt;              &lt;br /&gt;               &amp;lt;cfset Fail("Last line should have thrown an error") /&amp;gt;&lt;br /&gt;               &amp;lt;cfcatch type="mxunit.exception.AssertionFailedError"&amp;gt;&lt;br /&gt;                   &amp;lt;cfrethrow&amp;gt;&lt;br /&gt;               &amp;lt;/cfcatch&amp;gt;&lt;br /&gt;               &amp;lt;cfcatch type="fusebox.BadDirectory" /&amp;gt;&lt;br /&gt;               &amp;lt;cfcatch type="any"&amp;gt;&lt;br /&gt;                   &amp;lt;cfset debug(cfcatch) /&amp;gt;&lt;br /&gt;                   &amp;lt;cfset fail("Bad Error")&amp;gt;&lt;br /&gt;               &amp;lt;/cfcatch&amp;gt;&lt;br /&gt;           &amp;lt;/cftry&amp;gt;&lt;br /&gt;       &amp;lt;/cffunction&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now all we have to do is this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;       &amp;lt;cffunction name="ensure_error_on_load_extentions_with_bad_path" mxunit:&lt;span class="il"&gt;expectedException&lt;/span&gt;="&lt;wbr&gt;fusebox.BadDirectory"&amp;gt;&lt;br /&gt;               &amp;lt;cfset extManager.loadExtensions(getDirectoryFromPath(getCurrentTemplatePath()) &amp;amp; '/notthere') /&amp;gt;              &lt;br /&gt;       &amp;lt;/cffunction&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I love the feature, and I hope others enjoy it too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-8305611315723096309?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/8305611315723096309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=8305611315723096309' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8305611315723096309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8305611315723096309'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/04/mxunit-expectedexception.html' title='MXUnit ExpectedException'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-3273161470324317141</id><published>2009-03-21T23:59:00.003-04:00</published><updated>2009-03-22T00:22:23.866-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML conferences'/><category scheme='http://www.blogger.com/atom/ns#' term='cf.Objective'/><category scheme='http://www.blogger.com/atom/ns#' term='Disc Golf'/><title type='text'>Disc Golf Anyone</title><content type='html'>As I mentioned previously I'll be speaking at cf.Objective this year and I finally booked my tickets and hotel. One of the things I love about cf.Objective is the location; Minneapolis/St. Paul has tons, I mean TONS, of Disc Golf courses. Not to mention the second most kick ass Disc Golf Shop in the US (the first is local here in Cincinnati). Any rate I love it so much I am showing up a day and a half early to go out golfing a few times. I'll be flying in on the 12th and flying out on the 17th. My hope is to get 1 or 2 courses in on the 12th and likewise on the 13th, and if I am lucky (and not too wiped out from the conference) I might sneak a course in on the 16th. If anyone in the area has suggestions for a course let me know, and if anyone is interested in going out let me know. If you've never disc golfed before and are interested come along I have plenty of discs for first timers. It's always fun to watch TSA inspect my bag of discs (they are hard enough plastic to register on the x-ray and they always ask me). Can't wait for cf.Objective!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-3273161470324317141?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/3273161470324317141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=3273161470324317141' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/3273161470324317141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/3273161470324317141'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/03/disc-golf-anyone.html' title='Disc Golf Anyone'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-6548768365511869388</id><published>2009-02-01T13:17:00.003-05:00</published><updated>2009-02-16T09:54:35.719-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML conferences'/><category scheme='http://www.blogger.com/atom/ns#' term='cf.Objective'/><title type='text'>Speaking at cf.Objective()</title><content type='html'>Proclaimed to be the only Enterprise level conference for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ColdFusion&lt;/span&gt; cf.Objective has really stepped it up a notch this year. I am not just saying that because I am speaking there this year I am genuinely impressed by the line-up. The schedule for the conference is amazing, it really does have some awesome presentations that many would consider Enterprise Level (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Glassfish&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Salesforce&lt;/span&gt; integration, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;BlazeDS&lt;/span&gt; integration the list goes on). This will truly be a standout year for cf.Objective(). What am I presenting on? &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Fusebox&lt;/span&gt;, or TDD? nah not for cf.Objective (besides Marc &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Esher&lt;/span&gt; has a sweet TDD &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;preso&lt;/span&gt; for the conference). This year I committed to learning more about something for my enterprise level presentations. Don't get me wrong I think I could have given a great presentation on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Fusebox&lt;/span&gt;, honestly I would kind of like to do a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Fusebox&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;BOF&lt;/span&gt;, but I really wanted this conference to be an opportunity for me to grow personally and present something fresh and exciting, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;CFML&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;portlets&lt;/span&gt;. So many enterprises have or are moving to portal servers, be it &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Websphere&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Jboss&lt;/span&gt; or something else and I have seen a lack of discussion about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;CFML&lt;/span&gt; being relevant in portal solutions. That's not to say it is not happening in the community just seems to be happening quietly. In addition to talking about something fresh for me I get the opportunity to present on something not so new but very close to me and that is Code Reviews and Mentoring.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6548768365511869388?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6548768365511869388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6548768365511869388' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6548768365511869388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6548768365511869388'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/02/speaking-at-cfobjective.html' title='Speaking at cf.Objective()'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-9005302310660780113</id><published>2009-01-28T23:16:00.005-05:00</published><updated>2009-01-29T13:23:31.252-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><category scheme='http://www.blogger.com/atom/ns#' term='OO'/><title type='text'>Fusebox Enhancement: Type Converters</title><content type='html'>How many times do you have boiler plate crap in your controller to wire up a domain object(s). Even worse have you ever passed  a string ID throughout your system? Type Converters to the rescue. Type Converters offer an elegant way to move Domain creation code out of your controllers (or delegated from your controller into your service). It also allows your system to focus on object interaction not string manipulation/passing. Best of all since I am fairly simple minded they are dead simple to use. You write the object creation code in a Type Converter, register the converter with Fusebox as well as the url/form parameter to convert. When Fusebox detects that url/form parameter it will call on the converter to create the Domain object. Converters could be as simple as hydrating a Bean from an ORM or more complex using caching stategies to find the bean, since Fusebox exposes it's applicationData you can even delegate to ColdSpring for most of the object creation. Any way you choose the point is it removes this logic from your controllers or various other non standard places and puts it into a standard (hopefully) well organized place.&lt;br /&gt;&lt;br /&gt;Why are they called type converters? To understand this it's important to know where this concept comes from. As of late I've been doing a fair bit of Java development and we use a framework called Stripes for all our web based java apps. Stripes too has Type converters. Type converters make a bit more sense, semantically, in Java since one of the tasks of a type converter in Java is to take a browser response of YES and turn it into a true boolean type (humm sound sorta like a really cool dynamic language we all know and love). Type converters can be more complex in Stripes as well taking an arbitrary string and allowing you to return an object. I found this functionality extremely useful in my Java app. When I looked back at my Fusebox app I've also been pecking away at I quickly realized how adding type converters to Fusebox would allow my controllers to become even dumber and more OO (read: less string based) at the same time.&lt;br /&gt;&lt;br /&gt;I know historically a large segment of the CFML community has not looked to Fusebox for OO capabilities. I get that this feature could have a small # of folks that will enjoy it but I felt it was a very good addition and worth a blog entry. The code is in its very early stages and is fairly rigid right now; this should change over the next couple of iterations as I play with the functionality more. Feel free to check it out and give me some feedback. I've provided an interface (fuseboxTypeConverter) for documentation sake. There is no reason to ever &lt;span style="font-style: italic;"&gt;implement&lt;/span&gt; the interface as all Fusebox really cares about is that the converter has an init constructor and a convert method. The only other thing you'd need to know to start to play would be how to register the converter with Fusebox.To register the converter add this to your fusebox.xml (the fuxebox.dtd is updated so you should see it in there):&lt;br /&gt;&lt;br /&gt; &amp;lt;converters&gt;&lt;br /&gt;     &amp;lt;converter class="full.path.to.Component" parameter="someId" target="Object"&gt;&lt;br /&gt; &amp;lt;/converter&gt;&lt;br /&gt;&lt;br /&gt;Target is optional and if it is left off Fusebox will replace the current string value with the returned value from the converter. The code is available in the BER, as well as in SVN.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-9005302310660780113?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/9005302310660780113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=9005302310660780113' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/9005302310660780113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/9005302310660780113'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/01/fusebox-enhancement-type-converters.html' title='Fusebox Enhancement: Type Converters'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-548636383258040681</id><published>2009-01-28T15:04:00.003-05:00</published><updated>2009-01-28T15:42:17.527-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Bluedragon'/><title type='text'>Got the Beta Blues?</title><content type='html'>Rightly or not the cf-talk boards have had threads where it was made known ColdFusion 9 is in beta testing. Last year Adobe announced they would be more transparent in the development, even announcing the ColdFusion advisory board. It seems like that transparency is a slow build, which I understand as nothing happens over night. I did want to take a second to pimp OpenBlueDragon and say we are working hard to be as as transparent as we can be. If you have the Beta Blues and want to share some ideas on how you thinkCFML can be made stronger, more competitive, or otherwise improve your life check out Open BlueDragon's  &lt;a href="http://groups.google.com/group/openbd"&gt;google group &lt;/a&gt;and feel free to submit a ticket to our &lt;a href="http://code.google.com/p/openbluedragon/issues/list"&gt;ticket system&lt;/a&gt;! CFML is a great language and I am confident ColdFusion 9 will deliver a great new set of functionality, I also have to say I am very impressed with how OpenBD has progressed through the months. Did you know we are considering adding cfvideoplayer and well as cfvideo? We'll talk more about this as soon as we figure out how we think it should work, until then you &lt;a href="http://code.google.com/p/openbluedragon/issues/detail?id=82"&gt;tell us&lt;/a&gt; how &lt;span style="font-weight: bold;"&gt;you&lt;/span&gt; think it should work. Also add it as a favorite so we can gauge the interest in this feature!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-548636383258040681?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/548636383258040681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=548636383258040681' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/548636383258040681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/548636383258040681'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/01/got-beta-blues.html' title='Got the Beta Blues?'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-9086536770736241940</id><published>2009-01-12T11:39:00.005-05:00</published><updated>2009-01-12T14:22:53.921-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unit tests'/><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML conferences'/><category scheme='http://www.blogger.com/atom/ns#' term='cfUnited'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>CFUnited session # 2!!</title><content type='html'>I know at least &lt;a href="http://blog.mxunit.org/2008/12/cfunited-2009-topics-some-thoughts.html"&gt;one man&lt;/a&gt; will be very happy to know I will be presenting Red Green Refactor at CFUnited! I gave a presentation at bFusion about TDD and MXUnit with the same title that got a lot of great feedback. This presentation will follow a similar tone as that one, only less MXUnit and more rants about BDD. I've previously ignored talking specifically to BDD as I felt (and still feel to an extent) that BDD is really just TDD done right. After the recent &lt;a href="http://www.adelphus.com/2009/1/1/cfspec-behaviour-driven-development-for-coldfusion"&gt;cfSpec&lt;/a&gt; announcement I got to talking to Sean Corfield about BDD and he made a comment of &lt;span style="font-style: italic;"&gt;getting &lt;/span&gt;BDD over TDD. This leads me to think I should talk more about BDD (it seems to make more sense to more folks). I'm still of the mindset that BDD is little more than TDD done right but, I think BDD is starting to become more relevant as the concepts mature and evolve. I will probably focus more on some BDD concepts than I previously had planned. This should give me a chance to learn more about BDD in the process, I can't wait to give this presentation!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-9086536770736241940?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/9086536770736241940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=9086536770736241940' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/9086536770736241940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/9086536770736241940'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/01/cfunited-session-2.html' title='CFUnited session # 2!!'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-6697746399465827667</id><published>2009-01-04T18:32:00.004-05:00</published><updated>2009-01-04T19:38:23.603-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><title type='text'>Fusebox back under development</title><content type='html'>A while back, maybe September or so right after finishing up a couple of additions to Fusebox, I decided to take the rest of the year off from coding. I had done some work with MXUnit, Fusebox and OpenBD and thought, I need a break. During that time I had the opportunity to fix up one of the worse Fusebox Apps I've ever had the misfortune to lay eyes on, internally at my company. It was great to get my hands dirty in an application to test out some of the new stuff I've added to Fusebox, as well as our base application we use at work. It gave me some really good insight into things I could add to Fusebox to make life easier for No XML development, and Classic Fusebox as well. John Bliss also made a feature request the other day which I've already made some additions (this will be the topic of a future blog entry).&lt;br /&gt;&lt;br /&gt;Before I get back to too much coding though I am working with Simeon to take over Fusebox's ticket, wiki and version control. I expect the switch to happen sometime this month, there's a bit fo coordinating that need to be done. I want to give a HUGE thanks to &lt;a href="http://www.viviotech.net"&gt;Viviotech&lt;/a&gt; for donating the &lt;a href="http://www.viviotech.net/hosting_vps.cfm"&gt;VPS&lt;/a&gt; for all this to live on now and into the future. As part of this move to the new server I'll be changing some of the software being used for the project. Fusebox's wiki will be moving to Confluence (from Trac) and the ticket system with move to Jira (from Trac), I've not drank the git cool aid yet so for now we'll be sticking to SVN. Confluence is a very powerful wiki which I hope will improve documentation, the templates for pages is very nice and powerful and I can add work flows which might open the window for more open security for editing pages. Jira is equally as nice and quite frankly I am much more knowledgeable about these 2 products than Trac and I'll be able to do more with them than Trac. Another driving factor for Jira is the integration in Mylyn (for eclipse) and IntelliJ is bar none. Due to how Trac was configured, I was unable to integrate my IDE with Trac and it was really irking me. My hope is to sooner or later get around to looking at Bamboo as well and getting that to do some continuous builds for some other projects that I've not talked about yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6697746399465827667?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6697746399465827667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6697746399465827667' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6697746399465827667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6697746399465827667'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2009/01/fusebox-back-under-development.html' title='Fusebox back under development'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-6643070712905751217</id><published>2008-12-06T18:17:00.003-05:00</published><updated>2008-12-06T18:28:35.996-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Quality'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML conferences'/><title type='text'>Vote for me! CFUnited</title><content type='html'>I completely failed to mention CFUnited posted the long awaited &lt;a href="http://cfunited.com/go/survey/166"&gt;survey for session in 2009&lt;/a&gt;! Don't forget to check out the details for all the session in the &lt;a href="http://cfunited.com/images/CFUnited2009SubmittedTopics.pdf"&gt;PDF&lt;/a&gt;. I've got quite a few topics up this year, including learn Java which I am ultra stoked about folks taking interest in the underlying language of most CFML engines! Of course I could not submit topics without adding one for Fusebox and I figured I'd round it out with a BDD/TDD presentation. The select few that went to bFusion and attended my presentation there can attest to it being a great time.  My only regret is I did not submit an OpenBD topic, if you want it you can submit a proposal in the survey so ask for it!!!! I love presenting and I hope I get the vote in, if you haven't filled out the survey get to it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6643070712905751217?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6643070712905751217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6643070712905751217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6643070712905751217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6643070712905751217'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/12/vote-for-me-cfunited.html' title='Vote for me! CFUnited'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-2303835591189621053</id><published>2008-12-06T11:00:00.003-05:00</published><updated>2008-12-06T11:31:29.998-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><title type='text'>OpenBD v1 out. What about v2?</title><content type='html'>Open &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;BlueDragon&lt;/span&gt; has released v1 and it has a great feature set. It's nice to see a good mix of essential functionality from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ColdFusion&lt;/span&gt; and our own ideas. I'm particularly happy with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CFSMTP&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;memcache&lt;/span&gt; integration and support for this.mapping. For the official release head on over to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;OpenBD's&lt;/span&gt; &lt;a href="http://blog.openbluedragon.org/openbd_1_0.htm"&gt;website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;   Work does not stop at v1 though we've started a road map and we plan to continue to build that road map out, no time to rest we're just getting rolling. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;ColdFusion&lt;/span&gt; 9 is currently in beta (or so Andy Alan happily announced it was on cf-talk) and I am sure there are wildly debates going on about how to improve &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;ColdFusion&lt;/span&gt;. The sad part is it's entirely behind closed doors, if you are not a one of the chosen hundreds (to say few is not fair enough I know how big these programs are) you blindly will have to wait. I don't mean to be overly critical of this process, Adobe has very good reason to do it this way. I do not fault them, it is just different than an open source project. If you are down and out about not being on the beta, or maybe just interested helping &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;CFML&lt;/span&gt; evolve,  head over to Open &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;BlueDragon's&lt;/span&gt; google forum and start sharing ideas on how to improve &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;CFML&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;CFML&lt;/span&gt; is a 2 way stream and we have seen features of other engines make their way to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;ColdFusion&lt;/span&gt; (and of course vice &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;versa&lt;/span&gt;). Best part is if you have an idea a large group agrees on you don't have to wait weeks or months for the beta build (or a year + for a new version). &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;OpenBD&lt;/span&gt; is built every night, as soon as a feature is coded it will be checked in and added to a nightly build. In the past we've gone from concept to implementation in just over 3 days! If you don't feel like heading over to the forums but would like to see a feature added feel free to leave a comment here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-2303835591189621053?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/2303835591189621053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=2303835591189621053' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/2303835591189621053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/2303835591189621053'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/12/openbd-v1-out-what-about-v2.html' title='OpenBD v1 out. What about v2?'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-4276105486526242002</id><published>2008-12-02T18:56:00.006-05:00</published><updated>2008-12-02T20:39:07.417-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>OpenBD Status</title><content type='html'>Back in the mid November time frame a kind feller asked about the status of OpenBD, also suggesting maybe we the Steering Committee post a short little summary. Alan kindly responded and made him aware of how the project is doing, which is fantastic. I've been busy so I didn't even read the email until about 10 minutes ago.  About a month ago I was also invited to speak at Mid Michigan's CFUG (note this as also my last entry b/c I have been so busy) and a similar sentiment was conveyed. I was told that OpenBD has some cool features and we really should be talking about it more. Now with these 2 bits of information bopping around in my head I decided maybe now is a good time to talk, give my personal explanation about my silence about OpenBD and a quick update about OpenBD's status.&lt;br /&gt;&lt;br /&gt;After CFunited and the rather subtle (or not so sublte) slap in the face from Adobe, not being involed/invited to participate in the CFML advisory committee (nor even told that there would be one and this is why you are not being invited), I went back and reread many posts about OpenBD's announcement, as well as Railo's. I felt part of the problem has been the perception of OpenBD trying to steal away or otherwise fragment the ColdFusion community. I understand that sentiment due to the association with New Atlanta and I don't hold it against anyone for not involving OpenBD. I personally felt constantly coming to the community and pushing OpenBD and publishing constant updates would come off wrong, just another attempt to steal ColdFusion people yada yada yada. I care about the community a lot and I also care about every's opinion of me (to an extent) and I did not want to rub people the wrong way or give folks fodder to rally against OpenBD. This is one reason I have been fairly reserve about OpenBD on my blog. Also at the end of the day the ColdFusion/CFML community is but one community OpenBD seeks to help and it really is the least important to evangelise to, you are already using CFML!* Since the vast majority of my blog readership is ColdFusion developers I think it is a pretty bad medium for me to get the word out about OpenBD. Instead I have engaged people personally, and even evangelised at user groups outside of the ColdFusion community (anyone at bFusion might recall some very boring slides about ColdFusion the platform, those were in there to introduce people to the ColdFusion product). I think maybe I have gone too much to the extreme and now maybe OpenBD comes off as a dead project to some or a project that completely doesn't give a crap about the ColdFusion community. Neither are the case I will attempt to strike a balance of providing the appropriate amount of info in the future. Always though, if you are interesting in OpenBD please ask, I am more than happy to take time to talk to you or a group of you. Heck if you know of a user group that is not ColdFusion/CFML that might be open to seeing other technologies please send me their way or send them mine.&lt;br /&gt;&lt;br /&gt;(*I think it is very important to be clear that when it comes to features and evolution of OpenBD I very much care about the CFML community's opinion, we understand the language/platforms and have a good idea of what can be done to improve.)&lt;br /&gt;&lt;br /&gt;Now the fun part, the status of OpenBD. The steering committee discussion board has been quite a buzz recently and with good reason. As &lt;a href="http://www.petefreitag.com/item/686.cfm"&gt;some folks&lt;/a&gt; have already found, we have finally put up a wiki and content is rapidly being added. For now the wiki is PHP, it is MediaWiki. We chose MediaWiki for a very good reason it is one of the leading open source wiki software packages today. This alone is not enough, it is also happens that the OpenBD CFML wiki that we hope to release early next year is 100% compatible with MediaWiki. This wil be an entirely open source (GPLv3) CFML wiki engine that is feature complete and compatible with MediaWiki content. It's been in the works for a long time and Alan keeps wanting to add to it instead of finalize it and release it. In the upcoming months you will also be able to find a road map of OpenBD, as well as history about the legacy of dbServlet (the original engine that has evolved into OpenBD today).&lt;br /&gt;&lt;br /&gt;&lt;&lt;in&gt;&gt; And one more thing. We decided on a versioning schema and we set a date for the release. You will see an official v1.0 release of Open BlueDragon by the weeks end! It was, interestingly enough, a very hard decision to label OpenBD as v1.o. The engine itself has such a legacy and many, rightfully so, felt it was an unjustice to label such a mature product as v1.0. v1.0 has significances though, OpenBD is a new product.  Yes the core has a long mature legacy but the name has a legacy too, not always a positive one either. We felt v1.0 was symbolic in a way; OpenBD is a new beginning. OpenBD is on its own now and it is at v1.0, we've all moved on and do not want to dwell on the past. I can not communicate it justly how hard it was for Alan and Andy to let go of the legacy and agree to v1.0 but they did because they too see the value and significances of what v1.0 means.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-4276105486526242002?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/4276105486526242002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=4276105486526242002' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4276105486526242002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4276105486526242002'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/12/openbd-status.html' title='OpenBD Status'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-264763414860134862</id><published>2008-11-05T13:22:00.003-05:00</published><updated>2008-11-05T13:35:42.886-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='CFUG'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Bluedragon'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><title type='text'>Speaking @ Mid-Michigan CFUG</title><content type='html'>It's my pleasure to announce the first of what I hope to be many Open BlueDragon presentations I will be doing for local CF user groups.  Rick contacted me a short while backing asking about a presentation and I happily accepted.  I was originally (shortly after OpenBD's launch) a little hesitant to do this due to the negative stigma around OpenBD. I think much of that has past plus Railo seemed to be welcomed at UG and I'd like to expect the same courtesy for OpenBD. If your user group has an interest in OpenBD please feel free to contact me, a.haskell on Google's email service.  For my limited Fusebox readership that are PHP users if you have a user group I'd love to get an opportunity to show you an open source alternative to PHP. OpenBD might serve you well with some customers that have CFML in house already (not to mention you can still use FB on it!). CFML is an incredibly powerful language and OpenBD gives you a great free alternative. I'll be presenting OpenBD to the Mid-Michigan CFUG on Nov. 11 @ 7pm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-264763414860134862?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/264763414860134862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=264763414860134862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/264763414860134862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/264763414860134862'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/11/speaking-mid-michigan-cfug.html' title='Speaking @ Mid-Michigan CFUG'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-6019206535972359903</id><published>2008-10-31T09:02:00.002-04:00</published><updated>2008-10-31T09:05:45.666-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><title type='text'>Some lovin' for Fusebox 3</title><content type='html'>Issac has done a great service and provided a concept application to demonstrate how to move from FB3 to FB5. I won't talk about it but I wanted to make sure to get a post up about it and point you his way to check it out. I'll post a full review this weekend once I, .like you, have had a chances to poke around and look at what he is doing. His description in the post makes sense!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ontap.riaforge.org/blog/index.cfm/2008/10/31/Release-of-Upgrade-Path-for-Legacy-Fusebox#comments"&gt;FB3 upgrade path&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6019206535972359903?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6019206535972359903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6019206535972359903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6019206535972359903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6019206535972359903'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/10/some-lovin-for-fusebox-3.html' title='Some lovin&apos; for Fusebox 3'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-6352583304588706146</id><published>2008-10-06T13:30:00.010-04:00</published><updated>2008-10-06T23:41:33.767-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='Rant'/><category scheme='http://www.blogger.com/atom/ns#' term='OO'/><title type='text'>Why bother Getters &amp; Setters</title><content type='html'>This morning I was provoked by &lt;span class="fn"&gt;&lt;a href="http://www.cfguy.com/blog/"&gt;Seth Bienek&lt;/a&gt; &lt;/span&gt;to rant a little more than Twitter would allow about getters and setters. You see this all started when &lt;a href="http://remotesynthesis.com/"&gt;Brian Rinaldi&lt;/a&gt; made the mostly innocent statement, "&lt;span class="entry-content"&gt;90% of the time, writing getters/setters is a stupid, annoying and utterly useless task." So my question is simple why the hell are we writing these getters and setters?&lt;br /&gt;&lt;br /&gt;Now before you go off on your happy Groovy &lt;/span&gt;&lt;span class="entry-content"&gt;has, &lt;/span&gt;&lt;span class="entry-content"&gt;or ColdFusion 9 will have, or Action script as implicit getters and setters kick maybe I should reword my original question to provoke some more thought. Why the hell is your code written in a way that you &lt;span style="font-weight: bold;"&gt;need&lt;/span&gt; useless getters and setters? This just smacks of a poor design, probably a data centric design. I know there are some valid reasons why we need them, transfer objects for&lt;span style="font-style: italic;"&gt; over the wire&lt;/span&gt; communication is a great example of when you might need objects with useless getters and setters (though I would argue in this case they really aren't useless now are they??). Please &lt;/span&gt;&lt;span class="entry-content"&gt;stop justifying your obsession with getters and setters, chances are if you are using tons of getters and setters your design sucks. &lt;/span&gt;&lt;span class="entry-content"&gt; Now don't get all offended your design could be perfectly fine, but think about it objectively. &lt;/span&gt;&lt;br /&gt;&lt;span class="entry-content"&gt;&lt;br /&gt;We all need to realize how much crappy code we have laying around that we think (or thought) is good code. &lt;/span&gt;&lt;span class="entry-content"&gt;I mean we did pushed it into CFCs&lt;/span&gt;&lt;span class="entry-content"&gt; so it's good code right? Yeah not so much. Take some of those objects you have laying around and give em a good looksee. You know that one that has 25 properties and 52 methods, 25 of which are getters and 25 of which are setters. Yep that ultra important one that you spent half a day debating if it should have a DAO or a gateway. Alright now that you have your steaming pile of dung do a search on "variables." and replace it with "this.". Hey look no more useless getters and setters! I can hear you blindly complaining about encapsulation from here. Bluntly put, who gives a flying pig's ass about &lt;span style="font-style: italic;"&gt;encapsulation&lt;/span&gt; here? You are getting zero, &lt;span style="font-style: italic;"&gt;zero&lt;/span&gt;,  value from your methods and really all your are doing is freeing yourself to rename your internal variables later, yippie. Besides, how many times have you looked at a variable and said that name sucks I want to change it? Okay so maybe a couple of times. Well good thing it was so encapsulated behind that method, it made that variable change so easy... except now the method name is different from the variable it affected. Every time you look at that object now it's like a game of guess who trying to remember what methods match to the [better named] variable. The whole point here is think about what you are doing and think about your design before you blindly make a variable private and put useless getters and setters in your code*.&lt;br /&gt;&lt;br /&gt;At this point you're either drinking the cool aide or really wanting to punch me. Hopefully you are drinking the cool aide. Wait you are still not sold on this? Okay listen dude[t] if all your are doing is writing getters and setters and not doing anything in those getters and setters it's freaking pointless. Don't give me this whole "well what about the future" crap either. We can speculate all day about the future of our applications. As developers we love puzzles but we need to be pragmatic and ask what does the current design need.  If we speculated all day we wouldn't ever get anything done, trust me I've been here unproductive and hating life. Remember "What's the simplest solution right now?" Don't introduce unnecessary complexity.  Just access the variable directly or just replace it with what your object most likely is anyway...a structure.&lt;br /&gt;&lt;br /&gt;Hopefully most of you are not satisfied with this uber structure idea. Trust me, I am not overly thrilled with it but given the choice between useless getters and setters or public variables I'll vote for public variables each time, until someone convinces me why to not. Besides for some it will save them a whole bunch of typing and they can still go to bed at night happy they are using CFCs. If you are truly interested in why I think you should not waste time on getters and setters that are useless it's because getters and setters are mostly well useless. I know there's some circular logic in there we'll work through it here in a second bear with me.&lt;br /&gt;&lt;br /&gt;When you design your objects, and more importantly object interaction, try to avoid objects that are data consumers or providers. If the majority of your objects are data consumers or data providers then you have successfully taken something that is probably simple and best suited for something with much less OO overhead and made it complicated and less maintainable. Congratulations for getting your CFC check mark for the resume! Objects should be behavior driven, asking each other for favors. Does that mean applications I write do not have getters and setters? Hell no! I am just as guilty as the next person for writing Data Driven OO. I've got over my OO kick though I am comfortable with knowing where the rigors of OO makes sense and where they make waste, finding that balance isn't easy and its hard to teach.  I'm writing this article as much as a reminder to myself to not be an idiot as I am for anyone else. Just because you have getters or setters does not mean your objects are not doing something, they just aren't doing enough probably. Sometimes getters and setters are important. For example, maybe we pop data off a stack on a get or validate data as we pass it into our object. Another  example might be we went ask an object to do something but creating objects internally is bad so we provide a setter to inject the object into ours. Don't get confused with this whole encapsulation when you don't need to leverage it though. If you don't do anything that requires encapsulation don't get all complicated on me. Thanks for sticking it out to the end, enjoy the cool aide.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*As an aside in Adobe's ColdFusion each method is an inner class in Java so all of these useles getters and setters are also forcing the JVM to load bunches and bunches of useless classes as well. Generally I don't like to focus on things like this but I figured it would be a good mention for folks.&lt;br /&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6352583304588706146?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6352583304588706146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6352583304588706146' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6352583304588706146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6352583304588706146'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/10/why-bother-getters-setters.html' title='Why bother Getters &amp; Setters'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-5302889731282452370</id><published>2008-09-19T14:22:00.005-04:00</published><updated>2008-09-19T15:20:45.912-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='fusebox documentation'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><title type='text'>Fusebox Status</title><content type='html'>The last 2 weeks I have sat down every evening and [re]read through parts of Fusebox's core files, I also had a very energetic discussion with Team Fusebox (more on that some other time). First I have to say Sean put together on hell of a beast in Fusebox 5.5.  In some aspects Sean and I have a different coding style so I feel like I would have done a couple of nit picky things differently but overall Fusebox looks to have been very well thought out and put together nicely. My main gripe is the abundant [ab]use of public parameters on the CFCs which sometimes makes it hard for me to track something down, especially since most of the time they are defined for the first time inside one of the methods of an object. Sometimes I get lost in all the parameters that are set but that's just the amount of data Fusebox is dealing with at times. The one thing that I was left without that disappointed me was unit tests. To that point I am working on some unit tests for the core files but I still do not have a good enough handle on all things Fusebox to begin to write good unit tests. The tests I have are mostly checking the skeleton right now (which works ok but I am on my TDD kick right now ;) ). With the small bad I have to say Sean left me with one of the most solid code bases I have ever seen. Some of the stuff he does in Application.cfc are pretty cool and thanks to its nicely done design I've been able to get in and make some additions already. The features I am talking about here are implemented and will be available in the BER I publish this weekend. I want to hear feedback on them, please please please&lt;a href="http://tech.groups.yahoo.com/group/fusebox5/message/3769"&gt; let your voice be heard&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;    I've not tried to hide my disdain for circuit XML in Fusebox (have no fear it is going no where and will get lovin' when it needs lovin', too many of you people are masochists and like the XML). As a sign of good faith I added a feature to the XML fusebox that had always really bugged me (I'd like feedback on the good/bad side of this change). I've always hated having 15 circuit.xml files open in the editor which lead to the addition to the circuit.xml finding algorithm. Fusebox (in the BER that I plan to push sometime this weekend) will now find &lt;span style="font-style: italic;"&gt;alias.xml &lt;/span&gt;or &lt;span style="font-style: italic;"&gt;alias.xml.cfm&lt;/span&gt; in the path specified in Fusebox.xml.&lt;br /&gt;&lt;br /&gt;    The second feature that I added was something I really wanted to see, and I wanted it at Kroger. Fusebox now supports defining No XML circuits in fusebox.xml. What this means is you do not have to rely on Fusebox's location conventions to leverage No XML circuits. In Kroger our application layout does not match the conventions that Fusebox wanted to impose. I had a long discussion with some friends and colleagues about changing Kroger's application layout vs adding some functionality to Fusebox. In the end I felt it was a feature that would give Fusebox users a nice mesh between configuration and convention.&lt;br /&gt;&lt;br /&gt;     Like I said I plan to get this stuff into SVN this weekend so anyone interested can start playing with it. I've turned off comments on this entry so as to drive all comments to the &lt;a href="http://tech.groups.yahoo.com/group/fusebox5/message/3769"&gt;Fusebox Group&lt;/a&gt; on yahoo, I am doing my best to keep the discussion in &lt;a href="http://tech.groups.yahoo.com/group/fusebox5/message/3769"&gt;one main place&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-5302889731282452370?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5302889731282452370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5302889731282452370'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/09/fusebox-status.html' title='Fusebox Status'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-5869003841247772381</id><published>2008-09-13T19:35:00.002-04:00</published><updated>2008-09-13T20:06:18.084-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL injection'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>SQL Injection Nonsense</title><content type='html'>I know a whole gobs of blogs have been talking about the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SQL&lt;/span&gt; injection issues and all the fun stuff recently. I don't generally get into these security discussions as they're really not my focus. Don't get me wrong it's an important subject but I feel like there are plenty of other people out there tooting this horn and presumably know a crap some more than I on the subject. I'll be honest for the last 4+ years I have worked completely inside our firewall on the intranet so security is a bit different for us.  One thing I keep finding myself questioning though is how many of us are putting ourselves at risk unnecessarily? I'm not talking about not using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;cfqueryparam&lt;/span&gt; here I am talking about the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;datasource&lt;/span&gt; and the database itself. Is your CF server using an account with the appropriate security level? Lets be honest here 80% of us are using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;sa&lt;/span&gt; or some account with &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;entirely&lt;/span&gt; too high of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;privileges&lt;/span&gt; for what it is being used, what a dead brained move. If you are using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;sa&lt;/span&gt; or some other admin level account stop it and you stop half the threat. You don't even need to change code just the data source in the Admin. Even if for some reason your web app needs to control the database at some crazy level create specialized &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;datasources&lt;/span&gt; for that section of the application. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Datasources&lt;/span&gt; that are used on a publicly &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;accessible&lt;/span&gt; portions of a website should be restricted as much as possible.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-5869003841247772381?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/5869003841247772381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=5869003841247772381' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5869003841247772381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5869003841247772381'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/09/sql-injection-nonsense.html' title='SQL Injection Nonsense'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-6560695080235905414</id><published>2008-09-12T19:00:00.003-04:00</published><updated>2008-09-12T19:27:25.072-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Quality'/><category scheme='http://www.blogger.com/atom/ns#' term='code review'/><title type='text'>MVCFUG gets to listen to me Rant</title><content type='html'>With the successful launch of the MVCFUG I am excited to be able to provide content for a local UG.  They've asked me to present there next month about Improving Code Quality. Some of you may remember I did a BOF at cfUnited that had a great turn out and this is the presentation that I was going to present at cfDevCon. Unfortunately, cfDevCon had to be canceled but I am excited to share the content stateside with a great group of developers. As an aside this one I think is planned for the evening so folks in Cincinnati should make a trip up, it's just Miamisburg. I am not sure that they are setup to do connect so please don't expect a connect presentation out of it. As with most of my presentations this one really focuses on how we can work together and produce high quality code. We'll most likely focus on peer design and peer reviews. When I say code quality I am not talking about using a structure or queryparam (that is not what a code review is for people!). Really I am not even talking about using CFCs (correctly or otherwise), though they can play into quality. I am talking about how we can work together to create maintainable software that has high fidelity. Talking about code quality is a very passionate subject and I can't wait to share my experiences with the Miami Valley folks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6560695080235905414?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6560695080235905414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6560695080235905414' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6560695080235905414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6560695080235905414'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/09/mvcfug-gets-to-listen-to-me-rant.html' title='MVCFUG gets to listen to me Rant'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-4042585821301516053</id><published>2008-09-08T09:35:00.003-04:00</published><updated>2009-11-18T19:31:24.493-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='documentation'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><title type='text'>Fusebox 5.5 Documentation</title><content type='html'>I know a lot of folks have asked for more documentation for Fusebox 5.5. This morning it occurred to me that maybe, like myself at one point many months ago, folks are not aware of Sean's excellent release notes. I have to say Sean did a great job with his release notes for &lt;a href="http://wiki.fuseboxframework.org/download/attachments/2195499/releasenotes550.pdf"&gt;5.5&lt;/a&gt; and &lt;a href="http://svn.fuseboxframework.org/framework/trunk/docs/releasenotes551.pdf"&gt;5.5.1 (missing)&lt;/a&gt;. These 2 PDFs that may not be indexed by google which may be why not many people are aware if them. I will try to get some of this content copied out and into the wiki over the upcoming weeks but if you have not read these docs please do so. I really think they do a good job covering Fusebox 5.5 functionality. Also please remember Jeff has now released a new &lt;a href="http://www.protonarts.com/index.cfm?fuseaction=Books.showBookDetails&amp;amp;ISBN=0975264761"&gt;book&lt;/a&gt; for Fusebox!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-4042585821301516053?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/4042585821301516053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=4042585821301516053' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4042585821301516053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4042585821301516053'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/09/fusebox-55-documentation.html' title='Fusebox 5.5 Documentation'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-7231040568363057166</id><published>2008-09-03T14:51:00.002-04:00</published><updated>2008-09-03T15:35:12.828-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML conferences'/><category scheme='http://www.blogger.com/atom/ns#' term='bFusion'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>bFusion Marterials</title><content type='html'>I've spent a lot of time working through the hands on work for my TDD presentation at bFusion. Though the result may not seem like it as there are no materials (files) that you will need for the presentation. You will still want everything installed and running (coldfusion, eclipse, mxUnit) but you will need no additional files from me. You see I wanted a nontrivial example to work through but the problem with this is even if I did not speak at all 1.5 hours is not enough time to do a non trivial example. Besides TDD is much less about writing a test (anyone can do that) and much more the thought process. So inside of throwing you to the wolves to work hands on I will present and answer questions for around 30-40 (depends on ???s) minutes and the remainder of the time we work together to solve as much of the non trivial problem as we can. This will everyone understand what types of things we should think about when writing tests and how to work TDD into a real project. The reason the presentation jumped in amount of time is during the presentation we'll be dropping into the IDE a quite a few times to work through things together. I hope everyone will work along with me as you will get much more out of the session if you work along with me, as well as provide feedback!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-7231040568363057166?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/7231040568363057166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=7231040568363057166' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7231040568363057166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7231040568363057166'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/09/bfusion-marterials.html' title='bFusion Marterials'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-373629383505819282</id><published>2008-09-02T19:20:00.000-04:00</published><updated>2008-09-02T19:23:42.571-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><title type='text'>Fusebox in Java??</title><content type='html'>A couple of weekends ago I stepped into my Java developer shoes and attended No Fluff Just Stuff, think cf.Objective() in attendance size, cfUnited Express in local feeling, and cfUnited (or SOTR) for quality of speakers. I wrote up the majority of the entry during that conference. Instead of publishing it at that time I decided to sit on it for a bit before rereading my thoughts and posting this entry. At NFJS Neil Ford talked about polyglot programming, something I myself have joined in about in the past. If you will recall polyglot programming has morphed into this thought process of using the appropriate language to complete a task. The JVM has become a very powerful platform, now supporting some 200+ languages. Most of these languages can interact with one another at some level, if not directly then they can use the the Java level. While CFML happens to be my preferred language to write most of my applications in I have to wonder should frameworks be written in CFML?&lt;br /&gt;&lt;br /&gt;    Historically we were bound to strictly CFML, putting any part of a framework for CFML apps in Java would require putting the class on the classpath, not so shared hosting friendly. Well we have all progressed and learned a thing or 2 about Java and this traditional thought process needs to evolve some. Thanks to Mark Mandel and some of his crazy cool java class loader work, even if you don't know much about class loaders, we are not bound to our traditional thoughts about how we can load java classes. We can now easily load java classes after server start up from places other than the predefined classpaths. Armed with this knowledge I can now objectively ask, should Fusebox be written in CFML or should it be written in Java (or groovy or anything else that I could consume from CFML)? Even weeks later, presumably after all the Java Kool Aid has left me system, I still am leaning towards Fuseox should be written in Java. Maybe &lt;span style="font-style: italic;"&gt;should&lt;/span&gt; is a bit too string of a word there, Fusebox could benefit from being implemented, at least in part, in Java. This is not a proclamation that I am going to rewrite Fusebox into Java, remember I said I was going to think out loud when it came to Fusebox development, but I really am leaning towards writing parts of Fusebox in Java.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-373629383505819282?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/373629383505819282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=373629383505819282' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/373629383505819282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/373629383505819282'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/08/fusebox-in-java.html' title='Fusebox in Java??'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-5726627871415014426</id><published>2008-09-02T15:50:00.003-04:00</published><updated>2008-09-02T15:57:47.073-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFUG'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><title type='text'>New CF UG in Ohio!</title><content type='html'>I was utlra stoked to see Lance tweet about his latest &lt;a href="http://www.lsdigitaldesign.com/blog/index.cfm/2008/9/2/The-MVCFUG-is-Here"&gt;blog entry&lt;/a&gt; detailing the launch of the &lt;a href="http://www.mvcfug.com/mvcf/index.cfm"&gt;Miami Valley CF Usergroup&lt;/a&gt;. Congrats to Aaron and Lance for this accomplishment. The Greater Dayton area has some extraordinary talent and will be well served to have a proper usegroup up there. Being a Dayton native I am glad to see that market continue to grow and prosper, hell may someday I will get to move back up into that market. Until that happens I need to get off my ass and follow suite and get the Cincinnati UG up and running, Kroger has one but I've never committed to doing an external one. Congrats again gentlemen, you know I am always happy to come up and present and I will certainly make an effort to attend as much as possible, O'neil's office isn't too terribly far away from me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-5726627871415014426?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/5726627871415014426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=5726627871415014426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5726627871415014426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5726627871415014426'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/09/new-cf-ug-in-ohio.html' title='New CF UG in Ohio!'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-8059555616425571881</id><published>2008-08-28T20:51:00.003-04:00</published><updated>2008-08-28T21:52:49.686-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><title type='text'>Open Source Sorta Kinda Rocks</title><content type='html'>I've been pretty busy recently not only at work but I've picked up enough stuff to keep me plenty busy outside of work with my involvement in cfConversations, mxUnit stuff, Fusebox and OpenBD. In all honesty this all has taken a bit of a toll on my blogging. I feel like I had been doing pretty well (or at least improving) with my blogging up until a little after cfUnited. As I look through my recent posts I realize I have given any blog time to one of my first public involvements, OpenBD.&lt;br /&gt;&lt;br /&gt;     The buzz has settled and we are all still standing!  Adobe still exists, the CFML community as strong (dare I say stronger than ever), and we are slowly growing our community with more and more developers from other platforms with interest in CFML (wether it OpenBD or Adobe or even the future Railo OS effort). We (OpenBD) never made a big deal about it but &lt;a href="http://kirk.blog-city.com/"&gt;Kirk &lt;span class="HcCDpe"&gt;&lt;span class="lDACoc"&gt;Pepperdine&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; a Java Champion and Server tuning wizard joined OpenBD Steering committee a couple of months back. &lt;br /&gt;&lt;br /&gt;I think OpenBD still has a ways to go before folks in the CF community will begin to adopt it fully for use in projects. This is not to even suggest it is not a solid product as is (really it is an awesome product as it stands) but it does lack a couple of things that I feel are important for folks in the CF community. I think we'll see more adoption once we establish an official version number (and version schema/road map) and public facing documentation, I swear a wiki has been on the way for months now.  I also am under the impression people are still a little weary about this whole WAR deployment, something Adobe's ColdFusion has done a very good job shielding us from for years now. Oh and finally that whole lack of a GUI for the admin might scare off some folks as well. I can happily say that folks are in one way or another working on all of the above. This is exactly why open source sorta kinda rocks. I think most people would agree Matt Woodward is an awesome developer and thanks to OpenBD you get his code running in your enterprise for the exact price of nothing, though a thanks is always appreciated. Alan Williamson is an elite, recognized, Java developer and you get his work, again, free!&lt;br /&gt;&lt;br /&gt;If you want proof positive that OS rocks check out &lt;a href="http://groups.google.com/group/openbd/browse_thread/thread/9f404631069bc508"&gt;this&lt;/a&gt; thread on the OpenBD mailing list. Suggestion to alpha released jar in something like &lt;72 hours. You just will not, generally, see this in a commercial product. Really you should not expect it since  Adobe has big incentives to hide their new features until release. Thanks to the completely open nature of Open Source projects there is nothing to hide.  If we are working on something I can guarantee that you, and everyone else, will know about it right quick. No need to be an exclusive beta or alpha tester, just drop by in your spare time and ask "Hey whats up?" Some enthusiastic user or developer will usually be more than happy to point something out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-8059555616425571881?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/8059555616425571881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=8059555616425571881' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8059555616425571881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8059555616425571881'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/08/open-source-sorta-kinda-rocks.html' title='Open Source Sorta Kinda Rocks'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-8564413551056788488</id><published>2008-08-20T20:40:00.003-04:00</published><updated>2008-08-20T21:02:49.440-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Centaur'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>CodlFusion 9 Feature Request</title><content type='html'>I like Mark's java Loader it's nice but I feels hacky using it. Not saying anything in it is wrong or otherwise not grade A. I just feel like I am hacking something together using it. It'd be nice if this was just built into the engine, I was thinking something like createObject("java","com.package.Class",ClassLoader). This would allow ColdFusion to search one additional classloader that I create, presumably with UrlClassloader. Now I understand that this one might be odd since, as far as I recall, this would be the first you'd ever feed a Java object into a CF method so maybe we could just pass in a URI string, createObject("java","com.package.Class","/path/to/class.class")? Anyrate my whole point here is we are seeing more and more integration with Java and there is, obviously, a need for folks to load in Jars at runtime*. Many do not have access or know how to add jars in the defined classpaths, or add classpaths to jars.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Yes I know Shared hosts would most likely not like this but the fact of the matter is we can already do it, and Mark has made it super easy. So since we can do it we should just add it to the language instead of some external CFC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-8564413551056788488?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/8564413551056788488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=8564413551056788488' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8564413551056788488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8564413551056788488'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/08/codlfusion-9-feature-request.html' title='CodlFusion 9 Feature Request'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-7633219776470255063</id><published>2008-08-18T11:14:00.005-04:00</published><updated>2008-08-18T11:24:27.310-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Guangzhoul'/><category scheme='http://www.blogger.com/atom/ns#' term='nontechnical'/><category scheme='http://www.blogger.com/atom/ns#' term='China'/><title type='text'>Hello Guangzhou</title><content type='html'>I was checking out my traffic this morning and saw some folks from  China had visited. I was curious where in China so I drilled down to see more details. I was thrilled when I saw I had visitors from Guangzhou. Why you ask? Well a friend of mine, well she would say co-worker, is from your Guangzhou, which I still struggle to pronounce correctly. I thought it was cool to see someone from her home town checking out my blog! I think China is a very interesting country and the culture there is &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;fascinating&lt;/span&gt;, its very similar to Americans on some levels then miles away on others. Maybe someday I will get the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;opportunity&lt;/span&gt; to visit China so I can experience it myself. Before I do that I need to get a lot better at &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;Chinese&lt;/span&gt;, maybe I'll pick up that software they advertise on TV. Any rate from me to you and everyone else in China, Australia, Canada, France, Germany, and many other foreign places I can only hope to visit some time in the future hello and thanks for stopping by!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-7633219776470255063?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/7633219776470255063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=7633219776470255063' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7633219776470255063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7633219776470255063'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/08/hello-guangzhou.html' title='Hello Guangzhou'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-7976049755817586454</id><published>2008-08-14T22:24:00.007-04:00</published><updated>2008-08-16T18:55:11.284-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML conferences'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Bluedragon'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='bFusion'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Speaking at bFusion</title><content type='html'>Bob Flynn and is once again hosting &lt;a href="http://www.bflex.info/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;bFlex&lt;/span&gt;&lt;/a&gt; and this year has added &lt;a href="http://bfusion.info/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;bFusion&lt;/span&gt;&lt;/a&gt;! &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;bFusion&lt;/span&gt; is an awesome 1 day FREE(!!) event at Indiana University (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Bloomington&lt;/span&gt; Indiana)  followed by a 1 day FREE event for Flex. I won't get into the sales pitch just check out the &lt;a href="http://bfusion.info/"&gt;site&lt;/a&gt;. I do want to pimp my 2 sessions though both of which are very near and dear to me. First is Open Source &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;CFML&lt;/span&gt; Engines and second being Headfirst TDD.&lt;br /&gt;&lt;br /&gt;In my Open Source &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;CFML&lt;/span&gt; session we'll explore the open source business model and take a deep dive into how open source &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;CFML&lt;/span&gt; engines will help shape the future of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;CFML&lt;/span&gt; development. There is a lot more to Open Source than just the free cost aspect we'll explore this for a brief while. We'll also discuss the differences between Platform and language. I think its just as important to recognize the value of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;ColdFusion&lt;/span&gt; as it is to see the value in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;CFML&lt;/span&gt;. At the end of the session you'll walk away armed with the knowledge you need to make a conscious well informed decision if open source &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;CFML&lt;/span&gt; is the right option for you!&lt;br /&gt;&lt;br /&gt;My second session, Head First TDD, is pretty much what the title describes it to be. We'll be diving head first into how to start developing with Tests in mind. The cool part is the Head First TDD will be hands on. I won't tell you how you should do TDD you will follow me and work with others and PRACTICE TDD. In the 1.5 hour session there might MIGHT be 20 minutes worth of presentation the remainder of the time will be used to explore TDD together with, hopefully, non-trivial  examples. Since this is hands-on and interactive you'll need &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;ColdFusion&lt;/span&gt; (or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Railo&lt;/span&gt; should work),  Eclipse, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;cfEclipse&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;mxUnit&lt;/span&gt; installed. If you'd rather you can just use &lt;a href="http://www.poweredbypulse.com/"&gt;pulse&lt;/a&gt; and get &lt;a href="http://www.poweredbypulse.com/profile_detail.php?blueprint_id=rcb-12088&amp;amp;realm_id=2"&gt;my profile&lt;/a&gt;, which I have talked about &lt;a href="http://cfrant.blogspot.com/2008/07/pulse2-now-with-mxunit.html"&gt;before&lt;/a&gt;. You'll still need to install a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;CFML&lt;/span&gt; engine and have &lt;a href="http://www.mxunit.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;mxUnit&lt;/span&gt;&lt;/a&gt;'s &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;CFML&lt;/span&gt; code downloaded and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;preferably&lt;/span&gt; running in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;ColdFusion&lt;/span&gt;.  You'll also need an open mind and bring a little extrovert along b/c you will be working with others! You'll also need to download some CF files for the hands on but the examples I have are very boring and I am trying to come up with new ones, ones I have not finished yet. Most likely that will be done the week of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;bFusion&lt;/span&gt; as I procrastinate and have a lot on my plate. I'll post them as son as I am happy with them.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;Welp&lt;/span&gt; that's all I have to say for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;bFusion&lt;/span&gt;, I can't wait to see you all there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-7976049755817586454?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/7976049755817586454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=7976049755817586454' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7976049755817586454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7976049755817586454'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/08/speaking-at-bfusion.html' title='Speaking at bFusion'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-7824854540060905008</id><published>2008-08-14T08:18:00.003-04:00</published><updated>2008-08-14T08:45:13.915-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><title type='text'>Eclipse Plugin for Fusebox (re: Marc Esher's Comment)</title><content type='html'>Marc Esher, someone I've grown to call friend over the past few months, left a question in my post yesterday inquiring if Kroger would be donating an eclipse plugin for Fusebox. What Marc knows but others do not is we have built a plugin at Kroger to help kick start project start up. The plugin is a fantastic help to driving consistency and help get a project's code base off on the right foot. The short answer to Marc is no. But I didn't want to leave that sort of comment in my comment trail as that's the short answer. The longer answer goes something like this.&lt;br /&gt;&lt;br /&gt;        The plugin we have inside Kroger is pretty Kroger specific and reaches far beyond the boundaries of what Fusebox should offer/dictate, in my opinion. Beyond that it is mixed and jumbled up with a large amount of Java web app generation as well. There is also the added complexity of competitive advantage that might keep me from being able to release it. I have not asked so I am not sure where that would take me at this point. All in all the plugin would force way too many things on developers and most would probably find it's restrictions more problematic than it is worth. That being said the concept of the plugin is rather nice and I think I maybe have even mentioned to Marc at one point about making a plugin available. It would not be the Kroger plugin but instead a separate one that I build with lessons learned from inside Kroger. In fact as I think about it what I'd really like is to create a plugin that allows additions to be added, so I can use it internally as the core/seed to Kroger's plugin and externaly folks can use it as the core for Fusebox project creation or Model-Glue generation. In all honesty the plugin does little more than what a nicely written ANT task can do, it just feels cleaner and has a slightly nicer flow to it inside Eclipse. At the end of the day I am one person though and I have to make a decision on what is worked on. Personally, as I said before, I think Fusebox itself is in a happy place right now, it is stable and has reasonably good functionality. So chances are I'll probably work on things like this before picking up the core and flopping it around too much. In short no Marc Kroger's plugin as it is today will not ever be released. After some refactoring some of it, it might be release. There's still the the whole getting permission to do it that may or may not work out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-7824854540060905008?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/7824854540060905008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=7824854540060905008' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7824854540060905008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7824854540060905008'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/08/eclipse-plugin-for-fusebox-re-marc.html' title='Eclipse Plugin for Fusebox (re: Marc Esher&apos;s Comment)'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-1374060956163994265</id><published>2008-08-13T19:27:00.005-04:00</published><updated>2008-08-13T19:49:00.678-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='Fusebox'/><title type='text'>Hello Team Fusebox</title><content type='html'>I've been very busy lately with many projects so my blog has been quiet, though I hope Bill Shelton, myself and Marc Esher (among others) can pimp some of this stuff we are working on soon. I did want to take a minute to make mention of the announcement that was made in the cfConversation's round table. It's now &lt;a href="http://www.fusebox.org/go/news/new-fusebox-core-leader-adam-haskell-announced"&gt;official&lt;/a&gt;, I am the new developer in charge of the Fusebox core files. Check out the announcement for my  brief statement, also check &lt;a href="http://corfield.org/blog/index.cfm/do/blog.entry/entry/Adam_Haskell_takes_over_Fusebox"&gt;Sean's blog&lt;/a&gt; (like you haven't already). Expect me to think out loud a lot on my blog about new features and changes to Fusebox in the future. I do want to thank Sean for entrusting me with the core as well as his kind words, I appreciate the opportunity.&lt;br /&gt;&lt;br /&gt;     In all honesty Fusebox is in a happy spot right now and aside from bug fixes I am not planning on touching the core much right away. I've heard some rumblings about getting full support for Fusebox 3 and I'd relly like to hear why, and see how many want this. Over time as I get more comfortable with the core files I might try to achieve full Fusebox 3 compatibility but that will take time.  Intially I think I am more interested in experimenting with speeding up the core, small enhancements to the no XML features, and providing more definition to layouts (more on this soon this is very much an incomplete thought). So what do you hate about Fusebox?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-1374060956163994265?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/1374060956163994265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=1374060956163994265' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/1374060956163994265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/1374060956163994265'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/08/hello-team-fusebox.html' title='Hello Team Fusebox'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-3990699271094090398</id><published>2008-07-23T15:39:00.005-04:00</published><updated>2008-07-23T15:57:18.144-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Application.cfc'/><category scheme='http://www.blogger.com/atom/ns#' term='Centaur'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>ColdFusion 9: Server.cfc</title><content type='html'>I have been pretty quiet about ColdFusion 9, aside from a few comments here and there. I wanted to take a moment to comment on Server.cfc. I'll be blunt and say that in it's current described form I think it will be useless.  First let me describe Server.cfc. Server.cfc will provide users the ability to hook into the server start up and shut down events. This will be done by creating a Server.cfc. With this you can now react to onServerStart and onServerEnd.&lt;br /&gt;&lt;br /&gt;    Sounds promising right? Here's the problem, you can have 1, yes 1, Server.cfc per ColdFusion instance. How many of us deploy 1 application per ColdFusion instance? I know we certainly do not do this, heck we generally deploy 30+ apps to one CF instance. So now if I want each application to be able to do something at start up I have to constantly add functionality to Server.cfc for each application. This seems like a monumental mistake. I'd rather see the server hooks added to Application.cfc and the server scan for Application.cfc files on start up. ColdFusion has come so far to make application self sufficient  (mappings, session control, settings override) making one Server.cfc would be a huge step backwards if you ask me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-3990699271094090398?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/3990699271094090398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=3990699271094090398' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/3990699271094090398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/3990699271094090398'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/07/coldfusion-9-servercfc.html' title='ColdFusion 9: Server.cfc'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-1753891356032687032</id><published>2008-07-15T12:05:00.010-04:00</published><updated>2008-07-15T21:42:03.470-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unit tests'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Quality'/><category scheme='http://www.blogger.com/atom/ns#' term='pair programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Peer design'/><title type='text'>Improve Code Quality: Peer Design</title><content type='html'>As I work on my presentations I enjoy sharing some of my thoughts along the way. This will be the first of a series of entries that talk about concepts I plan to cover in my presentations. This is mostly a practice of thinking out loud but I think, or maybe hope, they will make a good series of blog entries. Of course, my opinions might change as I collect more and more empirical data, I'm very pragmatic, but I just have to share this knowledge pent up in my head!&lt;br /&gt;&lt;br /&gt;    What I am about to say may well change the way you think. You might think I am am a blooming idiot for saying it but I hope it helps folks improve their code's quality. &lt;span&gt;Unit test do not improve your code's quality.&lt;/span&gt; Pause for a second and let that sink in, unit tests do not improve your code quality. They measure and verify code quality but they themselves do not &lt;span style="font-style: italic;"&gt;improve&lt;/span&gt; the quality of your code. Think about it, running unit tests over and over again will not improve code's quality.  I'm not intending to undervalue unit tests but it is important to realize unit tests improve the application's observed quality by ensuring properly functioning code.  Unit tests do not improve your code's quality and more importantly maintainability.&lt;br /&gt;&lt;br /&gt;    Once you come to accept this fact the question you may be asking yourself is how does one improve the code's quality? Coding standards provide a good quality baseline and may serve to enforce some code quality, TDD can help improve the code quality (a node to unit tests), code reviews could certainly help improve quality, and design up front might help code quality as well. The truth is we all have different techniques to improve the quality of our code and I will discuss each one of the aforementioned topics in the future, and in my presentation.&lt;br /&gt;&lt;br /&gt;    Today I wanted to spend some time discussing peer application design. XP advocates may be keen to note I left off peer, or pair, programming from the list techniques to improve code quality. I did this with good reason, I do not like it. In my experience it is a waste of a developer, I'm not saying it is a bad technique for everyone but I am not an advocate. The reason for my lack of enthusiasm towards peer programming is I favor peer design. In my experience peer programming really turns into peer design only with lots of code being written and rewritten. Peer application design is when a group of developers/architects, not necessarily limited to only the developers of the system, have a design burn down of how the domain(s) should be modeled. It certainly does not need to be limited to the domain(s) but since at Kroger we have a fairly standard framework stack most of the design discusses focus in the domain modeling and not other aspects of an application. Peer design forces us to use our whole brain as we must first internalize our rationals then verbalize, and often times defend, our rationale with others. At the same time, or near same time, we  are internalizing others' concepts and mapping them to our own. Peer design has the added benefit of cross training, since we are including peers that are not planned developers on the system in design. Peer designs, just like their big brother JADs, do not generally just happen; they need coordinated and a strong facilitator ensuring the flow and guiding decisions in the correct direction. This is not to say you can not do a quick peer design with one other person at the bar on a Friday night but generally they are slightly more organized than that! Generally the output of a peer design session(s) is some sort of map for development. The map could be as simple as a cave drawing on a bar napkin or as sophisticated as a set UML diagrams. The diagrams, whatever form they come in, are much easier to change and morph than large chunks of code that you will get with peer programming. In a future entry I will talk about code reviews these diagrams can be very important in code reviews.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-1753891356032687032?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/1753891356032687032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=1753891356032687032' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/1753891356032687032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/1753891356032687032'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/07/improve-code-quality-peer-design.html' title='Improve Code Quality: Peer Design'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-5216706770477551047</id><published>2008-07-11T09:14:00.003-04:00</published><updated>2008-07-11T09:21:59.055-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe Feeds'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Hello Adobe Feeds!</title><content type='html'>I'm glad to get aggregated by MXNA err no Adobe feeds. Hopefully it will expose the blog to some new readership!  Being on the Steering Commitee for Open BlueDargon I was thankful to see Adobe still pick me up. I love ColdFusion and I love CFML even more, I think there is room for both open source and commercial, though I wish Adobe would open source ColdFusion I suppose we can't have everything. Right before Adobe Feeds started to aggregate my blog I had an excellent &lt;a href="http://cfrant.blogspot.com/2008/07/coldfusion-costs-too-much.html"&gt;post&lt;/a&gt; about the cost of ColdFusion and justifications for that cost. Some have complained about my misleading title but it really is all about how ColdFusion's platform IS worth the price, for some people.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-5216706770477551047?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/5216706770477551047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=5216706770477551047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5216706770477551047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5216706770477551047'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/07/hello-adobe-feeds.html' title='Hello Adobe Feeds!'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-6006705484254139549</id><published>2008-07-09T19:27:00.003-04:00</published><updated>2008-07-09T19:48:41.406-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Bluedragon'/><category scheme='http://www.blogger.com/atom/ns#' term='Railo'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='cost'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>ColdFusion Costs too Much</title><content type='html'>That's a pretty common phrase I hear from folks looking at ColdFusion for the first time. Even scarier I hear it from folks inside the community! Don't get me wrong I love open source and I think there is plenty of room for open source CFML engines/platforms but when it comes down to it ColdFusion's platform for what it offers is a great deal. I get tired of hearing CFML developers tout the RAD of ColdFusion this used to be an okay mostly valid sell but the market has changed yet CFML developers montra hasn't. With a good framework and IDE Java can be pretty RAD these days, besides no one has ever quantfiably proved how much faster ColdFusion, or CFML, really is for development. What follows is an exceprt of a response I sent to a certain "journalist" when confronted about Open Bluedragon, he opened stating ColdFusion's (Standard) price at a mere 1300 was "unbeleivable":&lt;br /&gt;&lt;blockquote&gt;... I'll be the first one to pimp the open source offerings but I also think there are some misconceptions of costs for ColdFusion. If you consider what the Adobe ColdFusion platform offers this [$1300 price tag] is pretty reasonable. What you or anyone needs to ask themselves, especially now with other CFML engines is, "Does the ColdFusion Platform offer me the features I need for the cost?" It seems more and more folks answer no to this but let's think about this for a second. Can Java produce a PDF? Certainly. You can use Java libraries and generate a PDF just fine. Without a bit of work though and a couple layers of abstraction generating an HTML equivelent and a PDF is tedious and can be costly when supporting an app long term. ColdFusion offers you a very simple and elegant way of generating a PDF based off purely the HTML you are already generating. Any pure Java shop can do this too but they need to either modify some open source HTML parses, write thier own, or purchase icesoft's parser (cost: nearly on par w/Adobe's ColdFusion). So with this feature alone all costs, never mind productivity gains of CFML, are nearly negated. Also consider JMS integration. Once again I could develop a nice abstraction layer in Java no problem but then my team is responsible for integration testing, regression testing, and support for this abstraction layer. Not nearly the same if I just use ColdFusion and it's JMS &amp;amp; ActiveMQ integration points. Testing is a real cost and relying on a commercial product is a huge cost saver. A final example to consider is ajax. Have you ever looked at how much a pain it is to refactor from ExtJS 1.0 -&gt; X.X, or jQuery with the UI widgets?  The api for ExtJs (and other js libraries) constantly changes and backwards compatibility is becoming a cost barrier to upgrading on large applications. By using ColdFusion's ajax tags you never have to pay a developer to upgrade your codebase to work with the latest version of ExtJS. Adobe is taking care of that for you behind the scenes. Now lets bring this full circle, these are only 3 examples I thought of off the top of my head, there are numerous other cost saving and value adds in the ColdFusion platform so the question really is are these worth it to you? Maybe they are (we certainly take advantage of some of these at my company) maybe they are not. If all you are generally interested in CFML and not the ColdFusion platform, great there are some awesome alternatives now through some open source offerings like OpenBD, Railo and, to a lesser extent, Smith Project. Each OS offering offers their own platform stuff, Open BD for example has a plugin for JMS. Railo, for example, has some very cool integration with Amazon's S3. ... ColdFusion's price point is very valid in many instances for many folks. I am an advocate for open source CFML, no doubt, but I am also an advocate for ColdFusion as it has solved many problems for the company I work for and done it at a huge cost savings.&lt;/blockquote&gt;Hopefully this spurs some good discussion and ideas on how ColdFusion is a money saver and not just from a RAD standpoint.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6006705484254139549?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6006705484254139549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6006705484254139549' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6006705484254139549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6006705484254139549'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/07/coldfusion-costs-too-much.html' title='ColdFusion Costs too Much'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-8987761427478721020</id><published>2008-07-05T19:06:00.005-04:00</published><updated>2008-09-11T19:23:10.094-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cfEclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='mxUnit'/><category scheme='http://www.blogger.com/atom/ns#' term='pulse2'/><title type='text'>Pulse2 now with mxUnit</title><content type='html'>In the past I've &lt;a href="http://cfrant.blogspot.com/2008/05/pulse2-review.html"&gt;blogged&lt;/a&gt; about &lt;a href="http://www.poweredbypulse.com/"&gt;Pulse2&lt;/a&gt; and I have to say it really has grown on me over the previous month or so that I have been using it. I've decided the $6/month is worth the investment as it does save me time and hassle as well as preconfiguring some of the "extra" plug-ins. On the free side though Pulse2's catalog has grown and that includes listening to my previous post and adding &lt;a href="http://mxunit.org/"&gt;mxUnit&lt;/a&gt; for all the CFML developers out there!  Finally, with this plug-in added I have posted a public profile for anyone that wants to give eclipse a try but have been intimidated by eclipse setup. Check out Pulse2 and use my public &lt;a href="http://www.poweredbypulse.com/profile_detail.php?blueprint_id=rcb-12088&amp;realm_id=2"&gt;profile&lt;/a&gt;. Everything you'll want is packaged in there (add Aptana with a freelance account for an ever better development experience). Pulse2 is an awesome tool and something I definitely plan to demo very briefly in my Be Lazy, Use Ant session at &lt;a href="http://www.cfdevcon.com/"&gt;cfdevcon&lt;/a&gt;. Don't wait for me to demo it though it is dog simple check it out today:&lt;a href="http://www.poweredbypulse.com/profile_detail.php?blueprint_id=rcb-12088&amp;amp;realm_id=2"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.poweredbypulse.com/profile_detail.php?blueprint_id=rcb-12088&amp;realm_id=2"&gt;&lt;img src="http://www.poweredbypulse.com/images/pulse-blue.png" alt="Check out Pulse" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-8987761427478721020?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/8987761427478721020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=8987761427478721020' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8987761427478721020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8987761427478721020'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/07/pulse2-now-with-mxunit.html' title='Pulse2 now with mxUnit'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-433185162009677353</id><published>2008-06-29T17:24:00.003-04:00</published><updated>2008-06-29T18:40:20.262-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ANT'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML conferences'/><category scheme='http://www.blogger.com/atom/ns#' term='cfDevCon'/><category scheme='http://www.blogger.com/atom/ns#' term='code review'/><category scheme='http://www.blogger.com/atom/ns#' term='sessions'/><title type='text'>Speaking at cfDevCon</title><content type='html'>Its an odd place to start my presentation tour (or I hope it becomes a tour) but I plan on submitting presentations to many conferences moving forward and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;cfDevCon&lt;/span&gt; will be my first presentation stop, though I did lead a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;BOF&lt;/span&gt; at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;cfunited&lt;/span&gt;. My topics, at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;cfDevCon&lt;/span&gt;, will not get you any further along with using your favorite framework and chances are you won't see a whole bunch of cool &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;CFML&lt;/span&gt; code snippets either. I figure there are &lt;a href="http://www.markdrew.co.uk/blog/index.cfm/2008/6/24/My-CFUnited-presentations-available-on-Adobe-Connect"&gt;plenty&lt;/a&gt; &lt;a href="http://corfield.org/blog/index.cfm/do/blog.entry/entry/CFML_Advisory_Committee"&gt;others&lt;/a&gt; out there that can do that &lt;a href="http://www.objectiveaction.com/kevin/index.cfm/Fusebox"&gt;better&lt;/a&gt; than me, maybe in the future I will consider some of those topics. Instead I'll enjoy talking about topics that are applicable across languages, and really &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;thats&lt;/span&gt; where my core focus lies these days. In my current role my programming has taken a back seat to my mentoring and training and honestly I spend some of my time with projects that are not even &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;CFML&lt;/span&gt; based projects. Many of the concepts I will be presenting on are 100% applicable there too!&lt;br /&gt;&lt;br /&gt;    My first session will focus on automation, I am all about being lazy and ANT is a perfect way to enable my laziness. This session first started out as setting up a developer &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;IDE&lt;/span&gt; and I quickly learned that each person has &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;thier&lt;/span&gt; own way of doing things and trying to show just one way of doing it will leave attendees with only a specific solution that works well for me and my company. Instead I plan to focus more on how to use ANT as a  tool to not only automate &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;redundant&lt;/span&gt; tasks like builds and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;deploys&lt;/span&gt;, but how it can be in &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;integral&lt;/span&gt; part of your daily development &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;life cycle&lt;/span&gt;. We'll cover things like test driven development and working with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;mxUnit's&lt;/span&gt; ant tasks. We'll touch on how to attach builders to eclipse projects, how to write ANT tasks to run tests, and, inspired by Marc &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Esher&lt;/span&gt;, a good overview of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;ANT's&lt;/span&gt; general syntax. There is a lot of content to cover and it will be fast paced and example heavy. We'll dip into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;CFML&lt;/span&gt; for a short bit to show off &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;mxUnit&lt;/span&gt; but most of the examples will be ANT scripts!&lt;br /&gt;&lt;br /&gt;   The second presentation (yep I have 2 at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;cfDevcon&lt;/span&gt;) will be all about improving code &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;quality&lt;/span&gt;. We'll spend a good amount of time talking about code reviews, the different types, how to introduce them in your company and how to be success with conducting code reviews. Code reviews are only one aspect of quality improvement, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_20"&gt;additionally&lt;/span&gt; we'll take a look at mentoring (and how mentoring and code reviews intersect) and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;JAD&lt;/span&gt; sessions. Improving quality is 100% language agnostic, if you have Flex, Java, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;CFML&lt;/span&gt; or .Net background come and check it out, everyone can learn something. If you are already &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_23"&gt;successful&lt;/span&gt; with code reviews or mentoring come and share your ideas we'll have plenty discussion points so everyone can share! I'm really looking forward to sharing my success and failures with folks through my presentations, if anyone ever has topics they would like covered let me know I am always looking for other ideas for exciting topics to explore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-433185162009677353?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/433185162009677353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=433185162009677353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/433185162009677353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/433185162009677353'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/06/speaking-at-cfdevcon.html' title='Speaking at cfDevCon'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-5725845213853150019</id><published>2008-06-20T13:08:00.006-04:00</published><updated>2008-06-20T13:26:00.632-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mentoring'/><category scheme='http://www.blogger.com/atom/ns#' term='cfUnited'/><category scheme='http://www.blogger.com/atom/ns#' term='peer review'/><category scheme='http://www.blogger.com/atom/ns#' term='code review'/><title type='text'>cfUnited BoF</title><content type='html'>I wanted to thank everyone that attended my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;BOF&lt;/span&gt; at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;cfunited&lt;/span&gt;. I had a great time sharing my experiences and leading a GREAT conversation with all of my peers. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;BOF&lt;/span&gt; was only a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;success&lt;/span&gt; thanks to the endless participation from the audience. If you enjoyed the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;BOF&lt;/span&gt; you might be interested to know I have a tentative plan to present this type of material at some conferences in the future (maybe even &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;cfunited&lt;/span&gt; 09???). Nothing for sure yet but I am working on the possibility. As promised here is the mind map. I will try to capture some of the conversation and more on this Mind map in future posts, maybe when I am running on more than 4.5 hours of sleep!!&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_mCB1PaTlrg0/SFvnQ9T524I/AAAAAAAAANo/1LVYRPBGvus/s1600-h/PeerReview.Mentoring.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 417px; height: 133px;" src="http://bp1.blogger.com/_mCB1PaTlrg0/SFvnQ9T524I/AAAAAAAAANo/1LVYRPBGvus/s400/PeerReview.Mentoring.jpg" alt="" id="BLOGGER_PHOTO_ID_5214015272133450626" border="0" /&gt;&lt;/a&gt; If you click the image it will get bigger. &lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-5725845213853150019?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/5725845213853150019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=5725845213853150019' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5725845213853150019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5725845213853150019'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/06/cfunited-bof.html' title='cfUnited BoF'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_mCB1PaTlrg0/SFvnQ9T524I/AAAAAAAAANo/1LVYRPBGvus/s72-c/PeerReview.Mentoring.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-2607543224048494570</id><published>2008-06-15T22:33:00.002-04:00</published><updated>2008-06-15T22:51:58.626-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='podcast'/><title type='text'>cfConversations is a Go!</title><content type='html'>Last Friday night I had the opportunity to take part in the next chapter of CFML podcast history, taking part in the first &lt;a href="http://www.cfconversations.com/"&gt;cfConversations&lt;/a&gt; podcast. Lead by Brian Meloche and joined by Rick Mason, &lt;a href="http://www.trajiklyhip.com/blog/index.cfm"&gt;Aaron West&lt;/a&gt; and &lt;a href="http://www.jeffcoughlin.com/"&gt;Jeff Coughlin&lt;/a&gt;, we had an hour long round table about all the happenings in the CFML world recently. Admittedly it started off a little slow but I think we really got a good stride after just a short while. I learned something valuable in this first round table, think about what I am going to say and write down notes. A couple of times I found myself wondering to much when I talked. I look forward to working with Brian more in the future on cfConversations round tables as well as interviews. While we're discussing interviews we have quite a few lined up to take place at cfunited including Mark Drew, Sean Corfield, Adam Lehman, Ray Camden, Peter Bell and many others maybe even including YOU. That's right &lt;span style="font-weight: bold;"&gt;you&lt;/span&gt;, if you plan to be at cfunited and would be willing to sit down and talk for 15 minutes or so leave a comment with some contact information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-2607543224048494570?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/2607543224048494570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=2607543224048494570' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/2607543224048494570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/2607543224048494570'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/06/cfconversations-is-go.html' title='cfConversations is a Go!'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-8645404223308730414</id><published>2008-06-14T10:30:00.000-04:00</published><updated>2008-06-14T11:21:34.649-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><category scheme='http://www.blogger.com/atom/ns#' term='polyglot programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='polyglot'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>Polyglot Programming and CFML Developers</title><content type='html'>For those that do not know what Polyglot Programming is allow me to introduce you to the term! It really sounds fancy but when it comes right down to it Polyglot Programming is the utilization of multiple languages to complete a task. We all are more or less polyglot programmers; using CFML, ECMAScript (Javascript or Actionscript), CSS, HTML, and (some of us) Flex/Flash. So for this discussion we'll refine Polyglot Programming down to using multiple server side languages to accomplish a task (as this is the really discussion going on most of the time these days). I think ever since CFML was available on the Java platform many of us began to be partial polyglots (I know this literally would mean we are each programs written in multiple languages but I'm going to use it to describe ourselves instead). As a point of reference one of my first projects I worked on with ColdFusion MX I used Java to zip content. The reason I say partial polyglots is I didn't &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; write Java I just used CFML to execute a couple of Java objects. Looking beyond a CFML developer barely learning enough Java to dip down into the Java layer, what is the typical growth path of a CFML developer?&lt;br /&gt;&lt;br /&gt; CFML is such a high level language the only level above CFML right now would be frameworks, or a custom DSL. I get the feeling that frameworks is where the average CFML developer interested in growing spends his/her time, learning frameworks. This is a good practice as one can learn a great deal from frameworks, not to mention the benefit of using frameworks in many instances. The problem I see here is the average CFML developer is not learning CFML's foundational language, Java*, and  not really wandering &lt;span style="font-style: italic;"&gt;that&lt;/span&gt; far from their comfort zone. Sure frameworks might force you to learn a new technique or push you into a new paradigm but you are still working in CFML. ColdFusion has done a spectacular job hiding the java underpinning behind a curtain. While that lowers the barrier to entry, which is a good thing to grow a community, I think it is a shame too. A CFML developer can blissfully develop code without ever understanding how it is their application works. On one side that's exactly what one would want to look for in a platform. From another perspective, when it comes to developer growth and incentive to grow, this may not be the best thing. Where is the incentive to learn how a war is deployed to a app server? How many CFML developers know what a context root is or how it might affect their application if the context root is not /.  I am going to guess the average CFML developer may not even be familiar with what a many of the terms I just talked about are, and even the terms that sound familiar many may not truly understand how they fit together. Without dipping a little further into Java the typical CFML developer can not realize the true power of polyglot programming that can be leveraged on the Java platform. A superb example of someone that has found, for him, a great balance of polyglot programming is &lt;a href="http://www.infoaccelerator.net/blog/post.cfm/should-cfml-developers-switch-to-java-or-decaff"&gt;Andy Powell&lt;/a&gt;. His presentation at cf.O outlined how his projects leveraged Java (with Hibernate and Spring) and CFML. At Kroger we use Spring Security in all of our [new] CFML application as well as an ever growing library of Java classes that allow us to share IP with the Java side of the house. Another good example of polyglot programming, with an added bonus of a lower barrier to entry, would be &lt;a href="http://www.barneyb.com/barneyblog/2008/06/06/cf-groovy/"&gt;cf_groovy&lt;/a&gt;, &lt;a href="http://www.barneyb.com/barneyblog/2008/06/13/comparators-in-cf-with-groovy/"&gt;Barney Boisvert's&lt;/a&gt; project. I've not had the time to look into much yet but the few blog entries Barney has posted have been fascinating. If you are interested in learning more about Java and the JEE environment that most CFML engines run in but don't know where to start leave a comment/question. Let me know if you will be at cfUnited. If there is enough interest I will setup a late night pow-wow in the Lafayette room to introduce folks to Java/JEE.&lt;br /&gt;&lt;br /&gt;* maybe .Net for those on BD.Net&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-8645404223308730414?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/8645404223308730414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=8645404223308730414' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8645404223308730414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8645404223308730414'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/06/polyglot-programming-and-cfml.html' title='Polyglot Programming and CFML Developers'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-7002869384355500604</id><published>2008-06-08T23:28:00.007-04:00</published><updated>2008-06-09T00:58:11.791-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='ColdFusion'/><title type='text'>OpenBD, The Comminity and How I See it</title><content type='html'>This is a direct response to &lt;a href="http://www.infoaccelerator.net/blog/post.cfm/is-open-bluedragon-losing-momentum"&gt;Andy Powell's blog entry&lt;/a&gt; but serves as a general statement of my opinions on the matter as well. I understand my comments might be perceived differently due to the fact that I am on the Steering Committee and I appreciate that but I hope folks can look past that for a second and read my rather long but thought out commentary. Besides these comments are mine and certainly do not reflect that of what others on the Steering Committee think.&lt;br /&gt;&lt;br /&gt;OpenBD has been loosing momentum since the day it was announced w/ speculation and bad blood strewn about. It really sucks Vince is the way he is and that OpenBD suffers from the New Altanta stigma. The migration stuff is a gimmik, a shitty one but a gimmik non the less, to sell licenses.  Alan is not part of New Atlanta and licenses BlueDragon to NA. If Vince was truly converting and not selling BD licenses wouldn't you think Alan would be a bit pissed off ? After all if Vince is converting and not selling licenses Alan is not making as much money. Is Vince eating away at Adobe's license sales? Probably not much he's claimed to be focusing on folks still on cf5 that have "abandoned the platform." Am I just being fed a spoonful of crap or the truth I don't know. I tend to believe him, maybe because I want to but also because I work for a large enterprise that nearly signed a deal with New Altanta a few years back and had nearly abandoned the platform (we were still on 5 at the time) and I know plenty other large companies in the same boat.&lt;br /&gt;&lt;br /&gt;There have been some bad misconceptions and double standards applied the OpenBD project to get OpenBD to where it is. For example Adam Lehman says OpenBD only served to eat away at Adobe's customer base. Folks agreed and disliked OpenBD claiming OpenBD does not want to grow the community it simply wants to cannibalize it. While I never thought this was true based on the NA stigma I can understand where that was coming from. Then Alan is shone in a light by Sean (slightly out of context but a fair depiction of the conversation really) that says Alan doesn't care about the CF community and wants to focus on the Java community. All of the sudden OpenBD is looked upon negatively b/c it doesn't care about the community. Seems like a hard place to win honestly. If OpenBD focuses on the community its cannibalism if OpenBD doesn't focus on the community it doesn't care about the community and is against it.&lt;br /&gt;&lt;br /&gt;As for Railo being more open, I vow right now to each and everyone that reads my blog and/or comments on the various boards I will be open and honest about what OpenBD is doing and make sure it is communicated. I'll also do my best to help folks differentiate between my own words and those that are coming from the steering committee. I have had an open dialog with Adam Lehman on email in the past and I plan to continue to seek his honest feed back in private as long as he is willing to listen. I'm also always willing to listen to anyone in the community I don't care if you are a high profile person like Joe or Sean or a lurker that has never spoken out before like Chris Weller. If you have an opinion and want to share it I am listening.&lt;br /&gt;&lt;br /&gt;What I think needs to happen. I think Vince needs to donate NA's Admin to the project as a sign of good will. I also think the comunity needs to realize that Alan's target is not the CF community and never was, that is why folks like Sean, Matt and Mark were on the committee to ensure the community was fairly represented. I think Adobe should continue being Adobe selling an awesome product and evangelizing ColdFusion. Finally I think OpenBD needs to refine the license, I'd love to see Alan step up to the plate and release under LGPL as well. Will that happen? Not Likely, but a Classpath exception would be a step in the right direction. OpenBD is not New Atlanta and I hope New Altanta drops BlueDragon JEE all together and only focuses on selling support for OpenBD.&lt;br /&gt;&lt;br /&gt;In an effort to be completely honest, had I know Railo was going open source I may have stayed out of Open BlueDragon.  I didn't know and now I made a commitment. My commitment was not only to OpenBD but to the community to make sure we were represented appropriately. I've listened so far and brought up points like better licensing and concerns about perception. Posts like Andy's are rough, they make me doubt if I am doing the right thing but at the end of the day I think I am and I appreciate the open and honest feedback.&lt;br /&gt;&lt;br /&gt;Like I said else where OpenBD should succeed or fail on it's technical merits not some emotional attachments. Technically its a good solid engine with plenty of potential and I would hate to see the OS offerings dwindle because some folks can not look past the history of New Atlanta's BlueDragon and look forward to the future of what OpenBD can offer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-7002869384355500604?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/7002869384355500604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=7002869384355500604' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7002869384355500604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7002869384355500604'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/06/openbd-comminity-and-how-i-see-it.html' title='OpenBD, The Comminity and How I See it'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-3406098218641128965</id><published>2008-06-07T07:51:00.003-04:00</published><updated>2008-06-07T07:58:15.313-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Railo'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><title type='text'>Railo going Open source</title><content type='html'>Sorry I am late to the blogging party  on this one. I've been so busy with work and OpenBD I haven't had a chance to welcome Railo to the open source community thought really they only announced it they have not "arrived" yet). Being big fan of JBoss, though I will say that has waned a bit after Redhat took over, I am really glad to see them teaming up together. This gives a great backing for Railo and for the first time ever we have more open source CFML engines than closed source engines. I smell standardizations on the horizon, course I have a horrible sense of smell so it might be something else.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-3406098218641128965?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/3406098218641128965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=3406098218641128965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/3406098218641128965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/3406098218641128965'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/06/railo-going-open-source.html' title='Railo going Open source'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-154687250134926465</id><published>2008-06-04T16:21:00.002-04:00</published><updated>2008-06-04T16:34:46.857-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cfUnited'/><title type='text'>cfunited fun</title><content type='html'>&lt;span style="font-weight: bold;"&gt;What are you looking forward to most?&lt;/span&gt;&lt;br /&gt;Hanging out with folks in the community. And mostly meeting new folks in the community.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Which speaker will most likely end up on your camera?&lt;/span&gt;&lt;br /&gt;I don't take many pictures and not a big fan of photography but if there is one possibility it might be Mark Drew after visiting the Tattoo place.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What do you plan to do outside conference time? (Clubbing/Bar Hopping, DC Tour, DC dinner cruise, Museum, Fine dining, Live Band shows, etc.)&lt;/span&gt;&lt;br /&gt;See above.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fill in the blank&lt;/span&gt;: I will mainly be around the bar &lt;span style="text-decoration: line-through;"&gt;booth&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Do you have a new project you are working on and will reveal it at CFUnited?&lt;br /&gt;&lt;/span&gt;&lt;span&gt; Revealed no but I will be talking about OpenBD.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-154687250134926465?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/154687250134926465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=154687250134926465' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/154687250134926465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/154687250134926465'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/06/cfunited-fun.html' title='cfunited fun'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-8366269309296908130</id><published>2008-05-29T10:12:00.003-04:00</published><updated>2008-05-29T10:31:00.496-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='cfUnited'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><title type='text'>Leading the OpenBD BOF</title><content type='html'>I was originally slated to lead the Improving Quality through Code Review and Mentoring. A twist of fate happened and OpenBD was pitted at the same time in another BOF, originally lead by Vince. Unfortunately Vince from New Atlanta will not be able to make the Open BlueDragon BOF. So now Mark Drew has agreed to take over my original BOF so I can lead the OpenBD BOF! Long and the short. I am leading the Open BlueDragon BOF at cfUnited (with plenty of help from &lt;a href="http://www.mattwoodward.com/blog/"&gt;Matt Woodward&lt;/a&gt; and &lt;a href="http://corfield.org/blog/index.cfm"&gt;Sean Corfield&lt;/a&gt; of course)!  Leave comments on what you would like to see/discuss in that BOF!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-8366269309296908130?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/8366269309296908130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=8366269309296908130' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8366269309296908130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8366269309296908130'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/05/leading-openbd-bof.html' title='Leading the OpenBD BOF'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-2139384281765755253</id><published>2008-05-22T23:05:00.002-04:00</published><updated>2008-05-22T23:34:07.769-04:00</updated><title type='text'>JavaOne Treasures</title><content type='html'>My company sent 6 folks to JavaOne and today was the first of many recap/regurgitation of JavaOne goodness. Mylyn a tool the CFML community has already been introduced to by some fellow bloggers is, of course, making a big splash in the Java community as well. Since I have had a large amount of experience with it I got the chance to help present the plugin to everyone, which was fun to see it get a bigger response. Next my Java counter part talked about JSF and blabbered a bit about the JSF2.0 spec, hype or real we'll see I suppose.&lt;br /&gt;&lt;br /&gt;The next recap was of a tool that everyone, EVERYONE, should have in their toolbelt. The tool is best used with Java 6 but can hook in with Java 5 and even 1.4 a little. The tool is free; &lt;a href="https://visualvm.dev.java.net/"&gt;VisualVM&lt;/a&gt; and can, with Java 6, visually show you all sorts of stats on what is running in your JVM. It can get down to how many of what classes you have in memory. Its also plugable and they already have a cool plugin to show a histogram of your GC which can be very interesting!  The tool is at RC1 right now and is a must for anyone doing any sort of development on the Java platform.&lt;br /&gt;&lt;br /&gt;Next Hot topics/Buzz was presented. It was cool to see Flex get a mention, gave me a chance to pimp ColdFusion as well as talk about BlazeDS. Groovy was of course brought up and we had a short discussion of it. In the same light Ruby and other dynamic languages (funny not CFML) were brought interesting missing from the list was Scala which I thought had some buzz at JavaOne from other accounts. Selenium got a mention and seems to be growing as an accepted tool in many communities now, again a good thing to see. I was really hoping JavaFX would get more than a 5 second mention but I expect much more about JavaFX over the next couple of months, again vapor or reality...we'll see. Finally 2 debugging tools were talked about Fiddler, and Omniscient. &lt;a href="http://www.lambdacs.com/debugger/"&gt;Omniscient&lt;/a&gt; looks particularly interesting as it essentially records your applications stacks and allows you to &lt;span style="font-style: italic;"&gt;replay&lt;/span&gt; something to allow you to do intensive root cuase analysis on a bug, very cool stuff.&lt;br /&gt;&lt;br /&gt;Overall it was an excellent recap with loads of good tips and information and I am really looking forward to playing with Omniscient and VisualVM as I start doing more and more with OpenBD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-2139384281765755253?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/2139384281765755253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=2139384281765755253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/2139384281765755253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/2139384281765755253'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/05/javaone-treasures.html' title='JavaOne Treasures'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-8065306945426754559</id><published>2008-05-17T17:27:00.007-04:00</published><updated>2008-05-25T22:22:01.010-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='extending openBD'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><title type='text'>Open BD Plugin Architecture</title><content type='html'>Alan Williamson said he needed to document and blog about the plugin architecture of Open BlueDragon, after all it is his baby. Being the &lt;a href="http://cfrant.blogspot.com/2008/04/i-3-open-bluedragon.html"&gt;huge proponent&lt;/a&gt; of it, I decided to go poke around the source and figure some of this out on my own. What follows is my interpretation of the plugin architecture after messing with it this this morning. I'm sure Alan will have better documentation in the wiki.&lt;br /&gt;&lt;br /&gt;Firstly since I didn't really feel like writing a hello world function I took the code &lt;a href="http://www.andyscott.id.au/index.cfm/2008/5/15/new-function-I-would-like-to-see-in-openBD--Coldfusion"&gt;Andrew Scott&lt;/a&gt; &lt;a href="http://www.andyscott.id.au/index.cfm/2008/5/15/queryGetRow-updated"&gt;posted&lt;/a&gt; the other day and turned it into a plugin.  Since the plugin stuff has not got much press Andrew did what he knew he could do and added his function to the core, something that has gotten some criticism already. This type of functionality is perfect for the plugin architecture so i figured it would be perfect for my example. In an effort to keep this entry from getting too long I am going to focus in on the com.bluedragon.plugin package and how to use the plugin architecture and I will leave out how to create a tag or method till later. Besides others have already figured it out so you can too right?&lt;br /&gt;&lt;br /&gt;The Plugin package contains only 2 concrete classes and for now we only need to worry about one of them, and an interface; the PluginManager (concrete) and Plugin (interface). We'll be using the PluginManager to register our functions and tags, on a side note it looks like this is also Java's interface to CFCs. On start up the PluginManager is called and it uses a node in bluedragon.xml to know what plugins to load. The node is &amp;lt;plugin&amp;gt; and the path is (found on line 67 of PluginManager): server.system.plugin. Here is a snippet example:&lt;br /&gt; &amp;lt;server&amp;gt;&lt;br /&gt;&lt;br /&gt;                &amp;lt;system&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;plugin&amp;gt;com.bluedragon.extra.ExtraPackPlugIn&amp;lt;/plugin&amp;gt;&lt;br /&gt;&lt;br /&gt;                &amp;lt;/system&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/server&amp;gt;&lt;br /&gt;&lt;br /&gt;The classes specified in the plugin node should be in the classpath, on launch, and each should implement the Plugin interface (the other class in the package mentioned earlier). One of the methods you have to implement is pluginStart. This method takes an instance of the PluginManager which you can then use to register all your addin methods and tags. To add a tag it would lok something like this:&lt;br /&gt;&lt;br /&gt;manager.registerFunction("QueryGetRow", "com.cfinnovate.example.QueryGetRow");&lt;br /&gt;(or registerTag, for tags).&lt;br /&gt;&lt;br /&gt;The first argument will be the name used inside of your CFML and the second is the class that implements the functionaity for your method/tag. Generally they'll extend functionBase or cfTag. NOTE: you &lt;span style="font-weight: bold;"&gt;can&lt;/span&gt; override builtin functions and tags with the PluginManager's methods.&lt;br /&gt;&lt;br /&gt;The important thing to call out here is your methods and tags can be written exactly as if they were built into the core, just put them in your own package. The end result is a, 100% portable to the core, extension to Open BlueDragon.  As far as eclipse setup I created a new resource folder inside of my openbd project called plugins and put the plugin code in my own package and it worked perfectly. This also allows for easy export to a jar to distribute to others. Here is a recap:&lt;br /&gt;&lt;/plugin&gt;&lt;ol&gt;&lt;li&gt;Create a Class that implements Plugin&lt;/li&gt;&lt;li&gt;Place that class (and your actual method/tag classes) in the classpath&lt;/li&gt;&lt;li&gt;Put the plugin implementing class in the server.system.plugin node&lt;/li&gt;&lt;li&gt;Start the server and enjoy&lt;/li&gt;&lt;/ol&gt;If you would like to see a working example check out &lt;a href="http://code.google.com/p/sadhats/source/browse/trunk/plugin-example/lib/example-plugin.jar"&gt;this&lt;/a&gt; example jar (which contains the source as well). Please note that the function itself is Andrew's which he shared with OpenBD and this is &lt;span style="font-weight: bold;"&gt;example code&lt;/span&gt;. An entire example project can be found in my &lt;a href="http://code.google.com/p/sadhats"&gt;SADHaTS project&lt;/a&gt;. Please note that to make it easier to share I put it in its own project. If you want to test out building the way I explained earlier just copy the package into a new resource tree in your openBD project. Happy coding!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Update:&lt;/span&gt; Alan has blogged about it now &lt;a href="http://alan.blog-city.com/openbluedragon_plugin.htm"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-8065306945426754559?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/8065306945426754559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=8065306945426754559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8065306945426754559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8065306945426754559'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/05/open-bd-plugin-architecture.html' title='Open BD Plugin Architecture'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-2894301546961387272</id><published>2008-05-15T11:25:00.004-04:00</published><updated>2008-05-15T11:35:45.286-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='CVS'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><title type='text'>Open BlueDragon Update</title><content type='html'>CVS and Bug tracking is up and running. There is an open readonly CVS account for folks that want to create patches and/or get the latest straight off CVS:&lt;br /&gt;&lt;br /&gt;Connection type: pserver&lt;br /&gt;Host: cvs.bluedragon.org&lt;br /&gt;Repo Path: /cvs/openbd&lt;br /&gt;User: openbdpublic&lt;br /&gt;password: password&lt;br /&gt;&lt;br /&gt;Bug Tracker:&lt;br /&gt;https://openbd-bugz.cvsdude.com/&lt;br /&gt;&lt;br /&gt;I'll follow up with a quick tutorial this evening on how to create patches and submit them through the bug tracker! I am very excited, its all coming together, hopefully the wiki will be up by the end of the week too!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-2894301546961387272?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/2894301546961387272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=2894301546961387272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/2894301546961387272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/2894301546961387272'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/05/open-bluedagon-update.html' title='Open BlueDragon Update'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-357089641599799957</id><published>2008-05-13T13:10:00.002-04:00</published><updated>2008-05-13T13:27:04.462-04:00</updated><title type='text'>ColdFusion 7 &amp; 8 annoyance</title><content type='html'>Just a quick post about an annoying "feature" of ColdFusion 7 &amp;amp; 8, and maybe even 6.1. In CF5 and CF6.0 nesting cfoutput tags was forbidden unless you specified a valid Group attribute in the parent cfoutput, not so much in CF7 (and maybe 6.1). Whenever that functionality changed it went fairly undocumented, though there is a comment in livedocs for v7 and a subtle wording change from 6-6.1. So fair warning if your testing environment is ohh lets say 7 but for some backwards reason you have to release code back on CF5 (or 6.0) code might break by this undocumented difference.&lt;br /&gt;&lt;br /&gt;There is a subtle wording change from 6-&gt; 6.1 but I do not think that does this, major, change justice:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://livedocs.adobe.com/coldfusion/6/CFML_Reference/Tags-pt211.htm"&gt;Live Docs v6&lt;/a&gt;:&lt;h3 class="reflabel"&gt;&lt;/h3&gt;&lt;blockquote&gt;To nest &lt;code&gt;cfoutput&lt;/code&gt; blocks, you must specify the &lt;code&gt;group&lt;/code&gt; and &lt;code&gt;query&lt;/code&gt; attributes at the top-most level, and the &lt;code&gt;group&lt;/code&gt; attribute for each inner block except the innermost &lt;code&gt;cfoutput&lt;/code&gt; block.&lt;/blockquote&gt;&lt;a name="2389980"&gt;&lt;/a&gt;&lt;p id="2389980" class="Body"&gt; &lt;/p&gt;&lt;a href="http://livedocs.adobe.com/coldfusion/6.1/htmldocs/tags-b12.htm"&gt;Live Docs 6.1&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;If you nest &lt;code&gt;cfoutput&lt;/code&gt; blocks that process a query, you specify the &lt;code&gt;query&lt;/code&gt; and &lt;code&gt;group&lt;/code&gt; attributes at the top-most level; you can specify a &lt;code&gt;group&lt;/code&gt; attribute for each inner block except the innermost &lt;code&gt;cfoutput&lt;/code&gt; block.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Nothing in the Change history...annoying.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-357089641599799957?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/357089641599799957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=357089641599799957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/357089641599799957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/357089641599799957'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/05/coldfusion-7-8-annoyance.html' title='ColdFusion 7 &amp; 8 annoyance'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-6448426017468900259</id><published>2008-05-11T17:48:00.003-04:00</published><updated>2008-05-15T11:36:38.722-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='pulse'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Pulse2 Review</title><content type='html'>This weekend I finally got around to giving &lt;a href="http://www.poweredbypulse.com/"&gt;pulse2&lt;/a&gt; a spin. For those that have not heard of pulse2 its an eclipse based application that does the dirty work when it comes to configuring..eclipse. I know this sounds kind of odd but that's what it is and does. Once you open pulse2 you can chose which Eclipse runtime you want, like the core + WTP, then all additional plugins in the Pulse2 &lt;a href="http://www.poweredbypulse.com/catalog.php"&gt;catalog&lt;/a&gt;. Once you have chosen the plugins you want Pulse does the dirty work of downloading and resolving dependencies. If you have 2 profiles with the same plugin it will not download it twice, its smart like that. You can also save these configs as profiles and share them with others. Pulse2 in its basic form is free but as I quickly found out anything worth while really requires the freelance account and that is subscription based @ $6/month or $60/year.&lt;br /&gt;&lt;br /&gt;My initial thought, and why it took me so long to use pulse, was meh I can do this all on my own. However, loading different profiles can be really useful. Lets say I am working on mxUnit's eclipse plugin I can load an IDE specifically geared towards plugin dev. This would be pretty different than if I was working on OpenBD's core (something else I did this weekend). I quickly learned how nice Pulse2 is and this is a perfect way to help others in the community, share my profile and anyone can use it! The problem for me comes in that you can only use plugins in Pulse2's catalog to use Pulse2 for free. Even worse some of the plugins in the catalog require a freelance account to  use (Aptana and Jboss tools are the 2 biggies here). This seems crappy to me since there is not way they can keep the catalog up-to-date. A perfect example of this is mxUnit; if I want to make a profile for the average CFML developer its either without the mxUnit plugin or it is a freelance account profile.&lt;br /&gt;&lt;br /&gt;You can always install plugins yourself and have them not managed by Pulse but again I loose the profile aspect of it. In addition to being able to add your own plugins with a freelance account you can also share configuration settings. This is really awesome since I have multiple dev computers pulse will now keep them all in sync with one another. That to me seems like the type of services that I should pay for, not the ability to manage any plugin I want, isn't that what pulse set out to do FREE to begin with? Other than my not all plugins can be managed gripe, I also had quite a few issues with Pulse2 on Leopard, invalid argument exceptions. So bad that I would repeatedly have to shut down Pulse2 and relaunch to get my profiles configured all the way. Once the profile was configured Pulse did work perfectly so it was choppy starting but overall the product worked and worked well.&lt;br /&gt;&lt;br /&gt;At this point I am not sure the service is worth the $60/year, I know it is not much but I can already accomplish most of what the service extras do for me with source control and checking in/out my eclipse configurations. What's more my method works with more than just eclipse it works will all my dev tools. This type of functionality is in the roadmap and once that comes to fruition I think it will surely be worth the cost. I might just get the subscription now so I can help fund the project and continue to use my extra managed plugins I guess I'll make that decision in 29 days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6448426017468900259?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6448426017468900259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6448426017468900259' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6448426017468900259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6448426017468900259'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/05/pulse2-review.html' title='Pulse2 Review'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-5650805221951660310</id><published>2008-05-07T18:28:00.003-04:00</published><updated>2008-06-21T10:58:59.630-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><category scheme='http://www.blogger.com/atom/ns#' term='cf.Objective'/><title type='text'>Open BlueDragon released</title><content type='html'>It's been a bit since I posted. I've been busy, cf.Objective and Open BlueDragon launched, then catch-up at work. I've been messing around with an installer for Windows for OpenBD and I am working on some additional video tutorials as well. I posted a rough one right after the OpenBD launch. Expect more in the future:&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" height="786" width="1024"&gt; &lt;param name="movie" value="http://content.screencast.com/bootstrap.swf"&gt; &lt;param name="quality" value="high"&gt; &lt;param name="bgcolor" value="#FFFFFF"&gt; &lt;param name="flashVars" value="thumb=http://content.screencast.com/media/d2540955-1f5a-482c-9233-77bbe7b939bb_4839d14a-cb64-43ec-92b9-0c6c58118e61_static_0_0_Thumbnail.gif&amp;amp;content=http://content.screencast.com/media/8eb147c5-ec60-4f34-bf18-0496aa3367db_4839d14a-cb64-43ec-92b9-0c6c58118e61_static_0_0_00000001.swf&amp;amp;width=1024&amp;amp;height=786"&gt; &lt;param name="allowFullScreen" value="true"&gt; &lt;param name="scale" value="showall"&gt; &lt;param name="allowScriptAccess" value="always"&gt;  &lt;embed src="http://content.screencast.com/bootstrap.swf" quality="high" bgcolor="#FFFFFF" type="application/x-shockwave-flash" allowscriptaccess="always" flashvars="thumb=http://content.screencast.com/media/d2540955-1f5a-482c-9233-77bbe7b939bb_4839d14a-cb64-43ec-92b9-0c6c58118e61_static_0_0_Thumbnail.gif&amp;amp;content=http://content.screencast.com/media/8eb147c5-ec60-4f34-bf18-0496aa3367db_4839d14a-cb64-43ec-92b9-0c6c58118e61_static_0_0_00000001.swf&amp;amp;width=1024&amp;amp;height=786" allowfullscreen="true" scale="showall" height="786" width="1024"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-5650805221951660310?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/5650805221951660310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=5650805221951660310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5650805221951660310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5650805221951660310'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/05/open-bluedragon-released.html' title='Open BlueDragon released'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-5822529831441159751</id><published>2008-04-26T18:58:00.002-04:00</published><updated>2008-04-27T16:15:55.430-04:00</updated><title type='text'>Back to Mac</title><content type='html'>After about 10 years away from Mac I finally have returned. I grew up with Macintosh and left after a horrible experience with Power Computing and OS8.  Over my time away I've grown fairly used to Windows but quite a few events have taken place that have led to my Mac reunion. Firstly I've always secretly wanted to return to a Mac but the initial release of OS X was lack luster (and the OS9 backwards compatibility was a nighmare, my mother went through it). Then I had no desire to go back to Mac with the adoption of Intel, reference the time frame I left Mac the first time. The Intel switch seems to be stable and Leopard seems to have gone through a nice settling period as well so this seemed like a good time to make my move back home.&lt;br /&gt;&lt;br /&gt;My second reason, Vista, aka windows biggest mistake since ME which was not even that long ago.  Vista itself really is not enough to turn a person to Mac, XP is solid and supported and I am sure Windows will correct itself with the next major release. The unfortunate part of Vista was it did show me where Microsoft is heading with their OS and quite frankly I am unimpressed. Vista is a hog and if nothing else is trying to be more Mac like, it lacks innovation and MS looks to be moving towards a subscription model. I'm not saying Mac really impresses me as an OS but Apple is continuing to push innovation into their line of computers and OS.&lt;br /&gt;&lt;br /&gt;Features that won me over:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Similarly spec'ed laptops in the Windows arena are as much or more&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Spaces is cool and I think I will be more efficient in the longrun&lt;/li&gt;&lt;li&gt;I missed AppleScript and it can be very helpful&lt;/li&gt;&lt;li&gt;Expose looks like it will be nice&lt;/li&gt;&lt;li&gt;The multitouch track pad was attractive&lt;/li&gt;&lt;li&gt;Time machine looked impressive&lt;/li&gt;&lt;/ul&gt;Finally I'll admit its "the in thing." Anyone that knows me would know I am not generally in the "in" crowd so it shouldn't come as a a surprise that this was not a determining factor but it did add a sense of urgency to purchase it now. I planned to get one soon and was considerng waiting till June to see if they did anything like add BlueRay but after reading about the power cost of BR I figured it may not be worth it anyway.&lt;br /&gt;&lt;br /&gt; After &lt; 24 hours of use I have to say I am loving the multitouch mouse pad! On my previous HP I would use my pinky to hit that small little sliver on the right side of my mousepad to scroll up and down, and heaven forbid if I wanted to horizontally scroll. Bedlam would happen if I accidentally passed over the sacred scrolling area while just trying to move the mouse! The multitouch pad is nice and large and there is no sweet spot for scrolling, just use 2 fingers and pull/push, sorry for anyone out there that sawed off all but one finger.  "Right Clicking" is easy as well with the 2 finger tap very easy and pretty intuitive. Most annoying thing so far is the lack of a delete key, well its called delete but it is a backspace to do a (windows) delete I have to do fn + delete.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-5822529831441159751?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/5822529831441159751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=5822529831441159751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5822529831441159751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5822529831441159751'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/04/back-to-mac.html' title='Back to Mac'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-5398394213139177777</id><published>2008-04-22T19:18:00.003-04:00</published><updated>2008-04-22T19:31:54.910-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>The Good The Bad and The Ugly</title><content type='html'>Generally I keep my blog entries to technology, and rarely stray. Well today is one of those days where I am pissed off enough to post about something other than technology.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Good&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  &lt;/span&gt;&lt;/span&gt;My Sony digital camera tumbled all the way down my roof and fell off to the concrete patio below and is working perfectly, after I glued the dial back on. I am amazed it is working great, zoom and everything. Kudos goes out to Sony on this one, when I saw it fly off the roof I thought for sure I was out a camera.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Bad&lt;br /&gt;&lt;/span&gt; So why in earth was my camera on the roof in the first place? Well we discovered we had a leak in the roof and when the roofer came to inspect it I wanted before and after pictures. The repair was to a flashing (I think thats the term) around a vent and was not too expensive $200.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Ugly&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Why did I want before and after pictures? Apparently this was never done correctly since our house was built by MI Homes 2+ years ago. And even though it just now was showing it has been leaking water for 2 solid years into our home. Upon further inspection we have at least a small amount of mold growing that is currently visible and from the looks of it we might find more. We'll know how ugly tomorrow when the drywall folks come out and repair/inspect.&lt;br /&gt;&lt;br /&gt;So moral of the story, don't trust a builder and make sure to double check EVERYTHING. We checked everything but our ass of a Realtor did not recommend getting a home inspector, shame on us for not knowing better (we were first time home buyers too boot here). Overall I have been fairly dissatisfied with my purchase from MI Homes, some due to their incompetence and some due to my incompetence as to what to look for when a home is built (like doing their jobs properly and roofing correctly).  There I finally posted a rant, its been a while.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-5398394213139177777?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/5398394213139177777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=5398394213139177777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5398394213139177777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5398394213139177777'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/04/good-bad-and-ugly.html' title='The Good The Bad and The Ugly'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-3085379766587222127</id><published>2008-04-08T18:18:00.006-04:00</published><updated>2008-06-21T10:55:20.845-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBD'/><category scheme='http://www.blogger.com/atom/ns#' term='BDSC'/><category scheme='http://www.blogger.com/atom/ns#' term='CFML'/><title type='text'>Open BlueDragon Steering Committee</title><content type='html'>Alan Williamson introduced the &lt;a href="http://alan.blog-city.com/bluedragon_steering_committee.htm"&gt;Open &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;BlueDragon&lt;/span&gt; Steering Committee&lt;/a&gt; today. As my previous posts may have given away I am honored to be among the likes of Sean, Matt, Mark, Mike and others on the Steering Committee. I feel like the small fish among the giants which is kind of cool since at work I am the Lead &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ColdFusion&lt;/span&gt; Architect. As I am quoted on Alan's blog entry I want to see &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CFML&lt;/span&gt; grow but I think it is important that we stay true to the spirit of the language. An additional focus area for me will definitely revolve around packaging and deploying Open &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;BlueDragon&lt;/span&gt;.  I feel that packaging an deployment is a 2 way stream,  the community feedback  on directions or tutorials is vital to the success of this project. Expect more, and better, tutorials in the upcoming weeks.&lt;br /&gt;&lt;br /&gt;Like everyone involved in the Steering Committee if you ever would like to discuss Open &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;BlueDragon&lt;/span&gt; feel free to email me at &lt;a href="mailto:adam.haskell@openbluedragon.org"&gt;adam.haskell@openbluedragon.org&lt;/a&gt;. Also don't hesitate to hunt me down at cf.Objective() or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;cfUnited&lt;/span&gt; to speak your mind about the project. I've had the pleasure of talking to many of the Steering Committee members at conferences past and we are all very approachable, though apparently Mark Drew can be scary &lt;a href="http://groups.google.com/group/openbd/browse_thread/thread/5053e9deb37526a5"&gt;sometimes&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-3085379766587222127?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/3085379766587222127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=3085379766587222127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/3085379766587222127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/3085379766587222127'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/04/open-bluedragon-steering-committee.html' title='Open BlueDragon Steering Committee'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-8959604020300267092</id><published>2008-04-06T10:06:00.007-04:00</published><updated>2008-04-07T20:19:37.813-04:00</updated><title type='text'>Why Adobe should LOVE Open BlueDragon</title><content type='html'>&lt;div style="text-align: left;"&gt;    Friday I let the cat out of the bag about one of the cool features of Open BlueDragon, &lt;a href="http://cfrant.blogspot.com/2008/04/i-3-open-bluedragon.html"&gt;Sandbox Projects&lt;/a&gt;.  Prior to this Jason Delmore had a very informative &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.cfinsider.com/index.cfm/2007/11/10/Things-ColdFusion-is-not-and-Why-ColdFusion-isnt-free"&gt;post&lt;/a&gt; explaining why ColdFusion is not free.  Jason begins by stating ColdFusion is not a lot of things, failing to really tell us what ColdFusion is in any certain terms other than a platform that does not fit the mold of all the things it is not. He conceeds that ColdFusion the language is free, or rather agrees to call it free for the sake of conversation, "let's call this FREE." Jason then proceeds to describe a bunch of features that cost oodles of money if developers/organizations want to use these technologies. Adobe seems to be very enamored with creating the "ColdFusion platform," and why not its a great revenue machine. This is EXACTLY why they should love Open BlueDragon. Think about sandbox projects for a second. If the language itself is a small part if ColdFusion why bother maintaining it? Why not let the community support the language, while you (Adobe), and others, focus on the platform. If Adobe thinks their exchange integration is popular enough test the waters make an extension pack for Open BlueDragon and put a price tag on it, likewise for the ajax features (though I would love to see that one GPLv2 so it can come bundled).  One thing I did not cover in my last  entry is how you can even override default behaviors with Sandboxes. Thanks to this type of behavior Adobe could even offer their cfImage enhancements as an alternate package.  The community would really prosper from this type of business model. CFML becomes a powerful community driven language by itself and the platform can be grown by multiple companies that add value to the platform (or language) through extensions (humm sounds like my favorite &lt;a href="http://www.eclipse.org"&gt;IDE&lt;/a&gt;!!). &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-8959604020300267092?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/8959604020300267092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=8959604020300267092' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8959604020300267092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/8959604020300267092'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/04/why-adobe-should-love-open-bluedragon.html' title='Why Adobe should LOVE Open BlueDragon'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-7283829156108988557</id><published>2008-04-05T16:43:00.005-04:00</published><updated>2008-04-05T17:23:44.353-04:00</updated><title type='text'>Going to cf.Objective()</title><content type='html'>I have been considering going to cf.Objective() for a while now, despite the fact that I would be paying for it myself. You see, I have been spoiled for years as my employer has paid, all expenses, for me to attend &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;CFunited&lt;/span&gt;, including this year. Heck even in college I had a full ride between scholarships and tuition savings from relatives.  The thought of paying for education was simply foreign to me. I was having a hard time justifying the cost (not so much of the conference but the flight, hotel, food, etc.), as I felt many of the topics revolved around things I was less than interested in or I already had experienced. Then the big news broke; Open &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;BlueDragon&lt;/span&gt; will be released at cf.Objective. This pushed me back into looking at the topics and reconsidering.  As I read more about the topics and thought more about them I began to realize my original thinking was...scary. I had begun to become complacent in my role and was not interested in looking "outside my box." Opening my eyes, and readjusting my attitude, I realized there was not a single session where I could learn something, share experiences with others after a session, or ask insightful  questions during the session. I started looking at my budget and really considering going. Then Brian &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Meloche&lt;/span&gt; changed his topic a slight bit and Adobe announced their topics. After reading the descriptions I realized these sessions alone could be worth the price of admission. After that it was a week worth of getting over actually spending money to get educated, I know crazy &lt;sarcasm&gt;.  I am going!!&lt;br /&gt;&lt;br /&gt;    To lessen the mental anguish of spending money to get educated I've decided to make a vacation of it and my wife will be tagging along. We'll fly in Wednesday and leave Monday. This should give her plenty of time to shop without me and enough time to hang out together in the evenings and before the conference. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Hotwire&lt;/span&gt; fetched us a great deal for the trip. Surprisingly it only ended up costing about $200 more to turn this into a vacation, when compared to my original budget that was not figuring &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Hotwire's&lt;/span&gt; sweet deal.  If anyone has suggestions of must &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;see's&lt;/span&gt; or must &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;do's&lt;/span&gt; leave a comment! I'm really looking forward to the experience, I just wish some of my co-workers could come too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-7283829156108988557?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/7283829156108988557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=7283829156108988557' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7283829156108988557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7283829156108988557'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/04/going-to-cfobjective.html' title='Going to cf.Objective()'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-582048613088456946</id><published>2008-04-04T15:49:00.002-04:00</published><updated>2008-04-04T17:41:26.139-04:00</updated><title type='text'>I &lt;3 Open BlueDragon</title><content type='html'>A couple times now I have see Vince, Alan, or others from the BlueDragon  teams quoted as saying, "Don't you love being in control." I thought sure yeah its open source but I still have to either branch or wait for you to accept my contributes to make it in the distro. Well I am happy to make an exclusive announcement! Introducing.... Open BlueDragon Sandboxe Projects!  Take  from the Steering Committee's, draft, charter:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;As part of the Open BlueDragon initiative, there will be a secondary code repository for projects that are not part of the core code base.  This repository will be known as the project sandbox.  Contributions to this area will extend the BlueDragon engine via the official plugin interface. This plugin interface facilitates deep integration into the core engine without necessitating any changes to the core code base.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This is THE most exciting news I have seen, and it gets better:&lt;br /&gt;&lt;blockquote&gt; The plugin API makes it VERY EASY to hook Java code up to CFC's... [the] plugin makes it easy for you to create a tag that would then bridge Java Technology-with-CFML-through-CFC.&lt;br /&gt;&lt;/blockquote&gt; Say your enterprise wants to use Open BlueDragon but you heavily use cfgrid's AJAX functionality, nothing is stopping you from writing a jar and dropping it in your distro, its that simple! No branching or figuring out the engine, use the published API and presto, AWESOME! As an added bonus you can contribute it back and if it is popular and well written it may become part of the distro in the future. Alan has already talked about some fantastic Sandbox Projects that blog-city uses which I will let him brag about, and others have spoke of additional ideas as well.&lt;br /&gt;&lt;br /&gt;I was excited about the open source initiative from the beginning but seeing this and learning  more about it I am even more excited. Thanks to Alan and Andy and everyone over at New Atlanta for this contribution to the community. And a special thanks to Alan for giving me the go ahead to blog about this, I was so excited I just couldn't contain myself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-582048613088456946?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/582048613088456946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=582048613088456946' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/582048613088456946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/582048613088456946'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/04/i-3-open-bluedragon.html' title='I &lt;3 Open BlueDragon'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-4408753479540666976</id><published>2008-03-28T18:18:00.004-04:00</published><updated>2008-03-28T19:05:12.961-04:00</updated><title type='text'>Training Developers: Tips for Success</title><content type='html'>Being the lead ColdFusion Software Architect I get the fun jobs, and I mean that in all seriousness, like training new developers. In some cases they are just new to ColdFusion and not new to programming other times they are new to it all. Today I had the sincere pleasure of training 4 individuals that have been working in ColdFusion on and off for the good bit of a year. The rest of the time they work in various Mainframe languages supporting a couple of core systems at Kroger. Its amazing to see how they have progressed from the Introduction to ColdFusion course I offered some 6 months prior.  I've blogged about my training experiences before and I received some good feedback so I figured I would lob another training ball into the blogsphere and see what I get back.&lt;br /&gt;&lt;br /&gt;    I can not stress enough labs labs labs. Don't make the labs easy make them think; force them to apply knowledge. Many of my students hate me for it but I tend to make them drawn conclusions, simple ones, based off what they should have learned from the lecture. My training focuses on learning not memorizing, and they thank me later. I do 2 types of labs for each lecture segment. First a group thought exercise where we work through a problem together. I generally give leading questions to guide my students to the correct answers. These are &lt;span style="font-weight: bold;"&gt;exercises&lt;/span&gt; not simple questions like what is defaultFuseaction. An example exercise might be, "Given this Fusebox.xml and subsequent files what will the user first see on the screen?" Next is an individual lab that requires them applying a large chunk of the group exercise with less help and generally a more detail. Following the previous example I may provide 5 files to the user and give them a screen shot of what the final product should look like. They have to wire them together and submit to one more page. I make these individual labs hard because we have already done easier labs together. The end result is high retention and developers that are thinking for themselves and not just regurgitating exactly what they memorized. &lt;br /&gt;&lt;br /&gt;Bring water, for yourself and others. Your brain loves fluid and dehydration causes mental fatigue. You have already lost a large amount of learning capacity if you are feeling thirsty, so I bring lots of water and encourage drinking it as much as possible. I am considering putting it in my slides in the future. As a result though make sure you plan for an extra 5 minutes in the labs for frequent breaks :). &lt;br /&gt;&lt;br /&gt;Know your audience. Spend time to get to know them and their backgrounds. If you can learn their names ahead of time that is great, I hate name tags they feel childish. Wait, this goes beyond knowing names though! Know folks background; where they come from, what they are working on currently, take a few minutes to learn some likes and dislikes. I learned more about what runs on MVS and more about cobol so I could be an affective trainer. I don't plan to program in it ever but having a base knowledge allows me to related to my students better. I'm not a huge baseball fan but when I had training around the world series I watched, it allowed me to related to folks in the class.&lt;br /&gt;&lt;br /&gt;You want to involve folks in the training. I hate using the word lecture to describe training; it should be a conversation. Lectures are boring and do not fire off nearly as many synaps in the brain. Conversational style lecture engages the students more which fires synaps more which leads to better retention and a more enjoyable experience. Conversational lecture also has a synergistic effect when you know your audience in that they become much more comfortable and this will lead to more honest and frequent feedback throughout the lecture.&lt;br /&gt;&lt;br /&gt;That's all I have time for now, happy learning and happy training.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-4408753479540666976?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/4408753479540666976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=4408753479540666976' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4408753479540666976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4408753479540666976'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/03/training-developers-tips-for-success.html' title='Training Developers: Tips for Success'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-5881007915630649189</id><published>2008-03-24T18:46:00.003-04:00</published><updated>2008-03-24T18:53:20.964-04:00</updated><title type='text'>BlueDragon + open source == cf.Objective()</title><content type='html'>Looks like BlueDragon is going open a little before I thought it would. New Atlanta is letting the Dragon out of the den at cf.Objective(). I even got a shout out in Vince's &lt;a href="http://forums.newatlanta.com/messages.cfm?threadid=3FE31F54-FF00-4035-A8312C9B7B58DAC4"&gt;post &lt;/a&gt;on the BlueDragon forums. I had already wanted to attend cf.Objective() but we already had cfUnited approved, now I want to go even more! Maybe I'll just put up the $$ it looks like an awesome conference, sure did want my MBP though, hah. Not much more to say about this details are in Vince's post, off to look at flight costs!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-5881007915630649189?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/5881007915630649189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=5881007915630649189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5881007915630649189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5881007915630649189'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/03/bluedragon-open-source-cfobjective.html' title='BlueDragon + open source == cf.Objective()'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-7102814502728871849</id><published>2008-03-22T14:42:00.006-04:00</published><updated>2008-03-23T10:14:41.661-04:00</updated><title type='text'>Glassfish - Initial Thoughts</title><content type='html'>So NCAA tourny games didn't start till 2:10 Saturday and I took the opportunity in the morning to test drive Glassfish, an open source JEE app server like Jboss. So far I'm mildly impressed with Glassfish.   Install is as simple as running 2 commands from a command line, both of which are clearly explained on the download page.  The 2 commands unzip an archive and run an ANT task to setup the rest of the server. Starting up the server is simple and quick though not quite as intuitive as run.bat for Jboss.  Deploying a CFML engine is simple as can be, navigate to the autodeploy folder and drop in the CFML engine war (or ear). BlueDragon and ColdFusion started up without issue and a marker file is created in the deploy directory once an application is deployed. As the name suggests applications are auto deployed once dropped in the autodeploy directory and subsequent file changes are picked up real time. The whole experience is right on par with Jboss.  I was able to get a single server cluster of BlueDragon up and running in less than 40 minutes and I only had to refer to the instructions on Glassfish's wiki once. Keep in mind I am no server admin so 40 minutes with little instruction is pretty good. The entire experience with the web based GUI admin was pleasant and fairly intuitive, though a tad sluggish in a few spots (this may have been more my PC than anything else). Server startup and shut down are comparable to Jboss; Glassfish maybe a little faster with starting ColdFusion and starting BlueDragon is blazing fast in either environment.  I did not get into load testing or anything of that nature but my test application which uses Fusebox and ACEGI started up quick and my test cases ran without error.&lt;br /&gt;&lt;br /&gt;    I only had a couple of dislikes, for instance the default configuration redirects all log messages to a log file instead of showing log messages in a console. Another gripe is the install, while not hard, is not as easy as Jboss. Advanced configuration however &lt;span style="font-style: italic;"&gt;seems &lt;/span&gt;easier with Glassfish's slick GUI admin and I would rate that more important than a 2 step install in the Enterprise market; unfortunately if it is harder to install developer adoption maybe slower. Not that Glassfish was hard to install, far from it, but it is not quite the "unzip wherever" install like Jboss. My only other ding is WTP does not package Glassfish adapters with the server manager for Eclipse, so I had to download one. Downloading the adapter was simple enough through the provided interface in Eclipse and configuration the Glassfish adapter was pretty much the same as &lt;a href="http://cfrant.blogspot.com/2008/03/jboss-eclipse-and-bluedragon.html"&gt;configuring Jboss&lt;/a&gt;. I was also happy to see the default startup commands used in Eclipse force logging information to the console which was one of my complaints earlier.&lt;br /&gt;&lt;br /&gt;    I would say Glassfish is a solid competitor and I see a huge potential for Glassfish. Especially after Red Hat took over the Jboss product and more or less alienated many enterprise customers with the licensing changes. If you are evaluating app servers take a serious look at Glassfish. I certainly hope Adobe considers supporting Glassfish in future releases.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-7102814502728871849?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/7102814502728871849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=7102814502728871849' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7102814502728871849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7102814502728871849'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/03/glassfish-initial-thoughts.html' title='Glassfish - Initial Thoughts'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-6678149097158065852</id><published>2008-03-22T09:24:00.002-04:00</published><updated>2008-03-22T10:18:39.501-04:00</updated><title type='text'>Software Complexity</title><content type='html'>Recently we had an R&amp;amp;D analyst from Microsoft stop by and talk with us. It was an interesting mix in the room 2 .Net individuals an architect and a lead developer, one CFM architect (me), and 3 Java folks one architect, one lead, and one Sr. developer. Scott, the fellow from Microsoft, was visiting there to talk about how we can change the software complexity landscape. Everything was open, compiler checks to static analysis tools. Before I give me thoughts on the discussion, which I will never be able to articulate the massive amount of geek power in that tiny room, allow me to explain what Software Complexity is, in Scott's eyes, because I came into the conversation with a differing idea. Software complexity would probably be better referred to as dependency hell, and then some. We're not just talking about dependency management between classes but the tendency of the lines to blur between layers or frameworks and code starts to bubble to the wrong place, this then leads to dependencies that should not exist or should exists in a different manner.  The picture was painted with a prototype tool that could show dependencies, including highlighting cyclical dependencies of dlls. The example was Visual Studio's codebase. Scot explained that when the engineers of Visual Studio took a first look at this tool they immediately said those dependencies (pointing to the core and another package). They also noticed that while they were treating the Visual Studio core as a core, it really was much less a core and much more a wrapper/framework around other cores in the system.   I started off the conversation with a non tool based approach in that a large problem in our industry is ITs inability to explain to management, or measure for that matter, the cost of complex poorly designed software. You can have a perfectly built application but then when it comes crunch time instead of evaluating the changes/additions we bang something out where we know it will work. This then gets built upon and banged again and 1 year later we have a bad design. I think it is an industry wide issue where we struggle to quantify with hard numbers the cost. We're developers not management though so we want a tool that will fix this or help us fix/manage software complexity. The discussion that followed took us all over the map from compiler checks that would enforce a macro packaging concept to annotations and class loaders that would choke if the view ever tried to instantiate part of the model. We had some really good ideas and some really bad ideas too; one of the best was my co-worker's idea, the java architect. Have a tool that could extract methods and entirely ignore the package structure and repackage them based on dependencies.  It is this repackaging that becomes powerful, in essence creates a procedural application then based purely on method dependency repackage the methods and view the differences. The repackaging may not be better but it would allow you to see how heavily a method is used outside its original class/package. This could give you great insight into large complex systems and help with anything from refactoring to finding better edge cases for regression testing. An off shoot from this idea was also to view method dependency and make sure it always flowed upstream and never regressed back down. Let’s face it as our industry runs further down the OO rat hole these types of problems will become more prevalent, especially as our small systems grow into large systems. There are tools out there to help manage dependencies like maven but these tools are not attacking the fact that framework A and framework B should never have been dependents in the first place. What are your thoughts, sky's the limit, what can we do manage software complexity? Is it a real problem?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-6678149097158065852?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/6678149097158065852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=6678149097158065852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6678149097158065852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/6678149097158065852'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/03/software-complexity.html' title='Software Complexity'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-143849123922234379</id><published>2008-03-17T18:43:00.008-04:00</published><updated>2008-03-17T20:29:14.282-04:00</updated><title type='text'>Jboss  Eclipse and BlueDragon</title><content type='html'>With the recent news of BlueDragon JEE edition releasing a new focus has been put on this type of environment. This is a GOOD thing in my eyes, I am a firm believer in knowing the underlying implementation of what you are working on. I'm not saying you should be a Java expert but if i say something like context path or context root I'd like folks to understand what that is, maybe even the different between and EAR and WAR.  Enough of my soap box lets get into the nitty gritty there are whole bunches tutorials and FAQs out there about JBOSS and JEE servers and the like but few from a ColdFusion perspective consider this the first of many entries on this topic. Today I am going to focus on getting BlueDragon installed in Jboss and eclipse configured to start and stop jboss!  By the way MOST of the below directions are perfect for ColdFusion as well. OK things you will need:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://labs.jboss.com/jbossas/downloads/" target="_jboss"&gt;Jboss &lt;/a&gt;(preferable 4.2.2GA) - if sourceforge intimidates you or you just want the download &lt;a href="http://superb-east.dl.sourceforge.net/sourceforge/jboss/jboss-4.2.2.GA.zip" target="_dljboss"&gt;use this link&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Eclipse w/ WTP  - This can be a bit intimidating the all in one package is &lt;a href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/europa/winter/eclipse-jee-europa-winter-win32.zip" target="_eclipse"&gt;here&lt;/a&gt; For those do it yourselfers WTP info can be found &lt;a href="http://download.eclipse.org/webtools/downloads/drops/R2.0/R-2.0.2-20080223205547/" target="_wtp"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.newatlanta.com/c/products/bluedragon/download/showLicenseAgreement?sku=BD-20-0701-j2d" target="_bd"&gt;BlueDragon &lt;/a&gt;(J2EE edition) - you will need and account, they don't bug you (at this point you could also download the ColdFusion installer).&lt;/li&gt;&lt;li&gt;Java SDK (or JDK), I like &lt;a href="http://java.sun.com/javase/downloads/index_jdk5.jsp" target="_java5"&gt;Java 5&lt;/a&gt; - It will be the 3rd link JDK 5.0 Update 15 (at the time of this writting). &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Now that we have this all downloaded lets get to setting everything up.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installing the Necessary Software&lt;/span&gt;&lt;br /&gt;1) Install the JDK, the defaults are fine.&lt;br /&gt;2)  Creat a directory somewhere free of spaces, I like c:\tools or c:\IDE or  /usr/tools/&lt;br /&gt;  If you already have eclipse installed you can skip this step if you'd rather not move eclpse&lt;br /&gt;3) Extract Eclipse into the  tools directory, at this point eclipse is ready to run. If you already have eclipse you will want to get the WTP project &lt;a href="http://download.eclipse.org/webtools/downloads/drops/R2.0/R-2.0.2-20080223205547/"&gt;installed &lt;/a&gt;into eclipse at this point*.&lt;br /&gt;4) Extract the Jboss directory into the tools directory, or else where. I like putting all my developement tools in the same place as siblings. In reality so long as all these pieces are installed into paths that are devoid of spaces you can put them all anywhere you want&lt;br /&gt;5) Extract the BlueDragon Zip into its own directorty on the desktop. At this point if you are wanting to use ColdFusion you would run the CF8 installer and choose an WAR deploy (if you are using updater 1 an EAR deploy would be a better option).&lt;br /&gt;6) Inside the extracted directory you should find a directory named something like BlueDragon_webapp_701_352 rename it to bluedragon.war&lt;br /&gt;7) Take that newly renamed directory and place it into this path: {jboss folder}/server/default/deploy , if you used tools and jboss 4.2.2 it would be C:\tools\jboss-4.2.2.GA\server\default\deploy\.&lt;br /&gt;8)Take a breath, at this point we have installed Java, Eclipse (with WTP), Jboss and deployed bluedragon to Jboss.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Spot Check: &lt;/span&gt;you should now have c:\tools\eclipse-3.3.0, C:\tools\jboss-4.2.1.GA,C:\tools\jboss-4.2.1.GA\server\default\deploy\bluedragon.war\ , and C:\Program Files\Java\jdk1.5.0_14 (like I said earlier the space in program files is OK for the java install).  Inside the the jboss directory (C:\tools\jboss-4.2.1.GA) there is a bin folder and you should find in there a run.bat if you double click it you should see jboss start up, feel free to do so to see if its all working. Before you move on be sure to ctrl-c and close the run.bat window!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Setting Up Eclipse.&lt;br /&gt;&lt;/span&gt;To Configure Eclipse to run Jboss you will need to setup a few things this includes setting up elcipse to know about the JDK5 and then configuring WTP's server control to run your instance of JBoss.&lt;br /&gt;&lt;br /&gt;1) Start eclipse (there should an eclipse.exe in the eclipse directory)&lt;br /&gt;2)  At this point you will probably want to install all the goodies you might enjoy inside eclipse. If I might suggest a few plugins, first the DUH one &lt;a href="http://cfeclipse.org/"&gt;cfEclipse&lt;/a&gt;, &lt;a href="http://update.aptana.com/update/3.2/"&gt;Aptana&lt;/a&gt;, &lt;a href="http://www.mxunit.org/"&gt;mxUnit&lt;/a&gt;, and &lt;a href="http://quantum.sourceforge.net/"&gt;QuantmDB&lt;/a&gt;&lt;br /&gt;3) Next we'll setup the JDK,  go to Windows -&gt; Preferences...  Java -&gt; Installed JREs (click on this option)&lt;br /&gt;4) Assuming you are current you will probably have a JRE 1.6 or JRE 1.5 selected, this is FINE. What you want to do is choose ADD (the button is on the Right of the window)&lt;br /&gt;5) You will be greated by a new window...in  the JRE Home Directory input box enter: C:\Program Files\Java\jdk1.5.0_15 (if you downloaded something other than updater 15 the final _## might be different but you get the idea).  At this point eclipse will "freeze" for a second or 2 and then all the other fields will be filled out, nice ehh??. All these values are fine and click OK until all the preference windows are closed. Now on to Configuring the Eclipse to run Jboss!&lt;br /&gt;6) First we need to get the correct panel showing, Select Window -&gt; Show View -&gt; Other...&lt;br /&gt;7) You'll want to Scroll down and find "Servers" expand that and select Server.&lt;br /&gt;8) A new panel should now be available  in the lower grouping of Panels.&lt;br /&gt;9) Select this panel as focus and then right click -&gt; new -&gt; server...&lt;br /&gt;10) TaDa a magically list of servers you can configure Eclipse to manage, out of the box. Select Jboss -&gt; 4.2 , then Next&lt;br /&gt;11) On this screen select the just recently added JDK 5 in the drop down and put C:/tools/jboss-4.2.2.GA in the Application Server Directory input box. If you placed Jboss somewhere else you will want to specify the folder that CONTAINS the /bin/ directory. Click Next.&lt;br /&gt;12) If you rather not type in 8080 while on localhost you can configure jboss (more or less) to listen on a different port like 80 on this screen, I just take the defaults.&lt;br /&gt;13) Click Finish. You will now see JBOSS 4.2 in the Server panel.&lt;br /&gt;14) Highlight it and click the Play Icon, alternately you can right click it and choose start.&lt;br /&gt;&lt;br /&gt;There you have it Eclipse Jboss and BlueDragon running and happy. Assuming all goes well you can now browse to http://localhost:8080/bluedragon/index.cfm.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Notes about JEE environment:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt; Paths are case sensitive even on windows, ColdFusion variables are still not case sensative.&lt;/li&gt;&lt;li&gt;In a simple install (like the one above) your context root is the name of the .war file/directory&lt;br /&gt;&lt;/li&gt;&lt;li&gt;when using cfinclude the path root is the directories in bluedragon.war&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When access files in the root of bluegradon.war you must navigate to http://localhost/&lt;span style="font-weight: bold;"&gt;bluedragon&lt;/span&gt;/file.cfm&lt;/li&gt;&lt;li&gt;If you want BlueDragon (or any WAR) to redeploy jut touch (change the mod date) of the {war}/WEB-INF/web.xml file&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In my next entry I will attempt to explain portions of the technology used to make this all happen. For now be happy it is running and enjoy BlueDragon on Jboss (or ColdFusion on Jboss).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* The reason you want to install WTP is WTP offers a server configuration that allows you to control a JEE server from inside eclipse. previously the only way to do this was with a commerical product like myEclipse but the WTP project now offers a similar feature for start stopping and managing deploys to JEE servers all from inside eclipse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-143849123922234379?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/143849123922234379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=143849123922234379' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/143849123922234379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/143849123922234379'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/03/jboss-eclipse-and-bluedragon.html' title='Jboss  Eclipse and BlueDragon'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-3372312487844259895</id><published>2008-03-10T14:38:00.005-04:00</published><updated>2008-03-10T21:22:35.841-04:00</updated><title type='text'>Thanks New Atlanta</title><content type='html'>If you have not heard New Atlanta has announced they will open source Blue Dragon's J2EE edition. The press release can be found &lt;a href="http://www.newatlanta.com/corporate/news/bluedragon_opensource_announce.jsp"&gt;here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;This is one of those times I wish I had named my blog something other than cfRant. I mean let's face it what is there to rant about here? New Atlanta just made a heck of a move to give the community a &lt;span style="font-weight: bold;"&gt;mature &lt;/span&gt;&lt;span&gt;CFML engine. The Smith Project is nice, don't get me wrong, but the product was not exactly mature and has suffered from some &lt;a href="http://corfield.org/blog/index.cfm/do/blog.entry/entry/Smith_Project__a_first_look"&gt;nuances&lt;/a&gt; that made it &lt;span style="text-decoration: line-through;"&gt;hard&lt;/span&gt;   impossible to use popular frameworks.&lt;br /&gt;&lt;br /&gt;   We, Kroger,  seriously evaluated using BlueDragon about 2 or 3 years back but at the time the pricing model for the J2EE version was just not competitive when compared to ColdFusion and the functionality CF7  offered at the enterprise edition (to date I still question if we have used many of those features we paid for but that's a rant for a different day). I know since then the product has grown and added additional feature making it an even stronger candidate for companies.  I must applaud New Atlanta for releasing the J2EE edition. I hope this drives more developers to learn more about the J2EE ColdFusion's installation, like &lt;a href="http://cfrant.blogspot.com/2007/12/open-source-projects.html"&gt;context roots&lt;/a&gt;. At the same time I do have some concern about a bit of a learning curve in that respect too, hopefully the FAQ statement "&lt;/span&gt;New Atlanta plans to work aggressively to integrate and distribute BlueDragon with popular open source products" will alleviate that adoption issue. When BlueDragon releases I will certainly do my best to blog about setup and configuration, if I feel New Atlanta's documentation is lacking in any way. We have been running ColdFusion in this type of configuration for years and Bob Burns and myself are big advocates of Jboss and ColdFusion.&lt;br /&gt;&lt;br /&gt;I have some pretty strong feelings about CFML and the direction Abode has pushed it, sometimes I agree, other times I have silently disagreed. I think there are some areas that could stand some great improvement, not to mention area's I would like to contribute.  Now all I have to do is get onto the BlueDragon steering committee! Vince if you happen to read this I am definitely interested. I am eager to see the source code for BlueDragon, I'm sure there's another group of folks interested as well...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-3372312487844259895?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/3372312487844259895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=3372312487844259895' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/3372312487844259895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/3372312487844259895'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/03/you-just-became-more-value-aka-thanks.html' title='Thanks New Atlanta'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-7980887614692215320</id><published>2008-02-21T21:39:00.005-05:00</published><updated>2008-02-21T22:36:23.331-05:00</updated><title type='text'>Build for Eclipse</title><content type='html'>&lt;span style="font-family:arial;"&gt;This is in response to a comment on Mark Drew's blog by Tero. At Kroger we have an automated builder for our ColdFusion Projects. I'm making it available for everyone &lt;/span&gt;&lt;a style="font-family: arial;" href="http://cfinnovate.com/builder.zip"&gt;here&lt;/a&gt;&lt;span style="font-family:arial;"&gt; I offer no official support but feel free to leave a comment if you have questions. Its fairly simple and works for us, installation Instructions:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Unzip the contents into your project in eclipse. You should have some thing like /[project]&lt;project&gt;/_builder and /&lt;project&gt;[project/.externalToolBuilders/.  You'll also want to add the following XML block to your .project file&lt;/project&gt;&lt;/project&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;buildSpec&amp;gt;&lt;br /&gt;   &amp;lt;buildCommand&amp;gt;&lt;br /&gt;       &amp;lt;name&amp;gt;org.eclipse.ui.externaltools.ExternalToolBuilder&amp;lt;/name&amp;gt;&lt;br /&gt;       &amp;lt;triggers&amp;gt;auto,full,incremental,&amp;lt;/triggers&amp;gt;&lt;br /&gt;&lt;br /&gt;       &amp;lt;arguments&amp;gt;&lt;br /&gt;           &amp;lt;dictionary&amp;gt;&lt;br /&gt;               &amp;lt;key&amp;gt;LaunchConfigHandle&amp;lt;/key&amp;gt;&lt;br /&gt;               &amp;lt;value&amp;gt;&amp;amp;lt;project&amp;amp;gt;/.externalToolBuilders/project_build.launch&amp;lt;/value&amp;gt;&lt;br /&gt;&lt;br /&gt;           &amp;lt;/dictionary&amp;gt;&lt;br /&gt;       &amp;lt;/arguments&amp;gt;&lt;br /&gt;   &amp;lt;/buildCommand&amp;gt;&lt;br /&gt;&amp;lt;/buildSpec&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Now let's get to educating you about what's actually going on. In eclipse you can attach 1 or more builders to a project. They can execute at different times in Eclipse. You can set these builders up by right clicking the project and selecting the properties. The above xml block is what eclipse would put in your .project file so it knows there is a builder attached to the project. Okay now how the ANT file works. Below is a bulleted list of exceptions you may want to know about/change.&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;This is setup specifically for JBoss but it is very easy to change.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Properties are not variables once they are defined they will not be over written. So the order of the property declarations is important&lt;/li&gt;&lt;li&gt;The ANT script does try to take advantage of an environment variable of JBOSS_HOME.  If it is not defined it will use the definition of env.JBOSS_HOME in the .properties file.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Some additional pathing for JBoss may need to be modified&lt;/li&gt;&lt;li&gt;The default build task is Project and all projects in Kroger deploy to cfusion.war/projects/ you may want to change that behavior&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;Please feel free to modify and use to your hearts content I am always happy to try to answer questions as well. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;project style="font-family: arial;" name="Generic Build for Jboss" default="Projects"&gt;&lt;property file="override.properties"&gt;&lt;property file="default_build.properties"&gt;&lt;property environment="env"&gt;&lt;property name="war_deploy" value="${env.JBOSS_HOME}/server/${deploy.type}/deploy/${deploy.war}.war"&gt;&lt;dirname property="path_to_project" file="${ant.file}/.."&gt;&lt;basename property="project" file="${path_to_project}/."&gt;&lt;target name="deployEclipseProject"&gt;&lt;property name="clean.collection" location="${collection}"&gt;&lt;property name="clean.destination" location="${destination}"&gt;&lt;property name="project_ignores" location="${path_to_project}/.cvsignore"&gt;&lt;property name="project_exludes" location="${path_to_project}/_build/.buildexclude"&gt;&lt;available file="${project_exludes}" property="project_exludes_exists"&gt;&lt;available file="${project_ignores}" property="project_ignores_exists"&gt;&lt;sync todir="${clean.destination}"&gt;&lt;fileset dir="${clean.collection}"&gt;&lt;exclude name="**/_development/"&gt;&lt;exclude name="**/_build/"&gt;&lt;exclude name="**/CVS/"&gt;&lt;exclude name="**/.svn/"&gt;&lt;exclude name="**/.externalToolBuilders/"&gt;&lt;exclude name="*.project"&gt;&lt;/exclude&gt;&lt;/exclude&gt;&lt;/exclude&gt;&lt;/exclude&gt;&lt;/exclude&gt;&lt;/exclude&gt;&lt;/fileset&gt;&lt;/sync&gt;&lt;/available&gt;&lt;/available&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/target&gt;&lt;/basename&gt;&lt;/dirname&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/property&gt;&lt;/project&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-7980887614692215320?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/7980887614692215320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=7980887614692215320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7980887614692215320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/7980887614692215320'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/02/build-for-eclipse.html' title='Build for Eclipse'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-4614074669204257590</id><published>2008-02-06T16:07:00.001-05:00</published><updated>2008-02-06T16:35:15.745-05:00</updated><title type='text'>Eclipse Monkey</title><content type='html'>Anyone that has installed Aptana has probably noticed the console that starts up with the message "Eclipse Monkey JavaScript Console Started." I know for the longest time I wondered what the heck that was. You may have used Eclipse Monkey and not known that you were if you ever accessed anything in the scripts menu option, like Compact Javascript. While it is packaged with Aptana it's actually a separate &lt;a href="http://wiki.eclipse.org/Eclipse_Monkey_Overview"&gt;plugin&lt;/a&gt; for Eclipse which you could use outside of Aptana.&lt;br /&gt;&lt;br /&gt;    I took the opportunity this morning to play around with it some and I have to say I was very impressed with what one could do quite quickly with Eclipse Monkey. I showed my co-worker, Bob, Eclipse Monkey and within 10 minutes he said, "This is sweet" and sent me a new script, which I've included at the bottom of this post, to help take care of the annoying MyEclipse &lt;a href="http://www.myeclipseide.com/PNphpBB2-viewtopic-t-19186.html"&gt;issue&lt;/a&gt; on Macs.  Aptana has a really nice one for code reviews or presenters that allows you to easily  increase and decrease  font sizes, lots easier than going through preferences. Another benefit I have found is the ability to do Key Bindings, essentially I can now bind my snippets to keys like I could with Homesite. Basically I have the Eclipse Monkey script with the appropriate key binding type out the text for the snippet to engage. I know its a bit of a hack but at least I can do it. I could just put the correct code into the Eclipse Monkey script itself but then I could not leverage SnipEx server...yet.&lt;br /&gt;&lt;br /&gt;/* * Menu: Editors &gt; Personalize Editor Font&lt;br /&gt;* Kudos: Robert Burns (The Kroger Co.)&lt;br /&gt;* License: EPL 1.0&lt;br /&gt;* DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript&lt;br /&gt;* */&lt;br /&gt;function main()&lt;br /&gt;{&lt;br /&gt; var store = Packages.org.eclipse.ui.internal.WorkbenchPlugin.getDefault().getPreferenceStore();&lt;br /&gt; font = Packages.org.eclipse.jface.resource.JFaceResources.getTextFont();&lt;br /&gt; if (font != null)&lt;br /&gt; {&lt;br /&gt;  var data = font.getFontData();&lt;br /&gt;  if (data != null &amp;amp;&amp;amp; data.length &gt; 0)&lt;br /&gt;  {&lt;br /&gt;   var fontName = getFontName(data[0].getName());&lt;br /&gt;   var fontHeight = getFontHeight(data[0].getHeight());&lt;br /&gt;   if (fontName != null &amp;amp;&amp;amp; fontHeight != null)&lt;br /&gt;   {&lt;br /&gt;    data[0].setName(fontName);&lt;br /&gt;    data[0].setHeight(fontHeight);&lt;br /&gt;   }&lt;br /&gt;   store.setValue(Packages.org.eclipse.jface.resource.JFaceResources.TEXT_FONT, Packages.org.eclipse.jface.preference.PreferenceConverter.getStoredRepresentation(data));&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getFontName(name)&lt;br /&gt;{&lt;br /&gt; dialog = new Packages.org.eclipse.jface.dialogs.InputDialog(window.getShell(), "Font Name", "Font name?", name, null);&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; result = dialog.open();&lt;br /&gt; if (result == Packages.org.eclipse.jface.window.Window.OK)&lt;br /&gt; {&lt;br /&gt;  return dialog.getValue();&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getFontHeight(height)&lt;br /&gt;{&lt;br /&gt; dialog = new Packages.org.eclipse.jface.dialogs.InputDialog(window.getShell(), "Font Height", "Font height?", height, null);&lt;br /&gt; result = dialog.open();&lt;br /&gt; if (result == Packages.org.eclipse.jface.window.Window.OK)&lt;br /&gt; {&lt;br /&gt;  return dialog.getValue();&lt;br /&gt; }&lt;br /&gt;};&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-4614074669204257590?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/4614074669204257590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=4614074669204257590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4614074669204257590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4614074669204257590'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2008/02/eclipse-monkey.html' title='Eclipse Monkey'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-4454725848474849232</id><published>2007-12-20T20:58:00.000-05:00</published><updated>2007-12-20T22:16:52.325-05:00</updated><title type='text'>Enterprise ColdFusion</title><content type='html'>I am entirely too obsessed with work and as a result I tend to only get to read the House of Fusion lists sporadically at best. I was reading it today and a topic crossed my eye that I had to check out "&lt;a href="http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:54612"&gt;JREE Servers (was Session Management - sticky sessions)&lt;/a&gt;."  Brad posed the question, how many people out there use something other than JRUN, or even multi-instance JRUN. I've often wondered this myself. In our Enterprise we've been running ColdFusion on JBoss for 2+ years now, we ran in CF7 unsupported. Over the course of the next few months I'm going to try harder to post some of our experiences with ColdFusion and Websphere. I'm also going to push one of my peers, Bob one of our Technical Leads, to start posting too. Bob has had a wealth of experience getting things up and running and has taught me a thing or 2 about connecting all the different pieces/parts together. Anyway, reply to the list or reply here but let everyone know, are you running ColdFusion on something other than JRUN? &lt;br /&gt;&lt;br /&gt;Here's a quick rundown of our setup:&lt;br /&gt;2 Different environments.&lt;br /&gt;&lt;br /&gt;Environment 1: IHS, Jboss (4.2.1), mix of CF8 and CF7, AIX Servers with IBM 1.4&lt;br /&gt;I do not have all the specifics on this environment b/c my involvement with it was limited. It runs half a dozen or so ColdFusion deploys concurrently. I am pretty sure it is load balanced across 2 servers. &lt;br /&gt;&lt;br /&gt;Environment 2: IHS, Websphere (6.1), CF8, all sitting behind an F5 running on AIX. &lt;br /&gt;This environment is a set of decked out P5 series IBM servers, 16 processors 100gig of ram. The processors are split up into 60 logical partitions with 40ish partitions dedicated to running 1-4 deploys of ColdFusion. &lt;br /&gt;   Our CMS on this cluster during peak AM hours supports about 10-15k sessions with peak around 60 simultaneous requests. Our LMS (my old system) once moved onto this cluster will serve about 5000 courses/hour during peak hours, push about 200 gigs of content/hour and process an average of 60 requests/second.  &lt;br /&gt;&lt;br /&gt;Some systems or libraries of interest we use/interact with: ACEGI, webMethods (well its in the works), IBM MQ series, Connect Direct, BMC's Enterprise Security Station (ESS), Lectora, Apollo, just about any database you can chuck at a system (for the search engines that includes Derby, Oracle, DB2, DB2 mainframe, MS SQL, MySQL, probably sadly Access).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-4454725848474849232?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/4454725848474849232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=4454725848474849232' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4454725848474849232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/4454725848474849232'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2007/12/enterprise-coldfusion.html' title='Enterprise ColdFusion'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-5943711976510736494</id><published>2007-12-12T19:15:00.000-05:00</published><updated>2007-12-12T19:20:28.478-05:00</updated><title type='text'>Thermo</title><content type='html'>Thermo was announced and subsequently shown off at MAX this year but if you didn't attend you didn't get much more than a few blurbs about it on blogs. Adobe has now posted a great 45 minutes(ish) presentation on Thermo. Check it out &lt;a href="http://adobedev.adobe.acrobat.com/p12022133/"&gt;here&lt;/a&gt;. Additional imformation is available on &lt;a href="http://labs.adobe.com/wiki/index.php/Thermo"&gt;Adobe labs.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-5943711976510736494?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/5943711976510736494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=5943711976510736494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5943711976510736494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5943711976510736494'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2007/12/thermo.html' title='Thermo'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-2793475170522240816</id><published>2007-12-03T21:21:00.001-05:00</published><updated>2008-03-05T10:06:40.766-05:00</updated><title type='text'>Open Source Projects</title><content type='html'>Open source is great for the community and for the developers behind the projects. It gives the developer(s) publicity and it also gives the developer(s) an opportunity to garner feedback from the community. I appreciate all the work that goes into open source and in an effort to improve a large portion of open source projects, notably frameworks that are out there, I want to bring up context roots. For all practical purposes context roots generally should not make a difference but  I've now run into multiple projects that  require modifications to work in an  environment that runs on a context root  other than /.  When possible I make fixes and contact authors of the issue. Its not terribly difficult to fix generally but I have had experience that authors were not even aware of context roots. Since this has occurred multiple times I just want to try to make people aware of context roots and and explain them (I may over simplify this but I'd rather over simplify than over complicate).&lt;br /&gt;&lt;br /&gt;    To keep it simple I'll limit this explanation to deploying ColdFusion as a WAR file. When you deploy a JEE application to an application server each application lives in its own directory. The context root is (in many app servers) the name of the containing directory. So if I deploy my ColdFusion application as cfusion.war (this contains my CFML and the CFML engine) the context root is cfusion.  Now if I want to visit the administrator I would visit,  http://sam.pl/cfusion/CFIDE/administrator/index.cfm.  Note the /cfusion/, this is the context root. Now on the flip side if I am in a ColdFusion page and want to use cfinclude to include that same CFM I would do &amp;lt;cfinclude template="/CFIDE/administrator/index.cfm"&amp;gt;, note the lack of the context root. Generally context roots do not rear their ugly head, the most common place I see issues arise is when pages attempt to include static assets in HTML. You see things like an application is deployed to /wwwroot/myproject/ and static assets are referenced like /myproject/css/default.css. The fix is simple enough, #getPageContext().getRequest().getContextPath()#/myporject/css/default.css. There are other issues I've seen when projects try to calculate the paths, generally resulting in {path including WAR directory}\{context-root (put here by framework generally}\{path to project}. Most of these issues can be overcome by using expandPath() and other built-in functions. Hopefully this helps a couple of open source contributors that may not have been hip to context roots.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-2793475170522240816?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/2793475170522240816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=2793475170522240816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/2793475170522240816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/2793475170522240816'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2007/12/open-source-projects.html' title='Open Source Projects'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-5566524960739692377</id><published>2007-10-30T20:41:00.000-04:00</published><updated>2007-11-01T21:01:14.312-04:00</updated><title type='text'>Training Developers pt. 1</title><content type='html'>&lt;span style="font-size:100%;"&gt;    For the last month I've been working on creating training content for ColdFusion as well as training associates throughout the enterprise, a total of 25 so far and probably another 15 by end of this year. I also got the chance to visit Teratech and receive an official training in Fusebox which was nice. Though in all honesty the lack of labs really made me question how valuable it would be for someone with no practical experience with the framework. Never the less I found the the fusebox training enlightening and it was very nice to see how others used/viewed the framework.&lt;br /&gt;&lt;br /&gt;  My main focus was Introductory ColdFusion training, you know the things you would find in the bootcamp tack at cfUnited. The audience was a pretty diverse range of people including mainframe programmers, interns, business analysts that wanted to gain more technical background, and Jr. level Java developers. With such a diverse  audience I struggled with knowing exactly what content to cover and how much detail folks would need. I've learned quite a few things along the way about training and even a few things about ColdFusion. For starters when you think you have enough examples create about twice that even if one example is a copy and paste with a slight difference. Prepare as many of the examples ahead of time to reduce boring typing, remember to go through them SLOWLY.  Do the labs you've created, twice, then multiple the time it took by about 5 or 6 that's how long it will take the class. If you know you will have a diverse set of aptitude levels having "extra credit" or slightly more advanced application of concepts ready for those done with labs early will give the advanced something to do, other than talk and create distractions (and potential frustrate others). Alternatively you can encourage them to help others.&lt;br /&gt;&lt;br /&gt;  I've always taken my skillset for granted. I've progressively grown with the internet, learning HTML then Javascript, then perl and ASP, then ColdFusion and Java and so on. Mainframe programmers know little at best when it comes to making web applications. Without any prior exposer, learning web application development is a daunting task. You have to learn a new IDE, a serverside language, a client side language, wait a client side language you mean the client isn't on the server? Hopefully you are getting the point, be prepared to teach about HTML and web basics even if the class is really intended to teach ColdFusion.  While I'm on the topic of IDEs a good explanation and lab on just using the IDE is a great use of time.  Concepts such as setting up your application server in Eclipse, starting a new project, deploying that project, what are views and perspectives, and how a workspace works are all very important foundation concepts for a budding developer. I'll get into the details about the topics and the order of topics in a future post, this one is getting a bit long. I look forward to getting feedback from others about training and their approach!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-5566524960739692377?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/5566524960739692377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=5566524960739692377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5566524960739692377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/5566524960739692377'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2007/10/training-developers-pt-1.html' title='Training Developers pt. 1'/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-1304704551912123409</id><published>2007-08-18T21:31:00.001-04:00</published><updated>2007-10-30T09:52:16.677-04:00</updated><title type='text'></title><content type='html'>Its been a while! For the past year I have been knee deep in my company's Learning Management System, which has been running on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ColdFusion&lt;/span&gt; 5 so my chances to do anything remotely interesting were limited to my evenings, and when I finally got the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;LMS&lt;/span&gt; partially onto CF7 (long story).  I am now on the path to transitioning into a new role in my company as a Software Architect (mostly focused on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;ColdFusion&lt;/span&gt;). This should give me more opportunities to play/experiment with new concepts. Here's a list of things I plan to be playing with in the not too distant future:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Integration with Maven&lt;/li&gt;&lt;ul&gt;&lt;li&gt;I found Maxim's blog entries about Maven &lt;a href="http://maximporges.blogspot.com/"&gt;here&lt;/a&gt;. They've been helpful and I'm curious if anyone else has used Maven with any success?&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Static Analysis&lt;/li&gt;&lt;ul&gt;&lt;li&gt;I've found &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;CodeCop&lt;/span&gt; From &lt;span class="copy"&gt;Steve Bryant and I am having mild success with that so far. I'd love to port it over to an AIR application and use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;JS&lt;/span&gt; as the main brain to I can hack the reliance on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;ColdFusion&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span class="copy"&gt;Code Coverage&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="copy"&gt;Who wants to help provide this to a growing maturing community? I know I would love to work on it in all that spare time I have ;)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span class="copy"&gt;That's the list I have of things I plan on playing with the rest of this year. In addition to that I started then stopped an initiative with a couple of friends to launch a new website (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;cfInnovate&lt;/span&gt;). We're restructuring and planning a little more then trying again, so keep and eye out for that. Finally I've been playing with integrating Spring with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;ColdFusion&lt;/span&gt;, not to wire together my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;ColdFusion&lt;/span&gt; apps with it but using it to leverage some Java components in our CF applications. Most notably we are leveraging &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;ACEGI&lt;/span&gt; as the middle man between our applications and our single sing-on solution.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-1304704551912123409?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/1304704551912123409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=1304704551912123409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/1304704551912123409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/1304704551912123409'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2007/08/its-been-while-for-past-year-i-have.html' title=''/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-115348857946505841</id><published>2006-07-21T08:38:00.000-04:00</published><updated>2006-07-21T09:29:39.476-04:00</updated><title type='text'></title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Amazon Mechanical Turk&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;I'm still not entirely sure what to think about Amazon's new beta service entitled Mechanical Turk, labeled as Artificial Artificial Intelligence. The concept is WAY out there. Basically they realize that humans are actually better than computers at doing certain tasks. They use the example of a human finding an object in a picture before they can even talk. The provide it as a observing with an API you submit a request and a human processes it. Its not instant, in fact it might take a long time. Why? Well because the humans in the Turk are you, me, or anyone with a connection to the internet. That's right anyone of us right now has the option to be in the Turk but seeming as how a quick google search turned up few results I am not sure how many people are in the Turk. I doubt anyone will get rich being a Human in the Turk but it can provide some fun, if worse comes to worse it might provide for a burger or 2 when you're in college, or allow a board house wife (or husband) to make a few bucks to buy some trinkets here and there. I'll definitely post more about this webservice as I play around with it more.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-115348857946505841?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/115348857946505841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=115348857946505841' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/115348857946505841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/115348857946505841'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2006/07/amazon-mechanical-turk-im-still-not.html' title=''/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-115237788031611624</id><published>2006-07-08T12:42:00.000-04:00</published><updated>2006-07-08T12:58:00.326-04:00</updated><title type='text'></title><content type='html'>&lt;span style="font-size:130%;"&gt;FusionDebug - About to change how we Develop&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;My company employs about 20 coldfusion developers now, and we're still growing so if you are interested in working for a fortune 25 company in southern Ohio let me know!!! Our developers have diverse backgrounds, some were mainframers, some were Java developers, heck we even have someone that used to be a bag boy at a store, one sharp guy too by the way. For those of us with backgrounds in compiled languages we crave a debugger that lets us step through our code. This is something that has been missing from Coldfusion for, well for as long as I can remember. For those of you that attended CFUnited you may have heard some buzz about FusionDebug. All I have to say is I can't wait to play around with this little puppy the &lt;a href="http://www.fusion-reactor.com/fusiondebug/captivateDemo.html"&gt;demo&lt;/a&gt; is exciting enough. I just want to give a big Kudos to the developer(s?) at &lt;a href="http://www.fusion-reactor.com/fusiondebug/"&gt;Intergral&lt;/a&gt; for the work put into this; very exciting for the CF community!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-115237788031611624?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/115237788031611624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=115237788031611624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/115237788031611624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/115237788031611624'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2006/07/fusiondebug-about-to-change-how-we.html' title=''/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-115228210263421516</id><published>2006-07-07T09:59:00.000-04:00</published><updated>2006-07-07T11:18:48.256-04:00</updated><title type='text'></title><content type='html'>&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;span style=""&gt;            &lt;/span&gt;One last piece on Duck Typing then I think I am about all quacked out (when will these silly puns end???).... This is in response to Dave's comments over &lt;a href="http://zachloch.wordpress.com/2006/07/04/duck-typing-dichotomy/"&gt;here&lt;/a&gt;, as well as some clarification to the general atmosphere in regards to duck typing. First I want to make a correction, something I failed to mention in my initial post. My comment in the Duck Typing session is that I had been tinkering around with using ANT to remove type for production. Sean, I&lt;span style=""&gt;  &lt;/span&gt;believe, misunderstood and conveyed that I was using this in production. This couldn’t be further from the truth, the bulk of our applications are legacy CF5 applications. I neglected to correct that in my original post but I wanted to make sure that is clear.&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;Something else I want to make perfectly clear, I 100% agree with the sentiments of Sean, Dave, and a large majority of others out there. Duck Typing is a really cool technique but it is not something to be used everywhere (read: abused), especially for performance. I'll leave it to the other 50 blog posts I've read to explain when or where it should be used.  The ANT script is forcing people to put duckType="true" into their function and argument declarations for a reason;&lt;span style=""&gt;  &lt;/span&gt;to clearly state where duck typing is being used for performance. This designation servers as documentation, for debugging. A additional intention was to force a developer to THINK before they [duck] type. What I realize is that regardless of what I have to say about not using duck typing for performance it will happen. My hope is that people are at least checking code into a source control that is not duck typed in hopes that QA, unit testing, and documentation are more accurate to the intent of the application/objects.&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;In direct response to Dave's comments I would like to think that unit testing would reveal something like a string passed instead of an object and that the application would be constructed to handle this appropriately. Though that was just an example and Dave's underlying point was Duck Typing for performance, no mater how you slice it, can be problematic. Dave has a perfectly valid point and I want to restate that if you insist on using duck typing for performance please please please use type restriction and return types in your development, and testing. I also want to go one record as agreeing with Dave’s other point which is database tuning can yield the highest returns in regards to performance. If you do us duck typing for performance it should be one of your last stops, not first,along the performance tuning path. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-115228210263421516?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/115228210263421516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=115228210263421516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/115228210263421516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/115228210263421516'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2006/07/one-last-piece-on-duck-typing-then-i.html' title=''/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-115210282218501809</id><published>2006-07-05T07:52:00.000-04:00</published><updated>2006-07-05T08:33:42.323-04:00</updated><title type='text'></title><content type='html'>&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;Open source Software is by and large awesome. If you work for a large company the barrier to adoption is sometimes overwhelming. In fact on one of our large projects, our employee schedule forecasting system was set to use the normal java open source stack, struts, hibernate, ect. There was a fear to use open source so our company ended up purchasing a framework from big blue...Our company has also adopted CVS instead of Subversion because maturity model score for subversion was too low.&lt;br /&gt;&lt;br /&gt;Well some folks in Amsterdam took it upon themselves to make a &lt;a href="http://www.elephantsdream.org/index.php"&gt;movie&lt;/a&gt; using nothing but open source software. The result is something I couldn't believe. An entirely open source movie, free as in beer and free as in source code. Its slightly out there in plot but the graphics are quite simply amazing. Take that Pixar. &lt;/span&gt;&lt;span style="font-family: times new roman;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-115210282218501809?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/115210282218501809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=115210282218501809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/115210282218501809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/115210282218501809'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2006/07/open-source-software-is-by-and-large.html' title=''/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30496245.post-115169496386122308</id><published>2006-06-30T15:10:00.000-04:00</published><updated>2006-06-30T23:50:00.743-04:00</updated><title type='text'></title><content type='html'>&lt;span style="font-size:85%;"&gt;Duck Typing for performance... lets face it when it comes to performace people attempt to squeeze every millisecond out of thier code. Duck Typing is a tremendious technique that Coldfusion's typeless nature affords us. It just so happens that Duck Typing can lead to tremendous performance improvements in CFC heavy applications. As many have commented while this is great it destroys the documentation in CFC explorer. Personally I think Duck Typing should be primarily used as a development technique not a performance booster. That being said it cannot be denied the performance you can get is pretty amazing. If you are using duck typing solely for performance gains its important to only use this &lt;b&gt;in production&lt;/b&gt;. Your code that is used for auto documentation, in development, as well as stored in source control should have return types, types, and required attributes. You can accomplish this by appending the below ANT task to your deploy process, I would recommend deploying your Typeless CFCs to QA and production. Please note that anything you want stripped needs to have ducktype="true"* &lt;b&gt;at the end &lt;/b&gt;of the tag:&lt;br /&gt;&lt;br /&gt;&amp;lt;property name="path_to_project" location="../test/duck" /&amp;gt;&lt;br /&gt;&amp;lt;target name="Duck Type"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;replaceregexp match="(cffunction[.\w]*?)([ ]?returntype)[ ]*?=[ ]*?(.)(.*?)\3[ ]?(?=(ducktype))"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;replace="\1 "&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flags="igm"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;fileset dir="${path_to_project}"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;includes="**/*.cfc"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/replaceregexp&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;replaceregexp match="(cfargument.*?)([ ]?required)[ ]*?=[ ]*?(.)(.*?)\3[ ]?(?=(ducktype))"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;replace="\1 "&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flags="igm"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;fileset dir="${path_to_project}" &amp;nbsp;&amp;nbsp;&amp;nbsp;includes="**/*.cfc"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/replaceregexp&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;replaceregexp match="(cfargument.*?)([ ]?type)[ ]*?=[ ]*?(.)(.*?)\3[ ]?(?=(ducktype))"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;replace="\1 "&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flags="igm"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;fileset dir="${path_to_project}" includes="**/*.cfc"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/replaceregexp&amp;gt;&lt;br /&gt;&amp;lt;/target&amp;gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;If you prefer to not require the use of ducktype="true"&lt;br /&gt;just remove (?=(ducktype)) from the match pattern. Additionally if you prefer to replace returntype="*" with returntype="any" instead of deleting it you can set replace equal to \1\2=\3any\3.&lt;br /&gt;&lt;br /&gt;*It is worth noting that the regex simply matches ducktype as an attribute. You can have ducktype='false' or ducktype="goaway" and it will still convert your functions/arguments.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30496245-115169496386122308?l=cfrant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cfrant.blogspot.com/feeds/115169496386122308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30496245&amp;postID=115169496386122308' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/115169496386122308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30496245/posts/default/115169496386122308'/><link rel='alternate' type='text/html' href='http://cfrant.blogspot.com/2006/06/duck-typing-for-performance.html' title=''/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
