Rey Bango

JavaScript, HTML, CSS & Random Stuff…

CFEclipse: How Are You Setting Up Your Dev Environment?

My bud Joe Danziger keeps telling me that I need to jump to Eclipse to get some serious productivity gains. I do actually have the latest version installed but one of the things that has been holding me back from using it is the abysmal FTP support included in Eclipse. For example, using the CFEclipse perspective, I can go to the File Explorer View and define a FTP site. When I try to access it, I wait and wait and wait and wait and wait and then get a java lang null pointer error. WTF?!? In contrast, I spark up CF Studio, select my FTP profile and my dirs immediately come up.

Using CF Studio's FTP connectivity has been a mainstay in my development routines for as long as I've been coding in CFML. So not having that option is a real let down. So I'm going to ask my fellow CF'ers how you setup your CFEclipse environments. Do you use FTP or do you develop locally? Are you using SVN? If so, how is your dev environment setup?

I look forward to hearing your feedback and maybe I'll read something that can help setup a scenario where I feel I can be effective with CFEclipse.

ColdFusion Upgrade Gotcha

I'm testing out the upgrade process from CFMX 6.1 to CFMX 7 on one of my servers. I've never done an upgrade before. Normally, its an uninstall of the prior version and a clean install of the latest.

After getting lots of feedback from some very knowledgeable folks including Dave Watts, Rob Gonda, Jared Rypka-Hauer and Dan Switzer, I felt that doing a side-by-side install would be the best route.

Sure enough, the install went smoothly and everything was dandy. The new CFMX 7 admin migrated all of the CFMX 6.1 settings and all was good in upgrade land.

So, I decided to blow away CFMX 6.1 and went through the uninstall process. That went smooth. I rebooted my server, brought up my browser, hit the cf admin link and….404!!! WHAT?!?! Hmm. Maybe something went crazy with the 7.0.2 updater. CFM pages were still being processed so that looked fine. The services were all running correctly.

I went into IIS to ensure nothing was up with the site itself and when I hit the site, I see two stop signs indicating erros with CFIDE & CFDOCS. Oh no!! That can't be right. When I went to the document root, the CFIDE folder was MISSING!!!! The uninstall of CFMX 6.1 removed my CFMX 7 \CFIDE folder!!!! Ugh!

This is why I believe in running these types of things in a test environment first. Had I done this on our production box, it would've posed some very serious problems. While I'm not thrilled about reinstall CFMX 7, I am VERY happy that I found this “gotcha” before upgrading in production.

CF8 Ajax: Quick Tip for Shrinking the Page Size

In chatting with Adobe, one thing that came out was that their Ajax indicator (the spinning activity indicator) had not be optimized. Since this is just an animated .gif file, its an easy replacement.

Just go to \CFIDE\scripts\ajax\images and replace loading.gif with another image. You can get other indicators at:

ajaxload.info

napyfab

Since they're just images, simply right-click on the image and save it down. Then drop it into the folder specified above.

You will need to rename your new image to loading.gif.

Then, clear your cache and reload your page. In my tests, doing this shredded 100k off of the page size.

CF8 Ajax Feed Reader Redux

There's been a lot of discussion recently about the page size being generated by the CF8 Ajax components and most of it has been really positive with Adobe assuring us that they're working on minimizing the YUI, Ext and Spry libs before final release.

I've been having a great exchange with Damon and Ashwin of Adobe about this and sent the code for my version of Todd Sharp's CF8 Feed Reader app. Todd did a great job leveraging CF8's Ajax widgets and when I saw the results, I was truly floored by the simplicity of the implementation.
Well, Ashwin really stepped it up and took it a step further. With a few tweaks, he was able to take it a step further and come up with a VERY clean and concise version of the feed reader. I was shocked at how clean this was. He also managed to get it down from 717k to 242k. He also mentioned that the Ajax indicator (loading.gif) had not been optimized (107k) and he was going to update that as well. That would probably bring the page size down another 80-100k! That is amazing work Ashwin!!

Below is Ashwin's code:

index.cfm:

Notice that he uses the CFDIV tag to dynamically bind the results of feeds.cfm to the div. Very sweet!








feeds.cfm:

The big change from Todd & my code here is that Ashwin built the links on the fly within the CF page and used the ColdFusion.navigate method to create the XHR call to feed.cfm and bind it to the feedContainer div. Again very sweet!


http://cfsilence.com/blog/client/rss.cfm?mode=fullTodd Sharphttp://feeds.feedburner.com/RaymondCamdensColdfusionBlogRaymond Camdenhttp://www.remotesynthesis.com/blog/rss.cfm?mode=fullBrian Rinaldi



#feedList.feeds.feed[i].feedTitle.xmltext#


feed.cfm:




#feedData.description#




#publishedDate#

#content#



I have to say that I truly love this version. Its very streamlined and so easy. The *only* thing that I didn't like was the inline JS being created in feeds.cfm using ColdFusion.navigate. I would prefer to have an more unobtrusive method and dynamically bind the click event after the feed authors have been returned. I'm not sure if that's possible. Ashwin?

Overall, this is a REALLY awesome implementation and shows how powerful the CF8 Ajax functionality can be.

ColdFusion 8 Ajax Controls: A Little Thought Can Save Your Butt

ColdFusion 8 is looking very hot and its gotten a tremendous amount of much deserved attention. Having done Ajax development with other tools, I'm obviously very interested in the Ajax widget tags included in CF8.

Dan Vega had a nice, straightforward example of using CFWINDOW to build a very sweet looking dynamic window. When I did a “view source”, I was kind of shocked by the amount of javascript libs being included. You had files from Yahoo User Interface (YUI), Ext, and some others which seemed specific to Adobe (Spry maybe?). There were a total of 12 javascript files loaded automatically by CF 8 in order to popup the dynamic window.
So I whipped out FireBug and did a quick analysis and noticed that the libraries totaled ~330KB! Holy cow! There's a lotta library in that page. Now you might say, “whats the big deal? Customers have broadband!”. Um, sorta. While broadband continues to grow steadily, its still important to consider those visitors on the low end of the spectrum (eg: dial-up).

This got me thinking about some of the things that I've had to contend with as I got involved with client-side development; especially Ajax.

Using these new tags is definitely enticing and its going to give CF developers a great way to get introduced to client-side dynamic effects including Ajax, without the headaches of hand-coding so much stuff. Shoot, Ben Forta has posted 3 CF8/Ajax tutorials that have stunned me due to the power and simplicity of the implementation.

But for those just jumping into this whole DOM/JS/Ajax thing, it is REALLY important to evaluate your visitor expectations not only from a business perspective but a technology perspective. Don't make the assumption that every visitor you have has broadband or, even tougher to deal with, JavaScript-enabled. If you're targetting customers who traditionally are not the most “wired”, you may be in for a big surprise when they encounter a site thats not as responsive as you thought. This could equal lost customers and/or lost sales.

So my point is to tell you to definitely embrace the new Ajax widgets in CF8 (and those of any library) with a little forethought. By doing so, you need to start rethinking your approach to how your target audience will be affected. Everything from bandwidth to accessibility to security will now need to be thought through to make sure your apps work for your visitors.

To get you started with CF8's Ajax capabilities, here are a couple of tutorials from Guru Ben Forta:

ColdFusion Ajax Tutorial 1: Auto-Suggest
ColdFusion Ajax Tutorial 2: Related Selects
ColdFusion Ajax Tutorial 3: Live Data Grids

I would also HIGHLY recommend this posting to get to understand progressive enhancement.

Progressive enhancement with Ajax

If you don't know what progressive enhancement is and you're planning on implementing DHTML and Ajax, you're doing yourself and especially your site visitors a disservice.

Welcome to Ajax fellow CF'ers!

Ruby on Rails is Slow According to Twitter

In a recent interview with Twitter Developer Alex Payne, he candidly admitted that the the Ruby programming language, and by association the Rails framework, aren't very scalable. A couple of comments really stuck out:

“Running on Rails has forced us to deal with scaling issues – issues that any growing site eventually contends with – far sooner than I think we would on another framework. The common wisdom in the Rails community at this time is that scaling Rails is a matter of cost: just throw more CPUs at it.”

and:

“Its also worth mentioning that there shouldnt be doubt in anybodys mind at this point that Ruby itself is slow.”

I'm not a Rails developer myself so I can't agree or disagree but coming from a developer of such a large site as Twitter, these comments really make you wonder why Rails is such a hot framework and why people are flocking to it.

Now, I'm not posting about this to take a cheap shot at the Rails community but I truly question all of the hype that surrounds Ruby on Rails when proven technologies such as ColdFusion and BlueDragon continue to be treated as red-headed step children. Its certainly been proven time and time again that CF-based servers can effectively scale and handle large web applications. But here we have an example of an application framework (Rails) that's the darling of the web development world and yet is having trouble meeting the demands of one of the newest and fastest growing websites on the Net.

So, how does ColdFusion break out of this position? I'd really like to hear from you my readers. I'm looking forward to your ideas and suggestions and I'll be sure to have Adobe CF Product Manager Tim Buntel and New Atlanta President Vince Bonfanti review suggestions so they can better position their respective products.

BlueDragon 7.0 Officially Released! Competitive Upgrade Being Offered!

Its finally here! BlueDragon 7.0 has been officially released.

Its got a ton of great new features including enhanced CFC support and the new CFTHREAD tag for multi-threaded programming as well MAJOR performance improvements that truly make it a top-notch application server. Here's a list of some of the improvements:

BlueDragon 7.0 also includes the following major features and enhancements:

  • CFQUERY enhancements:
    • CACHEDUNTILCHANGE attribute
    • BACKGROUND attribute for background SQL processing
  • Application.cfc with enhancements:
    • onClientStart event handler
    • onMissingTemplate event handler
  • CFDOCUMENT with enhancements:
    • PNG and JPEG output formats
  • CFCHART with enhancements:
    • CFCHARTLEGEND
    • CFCHARTTITLE
    • CFCHARTIMAGE
  • CFSEARCH enhancements:
    • Multi-language support
    • Word and PDF document Support
  • Mac Intel Support
  • CFMX Compatibility Improvements
  • Performance Enhancements

NA has also revamped the pricing for the BD Standard edition from CPU-based to Server-based!!

Another exciting development is that for a limited time, you can trade-in your ColdFusion license for a brand-spanking-new BlueDragon license! Have a valid CF5 license you'd like to trade-in for a new BlueDragon 7 license? Have an existing ColdFusion MX subscription due to expire? Receive a free BlueDragon 7 license when you renew your subscription
with New Atlanta. You can find more details here!

You can download a trial version of BlueDragon 7.0 via the BlueDragon Download Page.

You can also read New Atlanta's press release here:

BlueDragon 7.0 Press Release

Congratulations on this great release New Atlanta!

GotCFM.com – CF Evangelism Site a HUGE Success

Its funny to think that I built GotCFM.com over a week ago and I still haven't had a chance to blog about it. Well, between the massive and positive response towards the site, work and a trip to California, blogging has been the last thing on my mind. Now I get to discuss it.

For those that don't know about GotCFM.com, I built the site as a vehicle for promoting ColdFusion-related technologies. It will be a site for CFML evangelism and knowledge. It will be a site that will let people understand why the CF community loves this engine and why ColdFusion-centric technologies *ARE* an amazing choice for building scalable and engaging websites. To get a real detailed explanation of how the site came about, go here:

About Gotcfm.com

Since launching GotCFM.com on 2/26/2007, the site has had quite a number of people visiting. This shows that CF is alive and well. That makes me VERY happy. Some quick stats since the site started:

Hits: 35,456
Page views: 6,472
Visitors: 1,313

The “list of sites” has grown from 0 to 555 sites in just 8 days and continues to grow at a nice clip. Again, this is VERY exciting since it provides further evidence that CF is being actively used to build web prescences.

There's still more work to do, though, as I want to include the following:

  • Information on how to position CF within your company

  • Information on specific features that make CF better than other technologies
  • Case studies on successful implementations of CF
  • More “Powered by” buttons
  • Banner ads that can be added to your site to promote your favorite CF engine

I really need the help of the community though. If you have any of the information above and would like to contibute to it to the effort, please email me at rey [at] reybango [*dot*] com. Even links pointing to these types of resources are useful so please take a couple of minutes to help out.

One other VERY IMPORTANT thing that I need is Adobe's involvement. I've sent numerous emails out and haven't received a reply. I'm a little perplexed by this. I'm trying to give them the benefit of the doubt but its a little disconcerting not to have received some type of feedback from them. Adobe???

I have received official support from New Atlanta and Railo, to which I am VERY grateful.

I want to specifically thank Andy Matthews for his GREAT assistance while I was out. He's the one that built the grouping functionality and row coloring on the site list while I was away. He also moderated the ever growing site list. Many thanks Andy!!!

Rapid Visual Development for…..PHP. :o(

God, why can't we get something like this for ColdFusion:

Delphi for PHP

Adobe? New Atlanta? Please? Pretty please?

Tim Buntel Really Cares About ColdFusion Developers

I had a great chat with Tim Buntel, Adobe's Sr. Product Marketing Manager for ColdFusion, yesterday regarding my recent posting about the misconceptions plaguing ColdFusion. We touched on several topics including:

  • Tims budgetary constraints

  • Adobes efforts to help subsidize existing publications like Fusion Authority
  • The need for Adobes sale teams to follow up with existing clients before they lose them
  • How ColdFusion was recently reprioritized within Adobes product structure to change its focus to an enterprise level
  • My opinion where advertising should be targeted

The last point was especially important to me because as much as I would love to see ColdFusion print ads in cool development magazines such as Web Builder and Software Development, I told Tim that I would MUCH rather see ads in publications like CIO, Business 2.0, Wired or Red Herring which caters to decision makers as opposed to developers. These are the folks that need to understand why ColdFusion should be the choice for running their e-business and Tim acknowledged that they could do better to get the word out to this group of people.

Overall, I came away with a much better sense of what Tim and his group have to contend with and while Im not happy that he doesnt have more of a budget to work with (c'mon Adobe!!), I did come to the conclusion that Tim is very dedicated to the ColdFusion community and is trying to improve CFs reach. The fact that he took the time to address my concerns definitely showed me that hes trying hard to meet our needs.

Thanks Tim!!

Learn JavaScript!

What to Read to Get Up to Speed in JavaScript.

The best books & blogs for learning JavaScript development. Broken down by experience levels!


My BIG LIST of JavaScript, CSS & HTML Development Tools, Libraries, Projects, and Books.

Constantly updated with the latest and greatest tools. Check it out!

Contact Me

GMail: reybango at gmail dot com
Twitter: @reybango

Haters gonna hate: What's that you said, Cobra?






JavaScript JS Documentation: JS Function Example: Specifying arguments with the Function constructor, JavaScript Function Example: Specifying arguments with the Function constructor

Twitter

Rey Bango is Stephen Fry proof thanks to caching by WP Super Cache