Viewing By Month : November 2003 / Main
November 27, 2003
I continue to be more and more impressed with the discussions on CFCDev, the listserv run by the CFCZone crew. Recently there's been a lot of discussions about patterns and OO design so if you're serious about improving that aspect of your ColdFusion programming and really getting into CFC development then you should sign up!
A recent example was a question posed by Justin Balog about applying the memento pattern to objects that use composition. He was concerned about the additional complexity composition seemed to add. Paul Kenney responded with a code example that showed how simple it can be in reality - the enclosing object's
A recent example was a question posed by Justin Balog about applying the memento pattern to objects that use composition. He was concerned about the additional complexity composition seemed to add. Paul Kenney responded with a code example that showed how simple it can be in reality - the enclosing object's
getMemento() simply calls that method on each of the enclosed objects and constructs a composite memento from the results; similarly setMemento() does the reverse, calling setMemento() on each enclosed object. I think it's great to see questions like this posed and answered by a group of folks determined to help improve each other's design and programming skills, and who are so open to the great wealth of OO material out there (for other languages).
Macromedia's own accessibility guru, Bob Regan, is doing a series of gigs in Australia talking about building accessible websites using Dreamweaver MX 2004. If you're downunder and have an interest in accessibility (especially if you're in government, I guess), then this is for you!
November 26, 2003
Brandon Purcell has two great blog entries covering the configuration of database drivers for MySQL and SQL Server 2000 with ColdFusion MX.
November 25, 2003
Martin Fowler has spotted a worrying trend in domain model design - anemia! That's his term for domain models that have no logic in them - where all of the logic has migrated to the service layer. His point is that the service layer should be fairly thin and the business logic belongs in the domain model itself.
This will be of particular interest to Mach II developers because, whilst the framework mitigates against putting too much logic in the controller portion (the XML file), you can still bulk up your listeners as a service layer and end up with too much business logic in your listeners - instead of down in the domain model where it really belongs.
If you read the Designing Models section of the Mach II Development Guide, you'll see that it recommends separating your business model (the domain model) from the Mach II framework so that your listeners don't end up full of business logic.
This will be of particular interest to Mach II developers because, whilst the framework mitigates against putting too much logic in the controller portion (the XML file), you can still bulk up your listeners as a service layer and end up with too much business logic in your listeners - instead of down in the domain model where it really belongs.
If you read the Designing Models section of the Mach II Development Guide, you'll see that it recommends separating your business model (the domain model) from the Mach II framework so that your listeners don't end up full of business logic.
November 21, 2003
Well, you've probably guessed that (a) I'm not at MAX and (b) I'm doing a lot of work with Mach II and you'd be right on both counts. Why didn't I go to MAX? A bunch of reasons (mostly personal) and it's worked out well since I'm very busy on an overhaul of some of our enterprise systems. My role is "integration architect" and I'm actively working on a number of the touch points between the various systems and various vendors. We've got a slew of legacy file formats and we're trying to standardize around XML and OAGIS. And ColdFusion is proving very useful!
Some of the things that ColdFusion is extremely good at include manipulating XML, interacting with databases and, because of tags like
The RAD capabilities of ColdFusion allow me to explore several scenarios for each data feed to see what works best so that I don't get stuck with expensive development of the wrong solution!
Some of the things that ColdFusion is extremely good at include manipulating XML, interacting with databases and, because of tags like
cffile
, cfftp
and cfhttp
, manipulating and converting files from various locations. As part of the integration work, I'm building Mach II applications that can process legacy file formats, convert them to standardized XML formats, import XML documents into the database and export and post XML documents from the database. Converting data to XML is an absolute breeze with CF because once you have the data in some data structure, you can just say: <cfsavecontent variable="xmlDoc">
<cfoutput>
<?xml version="1.0" standalone="no"?>
<!-- generate the XML here -->
</cfoutput>
</cfsavecontent>
Processing the inbound XML is only slightly harder. A call to <cfoutput>
<?xml version="1.0" standalone="no"?>
<!-- generate the XML here -->
</cfoutput>
</cfsavecontent>
xmlParse()
followed by some struct / array manipulation and you've extracted all the data you need, a quick cfquery
and it's tucked safely away in the database. The RAD capabilities of ColdFusion allow me to explore several scenarios for each data feed to see what works best so that I don't get stuck with expensive development of the wrong solution!
I've mentioned a couple of times that Macromedia is using Mach II internally to build applications for macromedia.com. Indeed, a couple of small applications are already live (one is the content admin for the Active Content Resources application in Central, the other is the Breeze trial request form). We're actively working on a couple of high-profile, high-traffic applications as well and right now we're in the load testing phase. As we've hammered the applications, we've uncovered a number of thread safety issues in the core Mach II files and we have fixes for all of the problems we've found so far (mostly adding var declarations for variables that are only used locally). I'll be working with Ben Edwards and Hal Helms to produce a new release of the core files that addresses the problems we are finding in load testing - the result should be a rock solid framework that can stand extremely high traffic!
This exercise has shown how vitally important it is for you to think about using var to declare local variables. If you omit var, you'll be storing data implicitly in variables scope which persists for the lifetime of the component instance - this is often not what you intend! There's a few places where it's easy to miss a local variable that you need to pay special attention to:
This exercise has shown how vitally important it is for you to think about using var to declare local variables. If you omit var, you'll be storing data implicitly in variables scope which persists for the lifetime of the component instance - this is often not what you intend! There's a few places where it's easy to miss a local variable that you need to pay special attention to:
- cfloop - the index or item variable
- cfinvoke - the returnvariable
- cfquery - the name variable
November 20, 2003
The next version of ColdFusion, codenamed Blackstone, received some exposure at MAX with a good summary on Rob Brooks-Bilson's blog. The main themes mentioned in Rob's blog are more sophisticated form handling and generation, including Flash forms, and printing & reporting functionality built around document generation. Guess we'll have to "watch this space" since none of those features are set in stone at this stage of the lifecycle...
Mike Chambers blogged case studies for two of the new Central applications - the Movie Finder and the Active Content Resources application. The Movie Finder is very impressive and very useful. The Active Content Resources application is much simpler but it is dearer to my heart because I wrote the back end!
It's a ColdFusion application, in two parts: a web service CFC that is called by the Central application and a content administrator. The content administrator is a Mach II application that manages "articles" and "categories" (the article CFC, DAO and gateway are featured in the Mach II Development Guide as example code). The web service CFC calls the article gateway CFC to return recently published articles. The Mach II application has two listeners, one to manage interactions with the article-related CFCs and one to manage interactions with the category-related CFCs. It allows Mike, Diana and others to quickly add and edit summaries and links for breaking news about Active Content issues, so the information can be delivered directly to developers via the Central application!
It's a ColdFusion application, in two parts: a web service CFC that is called by the Central application and a content administrator. The content administrator is a Mach II application that manages "articles" and "categories" (the article CFC, DAO and gateway are featured in the Mach II Development Guide as example code). The web service CFC calls the article gateway CFC to return recently published articles. The Mach II application has two listeners, one to manage interactions with the article-related CFCs and one to manage interactions with the category-related CFCs. It allows Mike, Diana and others to quickly add and edit summaries and links for breaking news about Active Content issues, so the information can be delivered directly to developers via the Central application!
The agenda for MXDU is shaping up nicely now with three tracks covering client, server and experience themes. I'll be speaking in the server theme (of course!), talking about Macromedia's use of Mach II.
Rob Brooks-Bilson has a good summary of Ray Camden's Geeks of a Feather (informal) session at MAX. Like those attendees, I would rate interfaces high on my wish-list for CFCs!
Now that I have the JX Server beta installed, every time I write a test case to confirm some question a user has on a forum or mailing list, I also try it out on BDJX6.1. Most stuff works just fine (which is pretty impressive). I've tripped over a couple of things for which there are workarounds:
Oh, one other issue to be aware of: if you use Safari 1.1 and try to download the beta from New Atlanta's site, you'll be repeatedly challenged to login. Apparently, this is due to a bug in Safari that doesn't respect cookie path hierarchies (when multiple cookies with the same name but different path lengths should be ordered by path) - the New Atlanta site uses cookies for login but relies on the path hierarchy to control access across multiple applications. You can workaround this by using Firebird (or some other browser) to download the bits.
- As I mentioned earlier, you can't cfinvokea component method directly at the moment, but you can usecreateObject()orcfobjectto create a CFC instance and then call methods on that (e.g.,obj.foo()).
- You can't createObject()a webservice, but you cancfinvokeit directly or usecfobjectto create a webservice instance (and then call methods on that).
- cfset var x = 1is treated the same ascfset variables.x = 1orcfset x = 1, i.e., as instance data rather than a local variable, but you can saycfset arguments.x = 1(and then refer to justx) and you effectively get a local variable. Of course, that assumes you don't have an argument calledx! Interestingly enough, in CFMX6.1, the unadornedxdoes not resolve toargumentsscope (it resolves to the unnamed /variablesscope) so that's a bit of a subtle difference!
Oh, one other issue to be aware of: if you use Safari 1.1 and try to download the beta from New Atlanta's site, you'll be repeatedly challenged to login. Apparently, this is due to a bug in Safari that doesn't respect cookie path hierarchies (when multiple cookies with the same name but different path lengths should be ordered by path) - the New Atlanta site uses cookies for login but relies on the path hierarchy to control access across multiple applications. You can workaround this by using Firebird (or some other browser) to download the bits.
November 19, 2003
There's a new version of Macromedia Central available. It comes with three applications: a blog reader, a movie finder and AccuWeather. In the blog reader, you'll find a number of things already subscribed including Dilbert (yay!) and a Central Applications feed showing any new applications released for Central.
November 18, 2003
I downloaded the three beta installers for Mac OS X (the free server edition, the JX server edition and the J2EE edition) and installed the JX server. The beta bits are packaged as ZIP files for the Mac and they expand to installers (apps) for Server and JX Server and to a directory structure for J2EE. The JX Server installer is pretty slick, asking for a port number and an administrator password and, if you accept the defaults for everything you'll end up with everything in
I tried out some CFCs and mostly things worked pretty well although the beta does not support calling components directly via
Overall, it looks pretty good for an early beta. It isn't yet sufficiently compatible with CFMX 6.1 to be able to run Mach II applications so I can't really give it a full workout. One key point from the compatibility guide is that CFCs are not going to be supported in the free Server edition which makes a lot of sense - New Atlanta are in business to make money, after all, so you can't expect them to give everything away!
As the beta proceeds and greater compatibility with CFMX 6.1 is achieved, I'll be writing more about BlueDragon.
/Applications/BlueDragon_Server/
and there are simple startup / shutdown scripts in the bin
directory. I tried out some CFCs and mostly things worked pretty well although the beta does not support calling components directly via
cfinvoke
so you have to use createObject()
and invoke methods against that (which I mostly do anyway). super
seems to work just fine. There's no support for var
scope local variables yet (according to Matt Liotta) but I'm sure that will get fixed. createObject()
doesn't yet support web services - again, I expect that'll be fixed before release - and accessing a CFC directly or with ?wsdl
leads to an error right now. Overall, it looks pretty good for an early beta. It isn't yet sufficiently compatible with CFMX 6.1 to be able to run Mach II applications so I can't really give it a full workout. One key point from the compatibility guide is that CFCs are not going to be supported in the free Server edition which makes a lot of sense - New Atlanta are in business to make money, after all, so you can't expect them to give everything away!
As the beta proceeds and greater compatibility with CFMX 6.1 is achieved, I'll be writing more about BlueDragon.
David Mendels of Macromedia commented on Jesse Ezell's blog so Jesse republished the comment as a full blog entry so it's easier to find and read.
I rarely mention political or social subjects in this blog but I think the recent State Court ruling in Massachusetts on same-sex civil marriage is an important - and long-overdue - step forward in improving civil rights. I'm sure there will be a political backlash from the Republicans but when you consider the consitutional separation of church and state, you can't use religious objections as a reason not to grant same-sex civil marriage (and I haven't actually seen any coherent secular objections).
I'm leaving comments open on this entry but I will delete offensive comments and bigotry out of hand.
I'm leaving comments open on this entry but I will delete offensive comments and bigotry out of hand.
November 17, 2003
A old colleague of mine has a forthcoming book - The New C Standard - An Annotated Reference. There is a very in-depth discussion about the subtleties of naming conventions (see links in top right for the 673k PDF file), examing the linguistic and cultural aspects of choosing names for entities in a program. This is the most thorough global review I've ever seen on this subject and, whilst it is very dense - and occasionally rather academic - it is fascinating to read about all the factors that affect naming conventions (e.g., phonological neighborhood, morphology, contextual variability etc).
New Atlanta now have a beta version of BlueDragon 6.1 available that not only follows CFMX's version numbering but also adds some of the MX-specific features like CFCs, web services and XML processing. I think this is a good indication that the CF community really do like these features (New Atlanta previously said they wouldn't add CFC support because they didn't believe folks were really going to use them). It also further validates the enhancements Macromedia has made to ColdFusion!
The beta is only available for Windows and Linux so I can't try it out to provide more details.
Correction: it seems I visited the site before the beta bits were up - there was an early customer preview for Windows and Linux only but now there is a full range of beta bits for all platforms.
The beta is only available for Windows and Linux so I can't try it out to provide more details.
Correction: it seems I visited the site before the beta bits were up - there was an early customer preview for Windows and Linux only but now there is a full range of beta bits for all platforms.
Christian Cantrell has just launched the (beta) Community Vision project so that folks can share images and memories of MAX (amongst other things). I'm not going to be at MAX this year so I'll be interested to see what what pictures get posted from there!
If you're at MAX, you should check out the Intro application that will help you with networking at the conference. You can read more about the application in this Developer Center article.
November 16, 2003
The initiative formerly known as Royale is now known as Macromedia Flex. The announcement of the new product comes with its own developer center where you can learn all about the MXML programming language and a new blog, from Christophe Coenraets, that will focus on Flex related issues. There's lots of new material on the site - feel free to post comments on Christophe's blog! I don't know how much I'll get to use Flex but if I do, I'll post my thoughts.
Now I've been using Panther for a few days, I've found that a couple of my working styles have changed and the reason is Exposé.
I've always kept the dock visible on the right of the screen because I use it a lot to switch between open applications (I will use Apple-TAB to switch back and forth between two applications but I often have so many apps open that Apple-TAB just isn't an efficient way to switch between apps in general). Since I upgraded to Panther I've been using Exposé to switch between apps - so I set the dock to auto-hide and reclaimed some screen real estate!
I installed iTerm as a replacement for Terminal originally because I often have a lot of Unix sessions open and didn't like having so many windows cluttering the screen. iTerm provides a tabbed interface so you can have lots of sessions open without all the windows, and then just Apple-Arrowkey between them. Very convenient. But it doesn't quite emulate terminals the way Terminal does so
I've always kept the dock visible on the right of the screen because I use it a lot to switch between open applications (I will use Apple-TAB to switch back and forth between two applications but I often have so many apps open that Apple-TAB just isn't an efficient way to switch between apps in general). Since I upgraded to Panther I've been using Exposé to switch between apps - so I set the dock to auto-hide and reclaimed some screen real estate!
I installed iTerm as a replacement for Terminal originally because I often have a lot of Unix sessions open and didn't like having so many windows cluttering the screen. iTerm provides a tabbed interface so you can have lots of sessions open without all the windows, and then just Apple-Arrowkey between them. Very convenient. But it doesn't quite emulate terminals the way Terminal does so
vim and a few other utilities don't quite work 100%. With Exposé, it's a snip to switch between windows and it doesn't matter as much how many you have open since Exposé makes it easy to navigate around them. So... exit iTerm, welcome back Terminal!
November 15, 2003
Jesse is having a bit of a rant about Whidbey because of quirks in the interface it exposes. Rob Howard responded so Jesse elaborated on why he thinks some of the design decisions make no sense. I'm not very familiar with either Whidbey or the AD server system but Jesse's concerns sure sound valid to me - his bottom line is: why publish interfaces that cannot, in general, be fully implemented? As Jesse says, an interface should represent a contract that a programmer can rely on. If some unspecified set of methods might throw generic exceptions because they are not actually implemented, that breaks the whole idea behind having a contract in the first place.
Brian Kotek has a great article on builder.com that introduces readers to Fusebox 4. It assumes you have a working knowledge of earlier versions of Fusebox (but provides links to other articles that cover that material). Brian covers all the major changes from Fusebox 3 and explains why Fusebox 4 is such a big improvement over earlier versions.
Brandon Purcell has created a very smart custom tag for caching web pages, called
cf_accelerate. He now has a demo of the administration interface for the caching mechanism. The caching tag is very high performance because it uses a tree-structured cache. The admin interface is simple but powerful. We're using cf_accelerate in a Mach II application we're developing - watch this space for more details!
November 14, 2003
Do you know what the
output= attribute does on the cffunction tag? Are you sure you really know? Read the LiveDocs reference page for cffunction and you'll notice that although output= takes a boolean argument and is optional, the behavior when you omit the attribute is not the same behavior as either output="yes" or output="no"! Matt Liotta pointed out that the "omitted" behavior is not documented in the CFMX 6.0 documentation so a lot of people have missed this subtle issue. The moral is, as Rob Brooks-Bilson says: Get in the Habit of Using Optional Attributes (although he doesn't specifically mention output= in that article).
I just spotted an annoying (for me) difference in the security setup between Jaguar and Panther. In Jaguar, you could have a password for the screen saver (which I wanted) but if the machine went to sleep, you didn't have to enter a password to on wake-up. I liked the convenience of the "instant on" wake-up. Panther links the two - if you want a password on your screen saver, it'll also be on wake-up. Now I'm in a quandary - can I live with the password on wake-up inconvenience for the security of password on screen-saver? I guess I'll have to...
Yesterday I upgraded to Panther. Or rather, the Panther disks finally found their way from IT Ops to my team's area and a very helpful technician, Eric Valencia, upgraded my laptop. Thanx Eric!
So what do I think so far? Pretty much all of my day-to-day applications continue to work just fine and everything seems much snappier. A couple of things stopped working tho' but none of them are that big a deal.
So what do I think so far? Pretty much all of my day-to-day applications continue to work just fine and everything seems much snappier. A couple of things stopped working tho' but none of them are that big a deal.
- DesktopManager didn't seem to behave reliably so I turned it off - Exposé helps me manage my myriad open applications more effectively anyway.
- The AppleScript menu disappeared from my menu bar - I really only used one script extensively (that converts Mail messages to iCal events) so I just moved it from my old Scripts folder to Mail's new built-in Scripts Menu folder (a nice feature). It doesn't copy the message body any more so it clearly needs an update but it mostly does what I need. Why on Earth don't Mail and iCal talk to each other out of the box?
- I used to replace Apple-Q (Quit) with Shift-Apple-Q in several applications to lessen the risk of accidentally quitting but that trick no longer works (modifying NSGlobalDomain NSUserKeyEquivalents). Hopefully I can find an alternative solution to this problem - I've already quit Safari once by accident this morning!
- The application enhancer haxie that metalified all my applications doesn't work but Panther's new smoother look'n'feel is nice enough that I can easily live without that.
- The MailPictures bundle no longer works. Again, no big deal.
November 13, 2003
I often see folks asking for help figuring out how to apply well-known design patterns to ColdFusion. Since CF isn't a fully-fledged OO language - it doesn't have interfaces, for example - it's not always obvious how to apply a design pattern that is illustrated in a language like Java. Brendan O'Hara is writing a great series of articles on this subject - essential reading!
Another take on design patterns can be found in Brian Kotek's article about composition.
Another take on design patterns can be found in Brian Kotek's article about composition.
SitePoint has a ColdFusion section on their website containing a few introductory articles. It'll be interesting to see how this section grows over time.
November 12, 2003
Next week is the week for conferences... Las Vegas is host to both COMDEX and ApacheCon, Phoenix is host to SuperComputing 2003 and Salt Lake City is host to Macromedia's own MAX!
I'm not going to any of them but I look forward to reading reports of these conferences in various blogs. Last year, I attended - and blogged - Macromedia DevCon 2002 in Orlando, Florida. It was an interesting experience and it was great to meet and talk to so many customers. MAX 2003 promises some very exciting sessions and announcements.
This year, I attended - and blogged - JavaOne which was also extremely interesting but, since I was attending sessions, it was a very different experience to DevCon. Early next year, I'll be attending MXDU - I'll be speaking and, of course, blogging as much as I can. It'll be the first conference I've spoken at in quite a few years so that, combined with the general Antipodean nature of the event, will likely make it yet another very different experience!
I'm not going to any of them but I look forward to reading reports of these conferences in various blogs. Last year, I attended - and blogged - Macromedia DevCon 2002 in Orlando, Florida. It was an interesting experience and it was great to meet and talk to so many customers. MAX 2003 promises some very exciting sessions and announcements.
This year, I attended - and blogged - JavaOne which was also extremely interesting but, since I was attending sessions, it was a very different experience to DevCon. Early next year, I'll be attending MXDU - I'll be speaking and, of course, blogging as much as I can. It'll be the first conference I've spoken at in quite a few years so that, combined with the general Antipodean nature of the event, will likely make it yet another very different experience!
Are you trying to do advanced Web Services with CFMX? Find you need access to the SOAP headers? Or you need to set SOAP headers when you're consuming Web Services? Then you need to read this Tech Note about Web Service Headers. The Tech Note has some UDFs you can download to get / set SOAP headers as well as some patches for CFMX (or rather for Axis).
November 11, 2003
I'd like to thank you all for reading my blog! The readership seems to be increasing month-on-month and traffic passed the 3Gb / month bandwidth point a few months ago. Since that was my ISP account limit, I was paying over-bandwidth fees so I just upgraded the account to the next level which should keep things covered for a good while. As a way of giving back to the community, I think it's money well spent - I hope y'all do too!
Paul Hastings has an excellent article on the Developer Center right now about building global applications in ColdFusion MX. Even if you don't have to deal with multiple languages today, you should still read this article and think about writing applications that can be easily modified to serve a global audience!
November 6, 2003
Simon Horwith - a long-time CFer (and former CF Studio user) - talks about Server Behaviors in DWMX 2004 and how they can make you more productive when writing ColdFusion code! I must admit, I didn't realize how powerful the behaviors feature was until I read this. I can see a lot of uses for this, especially for writing Mach II applications - server behaviors would be useful for building the Mach II XML file as well as certain things like filters that have predefined structure with some variables in them!
The Dreamweaver API Reference and Extending Dreamweaver just joined the ranks of LiveDocs so that customers can comment on them.
WTG's CFMX Coding Guidelines and the Mach II Development Guide are also available although they are not linked from the LiveDocs home page.
WTG's CFMX Coding Guidelines and the Mach II Development Guide are also available although they are not linked from the LiveDocs home page.
November 5, 2003
The blog might be a bit quiet for the next few days... I'm up to my ears in OAGIS XML documents right now and spending all day in meetings then on Friday I fly to Hartford, CT for a cat show. I get back on Monday evening but Tuesday is an all-day offsite so it's likely to be Wednesday before my schedule is back to normal!
November 4, 2003
Nathan Dintenfass is running his CFCs In Depth seminar again, this time in November (in San Francisco). Register before the 8th and it's only $99 (bargain!). Even after the 8th, it's still a very reasonable $150. Highly recommended!
Martin Fowler talks about the direction of UML 2 and why it might not be serving the vast majority of real-world people who use UML. Like Fowler (and many others), I'm a big advocate of UML but I use it mostly for "sketching" (as Fowler defines it). UML is a great tool for communicating design and structure but it can become unwieldy if you slavishly try to model every single aspect of your code: class diagrams are great, sequence diagrams quickly become unreadable if you try to model everything - but a high-level sequence diagram can often be the best way to communicate key logical decision points and data flow in a piece of an application. Read what Fowler has to say, especially where he talks about the three different audiences for UML, and see where you fit in - I'll bet you're a "sketcher" too...
November 3, 2003
Some of you may have noticed a comment in the Mach II Development Guide that
Edit
expandPath("/mapping/filename.ext") works on Solaris and Mac OS X (the /mapping is correctly expanded) but not on Windows. The ColdFusion product team have verified that this is a bug (#53683) and provided the following workaround: Edit
jrun-web.xml and create a virtual mapping is there that matches the ColdFusion /mapping. This will cause expandPath() to behave correctly on Windows.
You can now download release 1.0.7 of Mach II. It fixes the bugs previously posted on the bugs & enhancements page as well as providing some useful enhancements.
An updated version (1.0.3) of the Mach II Development Guide has been published that reflects the changes made in the 1.0.7 core files.
Cool new features in 1.0.7 include the ability to specify a variable expression in the <event-arg> tag, built-in bean handling for forms and a plugin point for handling exceptions. I may post more information on my Mach II website or here in my blog, depending on the level of interest from folks. And, of course, I'll be active in the Mach II forums answering questions about the new release and its features.
p.s. I'm also now an official contributor to the Mach II project!
An updated version (1.0.3) of the Mach II Development Guide has been published that reflects the changes made in the 1.0.7 core files.
Cool new features in 1.0.7 include the ability to specify a variable expression in the <event-arg> tag, built-in bean handling for forms and a plugin point for handling exceptions. I may post more information on my Mach II website or here in my blog, depending on the level of interest from folks. And, of course, I'll be active in the Mach II forums answering questions about the new release and its features.
p.s. I'm also now an official contributor to the Mach II project!
A few of my friends and colleagues have been enthusing about Python so I finally thought I'd check it out to see what the fuss is all about... I downloaded MacPython 2.3 at the weekend and it was an easy install. Then I discovered that (a) OS X 10.2 bundles Python 2.2 and (b) OS X 10.3 bundles Python 2.3 (although in both cases wiithout the, admittedly basic, IDE and the "package manager").
Python is an object-oriented scripting language with a very simple and intuitive syntax. I figure that I'll try to learn it as an alternative for the sorts of things I might use Perl for right now (I don't like Perl!). So far, I have only played with Python and not actually had to do anything really useful with it. Initial reaction? It's quite slick - definitely more elegant than Perl although I haven't really gotten a handle on its file manipulation stuff yet. I was also pleased to see a mod_python plugin for Apache (downloaded the source but haven't had time to build / install it yet).
I'd be interested to hear what folks think of Python and what they're doing with it...
Python is an object-oriented scripting language with a very simple and intuitive syntax. I figure that I'll try to learn it as an alternative for the sorts of things I might use Perl for right now (I don't like Perl!). So far, I have only played with Python and not actually had to do anything really useful with it. Initial reaction? It's quite slick - definitely more elegant than Perl although I haven't really gotten a handle on its file manipulation stuff yet. I was also pleased to see a mod_python plugin for Apache (downloaded the source but haven't had time to build / install it yet).
I'd be interested to hear what folks think of Python and what they're doing with it...
November 2, 2003
Nathan Dintenfass has published a very useful function on CFLib that lets you merge two XML documents. He mentioned this in his recent BACFUG talk about Impart, the open source blogger project, because he uses it to merge the master configuration file with the local configuration file. This tempts me to look into the possibility of having multiple XML files in Mach II...
November 1, 2003
And day of the dead it certainly is on the mailing lists and forums as far as I can tell. I can't recall a Saturday quite this quiet for ages!
My wife & I celebrated quietly with friends last night and today is one of chores - we're cat sitting for two sets of friends, morning and night (and have been for a whole week so far), and trying to clean the house top to bottom. With email so quiet, I don't even have an excuse to get away from the chores for long!
Out in blogland, Mike Chambers has released his command line Flash compiler - cool! Windows only tho' unfortunately.
Back in the Mach II camp, I can tell you that release 1.0.7 is almost here (I've had a couple of Release Candidate code drops from Ben and have been verifying bug fixes). I have a revised Mach II Development Guide and an overhaul of the Mach II pages on this site ready to go, as soon as Ben finalizes the code and publishes it. In addition to fixing bugs, it adds a new piece of exception handling machinery which looks very promising as well as providing built-in bean support for forms. Oh, and it has a very useful enhancement to the
My wife & I celebrated quietly with friends last night and today is one of chores - we're cat sitting for two sets of friends, morning and night (and have been for a whole week so far), and trying to clean the house top to bottom. With email so quiet, I don't even have an excuse to get away from the chores for long!
Out in blogland, Mike Chambers has released his command line Flash compiler - cool! Windows only tho' unfortunately.
Back in the Mach II camp, I can tell you that release 1.0.7 is almost here (I've had a couple of Release Candidate code drops from Ben and have been verifying bug fixes). I have a revised Mach II Development Guide and an overhaul of the Mach II pages on this site ready to go, as soon as Ben finalizes the code and publishes it. In addition to fixing bugs, it adds a new piece of exception handling machinery which looks very promising as well as providing built-in bean support for forms. Oh, and it has a very useful enhancement to the
<event-arg> tag. More in a day or two...


