Blog | Admin | Archives

CFML troubles

The website of the Titan Robotics Club uses the ColdFusion Meta Language (CFML) to generate and display its dynamic content. I posted earlier about how ColdFusion was an easy language to learn, and that it seemed semantically powerful, able to accomplish a lot in not too many lines of code. While that is still true, there seems to be a dark side to the ColdFusion story or at least that of our current host, readyhosting.com. It seems that of the server’s stability leaves something to be desired, especially on start-up. For example, if you are te first person to visit the site after some period of time and (at least this is what I speculate happens) the ColdFusion interpreter has shut down, you are greeted by a hideous page with SQL statements and unprocessed cfoutput statements, which is hopelessly ugly. Occasionally when just reloading the home page, you will witness the same phenomenon. Needless to say, we can only hope this doesn’t happen when a judge is around. So, to hopefully minimize the chance of this happening, I created a shell script that, every 30 seconds, reloads the home page, and logs whether it recieved a “big” (correct) or a “small” (incorrect) version of the page. This way, the command interpreter should remain active (hopefully) and I’ll get statistics on how often the page loads incorrectly, even after a “hot” start. Nothing like hard data with which to confront your host (or should it be Macromedia?) .

In case you are interested, here is the bash script:


#!/bin/bash
big=0
small=0
while true
do
        wget -q http://www.titanrobotics.net/index2.cfm
        echo got index2.cfm
        mv index2.cfm dl
        size=`du dl | awk '{ print $1; }'`
        if [ $size -gt 24 ]; then
                let "big += 1"
        else
                let "small += 1"
        fi
        echo $size >> sizes
        echo big: $big, small: $small
        rm dl/index2.cfm
        echo deleted index2.cfm
        LIMIT=30
        for ((a=1; a < = LIMIT ; a++))
        do
                echo -n .
                let "var0 += 1"
                sleep 1s
        done
        echo .
done


Here is the output so far (`tail out`):
got index2.cfm
big: 26, small: 3
deleted index2.cfm
...............................
got index2.cfm
big: 27, small: 3
deleted index2.cfm
...........

5 Responses to “CFML troubles”

  1. Erik Says:

    Good detective work, A++.

  2. Bernie Zimmermann Says:

    I see two problems here. First, you are using ColdFusion. Second, you are using ReadyHosting. It’s a shame we didn’t run across each other’s blogs sooner, because then you might have caught this. ReadyHosting is great if you just want to host some files without any constraints on bandwidth, but as far as support and reliability go, they are worthless.

    ColdFusion is fun to learn, but eventually you realize that hardly anyone really uses it because of the backend it requires. Also, have you seen the price tag?

    My advice? Switch to PHP or ASP .NET. When (notice I didn’t say “if”) you leave ReadyHosting you’ll be better off that way.

  3. Ryan Says:

    Update:
    big: 720, small: 55

  4. Ryan Says:

    I didn’t choose CFML – Pedro did
    I didn’t choose ReadyHosting – Pedro did (I think)
    I would have used PHP
    We are going to use PHP for the next version
    We will switch hosts before the end of the year

    Now, all of this is not to dis on Pedro – I mean, he won us two best website awards, and the current website has been invaluable to the club’s communications. And the fact that he did it all himself is a testament to his abilities and CFML’s RAD power. Of course, the fact that about 7% of the time, it has an unrecoverable error, thats just dumb.

  5. Bernie Zimmermann Says:

    My “you” was a general “you,” not a specific one. I figured, based on the types of tools you generally tinker with, that it wasn’t your decision. I checked out the site and it looks good. The good news is, once you guys make the transition, it will look the same and be much faster.

    Vote for Pedro.

Leave a Reply