An Architect's View

CFML, Clojure, Software Design, Frameworks and more...

An Architect's View

Entries for month: June 2004

More Mach II Successes

June 30, 2004 ·

Stephen Collins reports on his Acid: First BIG Mach-II site up. Go Stephen!
Launched some time back but I never got around to blogging it, Macromedia's new Events application is powered by Mach II as well.

Tags: coldfusion · machii

Windows Server 2003

June 29, 2004 ·

At CFUN they were giving away evaluation copies of Windows Server 2003. 180-day evaluations. I figured I'd install it and have a play (on Virtual PC). One file failed to load in the install - no idea whether or not it is important - and I ended up seeming to do the install twice which was a bit of a pain. The look and feel of the installer was pretty slick but the end result seemed to be a 'classic' Windows system with a bunch of extra server-related options. I somehow expected the 'cartoon' UI to appear and have no idea how to enable that...
The security seems to be insanely tight. I can't browse any website without approving it first. Interesting. I'm hoping to spend some more time trying it out and will blog about what I think...

Tags: personal

Blackstone Event Gateway

June 29, 2004 ·

I said I'd talk a bit more about this feature - demo'd for the first time as an exclusive for CFUN - and I can now describe what we're using it for internally. A while back, I talked about how we are using ColdFusion to implement the 'glue' between our various sales channels and our new ERP system (Oracle Applications). I didn't go into much detail at the time but we decided, as part of the new system implementation, to switch over from a variety of legacy file formats to a standard OAGIS XML format for all incoming sales orders, all outgoing 'pick releases' (that tell fulfillment houses to ship products) and all incoming shipped goods confirmations.
I implemented the XML processing code as a Mach II application and it runs as a set of scheduled tasks, fetching XML files from an internal FTP server, parsing and loading the sales orders / ship confirms into Oracle, scanning Oracle for new pick releases and generating and posting those XML files. Most of existing feeds are implemented in batch mode for historical reasons - on certain schedules, various systems place new orders on the FTP server for processing. Naturally, there is some latency between a customer placing the order and it being recorded in our system.
We're in the process of switching some of our channels over to real-time messaging using our enterprise message hub, which is a JMS server cluster. With Blackstone, we are able to handle this on the back end using the new event gateway...
I wrote three small Java classes, totalling about 170 lines including comments, and a single CFC. The Java classes are as follows:
  • JMSConfiguration - encapsulate a four-line properties file that specifies the hub server, topic and two other JMS startup parameters - 45 lines
  • JMSConsumer - a lightweight consumer class, mostly copied from the JRun docs JMS example - 75 lines
  • JMSGateway - an implementation of the Blackstone gateway that constructs and manages the JMSConsumer object - 50 lines
I didn't really need the JMSConfiguration class - it was just present for elegancy - so I could have gotten away with writing only 50 lines of Java (and doing copy'n'paste to get almost the other 75). The CFC was also very simple, taking the message passed by the gateway (a string containing the XML payload) and passing it to the existing CFC that we already used for parsing and loading sales order XML files.
Then it was a simple matter of placing the JAR file containing the classes in the CFMX library directory and configuring the gateway through the CF Admin: create a new gateway type (JMS) using the main class in the JAR file, define a specific gateway of that type (using the CFC and the properties file) and finally start the gateway.
Now we can get sales orders from some channels into our ERP system in (near) real-time, thanks to Blackstone!
I'll probably be building more gateway-based applications and I'll be blogging those as well...

Tags: coldfusion

cfcUnit

June 29, 2004 ·

Bowing to popular demand, Paul Kenney has released cfcUnit - his ColdFusion implementation of the JUnit testing framework. He was originally holding off until he'd completed the documentation but after repeated requests, he caved and put the code and the basic documentation up for folks! Thanx Paul!
Paul has also just started a blog called Best Served Cold. Welcome to blogspace! (Comments don't work yet - he knows about that!)

Tags: coldfusion

CFUN Day Two, Part 3

June 27, 2004 ·

One of the great things about CFUN for me has been the wealth of really good sessions. For every single session slot, there were actually two sessions I wanted to attend (sometimes three!). Of course, the downside is that you just can't get to see everything you want. I'd already had to make several hard choices and following the keynote, I had to make another one - I decided to go hear Jeff Peters talk about "Fusebox 4 in 40 or fewer" (instead of David Epler's about HTML markup for accessibility which was my other tied choice). Sorry David.
Jeff went through the entire lifecycle process he uses, starting with wireframing and prototypng, followed by fuse analysis and circuit architecture and finally code generation, all supported by tools. Because Ben's talk ran over (understandable!), Jeff's session was a bit compressed and he was clearly feeling the time pressure but managed to cover everything in a fairly comprehensive manner. It was very interesting to see someone else's process, especially one so different from mine.
The final session I went to was Sandra Clark on "Accessible Web Forms". She started out by demo'ing a screen reader trying to read a fairly typical web form. The result was incomprehensible! Then she went through a long list of stuff you can do to help make forms more accessible (using fieldset, legend, label etc) as well as what not to do (don't use accesskey - it conflicts with screen readers' keyboard shortcuts - don't provide a "reset" button). She got into a lot of depth and it made me realize what a complex subject this is but I sure learned a lot from her!
There was a final general session with prizes and thank yous and then folks began to drift off home. I spent most of the evening in the bar with Michael, Sandra, the guys from Interakt, Nate Nelson and many others, discussing everything CF-related (and many things that weren't). And then goodbyes... until next time!
All in all, it's been a terrific weekend with some awesome material - I've enjoyed myself immensely, especially talking to so many CFers! I've also learned a bunch of stuff (especially from April's "XSLT for Data Manipulation" talk and Sandra's "Accessible Web Forms" talk!). Sandra got a well-deserved 'second', behind Charlie and myself - she really is a very good speaker and loves her subject matter!
See y'all at CFUN-05?

Tags: coldfusion

CFUN Day Two, Part 2

June 27, 2004 ·

Sunday lunchtime saw a new Birds Of a Feather session added, for IDE and tool support for frameworks, led by Matt Liotta. He demo'd some of He3's support for Mach II (table-based editing of the XML file). I showed a utility that renders Mach II's event handlers as hyperlinked pages (so you can click on filter, listener, view and event names and jump to their definitions - I haven't made this public yet!). Jeff Peters showed a couple of tools relating to Fusebox (MindMapper and FuseMinder) and then Steve Nelson showed his test harness generation tools. The aim was to raise awareness and to get feedback about what sort of tools people wanted. One thing that wasn't demo'd but seemed to generate interest was Dave Ross's tool for converting XMI (the XML output from several UML modeling tools) to CFCs.
Next up was Ben Forta's keynote on Blackstone! He raced through some of the things he's been showing at CFUG presentations (Flash forms, PDF generation, report generation, sourceless deployment and EAR / WAR file packaging) and then gave a CFUN exclusive sneak peak: the event gateway!
This is probably the most exciting and radical addition ever to ColdFusion: by writing a small amount of Java, it allows you to connect pretty much anything to ColdFusion and have external, asynchronous events trigger method calls on a CFC.
The example Ben showed was a agent that watched a folder for new, changed or deleted files and automatically called the appropriate method on a CFC to populate / update a database based on the contents of the file. Whilst this generated a lot of "ooohs" from the audience, I suspect that the real impact of this feature will take a while to sink in - it opens up a whole new field of use for ColdFusion since this lets it process requests which are not web-based...
I'll be writing a lot more on this feature in the future...

Tags: coldfusion · machii

CFUN Day Two, Part 1

June 27, 2004 ·

I had planned to attend two accessibility talks first thing but lack of sleep got the better of me and I had to skip them, catching another two hours of much needed sleep so that I could function during the rest of the day. Apologies to John Hamman and Larry Hull for missing their talks.
Before my talk, I met with Daniel Dougherty who'd been picked to interview me for five minutes and he had some great questions - I believe the various attendee / speaker interviews will get posted by TeraTech later so I'll keep y'all in suspense!
Then it was time for my Mach II talk. A good percentage of folks in the audience were on CFMX 6.1 and were already using either Fusebox or Mach II so that was quite a change from some of my gigs. The presentation seemed to go over well and there were some good questions from the floor - thanx to everyone who attended (and special thanx to those folks who gave me a good evaluation so I got a bottle of wine at the wrap-up session for tying as 'best speaker' with Charlie Arehart from New Atlanta! I'm honored!)
I'll blog more later but right now I'm going to meet some folks in the bar before everyone heads off home!

Tags: coldfusion · machii

CFUN Day One

June 26, 2004 ·

The keynote - Stephen Shapiro of 24/7 Innovation - was kinda fun but not CF-specific. A creativity guru, he talked about some techniques for generating new solutions to problems and how to think outside the box. I'd like to have heard more about his forthcoming book, "Goal-Free Living - Passion-Filled Life", but I guess that'll wait for another time...
By the time I got to Matt Liotta's talk on Web Services it was completely full so I hung out and chatted to folks in the hallway. Next up was Ray Camden's session about best practices for using CFCs. He had a lot of technical problems with the projector unfortunately which cut short his talk somewhat but he went through some good basic tips for folks coming to CFCs. I hoped for a bit more technical depth but I think it was appropriate for the audience overall. And Ray more than maintained his sense of humor through the traumas of the projector problems!
Lunch time meant a Birds Of a Feather session with Hal Helms, Ben Edwards, Jeffry Houser and Joseph Flannigan... and me (co-opted by Hal). We talked about the good and the bad in frameworks and methodologies. It was an interesting and lively discussion but hard to summarize any particular sentiment from the group as a whole.
After lunch, Michael Smith ran Shlomy's session on managing CF projects. The Standish Group were quoted as saying the key factors in successful projects were: user involvement, executive management support and a clear statement of requirements. These three factors accounted for 50% of the influences! The final session of the day was April Fleming on using XSLT for data transformation. I've never used XSLT so it was a good introduction for me. She showed code using an MS specific XML parser (a COM object) which made the examples look more complex than they needed to be - she'd done that so the code would run on CF5 as well as CFMX (but wouldn't run on non-Windows platforms!). Her primary example was cool tho', taking a single XML packet and transforming it into both HTML for display and SQL to create and populate database tables. Certainly showed the power of XSLT!
Then it was time for the CFDJ Panel (chaired by Jeff Peters since Robert Diamond was delayed). Charlie Arehart (New Atlanta), Tim Buntel (Macromedia), Micheal Smith (TeraTech and hosts for CFUN), Simon Horwith and Hal Helms took questions from the floor. Tim said that Macromedia is looking to raise the profile of CFCs and drive more folks to use them, by making them more accessible to beginners, e.g., through Dreamweaver behaviors that produce clean code with logic in CFCs, separated from presentation code. I would've liked to see the panel go on much longer but all good things come to an end...
Stan Cox made a traditional appearance, muttering about problems with his <blink> tag but was, mercifully, removed by security before he could disrupt the panel too much!
After the panel, Michael ran a ColdFusion version of Who Wants To Be A Millionaire but I retired to my room with Chris Philips to look at a problem he was having with SES URLs... which I think we figured out (Chris, let me know if that worked as expected!). Then it was time for the networking social event in the hotel's nightclub. The music made it hard to chat so I didn't stay long and went to dinner with Michael Smith, Sandra Clark, Matt Liotta, Christian Cantrell, Paul Kenney and David Epler. The conversation ranged from CF-related stuff to some good old-fashioned Republican-bashing and the food was excellent!
A brief visit to Hal and Ben's suite (where a poker tournament seemed to be in full swing) was followed by a fairly brief visit to the bar followed by a not-so-brief visit to Steve Nelson's and Rey Muradaz' rooms to be entertained by Bogdan Ripa's beer bottle opening talents (how to be creative in the absence of a proper bottle opener). Bogdan and his Interaktcrew are visiting from Roumania to promote their sophisticated suite of Dreamweaver MX extensions!
Tomorrow's plan for me is to follow the accessibility track (John Hamman, Larry Hull, David Epler and Sandra Clark) although I'll miss one of Sandra's talks (on CSS) because I'm giving my talk about Mach II.
Another excellent day!

Tags: coldfusion

CFUN Day Zero

June 26, 2004 ·

I spent a lot of yesterday talking to Matt Liotta about He3 - his company's new ColdFusion editor, based on Eclipse, that is debuting in beta form this weekend. The CFUN "party pack" will contain the He3 beta on CD (the rest of the world has to wait another week or so before they can try it out).
So what does He3 offer? A color-coding ColdFusion editor with tag completion - a little rough round the edges but with great things promised - and built-in Regex and XPath panels that let you build and test your regular expressions and XML queries in 'real time' using arbitrary snippets of text and XML (highlighting matches as you type). He3 also recognizes Mach II applications and provides an intelligent XML editor for the mach-ii.xml configuration file, showing both a source view and a tabular view of each of the sections of the file, with the ability to add and delete entries using the table view - very useful for building out the skeleton of the application.
I haven't tested it yet but I understand He3 also supports Fusebox 4 and has a similarly intelligent editor for FB4 XML files.
Being based on Eclipse (3.0 RC1 - He3 will be updated shortly to the 3.0 Final release of Eclipse), He3 has a variety of cool editing tricks up its sleeve including auto-updates from RichPalette's website (so you'll get new features as they're made available), "quick diff" against all previously saved versions of a file (very useful to keep track of what you've been doing to a file!), integration with CVS and so on.
Other than He3, I caught the tail-end of the Macromedia User Group Managers' sessions with Ed Sullivan talking about the history and future of MMUGs which was interesting. That was followed by the speakers' dinner at a Brazilian BBQ restaurant (where I spent more time chatting with Matt) and then the obligatory evening in the bar discussing everything CF-related which tailed off into sessions in various rooms, with more beer, talking about Mach II and then a late-night bitch-fest about the good, the bad and the ugly in ColdFusion and the developer community.
Now it's time for me to wander downstairs and register for the conference proper. I'm planning to start the day with more Matt Liotta (his "Utilizing Web Services" session) followed by Ray Camden's "CFC Best Practices, Tips, and Tricks" then, after lunch (with Hal Helms' BOF on methologies), Robi Sen (standing in for Shlomy Gantz) on "Managing CF Projects", Simon Horwith on evolving from a scripter to an architect, April Fleming's "XSLT for Data Manipulation" followed by the CFDJ panel with Tim Buntel amongst others. At least, that's my plan...

Tags: coldfusion

At CFUN...

June 25, 2004 ·

Well, here I am in the DoubleTree for CFUN. High-speed Internet access in the room, nice ($10 / day). I'd forgotten how ungodly humid Maryland can be... yuck! Mind you, we'll mostly be indoors all the time in the air-conditioning!
For those who care, I'm in room 635. I'll see some of you tonight at the speakers' dinner and the rest of you tomorrow and Sunday!

Tags: personal