Gert Franz talks about “CFML Debugging Jedi Tricks and Templates” in this episode of ColdFusion Alive Podcast with host Michaela Light. He is also one of the speakers at CFObjective Conference.
In this session, we will have a closer look at the debugging templates Lucee and Adobe ColdFusion have aboard. Especially in Lucee, there is a lot of hidden information buried in the depths of the data. You can extract this data and write your own fancy debugging template.
In Lucee this is a simple CFC that contains a few methods which display the data. As a takeaway from the session, you will receive a shiny new debugging template for Lucee which you can extend as you see fit.
Show notes
What is a debugging template?
The debugging template displays the info that can be optionally displayed at the bottom of every page, containing the formatted debugging information provided by the CFML engine
Why use a debugging template?
Gives lots of info what has happened in the code, what CFC run, what parts were slow
What about security?
Limit debugging display to certain IP addresses
Don’t turn on in production
Be careful about displaying information about your application to the public
What is the overhead of turning this feature on?
1-2% overhead in Lucee (in ACF it used to be 50% many years ago)
Why write your own?
There is tons of additional info in the debugging information which may or may not be displayed by the selected debugging information.
You can decorate the data with your own additional info
Do I need some special skills to work on the debugging templates?
Just a regular CFC
Create a configuration struct containing the info you want to have displayed
Output method
What happens if you have a bug in your debugging template
The regular CFML error handler kicks in
Lucee debugging handling extra features
More granularity by website and IP
Has additional information in the debugging
Debugging and Performance jedi tricks
Rewrite the code as tag or script as appropriate in order to understand it
The Code Monkey (wrong) - talk to a plushie and explain your problem, often helps solving the issue yourself. Apparently I used the wrong term. It is rubber duck debugging.
Make a copy of the code and ruthlessly cut out pieces until the error doesn’t happen anymore - the last piece you cut is related to the bug
Format your code, even your SQL
What I learned from the Railo project
To be happy and to do what you love
To let go the past
How can I contribute to Lucee, how can I help?
Become a supporter or even a member, if you want to get involved in the future of Lucee
Why should I attend any conference
You will be learning many new techniques, meet cool people, get to know who is behind all the magic, network
Is it still worth learning Lucee or CFML?
You get better rates at freelance jobs
It is a very modern language
Why are you proud to use CF?
Because I helped develop the language and keep it from vanishing
WWIT for you to make CF more alive this year?
Speak about it, be proud to use it, write your apps with it
What are you looking forward to at CFObjective?
Meet my friends
Great topics and great presenters
See the capital again :)
Very often people just stick with the debugging templates that come with either Lucee or ACF. They are nice and helpful, but if one wants way more information, he needs to unlock the potential and extend the existing ones or even write his own new debugging template.
Mentioned in this episode
Pete Freitag (CF security)
Ray Camden’s Var Scope checker
The Ultimate Var Scope Resource list
“Life moves pretty fast. If you don't stop and look around once in awhile, you could miss it.” Ferris Bueller
Lucee website
Listen to the Audio
Bio
Gert Franz
Gert was born in 1967 and lives in Switzerland since 1997. He is one of the key people behind Lucee. Back in the late eighties he studied Astrophysics in Munich but switched to later IT as a profession and programmed for several companies in the past as a database administrator and system analyst.
Links
Rasia
Twitter
LinkedIn
(* WWIT = What Would It Take)
Interview transcript
Michael: Welcome back to the show. I'm here with Gert Franz, astrophysicist and expert on LUCEE CFML, in face he's the evangelist for it. When I said astrophysicist I think he did that like 25 years ago so we won't ask him any difficult questions about the galaxies, but we will be asking him a lot of questions about debugging templates and Jedi tricks he has for debugging and error handling and also look at how you could write your own debugging templates and why you might want to do that.
Also we're asking him a bit about cf.Objective where he's going to be talking about debugging templates and also ask a little bit about LUCEE, and Railo, and all kinds of other ColdFusion related things.
So welcome Gert.
Gert: Yes. Welcome Michael. Long time no see, I guess it's about three, four weeks ago right when we had met?
Michael: Yes. I think there was some Texan barbecue being served and I think it was a mariachi band at the Into The Box conference.
Read more
And to continue learning how to make your ColdFusion apps more modern and alive, I encourage you to download our free ColdFusion Alive Best Practices Checklist.Because… perhaps you are responsible for a mission-critical or revenue-generating CF application that you don’t trust 100%, where implementing new features is a painful ad-hoc process with slow turnaround even for simple requests.What if you have no contingency plan for a sudden developer departure or a server outage? Perhaps every time a new freelancer works on your site, something breaks. Or your application availability, security, and reliability are poor.And if you are depending on ColdFusion for your job, then you can’t afford to let your CF development methods die on the vine.You’re making a high-stakes bet that everything is going to be OK using the same old app creation ways in that one language — forever.All it would take is for your fellow CF developer to quit or for your CIO to decide to leave the (falsely) perceived sinking ship of CFML and you could lose everything—your project, your hard-won CF skills, and possibly even your job.Luckily, there are a number of simple, logical steps you can take now to protect yourself from these obvious risks.No Brainer ColdFusion Best Practices to Ensure You Thrive No Matter What Happens NextColdFusion Alive Best Practices ChecklistModern ColdFusion development best practices that reduce stress, inefficiency, project lifecycle costs while simultaneously increasing project velocity and innovation.√ Easily create a consistent server architecture across development, testing, and production√ A modern test environment to prevent bugs from spreading√ Automated continuous integration tools that work well with CF√ A portable development environment baked into your codebase… for free! Learn about these and many more strategies in our free ColdFusion Alive Best Practices Checklist.