Rob Gonda's Blog

Flex 2.0 Beta 1: Now Available

Yes, that's right! The moment everyone, well, some of you, well, at least me, have been waiting for. Flex 2.0 beta is out! Make sure you uninstall the Alpha version first and then re-create every single project before using it.

ajaxCFC: small bug fix

I just released a small bug fix for ajaxCFC: long queries were breaking the Ajax JS response because of unwanted carriage returns. Special thanks for Larry Reinhard for finding it and suggesting the fix.

The Ajax Experience 2006: May 10-12th

Ajaxian and NoFluffJustStuff Java Symposiums (NFJS) are pleased to announce The Ajax Experience 2006. This international event will take place May 10-12th at the beautiful Westin St. Francis Hotel in San Francisco, California.

The Ajax Experience will feature over 30 technically focused sessions across two (2) full days spanning four (4) parallel tracks covering effective web architecture, enterprise systems, and agile process.

Speakers

The conference is all about the quality of the people, and the speakers list keeps growing.

  • Alex Russell: Founder of The Dojo Toolkit
  • Bill Scott: Creator of Rico, and Yahoo! Ajax Evangelist
  • Bob Ippolito: Creator of MochiKit
  • Brad Neuberg: Really Simple History library and the new dojo.storage work
  • Bram Smeets: Interface21
  • Brendan Eich: Creator of JavaScript
  • Brent Ashley: Ajax Expert
  • David Geary: JSF, Rails Expert
  • Douglas Crockford: Creator of JSON
  • Dylan Schiemann: Co-founder of The Dojo Toolkit
  • Eric Pascarello: Author, Ajax in Action
  • Glenn Vanderburg: JavaScript guru
  • Greg Murray: Ajax/Servlet Lead at Sun
  • Jason Hunter: Greasemonkey and Ajax
  • Jesse James Garrett: Father of Ajax, Adaptive Path
  • Joe Walker: Creator of DWR
  • Jonathan Hawkins: Microsoft Atlas Lead
  • Max Carlson: OpenLaszlo and Ajax
  • Michael Mahemoff: Creator, Ajax Patterns
  • Patrick Lightbody: WebWork 2, and Struts Ti committer
  • Rich Manalang: Creator of MonkeyGrease, and Oracle
  • Rob Gonda: Ajax Dev Journal EinC and ajaxCFC author
  • Rod Smith: IBM and tooling around Ajax
  • Sam Stephenson: Creator of Prototype, and 37 Signals employee
  • Scott Dietsen: CTO of Zimbra
  • Thomas Fuchs: Creator of Script.aculo.us

Location

Westin St. Francis
335 Powell Street
San Francisco, CA 94102

Check out the conference website for more information.

Web Applications vs. Desktop Applications

Will web applications ever replace regular desktop applications? Will desktop applications adopt web paradigms? Are Web Applications Web 2.0? 

The whole 2.0 thing is getting much abuse now; its hype/meaning ratio is inflating by the minute. Web 2.0 is really exposing functionality through API's and allowing people to collaborate, much more then it is about Rich Internet Applications.

The first impression when you ask anyone about Web Applications is negative; they claim they will never use them. I certainly cannot see (yet) a Photoshop or Avid web application, but let's go back a few steps. An example of a Web Application in its simplest way could be Google Maps. Having Google Maps handy, how many people download and install a desktop mapping application? Unless there is a specific business-need for it, no one. Furthermore, businesses are shifting their applications to rely in Mapquest's of Google's API.

Can you see the advantage? You do not have to install Google Maps and you do not have to download patches or updates. Everything is streamed from a centralized database. The advantages start to become clearer. Now, the same concept can apply for word processing, spreadsheets, presentations software, charting software, dictionaries, encyclopedias, and even games.

Web applications could eventually completely replace common desktop applications, which require upgrades, fixes, and security patches. Rich Internet Applications are in the way of offering everything a regular application does, but reside in the Web. If your Microsoft Word resided on the web and allowed you to do everything your regular application does, but additionally gets automatic updates, is portable and accessible from everywhere, would you use it? Given the fact that everything is streamed on-demand from the server, leaving on the client the main user interface and connectivity tools only, Web Applications will make the described scenario possible. Perhaps, Microsoft already announced Windows Live and Office Live, which will do exactly that.

This will not happen overnight, but there will be a transition from desktop applications to web applications as technology evolves. Asynchronous requests are just the beginning, but there are still some common browser problems to overcome. Flex 2.0 and Microsoft's Expression Studio are right at the corner, and they will become huge players in years to come.

For more info, visit:
http://labs.macromedia.com/technologies/flexbuilder2/
http://www.microsoft.com/products/expression/en/default.mspx

Need help: ColdFusion with WebLogic

I need to install CFMX7 Enterprise deploying a .war file in a WebLogic server (actually two). Can anyone refer me to some documentation or reference that explains how this should be done?

Additionally, I will probably hire a consultant to help me with this task, so if anyone is experienced and interested please drop me an email.

Know your ColdFusion Server: ajax monitoring

Steve Brownlee put together a basic application that you can run to provide you with realtime graphs and charts displaying your JVM memory usage using AJAX, thus no page refresh. You have the choice of the following views.

1.    Total JVM
2.    Eden Space
3.    Survivor Space
4.    Tenured Gen
5.    Permanent Gen
6.    All memory spaces

In each view, you can choose to have the charts update every 2.5, 5, 15, 30 or 60 seconds. Having shorter intervals is great for when you are actively watching the memory to identify problems or monitor your usage, and then switch to long intervals for historical charts.

It's still in its first stages, but it’s free, growing, and has a huge potential to become a must-have tool for every ColdFusion Administrator. If Steve could add active threads, queues, cpu time, and keep expanding, I'll be running this tool 24/7.

check out the Orbwave Memory Explorer 0.1.103.

AJAX real barriers to entry

AJAX is not a new technology, it was not invented recently, and it is a great Venture Capital magnet. However, it is not the technology aspect what defines the barriers to enter the AJAX market, but the overall vision of architecture change that an RIA involves. An _AJAX_ expect is not who knows JavaScript, but the one who can design an interactive user experience that will attract new customers without becoming too complicated for the existing ones.

Now in a technical point of view, the common JavaScript developer will leave all the business logic in the client side, jeopardizing the entire application, leaving your soul exposed. What has evolved in the last year is applying common object oriented programming and design patterns to maintain your core business logic in the server, and leave only connectivity scripts in the client side, hence, creating enterprise level AJAX sites.

ASP.NET "Atlas" First Look

Microsoft released their first take integrating AJAX to the .NET framework, aka 'Atlas'.

"Nikhil Kothari provides a brief overview of ASP.NET "Atlas", a framework to build rich Web apps on top of ASP.NET 2.0. The demo shows an app that uses the new server controls from the December CTP to incrementally enrich standard ASP.NET pages and an app that shows client-centric app development."

ajaxCFC for Model-Glue Explained

While this is not the final documentation, I know some people are starting to play with ajaxCFC/MG and my implementation is not straightforward. This is my first draft to get the feeling on how to document it.

Ajax.cfc is just another model in your MG application, used by the controller to manipulate data. You can initialize it in your Controller’s init function and store in persistently in the controller’s variables scope.

The Ajax remote request call flows exactly (or almost) like a traditional call. It flows as follow:

  1. Page triggers an AJAX request.
  2. The event will be caught by the MG framework.
  3. The MG event-handler will broadcast a message.
  4. The controller will pickup the message.
  5. The controller will AJAX model to parse it (onRequestStart)
  6. The controller can use other models at will (theEvent)
  7. The controller uses the AJAX model to prepare the reponse.
  8. The controller sets the ‘ajaxResponse’ value back to be used by the view
  9. The modelGlue.xml includes ajaxResponse.cfm as the view that will transmit the response back to the JavaScript callback function.

Alright, so this may sound complicated, but it really isn’t. The flow is exactly like any other page with the exception of:

  1. You need to parse the Ajax request with the Ajax model.
    1. You will received a structure with two elements

                                                              i.      id: the unique identifier of the Ajax remote call request

                                                            ii.      params[type array]: this includes all arguments passed by the JavaScript function. Because the arguments are unnamed, you will receive them in an array in the same order that they were passed.

    1. My example parses the values in the controller’s onRequestStart and place them in the request scope to be picked up later by the requested method.
    2. Optionally, you may invoke security and debugging functions contained in the Ajax model.
  1. You need to prepare the response before sending it back to the framework. You will use the Ajax.returnAjax method to do so. The returnAjax method always takes your response and the Ajax call unique identifier.
  2. You need to set the ajaxResponse value to be used by the view.
  3. Finally, include the ajaxResponse.cfm file that simply displays the ajaxResponse value sent by the controller.

Your JavaScript callback function will receive any response you sent as an argument.

That is pretty much the basis; nothing fancy, nothing different than what you usually do with the MG framework. Ajax.cfc is just facilitating the seamless communication between your JavaScript and ColdFusion side; that is all.

Note that the main event (the one making the Ajax call) needs to include the ajax.js file, the _ajaxConfig JavaScript object, and of course, your JavaScript calls and callback functions.

While I do not recommend leaving business logic at the client side, because it defeats the entire MVC and thus MG framework, it is the easiest way to get started with Ajax.

In my next example, I will show how to leave all the business logic in the server side, contained in views, and leave only connectivity functions in the client side.

If you have any comments / requests, do not hesitate to comment or contact me and I will do my best to add them to the framework.

Ajax's Disruptive Influences

Dion Hinchcliffe just wrote a great AJAX article worth checking out. I like his points, especially “The End of Software Upgrades, Fixes, and Security Patches”, which is a great point for not just Ajax, but for the RIA applications group, which include Ajax, Flash, Flex, Laslo, XAML, or XUL.

More Entries

This blog is running version 5.9.003. Contact Blog Owner