Friday, July 30, 2010

BFusion Bound/I'm bbbaaccckkkk

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.

CF is not Java, it is a Java Framework

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:

Why is no one mentioning the Java argument? Ask your friends if they think Java sucks and can't handle load.

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

framework 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.

Monday, January 18, 2010

CFML Portlets Update

Over the past week I've had the pleasure of working with an old coworker of mine Bob Burns 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.

Tuesday, November 24, 2009

OpenBD and CF Conferences

Below is our, OpenBD Steering Committee's, official stance on the matter that was brought up here

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.

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.

As an example, Vince is creating a VFS for GAE that is a completely independent open source project ( 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.

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.
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.

Wednesday, November 11, 2009

FuseNG Update

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 FuseNG, 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.

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 Fusebox, sorry FuseNG will not be it for you. You see over the past year my career has change drastically. I do not officially work on ColdFusion at work any longer and I never find myself in the situation where I am using Fusebox. 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 Fusebox or revive the FuseNG fork, but that is up to the other individuals that originally looked to me for leadership of FuseNG. 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.

Monday, September 14, 2009

OpenBD is Free as in Speech

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 recent post. 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.

"Is the motivation of the OpenBD team ... [a] conscious effort to take CFML market share from Adobe?"
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.

"Is the motivation of the OpenBD team based in raising the quality of CFML"
"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. We want to provide a fully open sourced CFML engine to those interested in Open Source software. 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.

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 road map. 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).

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.

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.

Sunday, August 16, 2009

CFUnited Presentation Roudup

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!

Red Green Refactor
PDF Keynote

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 disappointed 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!

Fusebox Past Present Future (Busy Developers Guide to Fusebox)
PDF Keynote

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).

Code Review and Team Dynamics
PDF Keynote

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!

Busy Developers Guide to Java Part 1
PDF Keynote

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.

Busy Developers Guide to Java Part 2
PDF Keynote

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.

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.

Thursday, August 13, 2009

FuseNG Announced

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.

I chose FuseNG as the name for a couple of reasons:
  1. 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.
  2. I am a tad bit on the uncreative side and most of the cool names with Cold or Box are taken :)
  3. I love Star Trek TNG so doing anything that resembles one of my favorite television series is cool
  4. 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.
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.