May 14, 2008

A recent post on Brian Kotek's blog about future directions for ColdFusion sparked a lot of debate over whether or not ColdFusion should support AS3 server-side. I want to change the focus here a bit and talk about a feature I've been thinking about that would be potentially useful to a lot of people. I'd like to see ColdFusion 9 support deployment of various services across multiple JVMs - without having to have multiple instances of the full ColdFusion server.

Why would you want to do this? Let me lay out a few scenarios and see if this starts to make more sense. Imagine you have a ColdFusion application deployed on a 32-bit Windows server with 4 GB of memory. The ColdFusion application in question does a lot of XML manipulation and PDF document generation. If you've ever had a similar application in a similar environment, then you know that your ColdFusion application can really only make use of about 1.6 GB of RAM as that's a limit of the JVM on 32 bit platforms. You also know that both XML parsing and PDF document generation are very expensive operations, especially from a memory utilization perspective. Now imagine if you could configure your ColdFusion application such that it was able to off-load the PDF document generation and the XML parsing and transformation to separate JVMs. This would allow your core application to handle the majority of your application functionality while off-loading the processing intensive operations to separate specialized JVMs (as opposed to separate threads on the same JVM). The difference here is that the additional JVMs wouldn't require a full instance of the application server - just the specific processing parts that can be off-loaded. This is exactly how most Enterprise Service Buses deal with distributed processing and I think it would be a killer feature for ColdFusion to have in its bag of tricks.

Of course the benefit isn't limited to just memory limited JVM instances in 32 bit environments. In 64-bit environments, it makes just as much sense as you are still segmenting processing, allowing for better thread utilization, and potentially allowing you to scale out just the type of processing you need to.

What do you think? Does this make sense?

May 5, 2008

Live blogging from SAPPHIRE 2008 in Orlando. Andre Salazar from Adobe is giving a session on creating engaging experiences for SAP using Adobe technology.

Main themes are Adobe has an entire group for managing the SAP partnership. Technologies highlighted include Flash, Flex, Air, PDF, and LiveCycle.

Partnership started in 2002 to replace SAP SmartForms with PDF Forms. Today, the partnership includes other technologies including Enterprise Learning (Acrobat Connect) and user experiences (Flash/Flex dashboards for SAP Analytics, RIA's within SAP).

SAP has licensed Flex for Visual Composer as well as several new areas, launching later this year.

Right now Andre is concentrating on Air. SAP is interested in Air for desktop/off-line capabilities. I'm not completely sure the way he's explaining it is connecting with the SAP audience. He's bouncing back and forth between Flex and Air, and I think that's further confusing people. They do seem to be respoding positively to the UI's that are being shown.

He's showing an example now of a company that put a Flex front end on top of SAP CRM. It's a (very) simple dashboard with charts and graphs. SAP is shipping an app later this year called Spend Analytics that's built in Flex and exposes cost and spend analysis. It's available in both Flex and Air.

Flex Islands inside of WebDynPro, also available later this year lets you embed Flex components inside the WebDynPro environment.

Excelsius (Business Objects) makes heavy use of Flex to generate rich dashboards from Excel data.

At Adobe, they use Flex and SAP for MDM Management internally.

He's now showing some more demos. The first one is the Adobe Customer Response Tool, built in Air. It's lined with SAP CRM for customer trouble ticket resolution. I see Christine Lawson's name on the demo screen ;-)

Next demo is the Adobe Directory, also built in Air. It's a little search widget that ties in with their LDAP as well as SAP's HCM system and MS Exchange. If someone in the search is available, you can pull up a map of the office and see where they sit. The latest version has voice chat too. Pretty slick.

Adobe has interactive forms internally for Travel Authorization. When you download the form, it's already pre-filled for lots of the information. It links to the travel policy via javascript (from intranet). Form has cost calculations and can be routed to managers for approval. The form is also available both online and offline.

He's now showing Acrobat Connect. It's amazing how much better Acrobat Connect is than WebEx and LiveMeeting.

Well, that's about it. Time to move on to my next session.

May 2, 2008

I had an issue with my new T-61 recently where I would put the laptop in hibernate mode, only to have it start back up about 5 seconds after shutting down. At first I thought there was something defective with my docking station, but trying the laptop on a separate on yielded the same problem.

After a little more digging, it turns out that the problem was the result of BIOS and driver settings. You see, for some reason the Network setting in my BIOS had Wake on LAN set to Yes. This meant that when my laptop was connected by cable to a network (such is the case with my docking station), any network traffic coming to my machine would cause the laptop to wake up from hibernation. Simply turning Wake on LAN off, however, didn't solve my problem entirely. I also needed to go in to the properties for my network adapter (via Window's Device Manager) and turn off Wake on LAN there as well (for me, it was under the Power Management tab). Once I took care of this, my hibernation restart problem went away.

April 25, 2008

I haven't seen this posted around the ColdFusion blogosphere, so here goes. Looks like there's a "new" aggregator out there called Geexoo that's hosting ColdFusion feeds (although they spell it Cold Fusion).

Right now, they are only aggregating 4 CF blogs, including Ray Camden's.

April 3, 2008

Hot news flash. ColdFusion 8.0.1 has been released with support for 64-bit operating systems. Also included in the release are a slew of bug fixes as well as some tasty new features including:

  • Update to core 3rd party libraries (jdk 1.6.0_03, FCK Editor 2.5, YUI 2.3, EXT JS 1.1.1, Spry 1.6, Verity 5.5.0 sp3)
  • Nested implicit structure and array creation
  • Access to the error stream in cfexecute
  • Timeout attribute for cfftp
  • Attachment removal after successful send for cfmail and cfmailparam

There is much more to the updater than what I've mentioned here. For the full list of fixes and enhancements, see the release notes.

You can learn more as well as download the update from Adobe's website.

April 2, 2008

I happened to be over at the Adobe Labs site today when I noticed they have the beta for Lightroom 2.0. I've been a Lightroom user for about 6 months now, and I absolutely love it. I'm looking forward to getting my hands on the beta to see the improvements Adobe has made to the tool. If you are into digital photography, you owe it to yourself to check out Lightroom.

March 24, 2008

I've been working up a few demos lately that make use of the new layout tags in ColdFusion 8, and while I think they really do make Ajax based layouts much easier than using the Ext js and YUI libraries on their own, there are a couple of issues I've bumped into that have me thinking that their potential may be limited. Let me explain.

Today I was working on a dashboard mock-up to show to some of my colleagues. I wanted to show them how simple it is to do a dashboard in ColdFusion, and I wanted to do it using the new cfwindow, cflayout, and cflayoutarea tags. Things were moving along well until I wanted to add an accordion pane on the left-hand side of the layout. Try as I might, I couldn't find the attribute or value in any of the new tags to make it happen. That's when I realized that accordion panes are only available as part of the Flash based cfform controls. Doh! I don't want to use any Flash in my dashboard demo (I'll leave that to a Flex based demo), just straight HTML/Ajax. There are several options for adding an accordion panel outside of ColdFusion (Spry, Ext js, etc.), but I wasn't expecting that the control wasn't going to be included as part of ColdFusion 8.

This led me to more carefully consider the new UI controls in ColdFusion 8. For many layout tasks, they may be sufficient. However, what really has me concerned is situations like this. I still want an accordion control, and in order to get it, I'll have to mix and match the ColdFusion UI controls with another solution. What I'm strongly considering right now is abandoning the new UI controls all together in favor of a custom tag based approach. It turns out that there are two ColdFusion custom tag libraries that each wrap the Ext js library: cfExt by Dan Vega and ColdExt by Justin Carter. I like the custom tag based approach for a number of reasons:

  • Utilizes the latest EXTjs library: 2.x. ColdFusion 8 currently uses EXT 1.x, and it doesn't look like they will be upgrading to 2.x anytime soon.
  • Custom tags allow for new feature adds faster than new ColdFusion releases.
  • Custom tags allow for community contribution.
  • Custom tags give you total freedom to customize should you need features not implemented by the original author.
  • Custom tags provide a form of insurance against Adobe stopping future development of the new UI tags. While they have always done a good job of maintaining backward compatibility, there are numerous examples of situations where a particular technology was phased out and new features/functionality halted (cfgraph/cfchart, Flash forms, cfform java applets to name a few)

I hope I don't come off as bashing the new UI tags in ColdFusion 8. I really do like how easy they are to use and will be very beneficial to a lot of developers. If, however, you require more flexibility, you may want to consider implementing UI controls natively in JavaScript, or looking into one of the Custom Tag Libraries mentioned previously.

I'd love to hear what others have to say about this topic.


Over on YouTube, there have been a bunch of "Why ColdFusion" videos lately. A coworker pointed me to three the other day that were absolutely brilliant:




Copyright 1995-2008 Rob Brooks-Bilson. All rights reserved.
Aura skin for Raymond Camden's BlogCFC inspired by Joe Rinehart & Steven Erat. This blog is running version 5.5.1.