0

Railo: A Lot to Like & the US Tour 08

Coldfusion

Listened to Railo's Gert Franz, as part of the Railo US Tour 08, speak at the Baltimore Adobe User Group last night. And I came away with a very position impression of Railo as CFML engine. Gert spoke for almost three hours and covered a significant amount of territory. The following are what I considered some of the most interesting items from that presentation.

Video

A cfvideo tag was demonstrated that had the capability to play, convert, splice and makes images from video files in several formats including AVI, FLV and MPEG. The most interesting use demonstrated was taking image shots from several points in a video and then displaying those as thumbnails that would then jump to the corresponding spot and start playing. In conjunction was a demonstration of how to move the video processing and serving off the web server and instead use Amazon's cloud computing and storage (S3), basically pay per use utliity computing, for processing and serving respectively. This is particularly interesting because Railo will offer an server image for Amazon's cloud computing.

It should be noted however, this will not be part of the Railo open source distribution. Instead it will be a pay for extension. In part this is due to the backing library being used is a commercial product.

Virtual File Systems & Application Archives

Application server mappings and tag/function attributes/arguments can point to things other than actual operating system file systems. For instance, using a .zip file the source of files for a given mapping was demonstrated. But this can also be other things such as Amazon's S3 or an FTP server.

In addition it's possible to very easily create a sourceless application distribution through Railo's administrator. Granted there's the Adobe cfcompile, but what was demonstrated was literally defining a mapping and clicking create a Railo archive. This archive in turn can then be deployed on another Railo server by setting up a mapping to it. The implications for distributing frameworks and libraries such as Fusebox and say Coldspring are significant because the deployment now becomes only setting up a mapping to a single file rather than expanding an archive onto the filesystem.

Clustering Administration and Data Sharing

The adminstrator allow for configuring servers, things like datasources and mappings, across a cluster in one place. Also Railo has a cluster scope that when changed is propagated across other servers in the cluster, so it behaves as a shared memory space. Again this has been done before and can be accessed from Coldfusion through J2EE session sharing for instance, but this strikes me as a far more elegant solution. That said, the usual caveats about don't abuse shared memory because of all the synchronization and messaging involved applies here.

Conclusion

A disclaimer, I have not used Railo yet. But, based on this presentation I see a feature set not offered with Adobe's engine that I can realistically see uses for in the work I am doing now. If you have the opportunity to see Gert speak on this road show I highly recommend it, because he offers a very in depth discussion of the engine and its feature sets that I think any Coldfusion programmer will find very relevant, and thought provoking, to say the least. At least it was for me.

0

CF Equivalent MD5 Hashing Functions for SQL Server 2005+ & Oracle 8+

Coldfusion, Database

Both Oracle and SQL Server have built-in hashing functions. The trick is neither returns a value that is immediately comparable to a hashed value in ColdFusion (i.e. 32 character, hex based, upper case). So some additional conversion is required.

Oracle 8+

I couldn't figure out how to make it work inline with a SELECT statement, so first create a database function MD5_HASH:

CREATE OR REPLACE FUNCTION MD5_HASH (v_input_string in varchar2) RETURN VARCHAR2 IS
    v_checksum VARCHAR2(20);
BEGIN
   v_checksum := dbms_obfuscation_toolkit.md5 (input_string => v_input_string);
   RETURN utl_raw.cast_to_raw(v_checksum);
END;

Then use this with a SELECT statement. The "dbms_obfuscation_toolkit.md5()" generates a RAW value that is then converted with "utl_raw.cast_to_raw()" to return a string than is equivalent to a CF hash() call. So an example SELECT statement:

SELECT MD5_HASH([column]) FROM [table]

SQL Server 2005+

Note there is an option for earlier versions of SQL Server that involve installing a .dll, but this example takes advantage of a function introduced in 2005 "HashBytes()".

SELECT UPPER( RIGHT( master.dbo.fn_varbintohexstr( HashBytes( 'MD5', [column] ) ), 32) )
FROM [table]

A few notes:

  1. master.dbo.fn_varbintohexstr() is an undocumented function, but it has been around for awhile, and doesn't appear to be going anywhere, and I don't know another way to do the conversion
  2. RIGHT( [value], 32) is needed because the value returned has a leading 0x to indicate the value is hexadecimal, which ColdFusion does not do.
  3. Finally UPPER() is there because the value returned is lower cased.
0

Hiring a Coldfusion Software Engineer North of Baltimore, MD

Coldfusion

I work on a Coldfusion Content Management System SiteExecutive. This is very much a product with an established client base in the dozens. We are looking to hire another programmer to work on the product to join a team of programmers including myself.

I think this is an opportunity to solve some interesting problems with datasets that number in the hundreds of thousands of records (and continually growing). It involves understanding and applying concepts and technologies particularly in the parsing and search algorithms space. Generally speaking, the focus is on doing the right thing as opposed to the expedient.

That said, rather than tell you "It's the greatest place to work in the world!" here are some specifics and I'll leave it up to you to make up your mind. Feel free to drop me a line here with questions. The link above includes information about how to apply.

Technologies

  • Languages: ColdFusion 8, Java 5
  • Web Servers: IIS, Apache
  • Databases: Oracle 10, SQL Server 2005 (looking at 2008 this year). There is an opportunity to add MySQL to this stack as well
  • OSes: Windows Server 2003 (looking at 2008 this year), Redhat & Solaris (not sure which versions)
  • Defect Tracking: Trac
  • Source Control: Subversion

Process

  • Requirements & Use Cases: from the Alistair Cockburn school of thought (i.e. not UML).
  • Coding: no finicky coding standards, emphasis is on avoiding lousy algorithms (e.g. O(n2))
  • Testing & Support: developers are not the front line for either

 

0

CF Development on Linux: Looking for Suggestions

Coldfusion

Looking for comments from people who are doing Coldfusion develoment on Linux about their experiences. Note, moving to Macs is not one of the options on the table. See below:

Email from my boss:

What are your thought of a development team using Linux OS instead of Windows? Is there sufficient development tools at work well on Linux?

My response:

Doable.

Problems to Solve

  1. Laptops: loading *nix thereon is more painful than a desktop install. VM is not a solution because disk I/O too slow.
  2. Microsoft:
    1. .NET / Coldfusion integration only runs on Windows.
    2. SQL Server don’t run on no *nix I’m aware of.
    3. Exchange Email Client. I know there are *nix options, but never seen them
  3. Coldfusion *Nix Support only on commercial *nix OSes, such as Redhat. The open source versions are not, such as Fedora, but still work (at least with some fiddling). So could be a pain point.

Think there are probably sufficient development tools.

Development Tools

  1. IDE: Eclipse, Netbeans, Emacs
  2. Database: Oracle SQL Developer
  3. Productivity: Open Office

Course we could all move to Macs as well.

0

Coldfusion UI Tags Suggestion

Coldfusion, Suggestion

A Rob Brooks-Bilson post touched a nerve of mine regarding Coldfusion's UI tags, like cfform and cfwindow. As well as its integration with third party libraries, such as Verity. In short, they're great if you can live within their limits. But, if you need to go beyond it's a big can't-get-there-from-here.

Take cfform for instance, great idea, but what happens when you start to need things like related select boxes? Little challenging. Or in the more recent case, the issue is the libraries continue to advance, such as Ext and FCKEdit, but the Coldfusion tags lag behind.

My suggestions:

  1. divorce the release cycles between UI/third-party integration tags and Coldfusion
  2. open source the UI tags with a license that requires changes be made freely available

 

0

Baltimore Adobe User's Group

Coldfusion

So AboutWeb, which has expanded beyond it's I270 / DC / NoVa territory in Baltimore, is hosting an inagural Baltimore Adobe User Group. In my opinion this is a Good ThingTM Several years ago, Fig Leaf ran a Baltimore Coldfusion User Group, but it died most likely due to lack of interest. Finally, there is also the TeraTech Maryland Coldfusion Users's Group. But this is a misleading name, as someone with a familiarity with MD geography can tell you, and really should be named something like the Montgomery County / Washington, DC Coldfusion Users's Group. But I suppose that doesn't quite have the same ring.

Anyway, glad to see it happening. And am looking forward to being there. If you are in the Baltimore metro area hope you show up.

P.S. You can also check out Nic Tunney's blog for a little more information as well.

Search