October 31, 2002

Gone!

Back to work and recovering from the magic that is Disney and the magic that was DevCon. The Macromedia Designer & Developer Center has a lot of coverage of DevCon if you missed the magic.
Today is a different kind of magic: Happy Halloween!
Posted by seancorfield at 11:58 AM | Comments (0) | TrackBack | personal

October 30, 2002

Going Twice!

Another closing memory from DevCon will be the buzz and the interest on the exhibit floor. A lot of vendors with great products, a lot of people examining everything very closely. A crowded Cyber Cafe bristling with 'net-connected computers. A feeling that the effort (and cost) was all worthwhile.
Posted by seancorfield at 10:20 AM | Comments (0) | TrackBack | personal

Going Once!

One of my closing memories of DevCon 2002 will be the manic book auction in the Community Suite, with Michael Dinowitz brandishing books donated by publishers and barking out bids. The pace was a little too much for me so I left after about a dozen books had falled under the hammer. A wonderfully amusing scene!
Posted by seancorfield at 10:03 AM | Comments (0) | TrackBack | personal

Dreamweaver MX for Developers

That was the title of Charlie Arehart's talk for the Community Suite. It's a one hour excerpt from his day-long seminar that he gives. The excerpt covers just some of the issues involved in transitioning from HomeSite or CF Studio. The full day's seminar also covers "Speeding up DWMX", "Annoyances", "Tips and Hidden Gems", "Useful Extensions" and "Where to Learn More". You can read more about the seminar on the SysteManage website. Charlie covered a lot of the 'beloved' CF Studio features which are directly present in DWMX (some have different names or locations) and then talked about the extended functionality in DWMX (such as code hints for variables in scope such as server) as well as a few of the CF Studio features which are not present (some of which can be recovered via Dreamweaver Extensions). The audience seemed to respond well to Charlie's assurances that it's really OK to move to DWMX and Michael Dinowitz said that he would now install DWMX and give it a fair crack on the basis of Charlie's presentation.

Posted by seancorfield at 10:00 AM | Comments (0) | mx

Back En Suite

I just tuned into the Community Cam and Charlie Arehart is talking about migrating from CF Studio to Dreamweaver MX, going over the differences and how you can change preferences in DWMX to make it more Studio-like. He's also talking about the extra features in DWMX that make migrating worthwhile. I might go up and catch the tail-end of the talk and sit in on the Q&Q.
Posted by seancorfield at 08:51 AM | Comments (0) | TrackBack | mx

Customers Again

As I've said before, one of the best things for me about DevCon has been meeting customers and hearing what they are doing with our products and what they think about then and the conference itself.
I was just chatting to a fellow ColdFusion developer (& Mac user) who said the conference had energized her and made her feel that the MX web technology will really allow her to implement anything her clients come up with. In the past, she's been a little unwilling to just let clients "dream" but she feels confident now that she can allow them to "dream" and that she will be able to implement those dreams for them. She enjoyed all the sessions, although she felt a few of them focused too much on 'how' rather than 'why', and she singled out Paul Wille of ISITE Design for his excellent presentation on Web Services with ColdFusion & .NET.
Posted by seancorfield at 08:35 AM | Comments (0) | TrackBack | macromedia

Fusebox MX (more detail)

Hal talked about the general shift in the programming world from procedural to OO and noted that ColdFusion had shifted in that direction too with CFMX. He made a comment about persistence and someone (Michael Dinowitz I think) asked Hal to define 'persistence': he said it's when "objects stick around after you turn the computer off" - I was pleased to hear that since I seem to be a bit of a lone voice at times saying that shared scopes in CF are not a form of 'persistence' and now I know that at least Hal agrees with me! Hal defined procedural programming as using algorithms to act on data, and OO programming as constructing "scale models that respond to messages". He explained that his background was in Smalltalk (one of the grandaddies of OO) and then gave a gentle introduction to the fundamentals of polymorphism, inheritance and encapsulation in OO. At that point he introduced what he is calling "Fusebox MX" and said it was his vision rather than any official statement from the Fusebox community at this point. In Hal's vision, the central core file is replaced by a relatively simple ColdFusion Component and the settings file is replaced by an easy-to-read XML file. Each circuit is implemented as a CFC as well, replacing the switch statement with method calls, but fuses remain the pretty much the same (simple .cfm pages). Instead of the traditional Fusebox idiom of accessing a specific set of global variables, you would 'send messages' to retrieve that data by calling methods like getSelf(), getCircuit("Products"), applySkin("Skins.redLayout"). The other major new feature is the plugin base component that can be extended (by writing components that inherit from it) to enhance pretty much any aspect of the core file by overriding one or more of the six plugin point methods: preprocess(), prefuseaction(), preskin(), postskin(), postfuseaction() and postprocess(). This is a very flexible architecture and leverages the new functionality in ColdFusion MX really well. Some good examples for plugins are security, debugging, logging... all without changes the core files! When Hal has his new website up and running, I'll have more to say about this. I plan to download his new code and try it out, alongside FB3 (which I have running locally for both CFMX and PHP!).

Posted by seancorfield at 08:27 AM | Comments (0) | TrackBack | architecture | cf

Round Room (more detail)

The discussion started out with some very specific issues: Michael Dinowitz pointed out that included templates that contained no CFML code, only HTML, did not get a Java .class file generated, although they seemed to be cached somehow because he found no difference in speed between first and second calls. He seemed to think this was an "MX pro" (I have not had a chance to validate this but it's made me curious about the compilation process!). Next we had an "MX con" from a customer who had just migrated a CF5 / SQL Server application from Windows to CFMX on Solaris and said the application was much slower. Several people suggested that the Solaris JDBC driver might be an issue here (talking to her original SQL Server database) and this led to a useful discussion about taking a holistic approach to application tuning. The general feeling was that there were too many variables in this particular migration to lay the blame on CFMX and that much more investigation was needed. Rob Brooks-Bilson related a migration story where an initial slowdown (of several orders of magnitude) was tracked to some very inefficient list handling which was more of an algorithmic or architectural problem with his code that CF5 had allowed passed. There is a feeling that CF5 was much more lenient with bad code and that now we need think harder about writing good code. Ray Camden highlighted an interesting migration issue around the use of the CGI scope: isDefined("CGI.whatever") is always true, even when the variable is not really present (CGI.whatever would return an empty string in this case). He also noted that HTTP is effectively an alias to CGI which means that neither CGI nor HTTP can be used as regular variable names - they are "reserved" in MX. Shlomy Gantz talked about how experienced CFers who have adopted structured programming techniques (picking up custom tags early on, then moving to modules; separating display from logic etc) will likely find the move to CFMX less of a disconnect since the new features are easier to assimilate with that background of experience. Shlomy said he is gathering material for a "Design Patterns in ColdFusion" book and would love to hear from people on that subject.
Talk shifted to CF Studio and Dreamweaver MX - another facet of the migration for many people - and a subject that clearly provokes strong feelings. Many CFers are very devoted to CF Studio. As I mentioned in the overview, Charlie Arehart talked about a lot of the tips & tricks to make DWMX much more Studio-like and many of the preferences and settings he mentioned were news to a lot of folks present who have tried DWMX and gone back to Studio. A lot of the issues that were mentioned also cropped up in the ColdFusion IDEs "Birds of a Feather" session I reported on so I'll mention them under that. For more reference information on migrating from CF Studio to DWMX, check these docs on mm.com.
I seem to have been alone in not knowing of Bob Denny. There was a true sense of awe around this man who created the former-O'Reilly webserver which is now, once more, provided by his own company, deerfield.com. Bob talked about the pros and cons of the ISAPI webserver connector protocol compared with WSAPI, invented earlier and used by his product WebSite. In the early days, ColdFusion shipped with WebSite and there was a sense of nostalgia for those days. Bob feels that if WebSite was once again an 'officially supported' ColdFusion webserver, many current IIS users would switch back to it and would see big performance boosts. I asked if he had a Mac version but, unfortunately, he doesn't.
Once Vern arrived, talk shifted to the content on Macromedia's website with a lot of people ready to criticize. Some people feel that clearer guidance should be given about the level of the material and the intended level of the audience (e.g., a beginner's introduction to an advanced topic). I said that I'd heard both that material was too simple and that it was too complex - that probably means some of it is just right but it's a hard line to walk. Vern called for more content from the community - if you don't like what's on the site, write something else for us. (I remember having this problem too when I was the editor of a C++ journal).
Posted by seancorfield at 07:13 AM | Comments (0) | TrackBack | cf

October 29, 2002

ColdFusion IDEs (overview)

Ben Forta led a healthy - and relatively calm - discussion about the pros and cons of Dreamweaver MX and ColdFusion Studio and gathered feedback on what people do and don't like about each of them. The discussion occasionally wandered onto other topics but Ben was able to keep everyone on track and managed to get a lot of useful information from everyone in just one hour... Go Ben! The general feeling seems to be that ColdFusion developers want a fast, light code-based editor most of the time but there are definitely things that some folks like about Dreamweaver MX and a sense that it can become what more of those developers want. In other words, despite some specific criticisms of DWMX, it was quite a positive session. I may write more on this after the conference, once I've had a chance to turn my frantic notes into something more coherent!

Posted by seancorfield at 04:25 PM | Comments (0) | cf

Fusebox MX (overview)

Hal Helms repeated the presentation he gave during the Fusebox Conference (which immediately preceded DevCon) about his vision for the future of Fusebox and how it could leverage the new features in ColdFusion MX. I'll do a full write-up later but, suffice to say, I was very impressed with what Hal is trying to do. A testament to his work is that fusebox.cfc, which is effectively the main Fusebox core file, is a mere 200 lines of code and anything you want to do as an extension to the core files could be done by creating a "plugin" component which extends a standard base component. Instead of the settings file being an executable ColdFusion file, Hal is proposing an XML file that specifies circuits, plugins etc. I think this is all extremely promising! Hal's hoping to have a new website up shortly containing information about this new Fusebox proposal which is still awaiting finalization by the Fusebox Council. More on this later!

Posted by seancorfield at 03:12 PM | Comments (0) | TrackBack | architecture | cf

Round Room (overview)

The Community Suite's "Round Room" discussion covered a lot more than just the pros and cons of ColdFusion MX. After some discussion about certain specific CFMX issues, talk turned to Dreamweaver MX and Charlie Arehart talked about how he's worked with DWMX to get it to behave more like CF Studio. Bob Denny talked about his WebSite webserver connecting to CFMX - lots of enthusiasm about this webserver, which used to ship with early releases of CF. Vern arrived about this point and the discussion shifted once again, this time to the material on Macromedia's website, looking at the level of the material and discussing what people want to see on the website. I'll write this up in more depth later, but right now Hal Helm is talking about his vision for the future of Fusebox and I want to pay attention to that.
Posted by seancorfield at 01:34 PM | Comments (0) | TrackBack | mx

Rugby & Fusebox

Kevin's talk was about his company's "ActivityForum" application which provides community services for about 2,200 Rugby Football Union clubs in England, with about 60,000 members. The application offers event management, membership management, forums and content management for each club to have their own content. The previous version of the application was built using Fusebox 2 and the new version is built using FB3. Kevin said most of the migration work was deleting code that added functionality to FB2 that is provided out of the box in FB3, especially in the area of nested circuits. Kevin talked about the structure of the application, with menus and breadcrumbs constructed by each circuit and each page on the fly, and administrative features overlaid that allow clubs to manage their content and events and so on. Since FB3 does not let you use <cfflush>, Kevin talked about how they modified the core files to dynamically split layout files into two pieces the first time they are encountered, one pushed to the browser as usual, the other queued for output later, with <cfflush> executed in between. He said this was about three or four hours work to implement. This restriction is going to be lifted in the next version of Fusebox (which Hal Helms will be talking about in the Community Suite later today).

Posted by seancorfield at 09:20 AM | Comments (0) | programming

A little manic

The Community Suite is, um, interesting and a little manic. People flow in and out and everyone is subjected to the SuiteCam. Bob Denny, creator of WebSite, turned up a little while back. A representative from New Riders was here, talking about New Riders and PeachPit Press and their new books. Several people think I don't look like my picture. Kevin Roche is just about to give a presentation...

Posted by seancorfield at 08:35 AM | Comments (0) | personal

</hassle>

Echoing JD's comments, the excitement around the "Straight From The Lab" product preview is amazing. The waiting list for this morning's session was over 100 people! Everyone I've spoken to privately who has seen this product preview has been very excited. It's all under NDA right now so I can't add anything to the information in JD's blog I'm afraid.

Posted by seancorfield at 07:51 AM | Comments (0) | macromedia

Community

Pushing the edge, the CF Community folks have a FlashCom server set up here at the hotel and have been broadcasting live video and chat. They've had a few technical problems but seem to have overcome them now and have been up and running for a while (the Release Notes for the product include an important script change that is necessary to enable chat applications to run smoothly - applying this fix helped a lot). Jochem says the server has been "running just fine now for 17 hours". I'm going to be up in the Community Suite (room 7110) most of the afternoon discussing the pros and cons of upgrading to CFMX.

Posted by seancorfield at 06:52 AM | Comments (0)

Monday, Monday

Since blogger ate my Monday report yesterday, I'll try to reconstruct it this morning!
First off, that cool code. I can't tell you too much about it right now except that it is a great example of "Generative Programming" (see my bookstore for a good reference book by Czarnecki and Eisenecker). We're talking with the developers about featuring the techniques on the Designer & Developer Center in due course and, hopefully, making the code available through some channel. I get very excited when I see this sort of stuff being developed in ColdFusion MX!
Then I spent a couple of hours with ColdFusion customers, discussing content management. Despite the diverse group, there were several common threads and 'wish lists'. Overall, people felt that off-the-shelf content management systems are usually too complex for their needs and need a lot of customization. What they were mostly looking for was a simpler framework that would allow them to integrate content management with their applications, to provide security, access control and permission management, simple workflow and fairly free-form content. Common pain points were multi-page documents (and associated media in general) and managing HTML markup in user-submitted content. It was interesting to see that these issues were common across both large and small sites and across a variety of industries.
Later on I talked to one of our education customers who was very excited about the MX products and the information she was getting from the conference. It's definitely encouraging to see so many folks from the education sector here, mostly looking to the future as IT can sometimes move rather slowly in academia. These people are the evangelists, helping to carry Macromedia's message back to their colleagues, excited about how they can, in turn, empower their users and make their IT resources go further by becoming more productive through the increased use of advanced features in our products.
Posted by seancorfield at 06:34 AM | Comments (0) | TrackBack | macromedia

October 28, 2002

Blog Problems

A couple of times recently I've written up a blog entry and posted it and Blogger says it worked fine but when I go back to look at the blog, the entry is missing. This is particularly frustrating while I'm trying to write up information about DevCon!

Posted by seancorfield at 08:01 PM | Comments (0) | blogging

Customers

Last night was the opening reception and it was great to meet so many customers. Some folks came up and said "You're Sean Corfield, aren't you? You're that outspoken guy on [insert your favorite] mailing list!" Many people are here for the first time although I met some regulars too. This morning's keynote seems to have gone down well with customers... "My jaw was on the floor" said one; "You guys are so well integrated" said another. I'm just about to sit down with a customer to go over a cool piece of code they're working on.
Posted by seancorfield at 09:01 AM | Comments (0) | TrackBack | macromedia

October 27, 2002

The Village

Walked around the Boardwalk resort to get a better feel for the DevCon environment. The sponsors' pennants hang along the beautifully manicured walkway between the Dolphin and the Swan hotels. Disney's Boardwalk is a 40's replica seaside town, complete with Surrey bikes ("with a fringe on top"). I kept expecting a rover to come bowling along at any moment (the white weather-balloons that chased and caught McGoohan in "The Prisoner" whenever he tried to escape). It all reinforces the feeling of being in "The Village". CF-Underground was in full swing by the time I got back to the Dolphin... it was a little surreal to walk along the pool's edge and hear passionate young speakers enthusing about ColdFusion, surrounded by palm trees. About 1pm I wandered over to hear the tail-end of the speakers - I didn't recognize many folks but I'm sure I'd know their names (or, at least, their email addresses!). I moved closer to chat to a few folks but was very officiously turned away by a woman in a CF-Underground T shirt... "I can't let you go in there". I retired to my room, pouting slightly. I'll go back at 1:30pm and talk to folks once the event is actually over. More later...
Posted by seancorfield at 10:24 AM | Comments (0) | TrackBack | personal

October 26, 2002

I am not a number!

Live from the Dolphin hotel, here in Disney World, welcome to Macromedia DevCon 2002! My first visit to Disney World and it's a little overwhelming... I didn't realize it was quite this big (or quite this expensive). The rooms don't have high-speed Internet, just dial-up. But the decor is something else. Looking down the corridor on the 8th floor from the elevators and you're reminded of "The Prisoner" (if you're British, or into cult TV shows). Down in the lobby there's a big poster for the event "Architecting a New Internet Experience". Tomorrow (er, Sunday, later today) I'll start to see some familiar faces and the main event will begin. Expect an update at least once a day.

Some of the talks that caught my eye include Mike Nimer's "Building & Using Persistent Components", Edwin Smith's "ColdFusion MX Under The Hood" and Brandon Purcell's "Integrating J2EE with ColdFusion MX". There's a lot of interesting talks beside those, covering Flash, Fireworks, Dreamweaver, JRun... the whole MX platform. And then there's the Community Suite events, including Tuesday's "Round Room" discussion on the pros and cons of upgrading to CFMX and, in the early evening, a healthy discussion about ColdFusion IDEs. See y'all there!

Posted by seancorfield at 09:58 PM | Comments (0) | TrackBack | personal

October 25, 2002

XML & CSS

My curiosity about formatting XML for display purely through the use of CSS led me to this XML and CSS article on the W3Schools website. They don't think it's the way of the future but it's an interesting, if frighteningly ugly, example.
Posted by seancorfield at 06:45 PM | Comments (0) | TrackBack | programming

Meet the Makers

A few days ago, I attended the San Francisco Meet the Makers event. This was a fascinating day out of the office, hearing from the people behind the Google Search Appliance, the MapBlast website, the standards-compliant browsers from both Microsoft and Netscape, and Hotwired's standards-compliant website redesign. In addition, Jeff Veen and Paul Whitmore talked about user experience in web design - from a general point of view and from E*Trade's point of view respectively. A number of vendors, including Macromedia, also showed off their wares in-between interviews.

The part that I found most interesting was the session with Tantek Celik (Microsoft), Arun Ranganthan (Netscape) and Doug Bowman (Hotwired) where they talked about standards-compliance on the web. Doug related how part of Hotwired's redesign was to replace all the tables used solely for layout with CSS markup and how this dramatically improved the accessibility of the website for people using assistive technologies. Tantek showed the power of CSS as well as some interesting JavaScript extensions to the browser, via "favelets". All three engineers were very enthusiastic about standards - after all the pain of the "browser wars", it was good to see just how much can be done in a totally standard, cross-platform manner! One, almost throw away, comment was made about authoring websites purely in XML and rendering them purely using CSS support in the browser. I'll be tracking down more details of that and reporting back here in due course.

Both Jeff Veen and Paul Whitmore were entertaining as well as informative, with their focus on usability. Paul mentioned a very interesting website: Chris McEvoy's "Usability Must Die".

Kudos to Brian Alvey for organizing this event!

Posted by seancorfield at 05:28 PM | Comments (0) | TrackBack | programming

DevCon & Pocket PC

Although I don't own a Pocket PC, this Flash-based Macromedia DevCon 2002 Event Guide for Pocket PC is both useful and very cool! In addition to the Pocket PC version, you can also download it as a standalone Flash movie for both Windows and Mac. Almost makes me wish I had a Pocket PC...

Posted by seancorfield at 01:02 PM | Comments (0) | macromedia

October 22, 2002

DevCon & CF-Community

DevCon is just around the corner and I'm looking forward to meeting many of you face-to-face. I've agreed to be part of House of Fusion's "CFMX Round Room" event - see CF-Community.com - The ColdFusion Programmer's Gathering Place for more details.

Posted by seancorfield at 05:55 PM | Comments (0) | TrackBack | mx

NetShield & CFMX

If you run NetShield on your ColdFusion MX server, you need to be aware of this issue recently reported by a couple of customers. An incorrect virus definition (in the DAT file) may cause NetShield to quarantine the jikesw.exe file which can prevent CFMX from running properly. The virus definition is fixed in the latest DAT files available from McAfee's website. Make sure your virus definitions are up to date! You might also want to exclude certain parts of the CFMX install directory from the virus checker to prevent similar future problems.

Posted by seancorfield at 05:47 PM | Comments (0) | cf

CFMX Issues List

In response to requests from the ColdFusion community, Macromedia has published a Tech Note documenting Known ColdFusion MX Issues which are under consideration for future Updater releases.


As Vern says "Inclusion or exclusion in this list does not guarantee inclusion or exclusion from future releases of the ColdFusion MX Updater."

Posted by seancorfield at 11:28 AM | Comments (0) | cf

October 19, 2002

Flash Player 6 Public Beta

A new version of the Flash Player is in public beta right now. It provides windowless transparent mode on all platforms as well as a host of other goodies. If you are a Flash developer who wants to try this out, you can read Macromedia - Flash TechNotes: Macromedia Flash Player 6 public beta. I've been playing around with windowless transparent mode this morning and it's very cool!

Posted by seancorfield at 02:13 PM | Comments (0) | mx

jEdit & CFML

I spoke too soon about my coldfusion.xml. To really get the highlighting working properly, it's quite a bit more complex than it initially looks. I've made a few more changes but it still doesn't do the right thing in all cases so I'm starting again, pretty much from scratch. The problem is that in certain contexts #expr# means 'evaluate expr' and in other contexts the # is 'just' a character and may not always occur in pairs. Similarly for & which does not always indicate the start of an SGML entity (e.g., &amp;). Still, the current version available for download isn't bad but it could - and will - be much better!

Posted by seancorfield at 10:07 AM | Comments (0) | cf

October 18, 2002

jEdit & CFML

I've made several changes to the coldfusion.xml edit mode file that Joshua Miller makes available on his site. I won't claim that it makes it more compatible with CF Studio or HomeSite+ in terms of tag highlighting but, in my opinion, it's an improvement and it definitely fixes a few bugs in the original XML. You can right-click and download it (it may not render in your browser if you simply click on the link - it references a local DTD that only exists in jEdit). Things that I think I've improved include: recognizing ge and le as operators, highlighting "#variable#" in attributes and #variable# inside <cfoutput>, ignoring whitespace, JavaScript processing.


Thanks to Joshua Miller for spotting a bug - now fixed - in the highlighting! He says he'll post my version back to his site shortly. My next task is to start work on the ColdFusion tag completion XML document, once I've figured out how...

Posted by seancorfield at 12:44 AM | Comments (0) | cf

October 17, 2002

MVC? P? CF?

Lest you drown in a sea of MVAs (Model-View-Acronyms), here's a very interesting whitepaper that explains the difference between MVC (Model-View-Controller) and MVP: Model-View-Presenter The Taligent Programming Model for C++ and Java. Wondering about MVCF? That was the named coined by Benoit Hediard for his "Model-View-controller in ColdFusion" architecture - another interesting read.

Posted by seancorfield at 02:17 PM | Comments (0) | TrackBack | architecture | cf | programming

October 16, 2002

dateFormat & JRE versions

Rob Rohan recently reported a problem with dateFormat() and the 1.4.1 JRE. If you have (ddd) as the last text in your format, you get a mysterious error that the timestamp you passed in is invalid. The code works just fine on the 1.3.1 JRE and it works if you don't have (ddd) in the format. Rob found a workaround that is equally mysterious: add a space to the end of the format string (so it ends in "...(ddd) "). Why this works, I have no idea. Why it failed in the first place, I have no idea. It just seems a weird enough bug - with a weird enough workaround - that it's worth blogging!

Posted by seancorfield at 11:40 PM | Comments (0) | cf

More DesDev Goodness

Another update to the Macromedia Designer & Developer Center brings an interesting article from Matt Liotta on Dynamically Manipulating Images with ColdFusion MX and Java Advanced Imaging API (JAI) and, from Ben Forta, On using XML well: Creating a dynamic XML menu which shows the power of CFMX and XML.


There are also useful tutorials on Internationalizing Macromedia ColdFusion MX applications with downloadable code and Using Macromedia Flash Remoting MX with Macromedia ColdFusion MX (downloadable as a PDF file). The latter replaces the "Flash Remoting" chapter in the documentation book "Developing ColdFusion MX Applications with CFML".


Lots to read - enjoy!

Posted by seancorfield at 08:02 AM | Comments (0) | macromedia

October 14, 2002

kwfu: ['cfc']

Spike's blog is always a good read but right now it deserves a special mention for a couple of lengthy posts about ColdFusion Components. Spike provides quite a few code examples to help understand how components manage their instance data.

Posted by seancorfield at 11:24 AM | Comments (0) | cf

October 13, 2002

The Good Book?

I'm always being asked for recommendations of books. I used to review books for the Association of C & C++ Users and they publish all their reviews on the web. Whilst their reviews mostly cover C, C++ and more recently Java, there are a lot of books covered outside that range so you may well find ACCU - Reviews Index Page very useful. Now that ColdFusion MX supports OO features, I'm seeing more requests for recommendations around UML and OO Analysis and Design. Check out the Modeling Languages section for suitable books.
Posted by seancorfield at 04:26 PM | Comments (0) | TrackBack | programming

October 12, 2002

More Brazilian ColdFusion

Another non-English blog, this time from Marcello Frutig, manager of CFUG-Rio, and run using the FuseTalk forums software CFUG-Rio Forums - Blog do MF.


It's really good to see a lot more native-language blogs (and web resources in general). I remember when the technical side of the web was all English, and that wasn't so long ago. Now we have thriving communities around the world and companies have to think about Globalization, Internationalization and Localization whenever they build a software product or launch a website. Some of my C++ pages have been translated into Chinese (The Casting Vote column) and I recently discovered that some of my C++ information was being discussed on a Serbo-Croatian web forum!

Posted by seancorfield at 04:43 PM | Comments (0) | blogging

October 11, 2002

JEdit in use

I've been using jEdit now for a few days and I've found it to be fast and reliable. It's made me realize how much I rely on Dreamweaver's concept of "sites". Even when I'm working on my local ColdFusion MX system, I typically use CVS to check-in/-out files to a directory tree that is outside my CFMX wwwroot and then use Dreamweaver's site definition functionality to 'put' files to the actual CFMX location. So I created a jEdit macro to do this. I create a .site file in the root of my working area, e.g., /Users/sean/repository/, which contains a single line that specifies the directory within the CFMX installation that 'matches' that point on the source tree, e.g., /home/coldfusionmx/. The script searches 'up' the file system from the file being edited to find .site (much like ColdFusion does to find Application.cfm) so you can have different subdirectories map to different places within the CFMX installation (as I do). Then you just save a file, e.g., /Users/sean/repository/extensions/components/lib/item.cfc and choose Macros > Files > Push To Site and the macro copies the file to /home/coldfusionmx/extensions/components/lib/item.cfc - it figures out the relative path from the 'site root' on both sides.
It's not very sophisticated, just a 'convenience' for the way I work. It doesn't handle remote sites (via ftp). Maybe I'll enhance it to do that one day, or maybe you can, dear reader! It certainly shows the power and flexibility of jEdit for people on platforms where ColdFusion Studio or HomeSite+ is not available.
Posted by seancorfield at 09:28 PM | Comments (0) | TrackBack | cf

October 10, 2002

since1968.com

I've just been made aware of this site and an interview they conducted with Brian Ghidinelli of IconMediaLab Interview, about the Boreal MountainLink website / web application. It's a very cool Rich Internet Application and the interview covers some of the technical aspects of it as well as broader issues surrounding RIA development. Worth reading! There are other interviews on the site (including one with Jeremy Allaire) as well as reviews and other web development resources.
Posted by seancorfield at 08:11 AM | Comments (0) | TrackBack | mx

October 09, 2002

JEdit & ColdFusion

Quite a few people have expressed enthusiasm for an Open Source Java-based programmer's editor called JEdit. For people looking for a free ColdFusion Studio / HomeSite style text editor for Linux or Mac OS X, JEdit and ColdFusion - A Users-Guide will be very interesting. I'm about to install JEdit and go through the users' guide in detail. I'll report back with what I think.

Posted by seancorfield at 06:09 PM | Comments (0) | cf

October 07, 2002

SQL/XML

Oracle 9i release 9.2 provides an implementation of XML DB. I just installed the developers' release on my Mac laptop and have been experimenting with it. I started with the SQL/XML code examples and very quickly was producing XML documents from my existing relational tables - very easy and very powerful! XML DB allows you to mix pure relational data with arbitrarily structured XML and to perform queries across both (using standard SQL and XPath style queries together), returning the results as a standard record set, an XML document or a combination of both.
p.s. You'll need to register with Oracle Tech Net to access those links: it's free and it's definitely worth it to get access to a wealth of Oracle information including searchable online documentation!
Posted by seancorfield at 11:01 PM | Comments (0) | TrackBack | programming

October 05, 2002

Helping the Goog

Thanx to Charlie Arehart and Geoff Bowers, here's a useful tip if you use VoidStar's RSSifier (see the [XML] link to the left). Since VoidStar uses the first link in the rss:item entry as the <link> for the blog entry, an aggregator ends up with links to external sites instead of back to your blog. Hence, Geoff's little Warning: link does not go to the authors blog! warning icon! The trick to solving this problem is to add an empty link to the blog entry, in the blog template, ahead of the entry itself. If you're using blogger, you'll need something like this:


<span class="rss:item"><a
href="{URL}<$BlogItemArchiveFileName$>#<$BlogItemNumber$>"></a>
<$BlogItemBody$></span>

Replace {URL} with the full URL to your blog, otherwise you'll get relative links, instead of absolute links. Do "View Source" on this page to see how it works and click the [XML] button to see what VoidStar does with it.

Posted by seancorfield at 05:19 PM | Comments (0) | blogging

Reality ColdFusion

A few weeks back (at a cat show in Tucson, in fact), I read Ben Forta's "Macromedia Flash MX Integration" book, part of his "Reality ColdFusion" series. It's an interesting book, taking you through four case study applications that provide a Flash UI to a ColdFusion back-end, via Flash Remoting: Jukebox, Expense Reporting, Mail Client and Chat. Each case study takes you through the requirements outline, early design, development, delivery and conclusions. The Expense Reporting application is particularly interesting for its ability to work offline using Flash MX's Local Shared Objects to store expense reports locally for editing until the user goes online and then submits them to the main application. The Chat client uses Flash Communication Server and shows how easy it is to build interactive multi-user applications.


The book focuses on ActionScript, from a ColdFusion programmer's point of view. There's very little detail about user interfaces and most of the user interfaces are little more than engineering-art: this is not a book about Flash design. Some of the ActionScript examples are very simple, others are complex enough that a little more explanation would have been useful. The ColdFusion code - in CFCs - is extremely simple for the most part. The thrust of the book is to show how easy Rich Internet Applications can be to build. Mastery, of course, takes much longer.


I think the book succeeds as an introduction to Flash MX / ColdFusion MX integration. It doesn't try to teach you ActionScript but any CF developer who has use CFscript will pick it up quickly. It doesn't try to teach you how to use the Flash authoring tool but there's good examples and tutorials in the product to help you there. It doesn't go too quickly through the material, not does it try to dig too deep into the subtleties of the technology - it's a good middle ground.


Watch out for other books in this series!

Posted by seancorfield at 04:44 PM | Comments (0) | cf

October 04, 2002

Apache 1.3.27

As a few folks have commented, there has been a flurry of security upgrades recently with Apache. Since the launch of ColdFusion MX, Apache 2.0.x has gone from 2.0.39 (supported by the launch version of CFMX), through 2.0.40 (supported by the updated version of CFMX) and on to 2.0.43 now. This week we have seen a rev in the Apache 1.3.x branch from 1.3.26 to 1.3.27. You can read about the fix in this Apache Week article: Apache httpd 1.3 vulnerabilities. My feeling is you should look to upgrade to Apache 2.0.39 (or 2.0.40 as appropriate) because of the increased stability and performance with ColdFusion MX.
Posted by seancorfield at 12:15 PM | Comments (0) | TrackBack | cf

Japanese ColdFusion

Thanx to Ken Azuma for letting me know that he has a Japanese ColdFusion blog called ColdFusionLab.

Posted by seancorfield at 07:50 AM | Comments (0) | cf

October 02, 2002

Brazilian ColdFusion

Alex Hübner just linked to my blog from his: < CF_GIGOLÔ > - na cama com o macromedia coldfusion. Do you know of any other non-English blogs about ColdFusion? Let me know!
Posted by seancorfield at 12:38 PM | Comments (0) | TrackBack | cf

Inheritance & Composition - Hal Halms

Hal has an interesting article on Macromedia - Designer & Developer : Using Inheritance and Composition in ColdFusion Components. I have a couple of stylistic comments about his code examples but it's a good article that explains the new OO features very well, showing inheritance and composition, how to refactor code for reuse (although I don't really like to hear 'reuse' and 'inheritance' in the same sentence - more on that in another post!).


My biggest issue with his code is that he uses public data members (e.g., this.address1) but then says you have to write methods for retrieving and setting them. Well, no, not if they're public you don't. You need getter / setter methods if the data members are private, using the unnamed scope, and that approach is much better practice: instead of <cfset this.x = value/> write <cfset x = value/> and provide functions to 'getX' and 'setX'.


My other comment is fairly minor: he chooses new() as a method name where most existing practice would use init(). This isn't a big deal really but might be confusing to people who are struggling to understand what new does in Java as they integrate that into their ColdFusion world.


As I say, a good introductory article that focuses on the modeling aspects of OO and CFCs. Thanx Hal!

Posted by seancorfield at 09:33 AM | Comments (0) | programming

Trying CF5?

As a follow-up to my post about buying CF5, I've been given permission to post the direct download link for the Windows Developer Release of CF5. Obviously we'd prefer folks to try & buy CFMX but we understand that some people are simply not in a position to upgrade yet and need to maintain a homogeneous CF5 environment.

Posted by seancorfield at 07:45 AM | Comments (0) | cf

October 01, 2002

Buying CF5?

"Can I still buy CF5?" This is a common question that crops up on the mailing lists from time to time. The answer is addressed in the Macromedia - ColdFusion MX : General Information FAQ which says 'yes' and tells you how to do it. The FAQ includes a lot of other information which answers many of the logistics questions that are asked about ColdFusion.

Posted by seancorfield at 02:17 PM | Comments (0) | cf

Modularization & Code Size

A post on CF-Talk the other day caught my interest. A user was migrating a large Fusebox application to ColdFusion MX and ran into a problem that I haven't seen reported very much yet: the underlying 64k limit in Java. There's two ways to hit this limit:
  • Creating code where a single method (in the generated Java) exceeds 64k
  • Creating a cfswitch where there is more than 32k of (generated Java) code inside it
These are inherent limits in Java, based on the design of its Virtual Machine, but they highlight an interesting issue in your CFML. If your CFML is well-structured and reasonably modular, you are unlikely to hit this problem. For example, if your code is broken down into UDFs and custom tags. If, however, you have large 'slabs' of inline code - even if you cfinclude it - you may hit the Java limits. In CFMX, you can also hit this limit by having a very long cffunction. Again, modularization - breaking the code into smaller, logical functions - will solve the problem. A more modular program is a more understandable program. A more modular program usually allows more code reuse as well.
Posted by seancorfield at 01:59 PM | Comments (0) | TrackBack | cf