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.
- 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?
- 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
About the speaker
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.
(* WWIT = What Would It Take)
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.
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 Next
Modern 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.