The Dopefly Tech Blog

« The Dopefly Tech Blog Main page

How to customize fusebox 5.5 debugging output

posted under category: Fusebox on November 21, 2007 by Nathan

Recently, I made my first contribution to the Fusebox core files (Previous contributions were in the form of lexicons, which are valuable add-ons but not core files). My change was just an update to the HTML rendered from the Fusebox 5.5 debugging trace output.

The older debugging output had hard-coded styles on the tags, and no identifying overall element. If you wanted to change or fix a style, or even the entire block, there was really no good, reliable way to do it, short of modifying the Fusebox core files. With ColdFusion debugging output, you can use the .cfdebug selector to change the server debugging, but no such luck for Fusebox.

It's a superficial, mild annoyance, at best, but still a spot for improvement, so, I made the change and submitted it in an issue to the Fusebox Trac site.

For this change, I created a small style sheet, removed the inline styles, made some default styles and added an identifiable container for the block.

Now, how can you change the display?

The style sheet I made has a handful of styles that all start with .fuseboxdebug. With CSS, if you make a more specific selector, you can override options in the less specific selectors. A selector and style such as .fuseboxdebug h3 {color:green; background:blue;} will be overwritten by div.fuseboxdebug h3 {color:red}. The resulting h3 style from these examples will have red text on a blue background.

So, if you want to do something like hide the debugging output using CSS (Sean Corfield says you can do it in Fusebox with myFusebox.showDebug = false), the code would be:

div.fuseboxdebug {display:none;}

Some added benefits include the download size of the debugging output, cut in half, and it should stay a little more consistent across different site designs all while being customizable. See, CSS is good all around.

PS - Fusebox 5.5 is due out December 1st, and it's been perfectly stable with my 4.x and 5.x apps.

(Discuss with Disqus!)

Fusebox reload bookmarklet

posted under category: Fusebox on November 18, 2007 by Nathan

Bookmark this link: Fusebox Full Flush.

You can click it on this page, don't worry, you won't hurt my site.

When you select this bookmarklet from your own bookmarks on one of your sites running fusebox, it will prompt you for your fusebox password (you do have one, right?). Type it in and it will send the fusebox magical reloading URL parameters to your site:

fusebox.password=(your password)


(Discuss with Disqus!)

Fusebox 5.5 - What's coming? Here's 10 great features.

posted under category: Fusebox on May 30, 2007 by Nathan

The list of new features for Fusebox 5.5 is growing. There's a fair amount of chatter on the list surrounding what's going to be in there. Here are some of the things Sean has been talking about.

  • XML files will now be optional.
  • You can use or omit the fusebox.xml file, defaults will be configurable through a simple struct.
  • You can use or omit the circuit.xml files from Fusebox 4 and 5.
  • You can use plain-jane directories and cfm files for the circuits.
  • Fusebox will automatically discover your circuits and fuses, with or without a circuit.xml file, with or without a reference in your fusebox.xml file.
  • You can use CFC files to run your circuit, you just have to implement an interface (no, not literally).
  • Fusebox prefers if you use /model/ /view/ and /controller/ folders and circuits.
  • You can mix and match your preferences within a single Fusebox 6 application - some circuits with CFCs, some with plain files, some with circuit.xml files, etc.
  • There will be a dynamic "do" action, you call"circuit.fuseaction").
  • Scaffolding for CRUD applications through a plugin or extension.

(Updated 6/8, Renamed Fusebox 6 to Fusebox 5.5)

(Discuss with Disqus!)

Quick Fusebox 5 lexicons for ColdSpring and Reactor

posted under category: Fusebox on August 11, 2006 by Nathan

With a little time on a spare project (or spare time on a little project? it's 2:am), I hammered out some really quickie basic lexicon tags for Coldspring and Reactor.

Download my quick ColdSpring lexicon
Consists of an instantiate tag (call in your appinit), and a get tag (call from anywhere). Hers's a quick sample:

<circuit xmlns:cs="coldspring/">
<cs:initialize beanDefinitionFile="#expandPath('/config/ColdSpring.xml')#"/>
<cs:get bean="GenericCollection" returnvariable="variables.myCollection"/>

Download my quick Reactor lexicon
Consists of an initialize tag and a tags to do all the basic functions. Here's a quick sample:

<circuit xmlns:reactor="reactor/">
<reactor:initialize configuration="#expandPath('/config/Reactor.xml')#"/>
<reactor:record alias="User" returnvariable="variables.userRecord" />
<reactor:gateway alias="User" returnvariable="variables.userGateway" />

I realize they're fairly one-dimensional, not really working together in any way, but they're nice shortcut tags and a good starting place that I hope will help others.

UPDATE: 8/14/06 1:p - Qasim Rasheed, who knows a fair amount more about ColdSpring than I, made an update to the ColdSpring tags. I have updated the zip file, so feel free to download again. Now it supports multiple factories and sending the default properties on creation.

(Discuss with Disqus!)

Fusebox 4.1 DTDs (and how to use them!)

posted under category: Fusebox on November 17, 2005 by Nathan

Another thing I've been playing with lately is getting tag insight (you know, those little drop-downs while you type) to work on fusebox.xml and circuit.xml files. I'm no kind of Eclipse hacker, so the easy way to do it is make a DTD file for the XML editor you may already have in Eclipse.

Mmmkay... how does that help me? Glad you asked!

First, do you have an XML editor? You'll need one for this exercise. I prefer the WST XML editor from the Eclipse org., and it's easy for you to get. Go to your auto-update tool (under the help menu), and search the Eclipse update site for new plugins. Locate the WST (Web Standards Tools), select it and hit the 'select required' button. Now install and restart.

Next, you need to add the DTDs to the local DTD registry. What I did was hit the Eclipse prefs, and found the XML Catalog section under Web and XML. Then I added 2 user specified entries, for fusebox.xml and circuit.xml, pointed them to the appropriate DTD file on my local disk, made them a Public ID key type and gave the key a name (I used circuit.dtd and fusebox.dtd).

Next, in my XML files, I added this doctype to my circuits:
<!DOCTYPE fusebox:circuit PUBLIC "circuit.dtd" "circuit.dtd">
And to my Fusebox.xml:
<!DOCTYPE fusebox PUBLIC "fusebox.dtd" "fusebox.dtd">
I wish I knew what that all meant, but i'm ignorant out of lack for good books and time to read them ;)

And there it is. Restart Eclipse (for good measure) and it should all just work!
All you need is the DTDs to try it yourself, so here you go:

Fusebox 4.1 Document Type Definitions

These were copied and modified from the ones by Sandy Clark - Sandy, hope you don't mind. Good work getting it started, thanks!

Hope you all like. Let me know if any of you have any updates to these, as it's my first real stab at DTDs.

(Discuss with Disqus!)

The Fusebox 4.1 cheat sheet

posted under category: Fusebox on November 16, 2005 by Nathan

One thing I've always wanted when working with Fusebox 4, is a quick XML cheat sheet. What goes in the fusebox.xml file? What was that verb tag again for my circuit.xml? Was that returnvariable, contentvariable or just variable?

Googling and searching only found the PDFs for a $75 book, which is helpful but not ideal, and miscellaneous sources, too spread out to be useful. Since there wasn't one, I had to create one myself, and now that it's done, I got permission and am sharing it with the community at large.

So, without further ado, the Fusebox XML Cheat Sheet (with a little bonus info at the end)

P.S., I also added a print stylesheet, so feel free to print it out and hang it on your wall, or whatever.

P.P.S., Fuseboxers, feel free to check my work and make corrections and suggestions - thanks!

(Discuss with Disqus!)
Nathan is a software developer at The Boeing Company in Charleston, SC. He is essentially a big programming nerd. Really, you could say that makes him a nerd among nerds. Aside from making software for the web, he plays with tech toys and likes to think about programming's big picture while speaking at conferences and generally impressing people with massive nerdiness and straight-faced sarcastic humor. Nathan got his programming start writing batch files in DOS. It should go without saying, but these thought and opinions have nothing to do with Boeing in any way.
This blog is also available as an RSS 2.0 feed. Click your heels together and click here to contact Nathan.