<CFWTF>

iPhone + AIR/Apollo

So here's an interesting thought: The net's abuzzin' about the iPhone releasing the 29th of this month, and Steve Jobs made the announcement yesterday that the phone will support 3rd-party apps, but only web apps, or Apple-approved apps such as Google Maps, which runs natively with full interaction with some of the phone's cooler features. The general consensus is that this is a bit of a cop-out, and will severely hamper the innovation possible for the new device.

But then I started thinking, what if AIR/Appolo became an Apple-approved app?

Protecting Adobe

I'm seeing a strange and disconcerting trend lately. It started when I posted this article, which started off with a bit of a rant, but was primarily purposed to help explain some of the idosyncracies of the Flex-Coldfusion integration when using RemoteObject. The only response I've received to the post - in fact, the only response I've received so far to this blog - tried to paint the picture that my incident was an isolated one, and that the "vast majority" of people had no problems. (By the way, this comment was posted after I sent the post directly to someone closely associated with Adobe, and was posted at the same general time I recieved that person's reply via email)

I then saw almost the exact same scenario play out on Jeff Knooren's blog. And I've seen numerous but less blatant examples peppered throughout the blogosphere and mailing lists.

So I have to ask, when did Adobe become so fragile that it needed protecting? Coldfusion and Flex, among other things have in common the fact that their success is primarily community-driven. We are constantly fighting the impression that Coldfusion is a kiddie language, somehow inferior or not as capable/useful as .NET or PHP. Yet, how can we expect the outside world to think anything different when we take an attitude of "Don't talk bad about Adobe?"

Here's the critical point: when we take a protective stance, the impression this gives to outsiders is not that Adobe has no faults, it's that Adobe's faults are so bad that they must be kept secret, and the public cannot know about them. This is a far worse market position for our beloved languages than, say, admitting that the Coldfusion-Flex integration needs some work, but Adobe's on it, and once it's polished, it will be incredible.

ColdFusion is f*ing incredible, and I say Scorpio is the best thing that happened to the language so far. For the first time since MX, Adobe (yes, and their predecessors) have focused the bulk of their efforts not on trying to keep up with other languages on their strenghts, but on the one area where ColdFusion absolutely obliterates all others - Fast and Easy. Likewise, Flex is an amazing leap forward for the web community. Macromedia was smart to get into it when they did, instead of jumping on the AJAX bandwagaon, and as a result, Flex is maturing nicely as a language, is far superior to AJAX, and is way out in front of Microsoft's late arrival.

But these languages are not perfect, and trying to pretend they are isn't fooling anyone. I merely makes us as a community look like a snake-oil salesman.

Bottom line is, if you want the world to think Coldfusion and Flex are great, we first need to check our own attitude. Maybe we're suffering from an inferiority complex as a community. Maybe we've been so overwhelmed with Microsoft propoganda and open-source fanatacism that we're actually starting to believe that these languages outstrip ColdFusion. They don't. Not on our field anyway. Sure each has its uses. If you're programming for an entirely MS house, and you need a small app that needs to integrate tightly with Exchange, ActiveDirectory, and Sharepoint - you know what? .NET is probably going to be a good choice for you. And likewise, if you're trying to put together a web app using volunteer programmers and a total hardware/software budget of $500, PHP is likely your best bet there.

But if you're in the 90% of businesses that are neither Microsoft evangelists, low-budget garage-based shops, nor looking to build an enterprise application for one of the Fortune 500 companies, ColdFusion is almost guaranteed to be the most cost-efficient, maintainable, scalable option for you. Why? because it's FAST and EASY! It makes doing 90% of what you could ever want to do extremely simple to implement, and provides all the hooks necessary to do the other 10% in the languages that excel in those areas. How can you possibly consider this language to be anything other than a godsend?

So take off your pity-party panties, CF community. ColdFusion lags behind .NET and PHP in marketshare for one reason and one reason only. It costs something. The fact that it holds its own in market where it's competetors DON'T COST ANYTHING is a phenomenal testament to the usefulness and value of the language.

You are part of one of the most exciting times in the web's history, and you are part of the community that backs not only the greatest tool for our industry but the future as well.

Start acting like it!

Non-Updating Flex

Here's a nasty little gotcha I've found that I wanted to pass along. As you probably know, Flex Builder creates a html-template directory in each new Flex project, which is uses whenever it builds (compiles) the project. Apparently, the way Flex Builder uses this is to compile the .swf first and THEN copy over the contents of the html-template folder. I discovered this because we had somehow gotten a copy of our main.swf file into the html-template directory. As such, none of our changes were showing up in the finished .swf, because they had been overwritten with the old copy from the html-template directory.

Just in case someone else runs into the same thing.

Gradient Canvas for Flex

I've just posted this on Adobe Exchange. I'm not sure why, but the built-in containers for Flex 2 do not have a built-in capabilities for a gradient-background. You can apply one, of course, but it's not particularly simple. This is weird, I think, because the tag does have an easy way to set a gradient back-ground, and the Application tag is a Canvas under the covers.

Nevertheless, the gradientability is in there, and because Flex is so lovingly extensible, I just created a GradientCanvas container that you can feel free to take, copy, modify and use in your application. You can grab it from the Adobe Exchange or you can view my sample and View Source from there.

Flex? Coldfusion? Don't make me have to separate you two!

Warning: I'm about to rant. If you prefer to skip the emotion, feel free.

As much as possible, I prefer not to criticize others, especially not in areas in which I myself am not expert, but I am thoroughly disappointed in Flex, at least in its ability to integrate with Coldfusion. RIAs have been coming into their own for quite some time now, and when I first heard about Flex (2), Adobe was fairly screaming about how easy Flex and Coldfusion worked together. I was very excited about the possibilities, and began preaching about revolutionary change in the web, the death of AJAX and possibly even of Desktop applications, especially with the ability to push data with Flex (or Live Cycle as it's now called) Data Services.

"Woo-hoo!" I thought, and imediately dove in. That was a month ago, and I've just today gotten a hello world app to behave reliably - in that I feel like I could reasonably deploy it and be confident it would continue to work as designed. It has been a nightmare of uninstalling and reinstalling, tweaking settings in configuration files and in flexbuilder project settings (and in code). I've tried on multiple machines, with a couple different versions of Coldfusion. But getting these two applications (Flex and Coldfusion) to talk to each other proved to be slightly more difficult than training my dog to chew with his mouth closed. It has been a huge disappointment, mostly because my hopes were so high based on the quality organization that Adobe is and the intelligence with which they usually deploy their products.

Alright, so now that that's off my chest, I didn't actually write this post just to complain. In trying to fix this problem, I researched dozens of blog posts, forum threads and articles, and found people everywhere that were having the same or similar problems I was, and frankly, they have all been surprisingly consistent in being considerate enough to post what they did to finally fix the problem. However, nowhere did I find a thorough explanation of WHY things weren't working, or how they're supposed to work.

The point
So, I thought I'd give my synopsis of what I've learned over the last month in the hopes that it will save someone else the trouble I went through. It really is everything we dreamed. It's just that the current iteration is a little...quirky

[More]

BlogCFC was created by Raymond Camden. This blog is running version 5.7.
</CFWTF>