Photo credits: Matt Steen

To see more recent blog posts please visit http://www.sanative.net/blog


Why Aren't More CF Developers Using OO Methodologies and Frameworks?

I have just finished reading Bob Silverberg's blog posts on Transfer ORM. It's a five part (thus far) series on how Bob has been using Transfer over the last year. Bob is a great writer and has done an excellent job of describing what he has been doing, which left me wondering why "I still don't get it".

My overall impression is that Bob's posts were not designed as an introduction to using Transfer, but more of a way to validate how he has been using it. So, if you are wanting to learn how to use Transfer its probably not the post for you. If you've been using Transfer and want to hear someone else's experience then it's probably going to be an excellent read. As someone who has a basic knowledge of Transfer (and ORMs in general) and how it works,but being fairly new to OO development in general, I found it to be significantly enough over my head that it was not applicable to my current needs. That being said, I wanted to express my opinions on why I believe the vast majority of CF developers are still writing procedural code and not using frameworks.

To be clear, I am relatively new to OO development. I started writing "OO" CFML about a year ago and have a fair feel for what I am doing. I have written a few CFML applications using OO methodologies. Unfortunately in the last year I've written very little CFML so I've not been able to practice this as much as I would like. I learned the basic principles of OO CFML development via CFOOP. Nicholas Tunney, Phil Nacelli and Chris Turner did an excellent job of creating tutorials for procedural coders that made sense and made you feel like you actually grasped the topic. However, the the site hasn't been updated in ages.

In reality, I have learned far more about OO development from writing ActionScript applications (Flex and Flash) and the Flex community than I ever have from the ColdFusion community. This is definitely because Flex will force you into doing OO development, but there's also a larger community of developers who are proficient with OO methodologies,and to a certain degree, are better at explaining these concepts to the procedural coder.

 Here's the primary problem I have found with the blog posts and tutorials on frameworks and OO CFML development methodologies to date: There's an assumption that the reader has knowledge of many of the concepts and principles being discussed. Given that the community is ColdFusion, I feel this is often far from the truth. Talking with fellow CF developers who are not utilizing frameworks, OO principles and/or additional methodologies such as ORMs, dependency injectors and the like, I find that they have been discouraged by these facts.

While folks such as Brian Rinaldi, Dan Wilson, Matt Quackenbush and (many) others have been extremely generous in giving their time in writing articles and tutorials on advanced CF topics designed to help others learn these methods, I am certain that the intended audience has has been left with the impression that this is far more difficult than it really is. In the end, it ends up alienating the intended audience more and more because they are left to believe that they may just never get it. It is only the stubborn few who truly want to force themselves to learn these concepts and methods that actually do make it to the point of putting it into practice on a daily basis.

To be clear, OO is not easy. I realize this. It does require more effort than procedural code and is significantly more complex. However, I feel that often times terminology is the primary stumbling block. By the way, Doug Boude has a great resource for learning and memorizing OO terminology.

I would like to hear from developers who are not writing OO code. What do you think are the primary reasons for this?

Why I Use Safari on the PC - Flex Development

So, as most of you know, I'm not an Apple fanboi or an iSheep. Heck, I just got my first iPod a few weeks ago, a Shuffle. I got it free, otherwise I would never have purchased it. Truth be told, it's actually a pretty sweet device and very well built. But not nice enough for me to fork out a couple hundred bucks for.

So, when I discovered Apple was releasing Safari to PC my response was pretty much "oh great, another browser on the PC". My first 3 months experience with Safari was less than pleasing, it would crash and never launched. However, recently Apple released an update and I've not had the problem since. Overall, its a good browser, fast, and doesn't require me to do any CSS tweaking to get things to display on my sites the way I want them. But I do hate that bushed aluminum look that's so prevelant with Apple's apps. I guess it's like one of the main reasons I am still using FF as my primary browser.

Anyway, I have recently started using Safari more and more. For what? Well, it is now my Flex application testing platform of choice. Why?

1. it doesnt interfere with my Firefox sessions
2. It doesnt cache as bad as IE
3. ServiceCapture works out of the box with Safari

So, if you are doing Flex development on a PC and are sick of your testing crashing your Firefox sessions, or hate the way IE constantly caches your SWF, give Safari a try.

Flex RSL: Caching, almost but not quite... Quite!

One of the coolest features of Flex 3 is the RSL functionality. When you utilize this option it caches the framework to a swf file. If the user has already visited a site which has a Flex app that is built using the same framework version as you they do not need to download the framework as part of your movie. This means much faster load times and overall, much smaller swf files. It's pretty nifty.

Except there are some catches! A project we are working on is for data driven widgets throughout a website. These should be small in size, no more than 70-80k. We'd reached that goal for the UI functionality at 72k for the most complex swf. That is, until we added in the imports to pull data in from a simple web service. All we do is pull in some small XML packets and parse the data out, a pretty menial task. However, after we imported the soap Webservice (import mx.rpc.soap.WebService) we noticed out file sizes increased by 100k!

Now, one would think this would be cached with the RSLs, but apparently not. Mike Huntington pointed out in the comments that the LiveDocs contains information on the RSL for RPC. After I reviewed the documentation again I found out this is indeed true. Thanks Mike! So, after a bit more research on how to implement this, I came across the Adobe Wiki with instructions on exactly how this is done. I added the RPC RSLS, recompiled the app and was down to a manageable 77k. Nice!

That being said, you may want to monitor your export builds frequently through your development cycle to see what's increasing your SWF sizes and determine if there's a way around it. For backend systems this won't cause much of a ruckus, but if you have Flash apps (or, more appropriately, widgets) for public consumption a 200k swf could be cause for concern.

Flex 3 Launch party in Northern California

NorCalFlex will have a Flex 3 and AIR launch party on February 28th. If you live in the area be sure to come and check out our special presentations, possibly win some cool prizes, record your own 30OnAir video and have some good clean RIA Fun! Check out NorCalFlex.com for details

Mark the Date: January 23rd. Northern California Flex 3/AIR Pre-Release Tour with Ryan Stewart

This is just a reminder that Ryan Stewart will be speaking with us in Sacramento on January 23rd. I've just received a large box of swag (including an iPod nano!), so there will be a lot of give-aways!

Event Link: http://www.norcalflex.com

Northern California Flex User Group Hosts Ryan Stewart for Flex 3/AIR Prerelease!

Flex Interface Guide

I have been building Flex apps for well over a year now. One of the main struggles I come across is really how to do certain things with the interface. Sure, I have a stack of documentation (online of course) which defines the properties, events, tags, etc to me, but nothing that really tells me how to put it all together. Until now!

Adobe has released the draft of their Flex Interface Guide (FIG). So far, it looks like it's just what the doc ordered.  It also looks like Rob Adams is responsible for most of the content, which is great because Rob is part of the User Interface Group at Adobe.

I think of particular interested to me will be the sections which are not yet finished:

  • Part 6: Guiding with motion (Coming soon!)
  • Part 7: Making your application fast (Coming soon!)
  • Part 8: Making your application safe (Coming soon!)
These are the areas where I am problably the weakest, so I definitely look forward to those. When I am done reading the guide I'll give a quick review.

Adobe Hosting RIA Developer Camp, a Free Event!

Another great Adobe event, I'm sure! The camp will cover topics including Flex, AIR, AJAX and Flash. PayPal and Yahoo will also present. The event is in SF, CA on Nov 5, so sign up now!


http://www.eventsadobe.com/devcamp

New Flex Blog Aggregator - flexbloggers.com

Scott Stroz let me know this morning about his new Flex Blog Aggregator. You can access it via www.flexbloggers.com or www.allyourflexarebelongtous.com.

It's built using the http://www.coldfusionbloggers.org/ engine it looks like, so it should perform as smoothly as ColdFusion Bloggers.

Thanks Scott!

UI Design Contest: Win a Copy of ColdFusion 8 Standard

Got UI design skills? Adobe (thanks guys!) has been kind enough to donate a copy of ColdFusion 8 Standard as the prize for the person who comes up with the best interface for Kalendar.

There are a few requirements so please read them carefully:

  1. All entries must be received before October 13, 2007 12:00AM. Entries submitted on or after this date will not be eligible.
  2. Designs must be delivered in a PSD files, with all layers intact so it can be dissected
  3. You must provide design for the following
    • Each Kalendar view, as show on the demo site (day, week, week as list, month, month condensed). There are 5 views, so please verify you have designed these views.
    • The admin screens, which can be accessed on the demo site via the "admin link. There are 3 screens (add/edit form, category manager, file import)
  4. You must provide a design guideline which outlines the colors and fonts utilized
  5. All buttons and form elements must be designed
  6. The tooltips, which appear when your mouse hovers over an event must also be design
  7. You must send your files as a ZIP archive.
  8. Email your entires to kalendardesign at g mail dotcom
  9. You acknowledge that your entry becomes property of the Kalendar project and will be licensed under the Apache 2.0 license.
It is not necessary to provide XHTML or CSS templates. However, if you would like to provide these we would be very appreciative. If you do provide these the XHTML and CSS must be able to be validated.

It is also not necessary to provide a skin design for the Rich Text Editor in the admin (the description field), however you may do so if you like.

A Winner will be chosen on Monday, October 15th. Winners will be notified via email. All entries will be posted publicly for all to view and the designers will be given credit for their work. The winner and winning entry will also appear on this blog.

More Entries

BlogCFC 5.8.001 © Ray Camden