If you have attended any of my Spry presentations, you have heard me sing the praises of Firebug, the best Firefox extension ever created. About once a week I discover something new about it that just amazes me.
About a week or so ago I discovered that Firebug, a Firefox extension, can also be extended. Turns out someone made FirePHP, an add on to Firebug that lets you do basic debugging of PHP code in Firebug.
Now I don't know about you guys - but I think anything the PHP folks can do we can do better. (And easier. And quicker...) So I started looking into how this could be added to Firebug. Turns out working with Firefox is a bit complex. Luckily I found out that Adam Podolnick (Podman on the CF IRC channel) was experienced with it. I've had plenty of experience working with ColdFusion's debug templates. So we teamed up to create ColdFire.
ColdFire is a plugin that will let you view debugging information in Firebug instead of a giant dump at the bottom of the page. This is especially useful in cases where ColdFusion's debug output doesn't play well with CSS based sites. Right now it is not quite ready for release, but Adam and I hope to have a 1.0 release sometime soon. Here are a few screen shots. Click the image for a larger picture.
The first screen shots shows the General Information tab. This is basic information about the request including server level, template, and other pieces of information. Unlike the built-in debug template, I also added support to show the current active application, if one exists.
This second screen shot shows the template display. Note how you can tell regular templates from includes, custom tags, and CFCs. Also note the red background on slow templates. We may add filtering so you can restrict the display to just one template or method. This would be useful when you are working on cutting down the execution time of just one part of the request.
Last is the query display. As you can see, it shows each query along with the SQL. This will probably need a bit more work for larger queries. Since I was able to use the code from Starfish, the queries will automatically replace cfqueryparam values with their real data, so you won't see ? in the SQL.
So - what do you guys think? Useful?
Comment 1 written by Jay McConathy on 9 March 2007, at 10:12 AM
Comment 2 written by John Ramon on 9 March 2007, at 10:16 AM
Comment 3 written by Nick Tong on 9 March 2007, at 10:16 AM
Comment 4 written by Mike Elston on 9 March 2007, at 10:16 AM
Comment 5 written by Danlance on 9 March 2007, at 10:17 AM
What needs to be enabled on the server / in the application in the terms of debugging settings?
Comment 6 written by Raymond Camden on 9 March 2007, at 10:20 AM
Danlance - You turn on debugging, select coldfire as the template, and that's it.
Comment 7 written by Raymond Camden on 9 March 2007, at 10:21 AM
Comment 8 written by Joe Danziger on 9 March 2007, at 10:21 AM
Comment 9 written by Shlomy Gantz on 9 March 2007, at 10:24 AM
Comment 10 written by Jeremy Prevost on 9 March 2007, at 10:29 AM
Comment 11 written by Marcos Placona on 9 March 2007, at 10:36 AM
Cheers
Comment 12 written by Ryan Arneson on 9 March 2007, at 10:44 AM
Comment 13 written by Michael Dinowitz on 9 March 2007, at 10:45 AM
Now about that beta testing. :)
Comment 14 written by Rich Kroll on 9 March 2007, at 10:53 AM
Comment 15 written by Frederic Fortier on 9 March 2007, at 11:00 AM
In Fusebox 5 you have to disable query execution time.. since the fusebox cfc's are clogging the debug parsing time.
Comment 16 written by Raymond Camden on 9 March 2007, at 11:04 AM
Fusebox: Well, as I said, we should be adding a filter. This will let you drill down to specific entries. It was not intended to remove entries, but you could do that to focus on non-fusebox stuff.
Comment 17 written by jonese on 9 March 2007, at 11:05 AM
Comment 18 written by Jim Prist on 9 March 2007, at 11:19 AM
Release it to the masses!!! :)
Comment 19 written by Nick Walters on 9 March 2007, at 11:20 AM
Comment 20 written by Richard Davies on 9 March 2007, at 11:24 AM
Comment 21 written by Sam Curren on 9 March 2007, at 11:25 AM
Comment 22 written by Frederic Fortier on 9 March 2007, at 11:37 AM
Thanks a lot.
Good work!
Comment 23 written by Sam Farmer on 9 March 2007, at 11:40 AM
When displaying queries could it parse the real values in and not the ? when using cfqueryparam?
AJAX support would be amazing.
Comment 24 written by Raymond Camden on 9 March 2007, at 11:46 AM
Comment 25 written by Scott Krebs on 9 March 2007, at 11:47 AM
>support N sets of data per request
Will it support -gag- frames and allow viewing the debug info of each frame in the current set? I'm personally not a frames-lover (or even liker) but I've got to support some legacy apps that make extensive use of them (they were so cool in 1998! ;). It's tough to get debugging info out of very small frames and this would make life so much easier.
If frames support isn't planned and this sounds like a feature request on a piece of software that isn't even released yet, then my apologies for that. I'm really looking forward to something to squash the CSS positioning headaches with debug info once and for all. Woohoo!
Comment 26 written by Raymond Camden on 9 March 2007, at 11:50 AM
Comment 27 written by Raymond Camden on 9 March 2007, at 11:53 AM
Comment 28 written by Ken Dunnington on 9 March 2007, at 11:58 AM
Comment 29 written by Raymond Camden on 9 March 2007, at 12:01 PM
There won't be a beta sign up or anything, I'll just post the bits to my blog. It will open to all.
Oh wait - no - um - the beta is available to anyone who visits the wishlist! Or gets me a good import beer! There we go! ;)
Comment 30 written by David Stockton on 9 March 2007, at 12:09 PM
Well done!
Comment 31 written by Don on 9 March 2007, at 12:09 PM
This would save me hours of frustration!!!
Comment 32 written by John Ramon on 9 March 2007, at 12:14 PM
Comment 33 written by jeff on 9 March 2007, at 12:17 PM
Very cool idea Ray! Thanks for all your hard work.
Comment 34 written by Joel Cox on 9 March 2007, at 12:23 PM
Comment 35 written by Brian Swartzfager on 9 March 2007, at 12:35 PM
That looks really cool! Kudos to you and Adam for coming up with this. I look forward to hearing more about it.
Comment 36 written by Kurt Bonent on 9 March 2007, at 12:40 PM
Comment 37 written by Roy Martin on 9 March 2007, at 12:43 PM
Once you get this wrapped up let me know because it would be the ideal thing to port the ModelGlue debugging info into this.
- Roy
Comment 38 written by Justice on 9 March 2007, at 12:45 PM
Comment 39 written by Mark Mazelin on 9 March 2007, at 12:57 PM
Mark
Comment 40 written by DK on 9 March 2007, at 12:58 PM
Comment 41 written by Jeff Wilkinson on 9 March 2007, at 1:03 PM
So, how about ASP now?
Comment 42 written by Michael Brennan-White on 9 March 2007, at 1:04 PM
I love Firebug and often thought it would be great if I could do CF with it as well.
Michael
Comment 43 written by Raymond Camden on 9 March 2007, at 1:11 PM
So first off - I didn't consider it for ModelGlue. It _may_ be something to consider. We could make ColdFire extensible, where if it finds a header of the form coldfire_XXXX, then it tries to parse XXX. It would only support simple datasets, but, it could be possible. Definitely a 2.0 thing. ;)
Jeff - I'll do an ASP one when they pry the CF from my cold, dead, hands. :)
Comment 44 written by Scott P on 9 March 2007, at 1:21 PM
Comment 45 written by Raymond Camden on 9 March 2007, at 1:28 PM
Comment 46 written by Mike on 9 March 2007, at 1:57 PM
Comment 47 written by Alfio on 9 March 2007, at 1:58 PM
Comment 48 written by desd on 9 March 2007, at 1:59 PM
Comment 49 written by Sid Wing on 9 March 2007, at 2:16 PM
Comment 50 written by Adam Fortuna on 9 March 2007, at 2:39 PM
Comment 51 written by Sean Corfield on 9 March 2007, at 4:19 PM
Comment 52 written by Sam Clement on 9 March 2007, at 5:00 PM
Comment 53 written by Raymond Camden on 9 March 2007, at 5:12 PM
And not to get too wild.... but RDS is really just HTTP calls. If you look at Dreamweaver, it just does HTTP calls to get data. It is possible to enable RDS support via the plugin to let you browse DBs, and even see source code for files. Now mind you - I'm just talking wildly here so take this with a gigantic grain of salt.
Comment 54 written by Jaana Gilbert on 9 March 2007, at 6:45 PM
Comment 55 written by Matt on 9 March 2007, at 8:12 PM
Comment 56 written by Raymond Camden on 9 March 2007, at 9:17 PM
Comment 57 written by Jay Greer on 10 March 2007, at 1:31 AM
"Insanely Great!"
Comment 58 written by Richard Tugwell on 10 March 2007, at 2:46 AM
Comment 59 written by William from Lagos on 10 March 2007, at 12:35 PM
How can I sign up to be notified when it becomes available?
Comment 60 written by William from Lagos on 10 March 2007, at 12:35 PM
How can I sign up to be notified when it becomes available?
Comment 61 written by Ken Dunnington on 10 March 2007, at 1:20 PM
Comment 62 written by Raymond Camden on 10 March 2007, at 1:43 PM
Comment 63 written by Sam Farmer on 10 March 2007, at 2:02 PM
Comment 64 written by Raymond Camden on 10 March 2007, at 2:16 PM
Again - a lot of this was already done in Starfish - I'm just using the old code with some new updates.
Comment 65 written by Alexander on 10 March 2007, at 9:20 PM
Comment 66 written by David Harris on 10 March 2007, at 9:55 PM
I'm looking forward to it being ready!
Comment 67 written by Anand Paleja` on 12 March 2007, at 7:59 AM
Comment 68 written by Paul Glover on 12 March 2007, at 12:30 PM
Comment 69 written by Jeremy Prevost on 12 March 2007, at 4:01 PM
I want Starbuck back too! What the heck were they thinking? That said, I want Cylons back too! Season 3=yawn (with a few exceptions).
Comment 70 written by Brandner on 12 March 2007, at 4:49 PM
Comment 71 written by Trond Ulseth on 13 March 2007, at 3:46 AM
Awesome, cool, rocking, miindblowing - please apply the one(s) that are not already used.
I'm using Firebug all the time, and I won't be using it any less once this get out.
Comment 72 written by Dave Konopka on 15 March 2007, at 8:07 AM
But it's an awesome tool.
Comment 73 written by Tak on 8 May 2007, at 8:34 AM
I wouldn't mind Alpha/Beta testing it!
Comment 74 written by Raymond Camden on 8 May 2007, at 8:39 AM
Comment 75 written by JOZEPH on 30 December 2007, at 6:14 PM
yes.
Comment 76 written by SEO on 21 January 2008, at 3:48 PM
Comment 77 written by Raymond Camden on 21 January 2008, at 3:52 PM
[Add Comment] [Subscribe to Comments]