jeffcoughlin.com

webDU Conference 2007 March 22-23

Update: My apologies. In the blog post title I had May instead of "March". Please note the dates are March 22-23 2007. Hey, it almost 4 am when I posted that :). (Thanks Geoff for pointing it out!)

The guys at Daemon are at it again. This year webDU promises to be another great web technology conference. Speakers like Tim Buntel, Mike Chambers, Ted Patrick, James Talbot, and Charlie Arehart (to name a few) will be there to once again share their expertise in tools and languages we know and love.

This will be the first year am I going to webDU (and my first year in Oz). I will be speaking on the new upcoming FarCry 4.0 Application Framework and some of it's really cool new features that have been added in this revision that help make FarCry development even easier and more streamlined than ever before.

Oh, and if you get a chance make sure to check out the cool new mug shot of me put together by the awesome team from Nectarine.


New Extended Arrays in FarCry 4.0

An array property in FarCry allows you to have relational tables for your content types and have it easily configurable and managed from within FarCry.

Real World Scenario

Lets say I have a CFC (object) called products.cfc where I store my company's product info. To keep this example simple we'll say my fieldnames are productName, description, and price.

Now my company tells me they want to have sale prices this month (in this case just price decreases) for different products. Okay, so I create a new object called sale.cfc. To assign the products to a sale object in FarCry I can do it in one line of code in the sale.cfc file like so...

view plain print about
1<cfproperty name="aProducts" type="array" hint="Products in this sale" />
(Note: add the attribute ftJoin="sale" (where "sale" matches the name of the CFC file w/o extension) to take advantage of one of the new FormTools in FarCry 4.0 (more on that in a future blog post))

This feature has always been possible with FarCry (at least since I started using it in version 2.1) and will create a table called sale_aProducts.

But wait a second... I just realized that I need to have custom prices for each product in the sale (meaning for each item in the array table, I need a column called price to override the default product price). Before FarCry 3.0 this was not possible without managing your own table (something FarCry has always tried to eliminate the need for). However, in FarCry 3.0 a new attribute came along called arrayProps. So I could use it by adding the attribute like so...

view plain print about
1arrayProps="price:numeric" (add more by separating them with commas)

So now if I use that attribute I'll end up the following columns in my array table parentid, data, seq, typename, and price (my new column).

This worked great and allowed me to add my new column(s) with ease. Unfortunately trying to manage the data in the new column price requires custom code/logic.

Introducing Extended Arrays

In FarCry 4.0 we set aside the "arrayProps" attribute and instead create a CFC named after the array table.

File: <project_folder>/packages/types/Sale_aProducts.cfc

view plain print about
1<cfcomponent extends="farcry.core.packages.types.arrayTable" displayname="Sale Products" hint="Listing of products belonging to a sale">
2    <cfproperty name="price" type="numeric" hint="Sale price for product item" required="true" />
3</cfcomponent>

Now the data can be accessed as a native FarCry object and not just some SQL table we had to write manual queries and logic for in order to manage the data. We can even add more fields... heck, we can even add another array table to this array and the code will not get messy.

This is a great new feature to FarCry 4.0 that I plan to take full advantage of and hope you find it useful as well.


FarCry CMS vs. Drupal CMS

Someone recently posted on the [FarCry-User] mailing list asking questions about comparing the open source CMS Drupal (which runs in PHP) to the open source CMS product FarCry (which runs on ColdFusion). Of course there are differences in platform support and price when it comes to comparing PHP and ColdFusion, but that was not his question.

Cenk writes:

I am just trying to create a website for one of our customer with FarCry for latest 2 weeks. But today one of our developers used Drupal and created same site within some hours with lots of extra features. Now I need some tips to explain situation to our boss here. What would you suggest to me as argue tips? :)

Although I haven’t used Drupal I have heard great things about it. So I just took a quick peek at their features page to do a quick comparison. At first glance it does have a couple more features built-in. I see a polling tool, blog, threaded comments, and module plugin capabilities.

Drupal Features FarCry is Missing

I'll try to break these down. If I missed something its not because I am dismissing them on purpose, rather it would be my unfamiliarity with the Drupal CMS system (note to self: I should check it out someday. It really does look like a nice product).

Polling

There was a tutorial put out by Daemon on plugging in a flash-based polling tool into FarCry a few years ago. I'm not sure what happened to it. Needless to say, it should be easy enough to build one from scratch. But alas, Drupal has one up on FarCry here.

Blog

FarCry does not come with a built-in blog. It has been a request in the past by a few people, but please keep in mind that FarCry is aimed at the Enterprise market (which generally doesn't care for blogging on their corporate website). As for building one (a blog) it should be fairly simple. Drupal says that it can syndicate content from its blog module. FarCry has one up there in that it can syndicate any content object built in the FarCry framework (which should make it fairly easy to build a blog library in FarCry). Still, being that the blog is built into Drupal they have a leg up.

Threaded comments

Not sure what to say. I mean, with FarCry a tool like that should take about 5 minutes to build. I've never seen it requested before, but could see it being useful on the right website.

Module Plugin Capabilities

Although this has always been a feature in FarCry (called "custom types") FarCry 4.0 makes it even easier now. FarCry 4.0 (when released) will have a new feature called shared libraries. It's essentially an easy way to share and deploy custom types among FarCry projects (much like modules).

FarCry Features Drupal is Missing

Now let's point out some things that FarCry "might" have some advantages over Drupal (I say "might" because I am not familiar enough with Drupal and may be making assumptions).

Database Support:

Drupal says it supports MySQL and PostgreSQL. FarCry supports both of those plus 2 more (MSSQL and Oracle) covering more of the Enterprise market.

Searching:

Because FarCry runs on ColdFusion (and takes advantage of Verity) it has tools built right into FarCry that allow you to start searching your new custom type within seconds. Drupal's feature page isn't clear what it uses. It says that it is "indexed and searchable" which could mean many different things (like indexing DB columns and then doing simple LIKE searches in SQL). I'm hoping its something decent like Lucene (or better).

Module/Custom Type Build Times:

One of the great Features of FarCry (especially in FarCry 4.0) is how quickly you can make custom types (or modules). With the introduction of new wizards, formtools, and even scafolding in FarCry 4.0 we can now build custom types (modules) in a matter of minutes. You want to deploy a new custom type (module) on a page quickly? Try FarCry's built-in rules and containers in design mode. I have no idea how long it would take to design a module in Drupal (a lack of reading their docs on my part).

Module/Custom Type Deploy Times

Again, I have no idea how long it takes to deploy a module in Drupal (I'm assuming they have some neat tool to do it quickly). FarCry has a feature under the COAPI management tools to deploy a custom type (module) in one click (not too shabby).

The List Goes On

There are many more features built into FarCry that are not listed on the Drupal feature page (like XML export of any content type, or built in image manipulation like thumbnails, a media library, and more). But like the current FarCry site the features page is possibly out of date, so I would hate to make assumptions.

In all reality it looks like the FarCry CMS website needs some content updating :) (especially an updated feature list page). And once FarCry 4.0 is released Geoff promises to open up a shared library resource section on the FarCry CMS website where people can share libraries (modules/plugins) like drupal, Typo3, and other successful CMS systems have done in the past (and hopefully have a social rating system where people can vote on libraries and post comments... one can only hope :)).

Drupal looks like a promising product. If you're locked into use PHP I'd definitely consider it as a possible choice for a CMS. But if ColdFusion is still on the table, don't dismiss it as a contender just because it's missing a polling tool and a built-in blog (unless if that’s what you're specifically in the market for). Those features are great markets for non-corporate environments, but alas it may be something we need to consider releasing as a pre-packaged library in FarCry to appease the masses.

Please Comment

As always feel free to post comments, but please keep the flame wars to another website. This blog post wasn't meant to say one product is better than the other. Both products are great open source CMS products that fill different (and similar) needs. I'll apologize ahead of time and say that if I said anything that sounded offensive to the Drupal CMS product it was unintentional and I still believe it is a good product worth looking into.


New Object Broker in FarCry 4.0

FarCry 4.0 (currently still in Beta) has a new feature called an Object Broker. It's essentially a caching tool for object types.

When used you set a numerical limit on it (for server memory reasons) where when the limit is reached it acts as "newest in, oldest out".

At the moment activating and using the object broker is undocumented. So for the moment consider this a good starting point :).

To Enable Object Broker

Edit any custom type CFC and add the following two attributes

view plain print about
1bObjectBroker="true"
and
view plain print about
1objectBrokerMaxObjects="1000"
(where 1000 is the numerical limit you want cached).

To Test Object Broker

  1. Disable the object broker and turn on CF debugging to see all of the queries
  2. Enable the object broker to see how few queries are required.
  3. Try dumping application.objectbroker to get a look at what's being cached.

Thanks to Mat Bryant (Daemon Internet Consultants) for helping me wrap my brain around some of these features.


Adobe, Please Review Your Certification Exams

I have some things I'd like to vent about taking the Adobe ColdFusion certification exam. Its more of frustration I guess.

First of all, what were the test writers thinking when they wrote the test? I had four (yes 4) questions on the <cfinsert> tag (I cannot discuss the contents of the questions due to a signed NDA). Oh my goodness. I very likely got all 4 questions wrong because in my 7+ years of writing in CF I have never once used the tag. Frankly, I think it should have been deprecated years ago.

So I polled a few people at the conference (Ray Camden, Michael Dinowitz, Simeon Bateman, etc.). Not only do they not use it, but all of them agreed that they would have likely failed the questions as well.

So, what if I had failed the exam? Does that mean I'm not an expert because I don't use tags like <cfinsert> and <cfupdate>? I seriously would have thought that best practices would be higher on the chain of questions making it into the exam.

Why have I never used <cfinsert> or <cfupdate>? Because Alaire (the original creators of ColdFusion) told me not to in training tutorials they wrote and sold. That (to me) is documentaiotn right from the developers saying not to use the tags. Yet here I'm taking a test that says I need to know it. (sigh...)

---

In case anyone is interested, the tutorials I'm talking about were a package you could have bought with CF4 (when I first got into CF heavily back in 1999).

There were other questions that I wasn't too happy about which consisted of bad grammar and a few poorly written questions. I asked a few people about their experiences during the CF exam and they all had comments about poorly written questions.

My suggestion to Adobe: Maybe reconsider new ways to have reviewers check ot the tests. Like ask the Adobe ACE team to volunteer to be beta testers of these tests (since they consist of mostly CF experts) or other current Advanced ColdFusion Certified Developers.


Advanced ColdFusion MX Developer

While I'm here at Adobe MAX 2006 I decided to take the CFMX7 Developer exam. I'm happy to say that not only did I pass the test to become certified, but I got enough score (plus some) to be considered an advanced developer (w00t!).

Sorry if this post is tooting my own horn, but its not often I even try for certifications anymore.

Adobe is having a party for everyone at the Palms Resort Casino in a few minutes. So I'm off to celebrate :)


FarCry 4.0 Beta Released

FarCry 4.0 Beta (code-named Gonzales) has been released to the public for Beta testing (currently from SVN).

So what's changed? This release was aimed at developer improvements (although the user hasn't been forgotten). Here are a few off the top of my head:

  • New Installer (you asked... you begged... so hear it is in all its glory :)
  • New Custom Type Features for Developers
    • New object broker
    • Form Tools
    • Form Wizards
    • Other cool stuff
  • New Client Features
    • AJAX features for seamless user interaction
    • New UI features like drag & drop and other cool web 2.0(ish) gadgets

Other things to keep in mind:

  • The current plan is to have the minimum CF version support be CF7. This may or may not change by the final release, however it is something you should consider if planning using FarCry 4.0.
  • Because this is a Beta there will likely be bugs.
  • Currently there is little-to-no documentation for Gonzales.
  • Please refer any Beta questions (related to bugs or features) to the FarCry Beta Mailing list.


SeeFusion 4.0 Breezo with Patrick Quinn

At our last CFUG meeting (Hartford CT Adobe User Group) we had Patrick Quinn from Webapper give us a great breezo on SeeFusion 4.0.

Go check out the recording and see what all the hype is about http://adobechats.adobe.acrobat.com/p68524552/


New FarCry Video Tutorial: FarCry 3.0 - An Overview (Part 5 of 5)

The final part to this 5-part video series titled FarCry 3.0 — An Overview (based on a presentation I gave at the CF.Objective() 2006 conference) is finally complete.

Part 5 completes the series by wrapping up the dynamic content portion of the presentation. I give examples of Verity search integration, RSS/XML content syndication, SES Friendly URLs, and wrap up with reporting features built into FarCry (Website statistics and user auditing). I also give examples of where you can find more resources to continue your thirst for knowledge in the world of FarCry CMS.

If interested, I have also provided the slides from my presentation (slightly updated). You can download them in either PowerPoint (PPT) or PDF format. You can find a copy of the presentation files in the downloads section of my website.


New FarCry Video Tutorial: FarCry 3.0 - An Overview (Part 4)

This is part 4 of my video presentation on FarCry 3.0 An Overview (based on a presentation I gave at the CF.Objective() 2006 conference).

Part 4 was turning out to be too large and a couple BETA testers suggested I trim it down more (I already cut out 15 minutes worth of footage) or split the video into two parts. So I chose the latter :). I'm halfway through editing part 5 as we speak, however I'm going away on holiday for a few days. Needless to say it will be done soon.

Part 4 dives into dynamic content examples. I cover a little bit on containers and custom types (my personal favorite feature). Since this video was recorded five months earlier I had to make a few updated notes during the video (tooltip popups).

One note in particular I'd like to point out is the way we as developers currently work with custom types. Although I only touch on custom types briefly in my presentation there are actually quite a few steps involved if/when you want to start working with PLPs. However, FarCry version 4.0.0 will drastically change this with the introduction of new wizards and form tools. Albeit still months away from a release, version 4 of FarCry looks to be very promising. Expect to see some exciting things on that soon.

If interested, I have also provided the slides from my presentation (slightly updated). You can download them in either PowerPoint (PPT) or PDF format. You can find a copy of the presentation files in the downloads section of my website.


Previous Entries / More Entries




BlogCFC 5.9.8.007 by Raymond Camden | RSS | Contact Blog Owner