Rob Gonda's Blog

ajaxCFC update for DRWUtil.AddRows

A recent message in the ajaxCFC group asked about the DRWUtil.addRows() function; the truth is that I had never used it. I include the utils library because there are other elements that I find useful, but I had never given the addRows a try.

Enough said, since I include the file, I guess I need to support the built-in functionality, but the addRows out-of-the-box was accepting arrays and objects. I serialize the ColdFusion queries into a more complex object which was not recognized by the addRows function, so I modified it to add wddx support. When you pass a wddx object to addRows it will now automatically populate your table, even without the need to cell functions (like the array or object methods).

You can find an example here, and download the latest release (0.63) with the code changes, example, and updated documentation from the projects page.

I'd like to thank again Joe Walker for his great effort in putting DRW together, and I will email him the changes to add wddx support for his next release.

CF developer with 30 years of horrible experience

Ray Horn, a ColdFusion developer with over 30 years of experience decides to show his ethics and cause some polemics in the blogshpere today.

Ray Camden wrote this nice Blog software, which over 100 blogs out there are using including mine, and this guy –Rabid—chose to take the open source software, make a few modification, encrypt it, remove documentation, remove the link back to Ray’s site, and sell it. How dare he!

Anyways, enough said, find below the links to today’s threads and please join us to ban Ray Horn from the CF community.

Ray Horn's Blog where he claims Ray should pay him! (comments have been removed)
Ray Horn's lame apology
Joe Rinehart
Dynamic Flash
Drisgill
John Beynon
Wayne Graham  good point about Copyright and Intellectual Property
Stephen Collins
Sean Corfield
Ray Camden (official blogCFC author)
Rick Root
John Wilker
Robert Blackburn
Pete Freitag (Open Source Licenses)


UPDATED: Ray Horn just removed his shameful comments on his blog; nonetheless, the word is out!  Luckily, I had the comments opened in my browser:

Ray Horn's Blog Comments

Shame on you. I don't see Ray taking donations for providing you with blogCFC after working on it for 3 years; it is open source and benefits the community, but you think it's right to make a couple of modifications and encrypt the code? I'm not trying to be harsh, but I strongly disagree with what you're doing.


So then you must be saying that I "should" offer any code I add to his Blog for FREE simply because the source was obtained for FREE ? Does this mean, you are not in favor of rewarding ingenuity or hard-work ? Just curious...

Never fear, I will be coding my own Rabid_Blogware(tm) using Rabid_AJAX(tm) and Geonosis(tm) before too long... it won't be Open Source but that's life.


Just for the record... Raymond Camden "could" have just as easily architected BlogCFC in such a manner so as to protect "his" investment since he does have 3+ yrs of work wrapped-up in it. It wasn't difficult for me to architect a CF based system using JavaScript so that I can protect my intellectual property from prying eyes or unwanted modifications or undesirable reuse. You won't hear me cry "foul" if someone uses something I wrote and gave away for FREE in a way that improves my original work. After-all, when I give code away I do so knowing it could be improved by anyone with suitable skills. Ray Camden should be happy that someone is honoring his original work by adding to the substance of his genius and hard-work. Why, I bet I am paying the highest compliment possible by adding to "his" work rather than seeking to code my own right off the bat. It is a mystery to me as to why he isn't happier about all this than he has seemed to be... If someone took some code I wrote and added to it and then actually used it I would be quite very happy and I would even make a heavy donation to that person just for honoring me with his efforts. But that's just me, I am sure.


Well, I can't speak on behalf of Ray; this is my own opinion. Ray opted for giving away his code and hard code for the benefit of the CF community. Sure, he could have protected his code in many different ways, but it was technology what stopped him from doing that, but caring for the community and trying to encourage people to develop open source projects.

I agree with your own work being encrypted and getting reward; that is the everyday bread of a programmer/developer. However, I have seen plenty of people contributing to blogCFC and/or other open source projects, including myself, and none of us have ever tried to make a profit out of it. That is the true meaning of open source. You clearly would have never got to the point where you are now if it wasn't for Ray posting his code for free, so I am pretty sure you do see the advantage of having people like us that goals other than monetize from every singe line of code you write.

I respect your point and wish you the best luck with Blogware and your Ajax project, but I must express my opposition to your perspective of blogCFC; <my two cents />

Best,

-Rob


Well if Ray Camden wanted to craft an Open Source License that guaranteed nobody would try to profit from any work done that is associated with his work he could have done so but then I doubt it would still be considered "Open Source" now would it ?

The risk all Open Source authors must accept is the fact that their work "may" be used for the purpose of putting money in someone else's pocket.

I am, at-least, making the combined efforts of myself and Ray Camden available for FREE as an integrated whole the only thing I am not just giving away is the source code I crafted. I am NOT trying to resell BlogCFC in any way shape or form - it is still 100% FREE for all to use. Additionally people are still free to seek out Ray Camden's original BlogCFC IF they prefer to use his more than anything I have done. I am simply making changes to the original that I personally find useful - generally speaking, I am a pretty good judge of what may be "useful" since the feedback I generally get from my coding efforts is that my designs tend to be intuitive and useful.

So far nobody has given me any money for any of this and I doubt seriously anyone ever will - likewise I don't feel any urge to give away the code I have added other than to make the integrated whole available for FREE.

I recommend those who produce "Open Source" code should give serious thought to how they might feel when they learn someone else has added to their code and making money from it or desiring to make money from it.

And what about thet poor guy who created Linux and made it available via Open Source ? Should he not be unhapy thay others are making money from "his" efforts ? I mean, afterall "he" created Linux and should "he not be rewarded for his efforts ? Think about it.

I have done nothing but praise Ray Camden for his efforts however if I were to try to use BlogCFC for real-world Blog Site Management then I would be forced to either added to his code or code my own in order to save time or get more done with it.


since /you/ gave no license.. then i can offer these for free!!

rapidshare.de/files/11224720/decrypts.zip.html


There are a bunch of things I *want* to say, but they really aren't productive so I'll just stick with this:

I don't know anything about open source licenses, or what it means that Ray didn't explicitly use one in his code. However, taking his hard work, making a few small changes and then offering the entire package for sale may not be illegal, but it certainly is reprehensible.

I give you an 8.5 on your swan-dive out of favor with the CF community... bravo!

ajaxCFC port for the Model-Glue Framework

The latest fad in the Model-Glue list has been AJAX. How to incorporate Ajax requests to the Model-Glue framework. Is it pointing directly to the model? To the controller? or going thru the full cycle by pointing to index, then controller, model, back to the controller, and passing arguments back to the view?

I ported ajaxCFC to work with Model-Glue and it came out great. It works just like any other MG event, where you have to define it in the config.xml, create a listener, use the controller, models, and views... it's beautiful. All ajaxCFC's add-ons like security and debugging work file. Request batch, complex objects, verbs, and sync requests possibilities still apply.

You can see it in action here. To make this example work you need to download the head revision from the Model-Glue framework. The only reason why the stable release would not work is that you cannot suppress debugging in a template-per-template basis.

I added the MG-echo example in the main ajaxCFC download, which also includes a modified version of ajax.cfc and engine.js. I will try to combine the stand-alone version with the MG one in the future, but for now, I will support both of them separately.

Enjoy.

Short VOD interview on AJAX

I met Jeremy Geelan last week in NY for the 1st RIA power panel and a short 1-on-1 interview. I provide a brief take on RIAs, AJAX, and where this going is. I have to admit I was a little tense in the panel as you will note, but it was a great experience that I sure hope to repeat again in the furute.

ajaxCFC: addressing html code in application.cfc

I just got hit with an email informing me that ajaxCFC will break when application.cfc adds code onRequest(start|end). I modified the framework to reset the content before the JavaScript response, and abort it at the end of the asynchronous call. I am not quite happy with the abort though, so if someone has a better solution to eliminate all code generated by onRequestEnd please comment it here. I tried to open a JS comment segment, but then it results on unfinished comment; setting enable cfoutput only will only work if the code in application doesn't use cfoutput; cfsilent needs an ending tag.

The abort works for most of the cases; the AJAX request will always work, but if you had some custom code in your onRequestEnd, such as logging, it will not be executed.

Note on application.cfc: as a general rule, try to avoid using application.cfm/cfc for html rendering. It is advisable to separate your logic from the presentation layer. Application.cfc, just like any other component, is encapsulated and parameterized, and should not display html. If you successfully separate your logic from your views, you will be able to use the same architecture for presentation layers such as html, ajax, flash, flex, laslo, or mobile devices.

Adobe vs. Microsoft: death match for RIA leadership

The buzzwords du jour are AJAX, RIA, Web 2.0 ... Both Adobe and Microsoft are involved and trying their best to get market share. Abode has Flash and Flex; and AJAX is compatible with every programming language and plays really well with CF (through ajaxCFC :) ).

Microsoft has been working on Windows Presentation Foundation (WPF), previously called Avalon. This presentation layer takes an xml based declarative language called XAML (pronounced zammel), that stands for eXtensible Application Markup Language.

I knew about XAML, but the interesting part is that Microsoft went big! They are also releasing a full development application set called expression. The community technology preview just came out and it looks like a take on Abobe's Creative Suite.

I suspect what unlike XUL (pronounced zul), which is Mozilla's xml declarative language, XAML will penetrate the market thanks to Microsoft's big name. It should natively work with the .NET framework and we should soon also see a version for Mac, even though Microsoft will no longer support their IE for Macs.

If you are a new developer and want to be ahead of the game, keep an eye on Flex 2.0 and XAML. There are other technologies such as laslo, xul, ror, bindows, backspace, and dojo, that should not be overlooked either.

FindTobu: Really nice flash site

iChameleon launched a new site for BridgeStone golf - findtobu.com - I especially like the game, I think they did a great job ... there’s no programming at all, just pure creative and great animation. The two Japanese guys crack me up.

Microsoft released official WMF patch: instructions provided

This is tedious, but please do:

1.    Reboot your system
2.    Run a Windows Update
3.    Reboot your system
4.    Go to Add/Delete Programs and uninstall your unofficial patch
5.    Reboot your system

The official bulletin can be found at http://www.microsoft.com/technet/security/Bulletin/MS06-001.mspx

If you don't have access to a Windows update, you can still download the patch from the link provided above.

Microsoft initially claimed that they would release the official patch January 10. How crazy is that? 10 days without a patch for what critics call the worse hole in Windows ever! Pressure made them release it January 5, and all they did was to cut and paste the unofficial patch and embed it into the problematic DLL.

ajaxCFC query retrieval example

Due to popular demand, I added an example that populates fields with information retrieved from a query. It actually has two versions of the code: one using client side JS and one using server side JS.
I created a query in ColdFusion so you do not depend on an external database to run this example. You should be able to easily replace the one I created with a real database.

As usual, I also added it to the download.

IT Trends for 2006

  1. RIA (Rich Internet Applications) growth: We will start seeing more and more sites using AJAX, XAML, and Flex 2.0. With the release of XAML and Windows Vista, .NET Ajax sites will start becoming more popular. Adobe's (formally Macromedia) Flex 2.0 builder will allow non-flash savvy programmers to build full Flash RIA’s using nothing but declarative XML syntax. XUL will slowly fade away. RoR will attract php programmers, but will not find its way to the Java, .Net, or CF community.
  1. AJAX Platforms IDE’s will arise, making building user interface components with back-end integration through AJAX achievable without having to program with core frameworks. This new software will do for AJAX exactly what Flex 2.0 is doing for flash: allowing visual authoring capabilities by using new IDE’s, or by building plug-ins for existing IDE’s such as Eclipse.
  1. With quick growth of SOA, Web Services, and Remote Calls, data security will start becoming an issue. A greater effort will be devoted towards encryption, authentication, and authorization.
  1. Blogging will continue to rise, but as it does, a new, smarter filtering mechanism will have to be developed. Corporate IQ cannot depend strictly on tagging and aggregators. Probability based algorithms will analyze the personal relevance of every post.
  1. Mobile applications will start getting popular. AJAX for mobiles and Flash Lite will start hiring to build full mobile RIA’s.
  1. Some 25-year-old kid will become millionaire after coming up with a way for search engines to RELIABLY index AJAX and Flash applications.
  1. By the end of the year, Wi-Max will start becoming available in mayor cities, threatening ISP’s and cellular phone providers. VoIP wireless devices will slowly replace cell phones, providing more reliable, less expensive, and more sophisticated capabilities. Blackberries will loose market share.
  1. VoIP, IMS, SIP, XMPP, and SOA will continue to grow. Web 2.0 and VoIP 2.0 will merge. Unified messaging will get more popular among corporations.
  1. People will continue paying premium for self-service and software applications will loose market share to shared services.

More Entries

This blog is running version 5.9.003. Contact Blog Owner