Raymond Camden's Blog Rss

Announcing ColdFire

77

Posted in ColdFusion | Posted on 03-09-2007 | 8,380 views

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?

Comments

[Add Comment] [Subscribe to Comments]

I like the look of that. I definately think it will be useful
Nice Ray, sounds like a great tool, I'm first in line to be a Beta or Alpha tester hehe.
This looks great Ray, well done to you both. If you need beta testers please let me know. I find the data sources on the 3rd screen shot quite amusing... sorry is that childish... ;)
Very nice! Just make sure it is Mac OS X Compatable.
Very nice...

What needs to be enabled on the server / in the application in the terms of debugging settings?
Nick - what are you - 2 years old? ;)

Danlance - You turn on debugging, select coldfire as the template, and that's it.
Elston - I demonstrated this at CFUNITED/Express... on my Mac.
This is great!!!!! Firebug is the ultimate debugging tool and having CF debugging available as well would make it just awesome. Especially love how you've made it even better than the standard stuff by reconverting the cfqueryparam variables. Great work Ray and Adam!!!
Awsome
Is it ready yet? It's been like over 15 minutes! Come on already :)
That's brilliant Ray. I can't wait for it to be released. Here's one more beta tester if you need.

Cheers
Count me in for beta testing, this looks amazing.
I'd have to argue that the web developer toolbar is the best, but firebug is right up there with it.

Now about that beta testing. :)
Amazing work Ray! Add +1 to the list of beta / alpha testers ;)
How is it going to function with fusebox and AJAX?

In Fusebox 5 you have to disable query execution time.. since the fusebox cfc's are clogging the debug parsing time.
AJAX: Good question. Let's say you load foo.cfm, and foo.cfm does an ajax call to goo.cfm. RIght now ColdFire shows the _main_ debug info, which is foo.cfm. Adam has said he thinks hew can make it support N sets of data per request, so we may have all soon. This will be HUGE as right now you can't do debugging with ajax since it adds crap to the output stream. Since ColdFire is all header based, this would not be an issue.

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.
bring it on! we've got a few sites we've built in the past where we had to turn off debugging output cause it mucked with JS or CSS or something else.
This looks great! I always have Firebug open so this would be really convenient!!

Release it to the masses!!! :)
Very cool. We love FireBug here, these days you really just can't work without it. This extension onto it would be great. Count me in for testing.
Wow! I'm so excited---I can hardly wait to try this. I love Firebug and this would only add to its usefulness. Thank you for taking on this project!
Awesome! You just made my friday.
Well if you guys can make the AJAX integration. That is just going to be awesome.. but it still will be without it :-)

Thanks a lot.

Good work!
This sounds awesome.

When displaying queries could it parse the real values in and not the ? when using cfqueryparam?

AJAX support would be amazing.
Sam, I think you missed some of my text in the entry. The code does replace the ? from cfqueryparam. A lot of ColdFire comes from the old Starfish.
This is really sweet. What a fantastic idea... Thank you Ray!

>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!
Frederic - no promises. But - at a bare minimum - you can have debug turned on and it won't _break_ AJAX requests
Scott, I believe this is all related to the AJAX stuff. Ie, if one URL has N sets of data than it should work. Should. Again - this is Adam's area here so I don't want to over promise.
This is fantastic! I'm working on a project now that suffers from the "CSS Ate My Debugging" syndrome :) Firebug is incredible, and this will only add to its indispensability. If this is an unofficial beta signup page, count me in! Would love to see an extension to ModelGlue that made its debug output available too.
There may be some confusion. When I asked if people would be interested, I didn't mean in the beta, but in the product as a whole. Ie, "Does this make sense?".

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! ;)
This is a top idea!

Well done!
This would be perfect for remote servers that do not have debug turned on like on jodohost.com. It is maddening not being able to see debug when I write such sloppy code.
This would save me hours of frustration!!!
Don, the best solution is to download a Developer Version of ColdFusion and run locally.
Fantastic! What about variables? I didn't see anything in the screenshots. Also, assuming variable dump will be included, would there be any way to add in my own scope as I've done in existing debug?

Very cool idea Ray! Thanks for all your hard work.
A big woot! I use Firebug all the time, this makes it even more useful. Good job.
Ray,

That looks really cool! Kudos to you and Adam for coming up with this. I look forward to hearing more about it.
Brilliant!!! I can't wait for ColdFire's release. I've been doing a lot of sites with CSS layouts so this will be a huge help!
Ray,

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
I dont know where I might fit into this, but if you need any help feel free to hollar. =) This looks awesome.
Late to the party, but looks like a promising tool. By the way, for Michael Dinowitz, I use a combination of Web Developer and FireBug--they each have their strengths. I love the ability of FireBug to integrate through such an extensible interface. Pretty awesome Ray!

Mark
This looks like it will be a great addition to the toolboxes. I love firebug more everyday especially with some of these css challenged sites I've had to help on. Thanks as always :)
very cool. I've just begun to learn of the beauty that is firebug, so to find out there is similar support for php and now CF is great.

So, how about ASP now?
I am definitely looking forward to using this.

I love Firebug and often thought it would be great if I could do CF with it as well.

Michael
Lots of stuff here. Nice.

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. :)
I just want a R2D2 mailbox...
I just want Starbuck back...
tes
Definitely looks cool and useful. Wouldn't mind giving it a spin when it is completed.
dsa
AHA! So THAT is where that CF tab in Firebug came from in your demo to the NZ Folks! Sneaky! Very Sneaky! But also WAY cool!
Looks great! Definitely would use this.
This would certainly get me to install FireBug. Looks awesome Ray. When can we have it? :)
Brilliannttt!
As an FYI, I just added Total Execution Time and CFTRACE support on the server side. Next will be CFTIMER, EXCEPTIONS.

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.
That is awesome! Count me in for beta testing!
How can we help?
Matt, it will be hosted at RIAForge, which means that you will be able to log issues and help us debug.
To borrow a phrase...

"Insanely Great!"
Wow - 55 replies in 8 hours. I think that answers your question Ray
Great stuff. I just started getting used to this Firebug thingie.

How can I sign up to be notified when it becomes available?
Great stuff. I just started getting used to this Firebug thingie.

How can I sign up to be notified when it becomes available?
"Oh wait - no - um - the beta is available to anyone who visits the wishlist! Or gets me a good import beer! There we go! ;)" - LOL! If I make it to cf.Objective I'll try to sneak some homebrew on the plane, does that count? :)
I've had a few more repeats on this so I'll say it again. You do not need to sign up. I'll be posting the bits when they are ready (which should be very soon). So... stop asking how to get the bits. ;)
@Ray -- Great stuff about the cfqueryparam being replaced. Thats my bad for not actually reading the whole entry. Damn reading....
Sam: Yeah, the feature isn't perfect. Like for example, if you had name = <cfqueryparam ...>, you will see name = foo, where in reality it should be name = 'foo', but I figure people can deal.

Again - a lot of this was already done in Starfish - I'm just using the old code with some new updates.
PLEASE tell me this is coming out soon! It might be a dream come true for me, honestly, you know exactly what some people just need!
I remember you pointed that out when I said "Hey, Look, PHP!" when you did the Spry presentation to the Auckland CFUG.

I'm looking forward to it being ready!
Is it ready yet? jk! :)
Looks *very* useful! Will be installing it as soon as it's available.
@ Ray: way off topic, but you started it :)
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).
Awesome, can't wait!
hmm...what to say that's not said already?

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.
This rocks. Unfortunately my work development environment is all done on a shared CF web server. So I can't hook up the ColdFire.cfm to debugging without affecting everyone else.

But it's an awesome tool.
Looks like a great tool, Ray!

I wouldn't mind Alpha/Beta testing it!
It has been out for a few months now. :) Still considering it 'beta' though.
Unfortunately my work development environment is all done on a shared CF web server
yes.
If this is an unofficial beta signup page, count me in! Would love to see an extension to ModelGlue that made its debug output available too.
It was released sometime ago. http://coldfire.riaforge.org

[Add Comment] [Subscribe to Comments]