Posted on 1 Comment

Time to regroup – CFChart or not CFChart

So I’ve spent most of the day working on this issue. To recount, I’m trying to use CFChart to plot some data but the webpage returns blank. What we know:

The zero byte file reference was interesting. For people having trouble with CFChart or RDS you may need to know:

Some ColdFusion Administrator functions, as well as RDS and cfchart functionality, rely on two ColdFusion templates. However, these templates do not exist by default. You will need to create the following zero-byte files, since IIS will check for them during processing.

  1. Open Windows Explorer.
  2. Navigate to the web_root/CFIDE directory, typically located at \inetpub\wwwroot\CFIDE.
  3. Create a blank file named GraphData.cfm.
  4. Create a directory called main.
  5. Navigate to the new directory at web_root/CFIDE/main.
  6. Create a blank file titled ide.cfm.
  7. Repeat steps B-F for any additional instances of web_root/CFIDE.

At this point I’m running out of time. Can I do this with a different solution?

Posted on 3 Comments

Simple is never simple

So I take on two quickie low cost, fast turn around projects and they are eating me alive!

The first is a ColdFusion reporting project that is simply supposed to take the existing statistics report and produce a chart using CFChart. Works fine on my CFMX6.1 development server but apparently IIS6 and CF7.1 don’t play nice when it comes to CFChart. The problem is with IIS but Adobmedillare has been kind enough to release a hot fix that doesn’t work. "This hot fix explicitly generates HTTP headers before the chart data."

The second simple project is a PHP COTS shopping system (x-cart) that needs some customization. Only, it’s not using PHP per se. The customizations are all done using SMARTY. The challenge with programming, particularly web application programming, is constantly having to learn new languages/frameworks/methodoligies and being able to turn work like its old hack.

Using this simple CFChart example works in CF6.1 and fails in CF7.01 even after the hot fix.

<cfchart>
   <cfchartseries type="pie">
      <cfchartdata item="New car sales" value="50000">
      <cfchartdata item="Used car sales" value="25000">
      <cfchartdata item="Leasing" value="30000">
      <cfchartdata item="Service" value="40000">
   </cfchartseries>
</cfchart>

Anyone have extra tickets for CFUnited? I’d love to go this year but can’t justify the cost of the event.

UPDATE: Just tried the ColdFusion MX 7.0.1 Cumulative Hot Fix 2 with no luck. Note the hot fix advises:

Any individual hot fixes previously installed that are now contained in this cumulative hot fix should be removed.

we recommend always using the latest version of the cumulative hot fix

In short, remove any previous *.jars and only install the latest fix.

Posted on Leave a comment

Woohoo! Aardvark is working again. CSS troubleshooting is easier.


For you developers out there troubleshooting CSS, Aardvark is an extension for Firefox which greatly helps troubleshoot your css since it will show the elements with labels. Aardvark is not listed on Mozilla’s official list of extensions which typically means that the extension is not completely compatible with Firefox, sloppy, or the developer just didn’t submit it. I like Aardvark but had to quit using it when Firefox released version 1.5. Only today did I realize that Aardvark had a new release.

I definitely recommend adding Aardvark to your list of development tools!

Posted on 1 Comment

Project Done!

Most of the time I try to avoid talking about my work. Often it just is not appropriate. However, many people have no idea what I do. I find solutions to computer problems with a focus on web application development and database design; usually my work is in content management, inventory control, and e-commerce/point of sales. I have bid projects on automation of assembly lines, and done work as diverse as writing C++ programs with the aid of Russian programmers (that app had many millions of downloads btw). I sometimes get hands on and build computers or troubleshoot and repair systems. Often, I find some of my solutions to problems both fun and really cool.

I just completed two fun projects that each tormented me with overruns on deadlines due to technical hurdles. The latter was simply a statistical report of some tracked performance on a website. The challenge in organizing and categorizing the data came down to database design choices previously made by the client including housing some of the data in a MS SQL database and some of the data in a MS Access database. A requirement was speed so the choice was made to place as much onus on the MS SQL database for preparing the data. Unfortunately, this came down only to using some aggregate functions to get the totals and unioning a couple of tables. I did have the pleasure of writing a neat little UDF to convert a list into some table results. Because of the way the aggregate functions had to be written, the data came out neither grouped appropriately and with some unavoidably duplicate data.

Fortunately, ColdFusion now has the ability to perform queries on queries including the joining of data across different datasources. So now that I had data appropriately summed albeit out of order and with some duplicates (as stated previously), I could write a query to pull the labels from the MS Access database. All labels and details were in Access; all statistical information, referred to only by id, was in SQL. Next I used a query of query to join the resultset from the stored procedure with the result set from the Access database and now the data started to resemble something meaningful; however, duplicate information still litered the results.

ColdFusion also allows for manually building a result set. I’ve seen the unfortunate growth in popularity of the term "fake query" which is a terrible misnomer. It is a manual query result set. You, the programmer, are programmatically reproducing a set of data that otherwise would have been delivered via a database engine. So, using a loop to step through our latest result set formed from the QoQ and logic within the loop, I create a result set that combines information from the semi-duplicated rows into a single row. In the process I wrote a slick little number using a structure to hold the grand totals for each segment that I could refer to mathmatically when outputing the result set. Then I simply display the results reaching into the structure for additional information when necessary.

Wahla! Greek.

Posted on 1 Comment

Good programmer!

I love it when I think "I need a document to _____." and then I find out that I’ve already written it. Documentation is such a good thing! Programmers that think they will "get around to documenting after the project" or that "no one ever uses documentation" must suffer a lot on maintenance projects or when additional work comes around. I bet they say "it would be cheaper and easier for me to just start over" a whole bunch.