Model-Glue Documentation Updates

I just twittered this, but wanted to ensure everyone knew. Dan Wilson just blogged about two big updates to the core Model-Glue documentation. First is a new Quick Start. Second is an online training guide that picks up right after the Quick Start ends. Check it out!

Warning about a Model-Glue Issue

For a while now I've seen an odd issue with CFLib. It only occurred after a reboot and I was always able to make it go away with a reinit, so I put it on my queue of things to fix "one day" and promptly let it idle there (it's right next to BlogCFC 6). Earlier this week however a user of LighthousePro reported the exact same error so I decided to dig a bit deeper. I had been convinced the CFLib issue was simply a minor bug in my code, and while I could easily make the mistake in two sets of code, it seemed a bit unlikely.

The issue was an odd one. During the application's start up, something goes wrong. Let's say a timeout for example. After that initial error, any request to the site would result in Model-Glue stating that there was no event handler for X (X being whatever the default event is for the site). Now I knew for a fact that X was a valid event so I was a bit perplexed. It was almost as if the Model-Glue framework loaded up with a bit of amnesia.

I decided to go ahead and ask on the Model-Glue listserv. You can read the thread here. I'm glad I did. Not only did a few people confirm seeing the same issue. Even better, Dennis Clark was able to focus in on the bug and suggest a fix.

I've logged a bug for it at the Model-Glue trac site. For now I'm not sure what to suggest for current sites. Obviously you know how to fix it (run the reinit), but it would be nice to have a way to automate that until the bug is fixed in the framework itself.

Splitting up your ColdSpring.xml file in a Model-Glue Application

While I've used Model-Glue for many years now, I've only recently begun to seriously drink the ColdSpring kool-aid. The more I use ColdSpring, the more I appreciate how well it works with Model-Glue. I'm writing up some recommendations for Model-Glue application design, and one of the things that occurred to me is that while I typically recommend breaking up the ModelGlue.xml file into multiple files, it might also make sense to break up the ColdSpring.xml file. Right now this file contains the settings for your Model-Glue application (reload, debug, etc) and any custom beans you want defined.

So I spoke with Scott Stroz about this and he clued me in to the fact that this is actually already possible! So big thanks to him for teaching me this tip, and hopefully it will help others as well.

[More]

Model-Glue 3 Released

Model-Glue 3 has been released. And um, yeah, that's it. I've been using version 3 for a while now, and if you've avoided taking the time to learn a framework, now is the perfect time to pick one up. Model-Glue is an incredible framework, and the 3rd version is the best yet. The documentation has been given some serious love as well.

Download the latest bits from here: http://model-glue.com/coldfusion.cfm

My favorite 3.0 feature? It's a toss up between the improved bean injection, typed events, and the Helper scope.


Important Model-Glue note, and CanvasWiki update

I'll be honest and say this is entirely my fault - it was mentioned on the Model-Glue listserv which I don't read as often as I should - but folks should know that the latest build of Model-Glue will possibly break existing Model-Glue applications if you use the Trace() functionality.

Trace() was part of the Event API but conflicted with the built in Trace() method for ColdFusion 9. This has been renamed in Model-Glue to addTraceStatement(). (Note, the docs for Model-Glue have not been updated yet. I'll be doing that as soon as I 'hang up' here.)

This probably won't bite too many people as Trace() was really meant for debugging. This did however impact CanvasWiki. A contributor had used it a bit and I never removed them. I've updated the code base to fix this, and I've also checked in other updates as well. Nothing feature-wise, but mainly updates to make it run better with Model-Glue 2. Canvas was written for Model-Glue 1 and so it had a bunch of old 'style' things that didn't need to be there. I encourage all users to update to this newest version.

Model-Glue 3 News

Just a quickie here - be sure to read the latest Model-Glue 3 news:

Model-Glue: Gesture - Beta Available

Friday Puzzler - Helping the Model-Glue Team

For today's Friday Puzzler (yes, I know it's been a while), I have something of a doozy. It may not be a 5 minute puzzle, but it could still be fun, and most of all, it will be helpful to the Model-Glue team. The Model-Glue docs (http://docs.model-glue.com/) were written using Robohelp, and unfortunately, the original files are missing. We need to get an "export" of the docs so that they can be republished in a new format. Your task, if you choose to accept it, is to write a scraper for the docs that can download and store each page from the documentation. This needs to keep the HTML for layout purposes, so it can't be just plain text.

Anyone up for that challenge?

Model-Glue Survey

Everyone seems to be doing a survey lately (and no one is using Soundings, tsk tsk!) and the Model-Glue folks are no exception. If you are a Model-Glue user and want to provide some feedback to the development team, please fill out this survey. They plan on closing the survey later in the week so get to it!

Ask a Jedi: Making use of ColdSpring/Model-Glue and Remote Proxies

Dean asks:

I know your big on both Model-Glue and cfajaxproxy, so I thought I would ask for your help using them together. If I have a Model-Glue app that has all of my objects defined and managed using ColdSpring, how would I call one of my service objects using the cfajaxproxy tag? All of the examples I have seen show calling the CFC's directly, but since my service object requires the injection of my DAO and Gateway objects, the direct call would fail. So I am a little stumped as to what to pass to the cfajaxproxy tag.

There are two answers to this (well I'm sure there are more, but two I'll focus on) problem. The simpler way, and the way I've done it in the past, is to not use the CFCs at all. Instead, my AJAX based actions will use normal Model-Glue events. So for example, I may have an event call getBlogEntriesJSON. This event handles broadcasting a message to get the blog entries, and then another method to handle converting the value to JSON. However, I've known for a while that ColdSpring had some support for automatically exposing itself to remote calls so I thought this would be a great opportunity to give it a try.

[More]

Another RIAForge update, and some good examples of my mistakes

I had a moment yesterday to take another look at RIAForge and it's ongoing issues. This time I focused on a problem with the project, Project Tracker. For some reason this project would take around 60 seconds to render the home page. Other projects were much faster. As far as I could tell, nothing was special about that project, but everything about it was just horribly slow, almost unusable. I did some digging and finally found a slew of things that I had screwed up. Here they are in no particular order.

[More]

More Entries