Adobe Flex Training for ColdFusion Developers
On Friday (November 20th), I spent my day at the free Adobe Flex Training for ColdFusion Developers. If you are (like me) working day in, day out with ColdFusion and haven't played with or explored Flex, ColdFusion Builder, or Flash Builder you should go. While it is an "Intro", it is enough to get your feet wet to explore more once you leave.
Another date that has been added for Washington, DC on December 17th and hopefully Adobe will add more dates and locations for next year.
Laptop Setup
I can not stress enough, follow the instructions exactly on how to setup your laptop for the training class. There is a slight variation due to a bug installing ColdFusion Builder into Flash Builder as a plugin. The fix is to install both as standalone applications, which I did not find out about until I got to the training (and it is corrected in the printed training materials). The reason I say to follow the instructions exactly is to cut down on having the instructor and TAs running around dealing with problems due to configuration variations. It wasn't a huge problem since people helped each other out as well, but it did slow down the pace.
I had intended to just install Flash Builder 4 on to my MacBook Pro (since all the other software was already installed), but I ran into a problem since Flash Builder 4 apparently does not like case sensitive file systems (yes, I installed Leopard with case sensitivity, it is a hold over from using Solaris and Linux). Adobe needs to fix this!
Actually, not installing Flash Builder 4 directly turned out to be better. I used Windows 7 Enterprise 90-day evaluation in Parallels for the training class environment. Figure if I'm playing with new Adobe technology, why not Windows as well.
Other things not noted in the instructions. Install Flash Player with debugging which can be found in C:\Program Files\Adobe\Adobe Flash Builder Beta 2\player\win on Windows or /Applications/Adobe Flash Builder Beta 2/Player/mac on Mac. Also be sure to have Adobe Reader installed as well.
The only other weird thing I ran into (and several others did as well) is that the class example files when unzipped were read-only with encryption turned on. This prevented them from being run in ColdFusion. The files show up in green inside Windows Explorer. To fix the problem all you needed to do is go into the file properties in Windows Explorer and remove the encryption and read-only on the file.
Training and what I learned
The training was conducted by Figleaf and Dave Watts was the instructor. The facilties were nice and the room was quite full. It was a bonus to have Adam Lehman there from Adobe.
While I have played around with new features in ColdFusion 9 and seen various demos of using ColdFusion as a Service (CFaaS) and the ORM functionality, I had not really used them. The training provided an opportunity to be hands-on with them and to be "forced" to use ColdFusion Builder. I say "forced" since I made the switch to Eclipse/CFEclipse a long time ago and have a really stable setup with my prefered plugins. The training provided a structured hands-on experience with ColdFusion Builder to hopefully get a better impression of the new IDE. Simply put, I am impressed! I like the integration they have done and it is significantly better than the Eclipse plugin that was released for ColdFusion 8. I probably will buy it when it is released, if the price is right (under $200).
Flash Builder is quite impressive with the design view and network monitor. I really wish ColdFusion Builder could have been installed as a plugin to Flash Builder they do make a very powerful combination in a single IDE.
The training was clear and provided a good way to introduce each new feature. I particularly liked Exercise 4 where it put Flex, AIR, and ColdFusion all together. I wish they would remove Exercise 0 from the training since it doesn't really provide anything other than a way to ensure your environment is setup. Exercise 1 is much better since it shows connecting to remoting and web services. Another reason to do so, is so that you can get the the end of Exercise 4 where you upload a file to ColdFusion and send email which we were not able to get to (but that left me with more to look at on my own over the weekend).
Overall, it really showed me the power of what can be done with Flex and ColdFusion, even if just small examples. If you have the opportunity to go, you should. It is free and really worth the day.
Hiding password input in Ant
When writting Ant scripts I always have Ant prompt for passwords be it for SVN, SFTP, or anything else that needs to be logged into. Typically would have the following:
<input message="Please enter SVN password:" addproperty="svn.password" />
The only problem is that it echos the password back at you, there has to be a better way. So of to Google I went and found this with an interesting Ant script fragment:
<input message="secure-input:" addproperty="the.password">
<handler classname="org.apache.tools.ant.input.SecureInputHandler" />
</input>
I did not know there could be nested elements in <input>. Apparently Ant 1.7 added <handler> nested element for <input>. But nowhere is there any documentation on "SecureInputHandler".
So I tried out the fragment and as the post noted there are a few requirements to get it to work:
- Ant 1.7.1
- Java 6, if it is run on Java 5 it will fallback to a "normal" <input>
One downside, I have not been able to get it to work from within Eclipse 3.5 (since Ant 1.7.1 is bundled with it) and using Java 6 runtime. Eclipse will just hang when it gets to the "SecureInputHandler" and you have to stop the build script. It does work great from command line which is how I run all my Ant scripts anyway so it is not a real issue for me, but might be for others.
CFML Admin API Project
Well, this isn't exactly a new project. I actually started it back in 2005 when I wrote an Admin API for BlueDragon 6.2 and had a compatibility layer to map cfide.adminapi calls back to the BlueDragon Admin API.
For the past several years the code has been available on various locations. Ultimately, the Admin API for BlueDragon 6.2 that I wrote became the basis for the Open BlueDragon Admin API, but the compatiblity layer was not used. The direction of building a compatibility layer to match ColdFusion MX 7 (or later) didn't seem to be a sustainable idea, since I'd always have to chase how the ColdFusion Admin API was implemented for calls and returns.
I don't know why it didn't occur to me earlier, but it became clear while sitting in the The CFML Advisory Committee - Happy First Birthday! BOF. Forget making all the other CFML engine Admin API interfaces match ColdFusion Admin API, but make a single common Admin API interface. That is exactly what CFML Admin API is. Its goal is to provide a common Admin API methods for dealing with datasources and mappings that work on any CFML engine, particularly when creating/installing CFML applications.
The code is still very alpha and hopefully will get comments for improvements.