TerrenceRyan.com

I'm a 35 year old redhead geek from Philly.
I'm currently a Developer Evangelist for Adobe.
Also the author of Driving Technical Change

Entries for month: February 2010

The Results are in... ColdFusion 9 is wicked fast

We released a performance brief on ColdFusion 9.

There's a lot to love here, check it out: http://www.adobe.com/products/coldfusion/pdfs/cf9_performancebrief_ue.pdf

Flash Player 10.1 Battery Usage

There's been a bit of FUD being thrown about battery consumption by Flash Player 10.1 on Android. If you're confused by what's being said check out Mark Doherty's post that provides demonstrations of Flash Player running video on Android and the effect on the battery indicator. It also contains the battery usage charts from Android showing that viewing the video is not using up all of the battery (another really great built-in feature of Android.)

Link: Battery Performance with Flash Player 10.1 on Nexus One

eSeminar: Flash Builder and ColdFusion 9

I'm doing an eSeminar on Flash Builder and ColdFusion 9 on Wednesday February 24th at 11:00AM -12:00PM PST (2:00PM – 3:00PM EST.)

I'm going to show off the features that the ColdFusion team have added to make ColdFusion work easier with Flex as well as the features in Flash Builder that make working with ColdFusion ridiculously easy.

You have to register in advance so head on over to the Online Events page and register.

ColdFusion 9 Cumulative Hotfix 1

Evidently we rolled out the first cumulative hotfix for ColdFusion 9 on Friday. Feel free to download it here:

http://kb2.adobe.com/cps/825/cpsid_82536.html

Note there are already a few things to look out for.

Builder Extension using HTML

One of the cooler features of ColdFusion Builder's extension tooling is the ability to create extensions that are driven with HTML/JS/CSS instead of with the default XML options. I think this has a few advantages:

This is pretty easy to enable. Normally you would have code like this in your handler to communicate back to the IDE:

<cfheader name="Content-Type" value="text/xml">
<response status="success" showresponse="true">
    <ide >
        <dialog width="600" height="400" />
        <body>
            <![CDATA[
                Some Response
            ]]>
        </body>
    </ide>
</response>

Instead you pass a URL parameter to the ide tag in your extension handler:

<cfheader name="Content-Type" value="text/xml">
<cfoutput>
<response showresponse="true">
    <ide url="http://localhost/extension/handler.cfm?configPath=#configPath#" >
        <dialog width="655" height="600" />
    </ide>
</response>
</cfoutput>

As you can see it can even handle URL variables.

Now, where I ran into trouble with this was with the URL itself. Basically you can't be sure of the URL when dealing with extensions. It could be localhost, but it just as easily could be on a remote server. So I was all clever and wrote some code to handle this:

<cfset baseURL = "http://" & cgi.server_name  />
<cfset messagesPath = getDirectoryFromPath(cgi.script_name) & "/messages.cfm" />
<cfset messagesOptions = "?type=notanapplication" />
<cfset messagesURL = baseURL  & messagesPath & messagesOptions >

 

You see, this will give me the correct URL to use to pass information to a template named "messages.cfm" that sits in the same folder as my handler. I use CGI variables to grab the server information. Then I use getDirectoryFromPath to make sure that I get the real relative path of the folder that the extension is sitting in (as opposed to assuming that it lives in the webroot). This works great.

Except I got reports of one of my extensions not working at all for some people. Look at that code again… There's another big assumption there. The assumption is that the extension is being called over the default http port, which for many ColdFusion developers it isn't. So the correct version of this code goes:

<cfset baseURL = "http://" & cgi.server_name & ":" & cgi.server_port />
<cfset messagesPath = getDirectoryFromPath(cgi.script_name) & "/messages.cfm" />
<cfset messagesOptions = "?type=notanapplication" />
<cfset messagesURL = baseURL  & messagesPath & messagesOptions >

Doing this you can be sure that you hit the right URL regardless of:

Happy extension building.

Apptacular Update and Video

I know I've been quiet of late. But I've been working.

You see a few weeks ago I had this checklist up on the site:

See those AdventureWorks database items? They nearly killed me and made me want to stop work on Apptacular. AdventureWorks is like a cruel Double Dare obstacle course for code generation:

I came through, and now I can give you this list:

So that's where I am. A few of you asked if you could get your hands on Apptacular and I would be happy to distribute it to individuals. I'm not ready for general availability yet though.

And as a final note, I thought I would share this feature with you: Apptacular can model CRUD for image fields in your database.

Apptacular ColdFusion Builder Extension - Working with Images from Terry Ryan on Vimeo.

Categories

Monthly Archives

Tag Cloud

coldfusion web development flex coldfusion builder appearances squidhead coldfusion builder extensions higher ed flash builder air mobile android adobe apptacular html5 driving technical change running a coldfusion shop adobemax06 movable type flash catalyst flash blackberry adobemax07 adobemax08 hero finicky css adobemax09 holy crap i’m a mobile developer centaur basecamp cfc unfuddle motorola metablog irrational characters ios git evangelism devices code reviews ant wharton subversion security phonegap philly philadelphia multidevice knowledge@wharton jobs browserlab adobemax10 adobe tv unfuddlecfc svnauth.cfc semantic html semantic html responsive web design qnx nlb linux jquery mobile java it github flexorg fireworks edge eclipse dreamweaver apps apple adobemax11