Tuesday, February 01, 2005

Free Tracking Tools

Check out this offer to get a free copy of Tracking Tools...

Wednesday, December 01, 2004

Portable TTools

When I read John Beynon's blog entry about Portable Eclipse I thought why not try running TTools from a USB drive. It's a fully self-contained app so it should just work. Well, a coworker happened to have a 30MB USB drive handy so I gave it a go and it does!* Also, the iPod is basically just a hard drive so running on that should be no problem either. I don't have an iPod but Dick A. was kind enough to take a screenshot of TTools running off a his iPod. I'm not sure what the practical application of this is for TTools but it's just plain cool!

Note: When I tried running the app for the first time, I just got a blank screen in the browser. No error, just a white screen of death. The templates in the demo are encrypted so I thought that may have something to do with it. I copied over an unencrypted index.cfm and then it worked. I'm not sure what the root issue is and the rest of the templates are still encrypted but it resolved the issue. If you want to try this with the Tracking Tools demo on your USB drive you'll need to replace the index.cfm with a new file containing this code


<cfif structKeyExists(URL,"reloadApp")>
  <cfset MACHII_CONFIG_MODE = 1 />
</cfif>

<cfinclude template="includes/english.cfm" />
<cfinclude template="includes/utilFunctions.cfm" />
<cfinclude template="MachII/mach-ii.cfm" />


A Happy Customer

I work hard to make Tracking Tools easy to use and to install. It's nice to know that worked paid off. Here's a note from one of my customers:

Most developers know that, like version control software, an efficient tool for tracking bugs and feature requests is a necessity in software development. This is true regardless of the size of the production team.

In our quest for a tool to replace a cluttered Excel spreadsheet based bug list, we had a few needs:
1. The system had to have all the standard features of a typical bug tracking system.
2. It had to be easy to install and use.
3. The price needed to be low enough to make it a no brainer purchase.

Tracking-Tools meets these criteria in spades. We tested quite a number of bug tracking systems and found most to have a very complex installation process. Some of these were also overly difficult to use once installed. Tracking-Tools is amazingly simple to install. Its stand-alone mode contains a ColdFusion Server, Web Server and SQL Server all in one package. Install is simply a matter of uncompressing the package and launching the main application! I believe that the most important responsibility of a Developer is to work hard so that the user does not have to. Tracking-Tools is an elegant, streamlined, efficient solution to our bug tracking needs.

The fact that Tracking-Tools crosses common platforms (Windows, Mac OS X and Linux) demonstrates the developer's concern for users and cross platform code compatibility.

In addition to Tracking-Tools' ease of use, it's reasonably priced and includes robust, responsive support from the developer. A wonderful tool that's a worry free part of our development process!

Russ
Destiny Software Inc.

Thursday, September 30, 2004

Problem with Java 1.5, Mach-II and BlueDragon 6.1/J2EE

I wanted to test the TTools demo on my home machine running Windows 2000 Professional and I was surprised when it didn't launch. I realized I didn't have a JRE installed so I decided to download and install the latest Java 1.5 since it was just released. To my chagrin, I got an "invalid date/time string: {ts '2004-09-30 19:01:32'}" from the AppLoader.cfc in the Mach-II framework. I tried the demo on another machine running a JRE 1.4.2 with no issue. The following code will reproduce. The template should be called test.cfm




<cfset currentFile = ExpandPath('./test.cfm') />

<cfdirectory action="LIST" directory="#expandPath('./')#"

name="testFile"  filter="test.cfm"/>

<cfdump var=#testFile# >

<cfoutput>#testFile.dateLastModified#</cfoutput>

<cfset lastConfigDate = ParseDateTime(testFile.dateLastModified) />





I downloaded the CFMX 6.1 developer edition and tried that code with no problem. I suspected it's because CFMX uses it's own JRE. I change the JVM to the JRE 1.5 in the CFMX Administrator and CFMX wouldn't even start. I wonder if CFMX/J2EE can run on JRE 1.5

I'll post this to the BlueDragon mailing list. The New Atlanta folks are pretty responsive. Let's see what they have to say.


Update (10/1/2004) - Vince Bonfanti from New Atlanta replied that they haven't done any testing with Java 1.5 at this point. I should also note the TTools demo uses the Jetty application server version 4.2.21. Jetty is actually at version 5.0 and it apparently supports Java 1.5 as of that version. After I upgrade to Jetty 5.0 I'll report back if it's resolved

Wednesday, September 29, 2004

Tracking Tools Version 1.1.0 released

Tracking Tools Version 1.1.0 is now available. Visit the website and download the demo that you can try free for 30 days.

Friday, September 17, 2004

Loading jar files from a relative path and using log4j

I was wanting to add logging capabilities to TTools and after reading this article from CFDJ, I thought I would try log4j. The article is very good and tells you exactly how to integrate log4j however I also needed this to work on BlueDragon. CFMX ships with log4j.jar so you don't need to install anything but BlueDragon doesn't. Fortunately, I found this post on Spike's blog about loading java class files from a relative path. By looking at the Java docs, it didn't take much to figure out how to load a class from a jar file. However, the was not the only hurdle. It seems that org.apache.log4j.Category class doesn't have a public constructor therefore I could not get an instance using CreateObject(). After a few posts on the BlueDragon mailing list, a workaround was found. Here's the code. I hope you find it useful.



<cfscript>
jarFile = "log4j.jar";
// Grab the current directory
currentDirectory = expandPath('./');
//Turn any \ in the path into /
currentDirectory = replace(currentDirectory,'\','/','all');
pathToJarFile = currentDirectory & jarFile;
// Create an instance of java.net.URL for passing to the URLClassLoader
URLObject = createObject('java','java.net.URL');
//Initialize the object with the jar file
URLObject.init("file:" & pathToJarFile);

//Create a java Array and add our URLObject to it, this only works on CFMX, not BlueDragon
//URLArray = createObject("java","java.lang.reflect.Array").newInstance(URLObject.getClass(),1);
//ArrayClass = createObject("java","java.lang.reflect.Array");
//ArrayClass.set(URLArray,0,URLObject);
//this will work on both CFMX and BlueDragon
UrlArray[1] = urlobject;

//Create an URLClassLoader and pass it the array containing our path
loader = createObject('java','java.net.URLClassLoader');
loader.init(URLArray);

//Use our new class loader to load the log4j DOMConfigurator class
configurator = loader.loadClass("org.apache.log4j.xml.DOMConfigurator").newInstance();
//init the configurator with the xml configuration file
configurator.configure( currentDirectory & "log4jconfig.xml");

//The Category class does not have a public contstructor so we have to jump through
//some extra hoops to get an instance
myClass = createObject("java", "java.lang.Class");
stringClass = createObject("java", "java.lang.String");
// load the Category class using the forName() method and the custom loader
categoryClass = myClass.forName("org.apache.log4j.Category", false, loader);
paramTypes[1] = stringClass.getClass();
getInstanceMethod = categoryClass.getMethod("getInstance",paramTypes);
param[1] = "categoryname";
categoryObject = getInstanceMethod.invoke("",param);

logger = categoryObject.getInstance("com.mydomain");
logger.info("testing 1 2 3...");
</cfscript>

Wednesday, September 15, 2004

Oracle support

With the help of one of the beta testers, Anya, and the Oracle Migration Workbench I added support for Oracle databases to TrackingTools. (I'm developing/testing with Oracle 9 but it probably works on 8 and maybe 7 as well.)

Since TTools implements the Factory for Data Access Objects Strategy, making the necessary changes was quite straightforward. It took longer to find the Oracle installer on the web, download and install it then it took to modify the actual CFCs!

If you are using Oracle and would like to beta test TTools, please contact me.

Monday, September 13, 2004

Tracking Tools Review

Mark Kruger, owner of CFWebTools LLC, has written a review of Tracking Tools v1.0. He talks about how his company uses Tracking Tools to deal with client change requests and how it improves communication between his customers and increases productivity. Read the whole article here.

Thursday, September 09, 2004

Call for beta testers

I'm looking for a few people to beta test Tracking Tools v1.1. Some of the things that have changed from the 1.0 release are:
  • added database support for MySQL and Cloudscape
  • added support for Linux and MacOS
  • added support for BlueDragon
  • "Mach-II inside"
  • users no longer need to have a database or a CF server (can run a version bundled with Cloudscape and BlueDragon J2EE).
Please contact me if you are interested in participating in the beta program.

Update 9/10/04 - I have more than enough folks with Windows/MSSQL/CFMX environments. I'm still looking for folks on Mac/Linux, MYSQL and/or BlueDragon.