Rob Gonda's Blog

Nitobi Ajax Components for ColdFusion

Nitobi (http://www.nitobi.com) has announced it will support the Coldfusion platform in its suite of enterprise Ajax components.

The Coldfusion edition of Nitobi Grid and Combobox released Monday offers support to newer (MX 6 and 7) as well as older versions of Coldfusion. The implementation enables a simple backwards-compatible CFINCLUDE style XML API for reading and writing the Nitobi compressed XML schema for Ajax transport.

Nitobi will be releasing a CFC version of their Coldfusion library, and Dreamweaver support for it"s Ajax components towards the end of the year.

The Nitobi Ajax Grid is an  cross-browser datagrid, supporting in-place editing, resizable and sortable columns, and copy-and-paste interoperability with MS Excel.

The Nitobi Ajax ComboBox is a high-performance autocompletion and live-searching component that performs remote retrieval of database data and provides suggestions as the users types. ComboBox V3 supports a number of distinct search modes including fuzzy-searching, list building, and static databinding.

RIAForge is alive: new open source projects home

Ben Forta, Ray Camden, myself, and others have been working on a secret project for the past few months. Well, it is secret no more ... Welcome to RIAForge.

RIAForge is a place to host open source projects built with Adobe technologies - from ColdFusion applications to Photoshop plug-ins to Flex components and more. And of course the site is built using those same technologies.

RIAForge features:

  • A unique project URL
  • File hosting
  • Bug tracking
  • Forums
  • Blogging
  • Basic stats
  • Subversion access
  • ... and more

This is not an official Adobe project, although the site is Adobe supported. Ray Camden did the primary development work with a lot of help and support from others, including Brian Rinaldi and myself. Most of the project was written in Model-Glue, and Ray added portions of his existing projects like Lighthouse, Galleon, and blogCFC.
I wrote the SVN support and I'll post it tonight as an open source project.

Let us know what you think!

IE png auto-fix

It's well known that PNGs with an alpha layer will not work properly in IE unless you manually patch it and apply some filters. IE7 fixed that, but it's still beta, and even after it launches, you need to cater to all visitors. I reworked some code I found into a nice, painless, solution to automatically fix all pngs in IE.

// IE PNG FIX: correctly handle PNG transparency in Win IE 5.5 > 6.x
if(window.attachEvent && (parseFloat(navigator.appVersion.split("MSIE")[1])<7)){
window.onload = function(){   if (document.body.filters){
  var i=document.images.length; while(i--){   
    var img = document.images[i], imgName = img.src.toUpperCase();     
    if (imgName.substring(imgName.length-3, imgName.length) == "PNG"){ var
      imgID = (img.id) ? "id='" + img.id + "' " : "",       
      imgClass = (img.className) ? "class='" + img.className + "' " : "",
      imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ",
      imgStyle = "display:inline-block;" + img.style.cssText;
      if (img.align == "left") image.align='left'; //imgStyle = "float:left;" + imgStyle       
z     if (img.align == "right")image.align='left'; //imgStyle = "float:right;"+ imgStyle       
      if (img.parentElement.href) imgStyle = "cursor:pointer;" + imgStyle       
      img.outerHTML=
        "<div style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
        + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
        + "(src=\'" + img.src + "\', sizingMethod='scale');\">"
} } } } };

All you need to do is to include this code in your file and all pngs with transparency will magically work. The catch -- not so much a catch -- is that it will fix your img tags. Background pngs will not be patched.

Don't you love IE?

Ubuntu and VMWare

I installed Ubuntu today on a VMWare... I know, it must be Ubuntu's day, Matt blogged about his experience too. I'm not as extremist and not a M$ hater... I installed it on a VM machine using VMWare Workstation. Ubuntu comes with Open Office, Firefox, Gaim, so you're almost ready to go. I installed Eclipse, CFEclipse, Aptana, XMLBuddy, and IE6. heh, I know what you thinking, but Adobe only provide a Flash 7 release for linux, so I installed Wine and IE6+Flash9... mostly for Flash 9 support. I will probably only use it for my Flex Development.

I still haven't been able to modify my screen resolution to support wide 1440x900px. I'm sure I'll find a way tomorrow.

I'm also looking fw to try to connect Ubuntu to my exchange server this week ... if I can do that successfully it would be a big plus. I also need itunes, or a way to manage my ipod... Anyways, I've only played with it a few hours... more to come soon.

Adobe Community Expert

For those who haven't noticed the logo in my blog, I am now part of the Adobe Community Experts, a group dedicated to provide high caliber peer-to-peer communication educating and improving the product skills of Adobe customers worldwide through speaking engagements, articles, forums, etc. I used to be a major contributor to the MM ColdFusion forums a few years ago, and then stopped because of lack of time, but I started to post a little more lately...

I'm looking to present another Breeze session on Ajax for the Online ColdFusion Meetup Group but this time it will be code only: lots of demos, walk through code, start projects from scratch ... Last time I got a good feedback, but I covered way to much and could show much code... so this time it's a follow up with nothing to show but code.

ColdFusion RSS Aggregator

Not sure who's behind this yet, but my FeedDemon just picked up a new ColdFusion RSS Aggregator: cffeeds.com It's a nice simple design, fast, not sure what advantages it would have over MXNA, nonetheless, yet another CF resource that's worth mentioning.

model-glue jquery Ajax contact manager

I just finished migrating my Ajax Model-Glue Contact Manager example to jquery... it literarily took me no more than 30 minutes; I was truly amazed on how easy it was, and 20 of those minutes were to realize that I needed a plugin for my form serialization. I probably changed no more than 5 lines of code, and removed about 10 more.

I even had some nice transition effects, which I took out for now to show the very very basics; I will add them again and provide a new download in the next few days.

You can view the example here and download the code. The flow is exactly the same as the ajaxCFC example, but if anyone has any questions please add a comment and I'll try to answer it for you.

Impressive Flex Demos

Check out the demos on this blog (this links are on the bottom).

My favorites are this drillDown charts, and the simple and icon based random walk demos. Pay attention to the fact that the back button works / bring you back one level in the random walk demos. The best part is that he included source for everything.

Gotta love Flex.

scary or neat: Flash Full Screen Mode

A new update in Flash 9 allows the flash player to switch to full screen mode triggered by ActionScript. This is neat, but scary at the same time... can you image how many flash banners will unsolicitedly occupy your entire screen? I can see where this can be handy for RIA's, in fact, very handy! But I can predict much abuse ... Thus far it has been hard to overtake the user full browser, and it's common sense not to allow this to happen. Flash Player 9,0,20,0 will change that. With a single line inside your actionscript: Stage["displayState"] = "fullScreen"; you will accomplish every marketers dream.

Adobe did add some security to try to prevent abuse, for example, requiring an additional parameter in the embed tag, preventing banners from doing it w/o the sites permission. here's the full list:

  • To enable full-screen mode, developers must add a new <object> and <embed> tag parameter, allowFullScreen, to their HTML. This parameter defaults to false, or not allowing full screen. To allow full-screen, developers must set allowFullScreen to true in their <object>/<embed> tags.
  • An overlay dialog box will appear when the movie enters full-screen mode, instructing the user how to exit and return to normal mode. The dialog box appears for a few seconds and then fades out.
  • The ActionScript that initiates full-screen mode can be called only in response to a mouse click or keypress. If it is called in other situations, it will be ignored (in ActionScript 2.0) or throw an exception (in ActionScript 3.0).
  • Users cannot enter text in text input fields while in full-screen mode. All keyboard input and key-related ActionScript is disabled while in full-screen mode, with the exception of the keyboard shortcuts that takes the viewer out of full-screen mode.
You can read more about it @ Adobe Labs

Flash Tracer Extension: see what's inside

I just found a Firefox Extension that allows you to see the Flash traces from within your browser. This is the best extension I've installed in a while.

Flash allows you to trace text, kind of like a print line, cfoutput, writeline, you name it... it just outputs to a debugging window in the Flash IDE... the problem is, once you export it and run it into an html page, you can't get those traces anymore...

To overcome this problem, we created a tracing class that detects if you're running the swf from the Flash IDE or through a browser and either uses regular trace methods or uses a custom trace_lc() -- trace local connection -- method. The local connection method connects to a standalone swf we use as the debugging output window. This method will connect the swf movie in the browser with our standalone swf, allowing us to see all the debugging strings.

No more! Developers can install a Flash debug player version, which is really just some extended version of the regular plugin. Then you can install this Firefox extension to see all traces right there in your browser. You do not have to export the movies as Flash 9, all you need is the player and the extension. Can't say how useful this is.

More Entries

This blog is running version 5.9.003. Contact Blog Owner