Rob Gonda's Blog

Framework Comparison Matrix

Fusebox, Mach-II, or Model-Glue? Which is the best framework for developing ColdFusion applications?. To help you reach a decision, I suggest you take a look at Sean Corfield’s feature comparison matrix where he writes about the pros and cons of each of the three frameworks. You can also download sample applications in all three frameworks from here.

If for some reason the URL above doesn't work, you can access Corfield's matrix in this excel file.

Spread the ColdFusion spirit

Just thought I’ll spread the ColdFusion spirit across the community.
Get your CF t-shirt here.

CF Frameworks

 So, we’re been talking about CF frameworks lately and are still debating which one is better. I found this article over the weekend by Sean Corfield where he compares seven different code styles and provides the same app in all seven of them. … I expect more to be said after CFUnited which takes place from June 29th to July 1st.

http://corfield.org/blog/index.cfm?do=blog.entry&entry=A040B751-92EC-FA0B-3E8F9EC94CCD4A85

to Mach II or not to Mach II

This weekend I found a couple of blogs arguing whether Mach II is dead or not; Some people claim that it has/will be replaced with Model-Glue, and then I found this article written by Joe Rinehart, creator of Model-Glue actually defending Mach II and explaining some differences.

http://corfield.org/blog/
http://blog.maestropublishing.com/index.cfm
http://clearsoftware.net/client/index.cfm

Special thanks to Ray for allowing us to use his blog code.

 I’d like to thank Ray for allowing us to use its blog software for free. This allows more and more ColdFusion people to share with the community.

Find the link for the source code for this blog here.

jComponents from Joe Rinehart

Browsing through CF related blogs I found a very nifty JS/DHTML CF custom tag to generate Tabs, Accordions, Containers, and Trees. It can be found here.

XMPP Server

After a little research and trying a few xmpp server from jabber.org’s list (http://www.jabber.org/software/servers.shtml) I found Jive a very simple and efficient server (http://www.jivesoftware.org/index.jsp). I got it working with MsSQL which was my SQL server of preference, and got the CFMX7 gateways connected in a heartbeat.

I think it’s missing a couple of important features such as server connectivity to legacy networks such as MSN, YIM, AIM, or ICQ. Other XMPP servers have that. It is only a matter of time until they incorporate it.

I like the fact that it is an open source project and also that I can run it in Windows 2003 Servers.

Basically, it has all the necessary features such as IM, SSL support, group chat rooms, shared group, ldap, logs, and a very Web Administrator panel.  Also, it integrate perfectly with Flash XIFF (http://www.jivesoftware.org/xiff/). XIFF is an Open Source Flash library for instant messaging and presence clients using the XMPP protocol.

Force CF to wait w/o killing the CPU

Many times we have been into the situation where we need to tell CF to wait a couple of seconds and try again. This task is usually easy, with the exception that we don’t want to kill the CPU… Easily we could set a timestamp, and start looping until we reach a target time after that. I downloaded from ColdFusion exchange a cfx tag that promised to accomplish this but it killed the CPU anyway.

So, here’s a little snippet to wait idle using the CF JVM.

function sleep(ms) {
 var thread = createObject("java","java.lang.Thread");
 thread.sleep(ms);
}

Flash-form generated form scope disappears after refreshing

So all you guys developing in MX7 have probably already run into this problem. After submitting a flash form the action page recognizes the form scope; however, if you decide to refresh the action page the form scope magically disappears. This happens whether you increase the timeout of the flash form or not.

I’ve been looking for an answer and yet have not found any… so if you come across one please comment back in this post.

Anyway, thus far I only have two awful solutions.

First: use get method because the URL does not disappear… if you have to use post you may loop through the form fields, generate a URL string, and cflocate.

Second: Post and add the ‘post-id’ in the URL. In the action page duplicate the form scope inside a temporary holder in the session scope; e.g. session.formholder.formid. In this action page you have three possible options to execute.
If the form scope is not empty, you duplicate it in the session.
If the form scope is empty and url post-id number is provided, you duplicate the session form-holder into the form scope.
If the url post-id is not passed, you clear the session form holder.

It is a horrible solution, but given the circumstances it was the quickest solution to implement.

The SQL odyssey continues: ListLen and ListLast

The SQL odyssey continues. Today I found myself writing a trigger for a VoIP call detail records table where some numbers came with special technical prefixes; the format was 945#5555555555… or sometimes even 123#456#5555555555

So instead of looping through the # signs with charindex, I decided to write ListLen and ListLast function to almost complete the collection.

In the trigger I had statements such as

 

IF dbo.ListLen(@number,’#’) = 3
 DO STUFF

Or to always get the dialed number regardless of the prefixes I used

 

SET @number = dbo.ListLast(@number,’#’)

Really helpful.

Get the functions here.

More Entries

This blog is running version 5.9.003. Contact Blog Owner