Friday, December 14, 2007

Using FCKEditor file upload in ColdFusion 8

Rakshith, the lead engineer for the ColdFusion AJAX features has posted a blog entry on how to enable the file upload capability in the FCKeditor available in ColdFusion 8. We have disabled this feature due to security concerns, but if you know what you are doing, you can turn it back on with a few simple steps.

Read about it here.

Wednesday, November 21, 2007

Flex Camp Boston

As I posted before, I am speaking at Flex Camp Boston on December 7, 2007. This promises to be a really great event for experienced to advanced Flex developers. As of today it seems it is 75% sold, but in order to make this a really successful event, the organizers are looking to sell out. So of course they are running a contest. So if you are a Flex developer in Boston and haven't signed up, please feel free to put my name in the "If you were referred by someone, please enter their full name." box when you register. As a reminder, the fee is only $10!

What I need to do is figure out if speakers are eligible for the XBox 360 Halo edition that is being given away, along with a ton of other stuff like: two tickets to 360Flex in Atlanta, a ticket to CFUnited in Washington, D.C., copies of Flex Builder, Adobe backpacks, and Ipod Shuffle and books from O'Reilly. I keep asking Santa (my wife) for an XBox for Christmas, but all I get back from her is dirty looks. :-)

64 bit Support on ColdFusion 8 (Windows, Linux and Leopard)

The ColdFusion team is working to get ColdFusion 8 fully supported on 64 bit platforms (Windows, Linux and Mac OS X Leopard). If you are interested and want to participate in the testing of early releases of 64 Bit support on ColdFusion 8 on these platforms, please enroll yourself for prerelease program here.

Friday, November 09, 2007

JRun updater 7 now available

JRun 4 Updater 7 is now officially live on Adobe.com and is publicly available to customers. Updater 7 now supports a host of new platforms, upgrades to existing software and bug fixes. Check the release notes for more details.

For those running multi-instance or standalone ColdFusion 8, there is no need to update using this updater. For users deploying on an EAR/WAR configuration on JRun, updater 7 is goodness.

New XMPP library for CF 7 & 8

There is an updated tech note that has just been published that updates the library (smack.jar) used for the XMPP Event Gateway in ColdFusion.

This fixed jar adds the following:
  • Adds compatibility with Ignite Openfire XMPP server
  • Fix for missing realm in SASL/Digest-MD5 challenge response
  • XMPP/Jabber 1.0 specification compliance
  • Increased connection timeout from 5 to 15 seconds (helps reduce connection failures for very busy XMPP servers)
  • Includes SASL/Plain support for servers requesting SASL/PLAIN such as Google Talk
  • Added SASL/Digest-MD5 support
Some of these fixes are in ColdFusion 8, some are in CFMX 7.0.2. Basically, if you are running the XMPP gateway in ColdFusion MX 7 or in ColdFusion 8, you want this new jar.

Read the technote here.

Monday, November 05, 2007

Speaking at Flex Camp Boston

I will be giving a talk at Flex Camp Boston next month (December 7) on ColdFusion and Flex integration. This is a great opportunity for Flex developers in the Boston area to come and hear some Flex experts talk about advanced Flex topics like Data Services, AIR and Flex 3.

Registration is only $10. That is ten dollars and includes all speakers, free parking and lunch. This is an externally organized event, however Adobe is sponsoring the shindig and there will be some giveaways.

Space is limited so register now!

Friday, October 12, 2007

MAX 2007 - Using ColdFusion with LCDS session materials

For those of you who attended MAX 2007, a PDF version of my slides and (more importantly) a ZIP file with my demo files are now available on the Adobe MAX 2007 web site here: http://adobemax2007.com/na/sessions/library/ You may need to login to to the MAX web site get to this page.

To find this info without going to it directly, you log in to the MAX 2007 web site (http://adobemax2007.com/) and on the screen with your registration details click on the "Presentation Library" link on the left hand navigation panel.

If you unzip the demo files in to your ColdFusion web root, you will get two directories, 'messaging' and 'samples', each with a README.txt file that explains how to set up CF for each application (create gateways, data sources, etc).
Included are:
  • A simple chat messaging application along with a CFML template that can publish a message through the Messaging event gateway.
  • The classic "Contact" Data Management application - MXML and Assembler CFCs
  • Some templates that demonstrate the new CF8 ability to notify LCDS through an event gateway when managed data has changed outside of the Flex/LCDS world.
  • The more complex CRM Data Management application, include a better conflict resolution handler
Lots of good stuff here.

You will need to have ColdFusion 8 installed (Developer Edition is free!) with the integrated LCDS installation option. The database used for the Data Management applications is MS Access. Sorry to Mac and Unix users , but these are my Windows laptop demo files.

Monday, October 08, 2007

MAX 2007 is over

Well by now you have read everyone's blog postings about the largest MAX ever - over 4200 attendees. ColdFusion developers rocked the house as usual, but since ColdFusion 8 has been out since July, Flex and AIR (the Adobe Integrated Runtime) got a chance to really shine and I can say that many of the CF developers I talked to were ready to jump on to Flex 2 and the upcoming Flex 3, using ColdFusion as the back end.

My session on ColdFusion and Live Cycle Data Services integration went well, with a good crowd for both showings. As usual I had too much to talk about (40 slides!), but I managed to keep both times on track and finish in 60 minutes. I hope I inspired at least a few people to try the integrated installation and write a simple MXML file, drop it in their CF web root and see what happens. The trial edition of Flex Builder 2 (or the beta edition of FB 3 on labs) is a good place to start.

All-in-all I think this MAX was a success. The food was good (and plentiful - every time I turned around, there was some sugary snack or dessert starring me in the face) but the conference center was huge and I felt like I walked for miles to make up for all the food. I got to play some Halo 3 in the after hours lounge, even though the lounge in the conference center was kinda lame. And I got to talk to a whole bunch of customers about their problems and successes, which is really why we hold these events.

See you in SF next year!

Tuesday, September 25, 2007

ColdFusion 8 Getting Started code available

In the past, we have shipped the entire "Getting Started" application and code in the installer with the server. This bloated the download size (and its already big). So for ColdFusion 8 we had Adobe IT put Getting Started on a cluster of servers available on the net. You can check it out here. This makes our download smaller and ensures customers access to correctly configured servers.

But for those of you who want to look through the example code and/or run on your local machine not connected to the internet, we have made the entire set of files available on Adobe.com. Just go to the ColdFusion Developer Center and click on the "Downloads" tab on that page.

Or if you want a direct download link, you can use this.

Friday, September 21, 2007

Missing syndication URL

I was just checking out my FeedBurner statistics (97 readers - woo hoo!) when I noticed that I didn't have any URL on my blog page pointing to the feed!

I guess I am impressed that you all have been able to subscribe to my blog at all. :-)

Anyway, I added the link to the left panel list of links, and pointed it to my FeedBurner "SmartFeed", which just figures out which format (RSS or Atom) you need somehow. I am impressed with how nicely FeedBurner works and how much you get for free!

I heart FeedBurner


I am impressed with the number of tweaks that Blogger has added since the last time I looked to seriously change something on my Blog page. The interface used to be pretty primitive, with the raw HTML being the best way to get something on the page. Now they have lots of UI that makes it trivial to add content and format the page - and they still give you access to the HTML!

Tuesday, September 11, 2007

ColdFusion 8.0 Cumulative Hot Fix 1

ColdFusion 8.0 Cumulative Hot Fix 1 has been posted to the ColdFusion support site.

Fixes include:

  • Debugger steeping issue when Break On Exception is turned on
  • A fix to ensure that user included CSS style sheets come after the CF files so you can override the default styles in Ajax controls
  • A bug with cfzipparam that broke it when using it in a loop
  • A tweak for the cfpdf tag so it preserves the "Enable Usage Rights" flag in the PDF. This is something you can turn on in Acrobat.
  • A bug in CreateObject for components that manifested itself under heavy load
  • A fix for certain cfdocument table rendering
  • A fix for datasources defined in JRun not working in ColdFusion

Also, for those who haven't upgraded to ColdFusion 8 (why not?) we have posted ColdFusion 7.0.2 Cumulative Hot Fix 3 which fixes another dozen issues with CFMX 7.0.2.

Both of these have some good stuff in them and I recommend that (after proper testing with your applications) they get deployed on all of your servers.

Friday, September 07, 2007

More JRun Updater 7 info

Here is more information on what is in the JRun Updater 7 beta release:

JRun 4 Updater 7 is aimed to enable running JRun4 on newer platforms which include the following

  • Apache 2.2 support
  • 64 bit support for Solaris / SPARC
  • Mac-Intel support
  • Microsoft Vista & IIS7 support
  • Sun Java System Web Server 7.0 support on Windows, Solaris and Linux;
  • Mac OS X 10.4.9
It will also consolidate hot fixes and other defects since Updater 6 and upgrade to newer versions of supporting software that include
  • Data Direct 3.6
  • JDK 1.6.0_01 & JDK 1.6.0_02
To be clear, no one who has installed ColdFusion 8 in any form needs this updater, as catching up to what was shipped in CF8 is the whole purpose of the release, but many customers use JRun independently from ColdFusion so we welcome their help in making sure there are no regressions.

Thursday, September 06, 2007

JRun Updater 7 Beta signup

If you want to be part of the beta program for the new JRun 4 Updater (updater 7), we are recruiting ColdFusion customers. Go to this link https://prerelease.adobe.com/callout/default.html?callid=%7b046DAD6A-D2F3-47E5-A745-E1C9F38570DA%7d to sign up.

This updater will roll up all the hotfixes released since U6 as well as synchronizing with any and all changes we made in JRun for the ColdFusion 8 release. This is mostly updates to wsconfig to support new platforms (i.e. 64-bit Solaris) and new OS releases.

Enjoy.

Monday, July 23, 2007

MySQL and ColdFusion 8

I just recently posted about a new MySQL database driver that contains code that improves performance for ColdFusion MX 7. I wanted to clarify why this driver isn't needed for the about-to-be-released ColdFusion 8.

First ColdFusion 8 will contain the "commercial" version of the JDBC driver for MySQL 4 & 5. This driver integrates in to CF just like all the other databases we support and you no longer need to manually download and configure a driver if you are using a recent version of MySQL. This commercial driver has been run through our regression suite and verified on all of the ColdFusion 8 supported platforms. This is very much goodness for our customers using MySQL.

Second, ColdFusion 8 contains a workaround that prevents it from calling the isCaseSensitive API when using MySQL. It does this by examining the result set meta-data Java class and if that class is "com.mysql.jdbc.ResultSetMetaData" we avoid calling the isCaseSensitive() API on it, we just hard code the value for each column to false (the column is not case sensitive). Why do we call this api at all? Because ColdFusion keeps its own local copy of the meta-data attached to the Query object. This is one of the APIs on the JDBC meta-data object, so we collected it. As far as I know MySQL is the only database to perform a server round trip for each column to collect this information. So what is done with this information? It is returned by the GetMetaData() CFML function, which can be called on a Query long after the JDBC result set has been released. In general,
ColdFusion does not use this information internally at all. The one exception to this is for Query-of-Queries, where this meta-data can affect the processing of the column data. But this is extremely unlikely.

You can turn this workaround off by setting the Java System property coldfusion.mysql.enableiscasesensitive=true. You would only need to do this if your application made some use of the GetMetaData() function, you were using MySQL and you had case sensitive columns in your table. I can't foresee anyone needing to so this, but we gave you an escape hatch
just in case.

Friday, July 20, 2007

Faster MySQL JDBC driver for ColdFusion

A new version of the MySQL driver - 5.0.7 - has been released that detects ColdFusion when it is running with Coldfusion MX 7 (and 8). This should result in much better performance for CF/MySQL customers.

Find it here: http://dev.mysql.com/downloads/connector/j/5.0.html

Here is the relevant info from the change list:

Setting "useDynamicCharsetInfo" to "false" now causes driver to use static lookups for collations as well (makes ResultSetMetadata.isCaseSensitive() much more efficient, which leads to performance increase for ColdFusion, which calls this method for every column on every table it sees, it appears).

Driver detects when it is running in a ColdFusion MX server (tested with version 7), and uses the configuration bundle coldFusion, which sets "useDynamicCharsetInfo" to "false" (see previous entry), and sets useLocalSessionState and autoReconnect to true.


If you are using this driver with CFMX7, upgrading should give you a nice performance boost. Make sure you test your applications in a non-production setting first of course, as Adobe doesn't test with this driver.

Note: ColdFusion 8 ships with the "commercial" MySQL 5 driver (and we did test with this) and has a workaround in place to avoid calling isCaseSensitive() for MySQL. Configuring the built-in driver with the settings the MySQL team has done automatically (set useLocalSessionState and autoReconnect to true) might be a good idea depending on your application's use of the database. Once again, we haven't done any testing with these settings, your mileage may vary.

Sam Farmer on Flex features in ColdFusion 8

Sam Farmer blogs about some neat new features of ColdFusion 8 with the integrated LiveCycle Data Services (formerly Flex Data Services) install.

Be careful with the mxml JSP tag - it can really slow down your server!

Monday, July 02, 2007

CFUnited wrap up

Well, another CFUnited has come and gone. I think this years show was pretty good. My Flex/Data Services presentation seemed to fire at least a few people up and all the Scorpio/ColdFusion 8 sessions were successful.

I was really impressed with Rakshith's AJAX session - I think it hit just the right level of detail and Rakshith did a tremendous job presenting for his first time(!!).

Another highlight for me was Ray Camden's CFImage session, which did a good job of introducing this powerful new feature without overwhelming attendees with the huge number of functions we have added.

The special event to the National Zoo was pretty much a bust however, mostly due to weather and not very much food.

All-in-all a very good conference with tons of great info about ColdFusion. See you at MAX in October!

Monday, June 25, 2007

See you at CFUnited

I will be leaving tomorrow morning for CFUnited. Come see me at the Adobe booth or at my session which I am giving on Wednesday at 3:15 pm and repeating on Saturday at 11:00 am. The CFUnited web site did have a description of my session, but since it is Scorpio related they took it down. Go figure. I will be talking about ColdFusion 8 and Flex Data Services integration. Now if I could only get my talk down to less than 90 minutes!

In any case, the conference should be a good time with lots of good discussion about how we should have done this or should not have done that. I just looooove our customers. :-)

Friday, June 01, 2007

Rakshith's blogs

One of the newer members of the CF development team, Rakshith, is now blogging. He has been working on various parts of CF8, including the cool new AJAX stuff.

We have already given him grief for not using BlogCFC for his blogging software. :-)

ColdFusion Public Beta is here!

the ColdFusion 8 Public Beta is now available for download. This is the culmination of 18+ months of hard work and I am very proud of what we have accomplished. This release is feature complete and there are just too many goodies, both large and small, to even list.

Enjoy!

Friday, March 30, 2007

CFUnited is coming up

I wanted to take a break from working on Scorpio, the next major ColdFusion release, to plug CFUnited. Here are the top 5 reasons to attend:
  1. I am speaking. See my weirdly scaled face here. I am giving a talk on how ColdFusion Scorpio will integrate with the latest release of Flex Data Services. It will contain some of the material that I covered at MAX last year, but I think many of those attendees will want to hear it all again now that they have had a chance to try CFMX 7.0.2 and FDS 2.01 together. You have tried it out, right?
  2. CFUnied is the ColdFusion conference. I don't mean to slight the others, I love them too. (In fact I am trying to wrangle my way over to cf.Objective in May because I spoke there last year and had a great time.) But CFUnited is where we (the CF Team) have decided to show up in force. While we love MAX, it isn't the Allaire DevCon any more. CFUnited comes close for me.
  3. Scorpio. Can't really say much about this, but I'll bet that there will be lots of stuff for us Adobe types to talk about. :-)
  4. Its Fun. I don't think I paid for a drink or a meal last year. That is a good thing!
  5. You will learn a lot. The speakers lined up are always top notch and I consider it part of my job description to attend as many sessions as possible. I always learn something new, even if it another crazy way that CF users have taken something we've done and used it in a way we didn't expect at all. Also, did I mention I am speaking?
In any case, anyone who uses ColdFusion should try to attend if they can.

ColdFusion MX 7.0.2 Cumulative Hot Fix 2

In case you miss it on one of the many places that are publishing this information, Adobe has release the ColdFusion MX 7.0.2 Cumulative Hot Fix 2. This wraps up a bunch of fixes that you may (or may not) be interested in. Enjoy!

P.S. Scorpio is coming along nicely and the end is in sight if I squint real hard with the sun at my back. :-)

Friday, March 02, 2007

Apache Axis and Commons HTTPClient

Someone asked me how they could turn on NT Authentication for web service using Apache Axis (the web service used by ColdFusion). By default Axis uses its own HTTP client code, org.apache.axis.transport.http.HTTPSender, to send the XML/SOAP POST requests to a web service. This uses HTTP 1.0 and generally works file.

Axis also supports the Jakarta Commons HTTPClient library, and has since 1.0. To configure Axis to use this instead of its own library you must edit the client-config.wsdd file used by Axis. It gets found on the classpath and generally you don't actually have one and the one built in to axis.jar gets used.
The interesting line is the http transport. To switch Axis to use the HTTPClient jar, you would change this:

<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"></transport>

To this:

<transport name="http" pivot="java:org.apache.axis.transport.http.CommonsHTTPSender"></transport>

Once you have this code configured, Axis will use the HTTPClient library for it HTTP needs. Since the HTTPClient library supports NT Authentication, you just set the username/password on the Stub object as you would normally do for (say) Basic Authentication and it will just work. If you are talking to a .NET web service, you are done.

BUT switching the line in the client-config.wsdd file alone doesn't do the trick if you are talking to a ColdFusion web service. Talking to a ColdFusion web service via Apache, you will get an "411 - length required" error back that looks like this:

The Apache JRun connector doesn't allow chunked encoding without a content length (generally true for all general pupose connectors, including mod_python) and the CommonsHTTPSender class in Axis does not provide a content-length. Go figure.
Using the built-in JRun web server you get a a "content not allowed in prolog" error because it appears the JRun web service doesn't understand chunked transfer encoding. Go figure again.
I didn't try it with IIS. My guess it that it might work.
To solution? Turn off the chunked encoding, which you can do by setting a property on the web service object in CFML like this:

ws = CreateObject("webservice", "http://localhost/ws/service.cfc?wsdl");
httpheaders = CreateObject("java", "java.util.Hashtable").init();
httpheaders.put("chunked", "false");
ws._setProperty("HTTP-Request-Headers", httpheaders);
result= ws.myOperation();

The Apache code wants a Hashtable, where it should just look for a Map, so you can't just use a CFML structure for the value of the HTTP-Request-Headers.


Thursday, February 15, 2007

Status Check

I have really been head down working on Scorpio, the next major revision to ColdFusion. I guess I have a ton of things to say, but its mostly about things I can't talk about. :-)

We just finished a beta release and while reading the release notes I was struck by how much "stuff" we have crammed in to this release! I really think that there will be something in there for almost any ColdFusion developer. From language tweaks, new tag attributes to major new pieces of functionality - we really are offering something for everyone.

I really can't wait till I can talk more about the individual features! Sorry for the tease but its always quited before the storm.