About KCWebCore
KCWebCore(formerly KCMUG) is the new Adobe Users Group in Kansas City; managed by Dee Sadler. We are a community committed to skill enhancement, inspiration, and networking through the use of Adobe software and other Web-based technologies. We are the core of web design and development in the Kansas City area.

Fly-Out Navigation Made Easy!

Flyout menus made easy! Joe Gautreau has posted an excellent tutorial on how to make cool flyout menus using nothing more than an unordered list of nav items and a little CSS. Comes complete with code samples and a demo. Git it while it's hot!

Removing Expired FlexBuilder

Many of us have tried (or at least downloaded and installed) FlexBuilder, the trial version. For those of us who use Eclipse for other things besides Flex and never bothered to actually purchase FlexBuilder, we may find ourselves with a now expired plugin that tends to pop up now and then asking us to enter our serial number. No big deal really, only a minor annoyance. Except for today when I tried to open a CSS file.

I'm not even in the FlexBuilder perspective, but apparently the CSS extension had somehow been associated with FlexBuilder, so now instead of seeing my file open up in all its glory, I am prompted to purchase the product. I tell FlexBuilder "No thanks", but am unable to open my CSS file. So then, the point of this whole post: How to remove the FlexBuilder plugin from Eclipse.

Fortunately it's a very simple process.

  1. Close Eclipse
  2. Go to the "plugins" directory of your Eclipse installation
  3. Sort the Plugins directory entries by name so that all of the FlexBuilder items are together. Highlight them all and send them to Windows Purgatory.
  4. Now go to the "features" directory of your Eclipse installation
  5. highlight and delete all of the Flexbuilder entries there
  6. Restart Eclipse

All finished!

Eclipse Plugin for Javascript and CSS

Aptana is an Eclipse plugin that came to me highly recommended by a peer (Doug Sims) and has proven itself to be a real assett to me as well. What does it do? Only provide code assist with both Javascript and CSS files! Another VERY COOL thing it does within the code assist is provide visual indicators of which CSS and Javascript attributes are IE and/or Firefox compatible, something that is a constant plague to those trying to maintain cross-browser compatibility.

Visit Aptana.com and click the "Download Aptana Plugin" link on the right hand side of the page for instructions on how to install.

One caveat of this plugin is that it's code assist feature is only available when working with .JS or .CSS files...inline css or javascript, well, you're on your own.

When the Obvious is TOO Obvious - A Lesson in Troubleshooting

Look at the following code and guess what the output would be:

<cfset strObj = createobject('component','com.makestring').init() />
<cfset newstring = strObj.getString() />
<cfoutput>#newstring#</cfoutput>

Oh, here's the cfc...

<CFCOMPONENT>
   <CFFUNCTION NAME="init" ACCESS="public" RETURNTYPE="makestring">
      <CFRETURN this>
   </CFFUNCTION>
   <CFFUNCTION
      NAME="getString"
      ACCESS="public"
      RETURNTYPE="string">

      <CFSET var thisString = "" />
      <CFSAVECONTENT
         VARIABLE="thisString">

         <ul>
            <li>list item 1</li>
            <li>list item 2</li>
            <li>list item 3</li>
         </ul>
      </CFSAVECONTENT>
      <CFRETURN thisString />
   </CFFUNCTION>
</CFCOMPONENT>

Choices:

  • A:[empty string]
  • B:
    • list item 1
    • list item 2
    • list item 3
  • C:depends

The correct answer is C, and what it depends on is whether or not somewhere else within your application a CFSETTING tag is lurking that has ENABLECFOUTPUTONLY set to 'Yes'. If this attribute is in effect, then your result will be A; if it's not, your result will be B.

The reason I felt the need to post on this is the fact that I spent a few hours yesterday developing a mild headache trying to figure out why my perfectly simple cfc was producing an empty string at one point within my app, but the correct string elsewhere. Through experimentation and noting that when I removed the CFSAVECONTENT tags everything worked as designed, I eventually concluded that I MUST have discovered a bug in the framework I was using, and so notified the keepers of the framework of all the details of my investigation and conclusion, along with code samples. They immediately (and nicely) informed me that more likely it was the fact that I had ENABLECFOUTPUTONLY enabled, and that I hadn't included CFOUTPUT tags within my CFC method. With egg still dripping from my face, I added the CFOUTPUT tags to my method and wouldn't ya know it...it worked.

I still haven't taken the time to find out where within this app the CFSETTING tag is being called, but two lessons gleaned here for me:

  1. Next time I feel excited at the prospect of having discovered a "bug", I'll think again (nobody wants the reputation of being The Boy Who Cried 'Bug!');
  2. Start troubleshooting from 10,000 feet instead of with a magnifying glass.

Cold Turkey from Tables

For those of us who are top gun developers (even if only in our minds ;) ) but walk around with a sense of being handicapped when it comes to actually giving our apps anything more than a "craigslist" style, my co-worker Joe Gautreau and I have been helping each other bridge the divide between design and backend, he being strongest in the almost exclusive use of CSS and myself strongest in everything backend. He is starting a series of posts on his blog designed to help us staunch table users to experience the freedom of going table-free. You can read his first post here, with more on the way this week.

More Entries

BlogCFC was created by Raymond Camden.  © Copyright 2006 KCWebCore. Some Rights Reserved.