Months Archive April 2007

 
 

Setting Up Smith, the latest free ColdFusion Server

If you’re like me, you hear about a lot of new CFM servers but never go beyond reading the reviews. I admit it, I’ve never installed Bluedragon, Railo, Coral or (until recently) Smith Project. A recent post on CFDan.com plus a mention of Smith Project on Helms and Peters Out Loud had me wanting to at least check one or two of these out. Tonight is the first try — Smith Project.

The idea of an open source cfm server sounds great, but it’ll be a lot of work to get up to the level of ColdFusion (or apparently BlueDragon). Even still having a quick and easy cfm display for the basics would be nice. I’d think of it the same way as using a database server. For a professional application you’ll want an established solution, whether it’s Oracle, MSSQL, MySQL or Postgre — the same way as you’d pick an established CFM engine. This of course makes it much much harder for the new guys to get their foot in the door, especially with the size of the ColdFusion community as small as it is. But with an open source solution that could be a great step towards unifying people, and with more people behind something it starts to work it’s way up. I can’t say I’ve ever been much of an open source contributor, but the idea of writing backend tags as needed is extremely appealing.

Smith FileslistInstalling Smith Project (on windows) is as simple as unzipping a file. There’s no program-files-registry-modify install for this one, so if you want you can run Smith Project very easily off of a thumb drive. There was instant gratification when installing it and viewing the directories which are extremely straightforward. You see those .bat files? They control starting and stopping for the Jetty Web Server, a lightweight java http server/servelet container and Mckoi SQL Database, a java SQL database server. After running that pair of bat files in any order and heading over to http://localhost:8081/ you’ll see it’s already up and running.

Welcome screen upon install Upon successful install you’ll see this welcoming screen. It renders cfm of course, and contains a database call to confirm that everything is working. The database server comes loaded up with a contact table whose contents are listed with the options to add/edit more.

Smith Project Debugging output The debugging output flexible, and reminds me of ColdBox with the ability to minimize the debugging output groups. It’s customizable from the administration panel. It has all the options you’d expect – execution times, trace, queries, options to include the various scopes in the debugging output.

Smith Project Administration The administor panel looks like a simplified version of the ColdFusion version. Anyone familiar with any CF version should be able to jump right in. The basic options are here: Mail settings, mappings, datasources, custom tags, debugging, compilation paths and session management options (well option — User J2EE session management). It’s a minimized version of Railo, BlueDragon or ColdFusion for sure, but a very well done one.

One more thing on the list I’d like to find out more about, but as far as installations go Smith project’s packaging was extremely well thought out. If you’re interested in testing your application in Smith project you can do so in almost no time at all.

Adobe to Open Source Flex

As mentioned on Daniel’s View, Adobe is set to immediately open source much of the Flex sdk under the Mozilla Public License. Read more about it in Adobe’s press release. With Adobe’s initiative to help Mozilla by open sourcing Tamarin, the Javascript compiler, and now Flex out in the free world what will come next?

ColdFusion 8 (Scorpio) is Coming

It seems this is the first week ColdFusion 8 is hitting headlines everywhere — and it’s still in a closed beta! I’m sure it won’t be long until there’s a public beta, but until then there are a slew of released features from official usergroup presentations and Ben Forta’s blog. Here’s a quick highlight tour of what’s been announced so far.

Yesterday a article about 9 ways ColdFusion 8 will rule web development somehow beat the odds and made it to the front page on Digg — only to be marked down as inaccurate and removed. The comments are riddled with “LOL ColdFusion sucks” comments left and right which would be more offensive if anyone actually gave valid points. It’s the same old reasons everyone seems to repeat — Adobe will discontinue support for CF, it’s slow, it restarts randomly, it was slow for Myspace (which everyone seems to quote) and the usual “I’ve worked with ColdFusion legacy code and it sucks”. I’ll save a rant on ColdFusions image for later, but suffice to say marketing CF8 to that group is going to be a straight uphill battle. The article details a number of exciting features.

Create AJAX windows, auto complete forms, calendar popups, grids, WYSIWYG editors, and much more. All using simple ColdFusion based tags and generating industry standard solutions such as Prototype and Yahoo User Interface Javascript.

Native JSON support. ColdFusion components now know if they are called by a web browser and will return JSON formated data automatically. You can also create JSON packets directly or consume them and turn them into native ColdFusion objects.

Native image manipulation functions. Blur, sharpen, draw, rotate, stream to browser, and much much more. This finally brings ColdFusion’s image support in line with PHP and other frameworks while keeping it so simple that even I could use it.

Ben Forta describes the how Scorpio Makes Exchange Integration Too Easy as well as a few examples of Scorpio Per-Application Settings which were previously unreleased. The lack of per application mappings have long been an issue in shared hosting, so that might also help the drive towards wider adoption at a lower price point. A month ago Ben Forta mentioned Scorpio’s Ajax Data Grids using the <cfgrid> tag. These grids can now bind to a cfc to obtain their data and be loaded via ajax — all by just using the tag! This also offers sorting and paging of course, making it similar to the flash forms version of cfgrid. Lastly he mentioned how you can now include autosuggest for the <cfinput> tag. Basically you can pass in a list of items to feed the list or bind it to a CFC. The end result looks something like this:

[cfm] name="fruit"
autosuggest="apple,banana,lemon,lime,mango,orange,peach,pear" />
name="fruit"
autosuggest="cfc:fruit.getFruit({cfautosuggestvalue})" />[/cfm]

The first example limits what can be suggested to the list of items, while the second goes out and fetches a list from a cfc when the input changes. I’m sure more in depth examples are coming that will expand on this feature, but as it stands now it’s easy enough to implement. This does mean creating a cfc in your model for this, but what if that can be delegated to a framework like with Ruby On Rails? Here’s an autocomplete example in Rails from Slash7.com.
# view

<%= text_field_with_auto_complete :contact, :name %>

# controller

auto_complete_for :contact, :name

The text_field_with_auto_complete has two arguments, one for the model (contract) and one for the method/column you’re wanting (name). In this case Rails does the rest of the work for creating a method that controller. This would hit a page like http://localhost/contact/auto_complete_for_contact&name=enteredText (not sure if that’s it exactly, but you get the idea). Rails uses that auto_complete_for :contact, :name line to create the “auto_complete_for_contact” method which can be overridden should you want to handle the autocomplete in your own way. Something like this could easily be built on top of the new ajax form helpers provided in CF8, without even having to write the underlying Javascript integration.

Sean Corfield also mentioned his Scorpio talk at CF Objective on Ajax Integration. There are still 3 CF.Objective() Scorpio sessions which are so far unreleased.

I’ve long favored Ajax, so I’m impressed to see the integration they’ve completed so far. I look forward to seeing what the rest of the world thinks of all these features as well, assuming they look past the title of the posts.