New ADAA Gallery

Adobe awards students who do cool stuff with art and technology. Those awards are called the Adobe Design Achievement Awards. From the site:

The Adobe ® Design Achievement Awards celebrate student achievement reflecting the powerful convergence of technology and the creative arts. The competition – which showcases individual and group projects created with industry-leading Adobe creative software – honors the most talented and promising student graphic designers, photographers, illustrators, animators, digital filmmakers, developers and computer artists from the world’s top institutions of higher education.

The long and short of it, the ADAA’s show off some of the coolest uses of our tools around by some of the most innovative people in our community: students.

There’s now a gallery showcasing former winners. Check out stuff of their stuff, you won’t be disappointed.

Injecting JavaScript to the foot of a ColdFusion Page

A question came up on Twitter today:

hard to do “JavaScript at the bottom” in CFML with MVC frameworks… wish we have a tag. Thought? #coldfusion

A great question, this is the answer in Adobe ColdFusion.

Use the request scope.

This is one of those random places where request scope is actually very helpful.  It breaks encapsulation, but you’re going to have to do that anyway.

So first you write a page wrapper, that displays the content of a variable named request.footer.

http://gist.github.com/541051.js?file=pageWrapper.cfm

Then you write your view and pump your javascript to inject.

http://gist.github.com/541051.js?file=uiWidget.cfm

Then you write your page with those components in it.

http://gist.github.com/541051.js?file=index.cfm

This will ultimately yield this:

http://gist.github.com/541051.js?file=results.html

In the future, I’d like to see us solve this problem natively, like but until then here’s a solution.

Apptacular ColdFusion Builder Extension – Reigning in Relationships

Apptacular is great at aggressively mapping out relationships.  This is good, when trying to build a quick admin interface for your applications. However when you get working on “real” applications, this aggressive relationship building can bite you.

This video will take you through, not just the problem, but how to use Apptacular to fix it.

 

Apptacular ColdFusion Builder Extension – Taking it down a notch from Terry Ryan on Vimeo.

Adobe at the Heartland Developers Conference 2010

I’m happy to say I’ll be at the Heartland Developers Conference in Omaha Nebraska this year.

I’ll be talking about ColdFusion, and how it can power truly rapid RIAs. In order to explain the whole workflow, I’ll be touching on ORM, scripting, Flash Catalyst, Flex 4 and Flash Builder.

Additionally, two other Adobeans will be making the trip, Paul Trani and Kevin Hoyt. Here’s our lineup:

So hope to see everyone in Omaha this September 8-10.

 

Apptacular Bug Fix – Use Automatic Updates

A couple people have reported an issue that happens when you use Apptacular with “Enable Request Debugging Output” checked in the ColdFusion Administrator. Basically, the XML that is supposed to go to ColdFusion Builder has the debugging tacked on to the end of it rendering the XML invalid, and Apptacular dies.

I thought I had a fix for it, but I was wrong.

So I added a new fix for it.

You can go to http://bit.ly/Apptacular and download it…

or you can use Automatic Updates. To do that:

  1. Launch ColdFusion Builder.
  2. Right-click and bring up the Apptacular context menu.
  3. Select Check For Updates.
  4. Click the big ole “Yes, I want to update!” button.

That’s it; if you don’t choose to run the update you’ll get a subtle indicator that an update is available until you do update.

Some Things About MappedSuperClass in ColdFusion 9.0.1

I was fooling around with inheritance in super classes in ColdFusion 9.0.1. I was trying to add that whole dynamic/static inheritance thing to Apptacular so you can add on to an Apptacular application without having to worry about changes being overridden by the regeneration process. Typically when you do that, the dynamic, rewritten class is usually the parent of the child static class. The child, static, class is what you refer to in the rest of code and in which you write custom code. The scaffolder never touches this file again, allowing you to alter things in the database, rescaffold and not overwrite code customizations. I hearby call this “non-destructive scaffold regeneration,” regardless of what other people call it.

ORM entities can’t really work that way. If you try to setup that sort of thing, ORM craps out in ColdFusion with an error. CF9 ORM doesn’t really like ORM objects being the parent of other items, unless you are using inheritance mapping.

However, if you use the “mappedSuperClass” cfc attribute that is now available in ColdFusion 9.0.1 you can achieve sort of the same thing, but you have to flip this on its head. The superclass is the one that is static, and you can edit, while the dynamic one is the child.

This is mostly good. Except for one thing: one of the main reasons to write code this way is so you can override methods, and if the child is the one that is dynamic, and overwritten, then you cannot override the methods from the static parent. You can add methods and properties, but you cannot override them.

At first glance this seems like a deal breaker, but it doesn’t have to be. Most generated ORM entities are light on code, because of implicit getters and setters. But those implicit getters and setters are exactly what you want to override in an ORM entity. However it turns out that explicit functions will always override implicit ones, even when the explicit function is in the super class and not the child class.

I put together a simple little demo to show this off:

http://gist.github.com/509846.js

Result from test.cfm:

GetFirstName = Yo

GetRealFirstName = Aiden

So it’s a little upside down, but if you want to do some non-destructive scaffold regeneration with ColdFusion 9 ORM, it’s a workable solution. Expect this to come to an Apptacular near you soon.

 

1 Day of Apptacular

24 hours after pushing Apptacular out, I have over 150 downloads, and only 2 reported problems.

Awesome!

One of the problems was that a user tried to run Apptacular against a database without primary keys. Apptacular and ORM in general have a dependency on primary keys. I should make that clearer in the documents, and error, and I will. But just know that.

In the meantime, keep downloading Apptacular and checking out my materials on it.

Build Hotter Apps Using Catalyst and ColdFusion

I was chatting with someone last night, and they said:

“Most ColdFusion apps are designed to be intranet apps… and boy do they look like it.”

It’s true. ColdFusion enables rapid application development, but not necessarily pretty rapid application development. However Flash Catalyst enables rapid, pretty, application development.

And let’s be clear here, pretty is not superficial. It’s not just about chrome and bling. It’s about making application that your users want to use instead of apps that your users have to use.

So if you’d like to see how to turbo charge your front end development with effective, pretty, ui’s come to my session:

How Catalyst Will Transform the ColdFusion Developer.” Friday 3:15PM – 4:15PM Ballroom D