Rob Gonda's Blog

outlook calendar for WorldCup aficionados

If you're using outlook and don't want to miss a single WorldCup game, here's an iCal file you can import with every game in US EST time. My outlook syncs to my cell and now I have the schedule everywhere I go. It's awesome!

In your outlook, choose File Import, iCalendar.

ajaxCFC update for Model Glue and MachII

I previously released some examples of Ajax for Model Glue, including port of the Contact Manager example that works with Ajax and XML Sockets. I missed to consider that most people will not be able to get the XML Socket server running, thus not being able to run this example on their servers. Added another example that uses only Ajax, without the sockets complication ... if you diff both versions, you'll find that I only changed a single line in the config file to use an ajaxLayout instead of socketLayout ... nonetheless, this should allow you to run this example out of the box ...

And the moment everyone has been waiting for: ajaxCFC for MachII is out thanks to Dan Wilson! He did a great job taking the same Contact Manager example and porting it to the MachII framework. His implementation is really clean, using Plugins and Filters to extend the MachII framework, not to mention that the layout he built for the example is much prettier than mines :)

The code is really clean and should make sense for every MachII developer. I'll try to write some documentation and instructions, but that will take some time. Sorry for delaying this post Dan, I really appreciate your contribution and so does the CF Community.

Enjoy.

ajaxCFC Update: addOptions() - serializeForm()

I just updated the ajaxCFC distribution files to include an update to the addOptions() utility. The y! group has been talking about passing a CF Query to the addOptions() function for a few weeks and thanks to the contribution of Jeff Lester it's possible now. It behaves exactly like the addRows() function, where it takes _cell_ functions to get the value and text of the returned query. It is usually easier to learn by example, so check out how it's done.

Additionally, some of you must be familiar and frustrated with the lack of ability of passing an entire form as an object; if you try, you'd get an maximum recursion error. I wrote a small function in my contact manager example that takes a form and serialize it into a JavaScript object, so I chose to include it into the DWRUtil namespace... You can now call x = DWRUtil.serializeForm(document.frm) and pass it to your Ajax call.

JSMin for ColdFusion

JSMin is a utility to compress JavaScript by removing unnecessary whitespace and comments. Unlike obfuscation, it doesn't rename any of your variables or functions, leaving the core functionality intact. Depending on amount of comments, this utility may save from 50-80% on file size. Here's a good Minification Vs. Obfuscation article.

Darryl Lyons released CFJSMin, a ColdFusion utility to compress JavaScripts. I'm not sure why would you want to compress your scripts from a server side scripting language instead of running a binary executable... I guess that if you have a source folder and production folder you could automate changes... CFJSMin also has the ability of taking several input files and save them all in a single compressed file. This is good for caching.

Darryl, if you're reading this, here's a request: I'd like the tool to read several JS files as input, but instead of writing a target file, I'd like the output in a variable.

In addition of compressing your files, take a look at gzip and real time data compression. Here's a good article on how to set your IIS to compression. For those who run apache, I know it's really easy, but I don't have the information handy.

Model Glue 2.0 a.k.a Unity Video

Joe released a must see video where he uses Model Glue 2.0 to quickly build a blog -- under 9 minutes. MG2.0 makes use of ColdSpring and Reactor to generate components, define relationships, and wire them together... Joe didn't write a single sql statement, it was all purely based on defining events and configuring some xml files. Very impressive I must say.

Model Glue 2.0 will go public beta probably this week and final release @ CFUnited.

CFLive! AJAX for ColdFusion Recording

I did my CFLive presentation today ... let's clarify --again-- that it was only a sneak preview of CFUnited, not a class, demo, or tutorial... I didn't talk about ajaxCFC or any particular implementation. I listed all the topics I'm planning to cover at CFUnited, did a quick Ajax overview, and showed a few examples... The Breeze presentation was recorded and it is available for everyone.

You may also download the slides if wish.

Why Spry: Kevin Lynch answered me

A few days ago, I posted an entry asking why is Adobe entering the Ajax world? I just found this entry where Kevin explains the main idea.


You have to be pretty good at knowing code to use the frameworks. So what we worked on here [in Spry] is how can we get designers more involved in Ajax?
Kevin Lynch
Chief Software Architect, Adobe Systems Inc.

The idea seems to be that Adobe wants to reach designers, not developers. Kevin claims that a designer can use this framework and implement Ajax sites / widgets, thus enhancing the user experience without coding. The Spry framework allows you to retrieve remote dynamic data by using a data binding mechanism, to which some Flash developers are familiar. This approach doesn't fully exploit the advantages of Ajax, and I'm not sure if it even provides any. Can someone think of how a designer could use this framework and why should he even care? I'm not trying to discourage Adobe, this _may_ be a great idea, but I'm blind. I guess I'll have to wait and see how a designer takes advantage of it and show me how Ajax makes him stand above the competition ...

Does anyone have a different point of view?

running blogCFC 5.0

Ray released blogCFC 5 a few weeks ago but I was hesitant to migrate because of all the custom modifications I've done ... I decided to switch today and overall it wasn't that bad ... my CFC's (xml rpcs, fckeditor, ...) worked without any problem at the first trial, thus the only tedious job was to switch my l&f, adwords, and tracking to the new div/css based layout ... I'm sure I will find something I missed, but I'm really happy with the fact it only took me an hours to migrate. Thanks again Ray!

Dojo 0.3.0 Now Available

Dojo 0.3.0 was released with many new features. Dojo must be the best JavaScript library, it really makes me think if I should rewrite some ColdFusion components to generate Dojo widgets and Ajax binding ... sounds like a great project too me, if you're interested drop me an email.

At the Ajax Experience, Alex demonstrated a new use of the Flash Platform with Ajax: storage! Flash has be ability of storing large amount of data local objects, which is something like a Flash Cookie. By default you can store 300k of persistent data, up to 500k. Dojo makes use of this storage transparently by using a 1px flash component ... really neat.


The latest release of Dojo has a slew of new features, including:

  • Less boilerplate when writing widgets
  • A new lightweight animation system that makes using and building animations dead simple
  • Tested, high-performance local storage engine
  • Cross-domain Ajax support and cross-domain package loading
  • The ability to bundle CSS as well as HTML in profile builds
  • Better performance
  • New widgets:
    • SortableTable
    • TitlePane
    • Form validation
    • Menus and menu bars
    • Google and Yahoo maps
  • And more than a hundred other bug fixes and improvements.

Difference of Ajax Libraries / Frameworks / Toolkits

I just listed a bunch of Ajax frameworks, libraries, and toolkits ... I just realized I need to go back a step... what is the difference among them? These are the differences how I see them; it's not an official definition, but just explaining the differences in simple words.

Library: consists only of a series of functions.
example: Dojo, prototype, script.aculo.us

Framework: library plus methodology, event or process management, and other utilities that facilitates writing a program.
example: Fusebox, Model Glue, Mach II

Toolkit: framework plus an IDE. It's a complete solution for your needs.
example: Microsoft Atlas, Ticbo GI, Zimbra AT.


So anyways, Adobe is developing their version of an Ajax Library called Spry. Ray Camden seems to like it. I haven't tried it yet, but I will sometime this upcoming week. Not sure why Adobe is even interested in getting in this game, unless they have some big plans of taking this library and allowing for creating Ajax pages with server side calls through ColdFusion ... I'll post more on this soon.

More Entries

This blog is running version 5.9.003. Contact Blog Owner