Someone by the name of Nando posted his Model-Glue cheat sheet to the Model-Glue discussion group. I took the time to clean it up and make it a little more readable, and fit onto two pages. I've printed it out as front and back of a single page, and keep it with my laptop for reference. I think I'll also add it to my sidebar for easy reference.
Thanks to Nando for doing the leg work. I just made it pretty! Click the thumbnail to download the PDF.

Posted in
Frameworks |
Model-Glue
June 26 2008
Ok so in all seriousness I wasn't a special guest or anything, but I did get the opportunity to participate in the recording of Episode 4 -- released early this morning -- and I couldn't pass it up.
I'll do my best to get links together for everyone that participated, but I don't think they all have a blog or even twitter account -- or I may just not have them all. Sorry if I miss anyone! (But tell me, so I can update the list...)
I'm not going to spoil the podcast for you, but I thought it might be interesting to write about some of the things we discussed in our BOF-turned-session (... turned-podcast) that didn't go into the podcast.
The BOF was, of course, part of CFUnited 2008. The exercise was to brainstorm ideas for promoting CFML outside of the CFML community, and then to pick the best ideas as a group, and come up with a potential strategy for implementing them.
One person in each group was assigned the task of thinking of ludicrous ideas that would never get implemented. My perception of this role was that it was there primarily to set the tone in the group that there were no limitations -- that no idea was too grandiose -- and that the important thing was just to get the creative juices flowing, and sort out the good from the bad later. I have to say that I think this was a brilliant move on Brian's part.
Here are some of the ideas that the PHP Reformers group came up with that, while ... "interesting" ... didn't get voted high enough to be given much attention. I suppose I should preface this by saying that these aren't intended to be condescending or hurtful to the PHP community, a majority of these came from our designated ludicrous idea contributor.
- Write a PHP Virus (Written in PHP? Attacks PHP? Who knows?)
- "Adopt a PHP Developer" week
- Free hosting
- CF vs. PHP commercials (ala Mac vs. PC)
- Spy on PHP for new feature ideas
- Get a CF Mascot / spokesperson
- Hold CFUnited @ Hooters Casino in Las Vegas
- Buy CF and get a mail order bride
- Guerilla warfare -- Join the PHP team and sabotage their codebase
- Make star wars style movie for CF
- Nascar driver for CF -- Adam Haskell actually mentioned this in the podcast...
- Rent a blimp
- Two words: Superbowl Ad
- <CFPorn />
- Celebrity Advocation
- Smear campaign against PHP (Bad spokesperson, false rumors, etc)
Can you build on this list? What other ways (again, the point is to be over the top!) could you convince more PHP developers to learn CFML?
Posted in
Community
June 24 2008
Having never done anything with Flex before, I hope to get a fairly basic intro -- how to get started -- but at the same time, see an overview of the neat stuff you can do with Flex, in order to get some inspiration to learn it. We'll see how it goes...
- Adam says that the hardest part was just getting up and getting here this early (8:30am). It should all be downhill from here.
- "Flex is just a framework for writing ActionScript."
- Rather than HTML, we use MXML (Macromedia XML Markup Language -- they really though that one through!) and ActionScript.
- Can communicate via SOAP, HHTP/S, AMF/S (Flash Remoting), RTMP/S. AMF is binary, so really fast.
- Flex SDK is the compiler: command line, free.
- Flex Builder: Nice UI for Flex SDK. Professional eddition for charting, advanced data grid/OLAP, and performance profiling. Very nominally priced at $250-$700!
- LiveCycle Data Services seems like ADO.NET data management. Enables their equivalent of "disconnected mode" with offline work & re-sync when you come back online -- but somehow, seems even easier!
- BlazeDS: is a free, open source product, very similar but not as full featured as LCDS. Offers real time data push to clients!
- Data Services is not required for Flex.
- Flash Remoting is baked in and has been available since CF 7.01.
- Flex uses {} as CF uses ##.
- Use <mx:RemoteObject ...> to create an object that will communicate with CF.
- Flex's <mx:Application applicationComplete=""> is like HTML's <body onLoad="">
"mate" (pronounced "mah-tay") is Adam's recommended Flex Framework.
Posted in
CFUnited
June 20 2008
Start at the bottom of this post and work your way up.
3:44: I just realized that I got the numbering different from Joe's presentation. I don't know what, if anything, I missed. Whoops!
3:40: #8: Remoting. Available for Flex, etc. Not all requests have to come in from index.cfm, they can come through the remote CFC. I guess this would make more sense to me if I ever did anything with Flex.
3:36: #7: Formats! Various view-styles (HTML, XML, JSON, partial pages, etc) without duplicating events. All within one event-handler tag! Building web services within an MVC application in CF has never been so easy.
3:27: #6: Content cache. <event-handler name="page.home" cache="true"> I asked if you can setup the cache to be "disabled" in development mode even with caching turned on in the XML (so this doesn't have to be changed between production and dev environments) Joe says no (but interesting idea!), but a workaround would be to set the cache timeout to 0 in development. Programatic access to the cache manager is available, but the cache adapter provided is intended to be dead simple. If you need more than time-based caching, you're encouraged to implement your own.
3:25: Bean Injection! Yay! Auto-wiring without all of the manual labor. <cfcomponent beans="someDAO">
3:21: #5: Helpers. Works for both .cfm and .cfc. Easy way to inject UDFs or a library of them into your application, in a special scope (variable) called "helpers." Usage: #helpers.dateLib.daysTilXmas(now())#
3:15: #4: SES Urls baked in and a URL Manager. The component that handles this is wired in with ColdSpring, so it's easily replaceable if you don't like the default URL format or need something custom. URL manager now means linking is as simple as: #event.linkTo("myEvent")#
3:12: Third new feature? Application.cfc integration: onSessionStart/End, onApplicationStart, etc.
3:10: Second new feature? Event Types. This was discussed on the Model-Glue mailing list a bit, and some folks were unhappy about the implementation being in CFCs, as it is kind of configuration information; and then we'd have config in both XML and CFCs. Several people chimed in and asked for an implementation as XML. Joe says that it was committed yesterday (no documentation yet) so now we have either option. Awesome! Event types are almost like AOP, but more like decorators; you can add a before or after set of code for any event type. Cool stuff, I can't wait to play with this!
3:02: First new feature? Streamlined Workflow. Wiring is necessary, but predictable. When running in development mode, with the feature explicitly enabled, Model Glue will generate events for you. This is somewhat old news, but still just as exciting. Event Generation will also add CFCUnit/CFUnit test stubs. Cool!
2:57: Looks like we're almost through the history of Model-Glue, and about ready to get into new features. I seem to remember Joe writing somewhere that he would announce something as of yet unannounced here at CFUnited. I hope I'm right. :)
2:53: Joe asked if there were any Mach-II developers in the room, and decided he wasn't at too much risk of being hurt for things he would say. Snicker.
2:50: It looks like his preso will be mostly building on the "Roadshow" PDF that comes packaged with the v3 release candidates.
2:47: Here we go! (Can you tell I'm a little excited about this one?)
2:40: I thought Michael Dinowitz would never shut up! I'm pretty sure he went way-over his time for his Google Webmaster Tools preso. He's out now though, and folks are starting to pile in for Joe's Model-Glue preso.
Posted in
CFUnited
June 19 2008