Exploring Tomcat and ColdFusion 10

With the recent availability of a pre-release version of Adobe’s ColdFusion 10 CFML engine, I am going to be doing a bit of comparative exploring to see how this upcoming version lines up against the current 9.01 version. My intent is to install and configure ACF10 on one or more of my development systems in a manner where it can run alongside the currently-installed ACF9 so that I can get a feel, in particular, for any performance differences between these two versions and to ensure that when ACF10 is officially available, any compatibility issues with our CFML-based applications have been addressed.

My current development systems are Mac OS X and Linux boxes, running ACF 9.01 under Apache’s Web server. I will install ACF10 in a stand-alone mode in order to be able to run both servers concurrently. In this mode, ACF10 will be running with the bundled Apache Tomcat server for use as both its application server (replacing the JRun application server historically used with ACF) and as its Web server.

The first portion of this effort, then, will focus on getting ACF10 and Tomcat configured to function as needed in my development environment. With that in mind, I will be exploring the following Tomcat-related configuration needs and blogging about them (as well as anything else of interest I stumble into) in the coming days:

You can see that list is a mix of security-related settings and configuration settings related to how our application folders are structured (and the desire to run these applications through both the new Tomcat/ACF10 stack and the old Apache/JRun/ACF9 stack).

In terms of structure, all of the applications reside in a folder outside of the Apache webroot, and are found via a set of aliases. The folder structure below that top-level folder is set up as follows (with their corresponding application URL’s listed in parens):

  • appGroup1
    • common
    • app1a (http://localhost/app1a/)
    • app1b (http://localhost/appab/)
    • app1c (http://localhost/app1c/)
  • appGroup2
    • common
    • app2a (http://localhost/app2a/)
    • app2b (http://localhost/app2b/)
    • app2n (http://localhost/app2n/)
  • app3 (http://localhost/app3/)
  • shared

Within each of the application groups “appGroup1” and “appGroup2”, the “common” folder contains assets shared by the applications in the corresponding group; this folder is aliased into each of the individual applications within the group to appear as if it were nested below the application folder (e.g., http://localhost/app1a/common, http://localhost/app1b/common). All of the applications reference the “shared” folder as a root level folder “/shared” (i.e., as http://localhost/shared).

Further, most of the applications have a default document that relies on SSI to function properly as part of the applications’ respective authentication and security framework. I also do all of testing and prototyping in a folder immediately off of my home folder; I will need to have that folder served by Tomcat/ACF10 just as it is currently under the other stack.

Finally, a caveat: I am a complete noob when it comes to Tomcat, so I will be learning as I go. I am almost certainly going to find sub-optimal ways to make portions of the work. If you see such mis-steps and have recommendations for other and/or better ways, please point them out in the comments on each post.

We have our work cut out for us. Stay tuned.

Komodo-CFML v0.2.0 Preview (11/2011)

I’ve spent a bit of time this past month or so getting back into my Komodo-CFML project, and have an updated preview available for the 0.2.0 release. This update is based on the following changes:

  • Built against the recently released v. 7.0.0b1 Komodo from ActiveState, but I’ve tested it against the current v. 6.1.x versions of both Komodo IDE and Edit. On a related note, this 7.0.0b1 build is the first of the 7-series I’ve considered stable enough for regular use; if you aren’t using it yet, you might consider at least pulling down a copy and giving it a go (you can have both versions installed concurrently, at least on Mac OS X by appropriately [re]naming the various installs).
  • Updated to incorporate some changes to Komodo’s HTML/JavaScript modes, such as appropriate syntax highlighting of JavaScript code within onXXX() handlers in HTML tags.
  • Much better/more complete handling of Adobe CF 9’s script-only components and interfaces.
  • Some minor fixes in the CFML/CFSCRIPT syntax highlighting.
  • Some minor changes (and some backtracking) in the content model for CFML. I may write more on this at some point, but I may have taken this about as far as I can.

My plan at this point is to address some consistency issues in the tokenizing of different syntax elements that are common across the various languages Komodo-CFML addresses (e.g., parens and braces) and to start working on the XML catalog for Railo’s CFML implementation (possibly along with a unified CFML XML catalog). I have also been doing a bit of work on a different dark color scheme for Komodo based on Chris Kempson’s “Tomorrow” series, and am getting close to making a version of that available.

Download: cfml-0.2.0-ko.xpi

Komodo-CFML: A hint of something big

I’ve been working for the past several months on a major overhaul of my CFML mode for ActiveState’s Komodo IDE/Edit editors. I’m hoping within the next week (or so) to have a preliminary release of v. 0.2.0 available for anyone interested in starting to play with it. The point of this overhaul goes back to one of the items that has been on my roadmap for the editor mode: code intelligence (as-you-type pop-up assistance for CFML tags and their attributes). More to come…

Komodo-CFML v. 0.1.6 (preliminary) released

I’ve started getting back to giving Komodo-CFML a bit of badly-needed attention. I’ve pushed out a preliminary build of version 0.1.6. See the project page for a bit more information. I will probably continue to update and publish under this version number as I do some cleanup and fix some minor tokenizing issues ahead of doing some digging to see if I can code intelligence working.

On an only-somewhat related note: Mark Simonson has release the “minus” version of his excellent Anonymous Pro fixed width typeface. This version works well on Linux at small sizes and works well on Mac OS X at all sizes, including in Komodo (something the full version does not currently do, due to a bug somewhere deep in the bowels of Komodo). Look for the download link for the “minus” version in right column. Thanks, Mark!

A New Year Begins

It has been a bit since I last wrote anything here, I realize, but I will try to get caught up on a variety of fronts with sort of a catch-all post here…

Christmas and Li

Li and the Christmas tree (12/2009)
Li and the Christmas tree (12/2009)

We survived Christmas, with the combination of the holidays and an extended break from work (for me) and school (for Ian) being something of a mixed bag. My workplace shuts down (officially) between Christmas and New Year’s Day for a holiday curtailment, so I took all of the week ahead of Christmas (mostly) off as I had some banked comp hours I needed to use ahead of the end of the year (or lose them) and I’m taking a couple more days after New Year’s, as well, which will stretch my holiday break to almost three weeks. Ian has had the past week and a half off from school, too, so we’ve all been home together for the first time in a long time — which has been wonderful.

Li was definitely “in” to Christmas this year, and loved having three Christmases: ours as a family on Christmas Day, followed by two more as both sets of grandparents came to stay with us for a couple days each. We had decided, after traveling with her for Ian’s state soccer tournament in October, that travel just wasn’t in the cards for us at this point and in retrospect staying home with her (and having visitors here) was the right move.

We tried to keep as much of a routine through the holidays for Li as possible, but we still ended up with some sleep struggles beginning the Friday before Christmas. Lots of rest-less nights, particularly ahead of Christmas itself, and several days with no naps… which were trying and exhausting for all of us to varying degrees. Just in the past couple of days, it seems — based on sleep patterns — that she is working her way out this latest cycle.

Li participating in her first Christmas program at church
Li "participating" in her first Christmas program at church (12/2009)

Aside from the sleep problems, Li is doing great. She continues to grow and develop in leaps and bounds. When it comes to food, her palette is continuing to expand (her new favorite is “pork chop” — pork tenderloin, in actuality, which she tried for Christmas dinner when I grilled a couple) and she’s more willing to try new things. She “participated” in her first Christmas program at church this year, where “participated” would be defined as learning “Away in a Manger” and then standing stoically at the front of the sanctuary with the other kids while they sang. It’s about what we had expected; when we asked if she was going to sing, she responded “No, I already sang that song.” She’s close to reading at this point, and her sense of humor is pretty amazing for a not-yet three year old. We took her sledding for the first time yesterday and she loved it, even being willing to go down the hill by herself.

Deb and Ian

Ian and his adoring little sister
Ian and his adoring little sister, both in tye-die splendor (12/2009)

Ian has a bad case of “end of break blues” right now, but other than that is doing well. He found out in early December that he and a couple of other interns from his summer job won the high school division of  an international digital forensics competition sponsored by the DoD and will be traveling to St. Louis for a related conference in late January (we’re still trying to figure out how this will work). He’s in the midst of the college application process (continually being prodded slowly forward by Deb) but hasn’t yet decided where he will attend. He’s squeezing in a bit of soccer (indoor) when he can and generally suffering through his senior year of high school.

Deb also has been playing a bit of soccer (also indoor), playing in a women’s league and on a team that competed in a Christmas break tournament which was definitely a change of pace for all of us. The highlight of their tournament was playing the eventual tournament winners 3-2 (Deb’s team lost) with the winning goal being scored in the last minute of the match; not bad for a team with 3 players over 50 against a bunch of college-aged players. She has also been attending a weekly Bible study (one that provides childcare for Li during the class), which is a good change of pace for her in a couple of ways.

A Bit of Reading

Over the break, I managed to squeeze in a bit of reading, too. I finished “The Road” by Cormac McCarthy (a gift from Santa’s bibliophilic elf — a tradition at our house) and “Into Thin Air” by Jon Krakauer, sandwiched around a bit fluff (“Thunderhead” by Douglas Preston and Lincoln Child). To Thunderhead’s fluff, “The Road” is flint: beautifully and sparely written, gripping, haunting, disturbing. It’s a movie I won’t see; the book is extraordinary and more troubling than anything I’ve read in a while. It’s the first of his works that I have read, but almost certainly will not be the last. “Into Thin Air” was a gift from Ian; engaging, fairly well-written, tragic.

Some Geek Stuff

I’m in the middle of a couple of projects on the geek front these days, too, in the odd moments of spare time I can squeeze out: working on getting a lightweight CFML and database server environment up and running on my netbook (based on Railo and Apache Derby, respectively) and also working on a CFML mode for ActiveState’s excellent Komodo editor. I will write a bit more on both of those at some point in the near future. I also did a bit of troubleshooting on another project (a cross-platform editor called “redcar” intended to be semi-compatible with TextMate but capable of running on Mac, Linux, and that other OS) and got to play a bit with Ruby in the process.

Those of you with reasonably modern semi-standards-compliant browsers (read: not MSIE) will notice a bit of geekery in the handling of the pix on this particular post. I’ve tweaked the styling for my blog here based on some CSS stuff I was playing with ahead of Christmas. Those of you still clinging to MSIE should consider an alternative…