There's been an interesting discussion about CFC design on the CFCDev mailing list recently about what it means to follow the rules of encapsulation. Most folks on the list agree that you shouldn't write CFCs that randomly pull values out of their environment (e.g., request or application scope). I'm not about to write a treatise on it here but I'll give some basic guidelines: in general, CFCs should never reference shared scopes. There is really only one exception: a façade may manage instances of other CFCs stored in shared scopes (e.g., a façade may create and manipulate CFCs stored in session scope - to maintain state for Flash Remoting or in situations where you need or want to hide the stateful nature of the instances). What about caching data? Have your CFC cache the data inside itself as instance data and then store the CFC in a shared scope. That lets the client of the CFC manage the lifetime of the cache (e.g,. request, session, application) and it makes the CFC self-contained. What about instances in shared scopes 'knowing' about each other? Explicitly tell the CFC instance that needs to know by passing it a reference to the other CFC instance it needs to communicate with. That lets the client mix and match instances across different shared scopes. As I said, just a few guidelines, not a treatise. There will be more on this subject in the updated ColdFusion coding guidelines that I'll be publishing in early September.
This has been posted to several mailing lists this morning: the Flash Player 7 Public Beta has begun. Read the release notes and FAQ before installing beta software! My initial impression is that the new player is substantially faster on Mac OS X Safari than Flash Player 6 and, so far, it seems extremely compatible with existing content.
A friend of mine blogged some tests he did with the Lynx browser. I've used Lynx on Linux as a test of accessibility for web sites because it's a text-only browser. Yes, I know that's not a perfect test of accessibility but if Lynx can read a site, an assistive web browser stands some chance - conversely, if Lynx can't read a site at all, it's unlikely to be accessible! I haven't thought about Lynx for a year or so and didn't have it on my Mac but it made me curious enough that I downloaded the latest source code and built it. As simple as ./configure, make and make install. I've tried it on a few sites, with varying degrees of readability. This site is pretty good, now that it's all CSS-driven. macromedia.com is pretty good too. It's educational to try it out!
Macromedia has released some more information about the upcoming Macromedia Central application and allowed a screenshot of the latest state of play to be published with comments. You can see it here on the blogs of Greg Burch and Geoffrey Williams. I don't see myself as a developer of applications for Central but I will certainly be a user of it. The stock tracker app is already useful but I suspect it's hardly a hint of the cool collaborative and on-/off-line applications that will spill forth from the developer community soon...
Naturally I'm very encouraged by the results on this poll so far - two thirds of the respondents say they'll upgrade to Red Sky as soon as it is available. To those folks who've not heard of it, you can check out the Breeze presentation about Red Sky on Macromedia's website. My experience with Red Sky so far make me confident that it will be very well-received and that it will encourage a lot of people to upgrade who've either stayed with CF5 or have had issues with CFMX. I've been busy upgrading a lot of servers here to Red Sky and it's been a pleasurable experience.
The latest DevNet Resource Kit - Volume 4 - is now available for purchase. Lots of ColdFusion goodness in this edition including an enhanced logging framework, XML / query conversion components, a filter framework for form / URL variables, and CFBean which brings JSP-style JavaBean access to CFCs.
You can now buy Contribute 2 for Windows or Mac OS X. I have been using Contribute since before the first version was released to the public and I love it! It makes my life so much easier because it makes updating project documentation so simple: browse the intranet, click "Edit Page", update the project details, click "Publish". Done. You can make corrections to pages quickly - while you're browsing the site - and the simplicity of the process means that you actually do correct typos as you see them, instead of putting it off until you need to make a 'bigger' change to the page. Download it and take it for a test drive - it's really, really good!
I've been reading up on the behavior of font-size in different browsers. I wanted to make the appearance of my site more consistent across browsers. I'd originally used things like font-size: small and font-size: large and these seemed to produce radically different results in Win/IE from Mac/IE, Mac/Safari from Mac/Opera etc. I found recommendations to use em-based size instead so that is what I've done. The overall result should be some slight adjustments in font sizes (on some browsers) and a reasonable reduction in font size on Win/IE. On Win/IE, the calendar still 'hides' a little under the main blog content but it's better than it was. Opera now seems to render the site more consistently. Mozilla and Safari seem pretty much unaffected (which was the intent since they are the better browsers in terms of rendering fidelity). I'm contemplating a redesign again soon...
After much prodding and pushing of button combinations, the stubborn wee brute finally went into "disk mode" and then, after more prodding and pushing, it finally booted up back to the Apple logo and... finally... Browse, Extras, Contacts, Settings, Backlight. Ah, success! And it didn't even lose any data!