Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at the New York ColdFusion User Group (Jan. 2009) with:

Gert Franz - Railo U.S. Tour At The New York ColdFusion User Group

Posted by Ben Nadel
Tags: ColdFusion

This past Saturday, Gert Franz came to New York to talk to the New York ColdFusion User Group about his ColdFusion engine, Railo. Special thanks to Peter Bell for getting Gert here in the first place. Below is the "wrap up" of the meeting sent out to NY CFUG members.

. . . .

I have to admit, before this meeting, I didn't know anything about Gert Franz or Railo. I knew that it was a ColdFusion engine and that I've seen it come up in speeds tests on various blogs, but that's where my understanding ended.

By the end of the meeting, which was just short of three hours, I definitely walked away thinking to myself, "Do I have to go home and start using Railo immediately?!?" Now, obviously, I wouldn't just abandon my beloved Adobe ColdFusion engine without some serious consideration; but, I throw that thought out there to emphasize how good the meeting was and how exciting Railo seems to be.

There was a ton of information to absorb in the three hours, more than I can even remember, but I wanted to share with you a few of the key concepts that I found particularly interesting:

Everything Is A File System

This was hands down the coolest feature of the night. In Railo, you can make just about anything into a native file system that is 100% compatible with tags like CFFile and CFDirectory. For example, if you wanted to grab files out of a ZIP archive, no problem:

  • <cfdirectory action="list" directory="zip://\files\data.zip" />

Or maybe you wanted to grab a file out of an FTP:

  • <cfdirectory action="list" directory="ftp://files.com/" />

Or maybe you wanted to grab files out of the RAM:

  • <cfdirectory action="list" directory="ram://" />

I'll give you a moment to sit back and process what I just wrote.... cause it's pretty mind-blowing. Seamless integration with all sorts of file systems and archives. And I just demonstrated a few - he also mentioned SFTP, HTTP, RAR, GZIP, and just about any kind of archive file that contains other files.

Oh, and did I mention it works with the Amazon S3 service as well. That's write, you can use CFFile and CFDirectory to view and manipulate your Amazon S3 files.

And to make it even better, this whole concept is encapsulated behind an "Interface", so theoretically you could write your own file access code to turn your custom "whatever" into a file system. That's pretty bananas.

RAM Resource

You may have noticed above that I used a "Ram" resource as denoted by "ram://". This isn't the RAM of the computer. This is a special resource that acts like RAM for the Railo engine. By that, I mean it's a persistent file system, that only lasts as long as the Railo service lifecycle. Now, you might ask yourself how that's any different from the APPLICATION scope? That's understandable. The thing is, this isn't a scope at all; it's a temporary file system that you can read and write to.

  • <cffile action="write" file="ram://test.cfm" output="blam" />
  • <cfinclude template="ram://test.cfm" />

The power of this might not be obvious until you realize that it answers the question: How can I execute dynamically generated code without writing it to the file system? Are you beginning to see the possibilities?

CFVideo

Video conversion. Video player. Video screen shots. Extracting animated GIFs. Splicing video. Dozens of optimized profiles. 'nuff said.

Magic Functions

In Railo, you can turn on a "magic functions" mode that allows Railo to make assumptions about how you want to access and maniupulateCFC-based information. By this, I mean it can use implicit getters and setters with direct variable addressing (ie. obj.Foo = "Bar" actually calls obj.SetFoo( "Bar" ) implicitly). Loads of other stuff there, including casting function (ie. _ToString(), _ToBoolean()).

Site Specific Administration And Portability

Each web site you create has its own ColdFusion administrator with site-specific settings. Don't worry, there is still a global admin for global settings; but, from what I gathered, you can literally set properties in a web site, pick its folder up and drop it somewhere else, and just run it as if nothing changed. Bad ass.

... and, there's so much more. But I don't have time to get into all of it now. Hopefully, you can see from the above that this is something you might want to consider at least learning a little more about.

See you next time.



Reader Comments

Thanks for great summary! :)

We are not trying to run Railo on Amazon EC3 and using Amazon S3 as the file storage on our applications. As Gert demonstrated on IECFUG here, this feature provides external computing power for extra load such as video or image processing with EC3 engines where Railo runs for you and your server can deal with its own job.

If you want to have a stable and extendable storage such as our 30 GB image archive, the price and performance that Amazon S3 provides is really amazing. And as you can imagine Railo can read/write to S3 repositories like a local file system. Not bad at all. :)

Reply to this Comment

@Oguz,

Yeah, that video processing on Amazon looked very cool (he did mention that as an excellent example of how to combine the FTP "Resource" file system with the video editing capabilities. Like I said, I think I have to give Railo some serious review.

Reply to this Comment

@Ben
I know you mentioned he talked about SFTP, but did he happen to mention anything about FTPS (FTP over SSL)? Ive had to incorporate FTPS in one of my applications at work, and Im currently using some free java classes to do it.

Reply to this Comment

Nice summary - we enjoyed having Gert visit our little central PA group as well, and even from you write here I can tell he covered some things for you that we did not get to see. I particularly enjoyed the demo of what Hibernate can do, really looking forward to that in both CF9 as well as Railo. So many great options in Railo as well that you can set on a per-site basis, makes it really a nice option for hosting multiple sites on a web server.

Reply to this Comment

Don't forget your favourite server monitor, FusionReactor, works seamlessly with Railo - and there'll be FusionDebug support coming very soon too.

There'll also be FusionAnalytics plugins for Railo on the way soon.

Exciting times for the community :)

Reply to this Comment

Railo is certainly a "threat" to Adobe because the team is passionate about their CFML engine and have one focus. They were able to reverse engineer a product, study it, and figure out how to make it much better through better programming and innovation.

Thank God for competition. Now we have to hope that Adobe's response is to really "feel the heat" and continue their relationship with the Railo team so that both companies work towards a better CFML.

It's likely that Adobe will keep the big institutions, but Railo can easily make CFML as ubiquitous as PHP. It does nearly everything that ColdFusion does, it's extremely fast, it allows for a per-application GUI administrator, and it's free. (some proprietary stuff is not free, such as the video processing, that is an enterprise thing).

We loved the presentation. Competition is necessary.

Reply to this Comment

@FusionTeam,

Glad to hear you are playing nicely with them :)

@Justin,

I believe the video processing is free, they just can't ship with the video processing in the package. From what I heard Gert say, you basically have to download FFMPEG as part of the install (or at least this is the plan) and you should have the video processing.

What I was very impressed with was that he kept saying how if we had suggestions, they could probably get it in the next release. Their build times are very small, from what it sounds like, and they are more than happy to put good features in the product ASAP!

Reply to this Comment

@Ben

I thought that Gert said that the enterprise edition would include any proprietary software and come with a support solution. I didn't realize you could independently install the software yourself.

One other thing. I have to say that the Railo shirts are much better than any ColdFusion shirt I've seen. (except for a shirt based on one of your banners of course).

Reply to this Comment

@Justin,

Maybe I heard incorrectly, but I am pretty sure he just said you have to install it yourself. I think he even said that they were gonna try to update the Install so that it had a checkbox like,

"Click here to download and install FFMPEG from this url {...} as part of the current install."

This way, they can install together, but they don't ship together. Again, I could be totally wrong, but I could swear I heard something like that.

Reply to this Comment

I would definitely agree with you Ben on the everything can be a file system feature. I caught the Railo Tour show at the Seattle CFUG last Tuesday. Like you, it was definitely an eye-opener. Blue River was also there to present their Savo CF-based CMS product. The only bummer was the fitting of both presentations into the two-hour time slot.

Another tidbit that Gert mentioned during his Seattle presentations was that after DC (CF United) they have been in discussions with Host-my-Site about offering Railo based hosting solutions. It is my opinion that for CF to expand its base, that along with the educational plans Adobe has, under $10/mo hosting is also needed. There is plenty of Rails and PHP hosting plans around the $5 to 6 range. For the small business and non-profits organizations that desire their own web sites, it would be neat to also have CF options in this price range.

Reply to this Comment

Gert is going to be making a second US Tour in November to promote the release of Railo 3.1 Open Source. If I recall correctly, some of the things to look forward to in 3.1 OS is that there will be one distribution (e.g,. no enterprise, etc.) of the core product and then you buy extensions for things like CFVIDEO, etc.

I think it's a brilliant model as applications will be able to be downloaded and installed through the Railo admin much like the Apple iPhone App store. Imagine just grabbing the latest BlogCFC, Fusebox, or FusionReactor straight from the admin...sweet!!!

Reply to this Comment

@Christian,

Yeah, that Extensions Manager was a very cool concept. I wonder how applications have to be built in order to have a one-click install.

Reply to this Comment

We discussed the extension thing. It's a great concept, but if the system is popular, it's going to take a lot of work to organize, feature, and rate the extensions in a fair manner.

It's a great potential for revenue for the Railo team as well.

I think that some of the apps would just be downloaded, kind of like downloading a pay for use app right now (i.e. CFWEBStore). It's up to the user to "install it". I'm sure some will come with web installers as an option (i.e. blogCFC).

Reply to this Comment

It's definitely something that has great potential for those of us that do 3rd party applications. And Railo archives offer a way to provide a trial version that is more strongly protected than typical CF encrypted code.

Reply to this Comment

Ben,

thanks for having us in NY. It was very interesting and we liked to talk about the different things and having so many background questions. A couple of thoughts, clarifications, requests:
@ Matthew:
Railo resources are an interface that you can extend in order to adapt it to any kind of filesystem you like. Of course you can either do that yourself or let us do that for you...
@ Ben:
Video processing will be an extension package you can download for a couple of bucks (maybe 30). It will make use of ffmpeg and since we are not allowed to distribute that with Railo you can download it in the administrator in one click. There are some resources Railo tries to download from different url's. So it will be a one click extension...
@ Justin:
There will be an enterprise package containing all non free extensions by Railo bundled with the FusionX products (optionally with support). This will hopefully will be something that you can install on one click as well.
@ all:
One more thing about the extension manager. First of all you can have a look at it here (it is only a sketch of the possibilities) preview.railo.ch/prototype/webadmin (for the extension in the admin, you can click on the button "info" and on the "provider" menu entry) and preview.railo.ch/prototype/website (for the extension upload etc.
You can click on the link statistics)
Of course the installation will not be a one click install. It will be a Click, fill out a form, install process. The form may contain things like:
- enter a target path for the app
- enter some database details (user, pwd etc.)
- others, everything will be configurable.
Very important here is: PLEASE SEND US YOUR REQUESTS FOR THE EXTENSION MANAGER ASAP! Ideas are welcome. In September I will blog about the planned API for the extension manager and hope that many of you are commenting and adding requests to it.

From JFK Airport in NY

Gert

Reply to this Comment

Post A Comment

?
You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.