Michael Buffington has been posting his thoughts on transitioning from CF to Ruby on Rails. I've been enjoying the articles but I think things are getting a bit distorted. It's difficult to make comparisons between a framework+language with a language; they're just not the same things.
The Verity engine ColdFusion ships with is ideal for free text searching across file based content. Working recently on a large file library we stumbled across a technique for improving the performance of indexing and building Verity file collections.
Try this bugalicious little duplicate() test case... spent me last bit of sanity trying to chase down this little bugger so i thought i'd share the "strap me down on a fast growing bamboo shoot" pain.
Rather than specialising in one particular database platform we seem to be moving to support more and more in recent years. With the release of FarCry CMS to open source we now support MS SQL, Oracle, Postgresql and mySQL database servers. Funny that for a language that is seemingly standardised how many little idiosyncracies SQL has across different databases.
Sometimes folks have trouble with Verity search results not behaving quite as they expect. For example, searching for multiple keywords might be bringing back unexpected results.
When you use CFDUMP you can sometimes get outputs that have no style attached. For example, if you use CFDUMP within a CFMAIL tag and also dump debugging data onto the screen.
Brian Kotek has released an interesting article on TechRepublic entitled, "Comparing and contrasting Mach-II and Fusebox 4.1 frameworks for ColdFusion MX".
The underlying Java libraries that CFHTTP leverages caches DNS lookups indefinitely. For the 350 or so feeds aggregated by Fullasagoog this is like a handful of sand in the budgie smugglers. But it looks like we might have a fix.
We've been building and setting up a few large CFMX applications of late. When it comes down to optimising and tuning the CFMX set up there's always plenty of debate. I thought it would be interesting to get folks feed back on Maximum JVM heap size.
Version numbering seems more like art than science! Between the magic of marketing the reality of software programming there must be some method to the madness. Here are some thoughts on how Daemonites use the concept of version numbers.
Great! You can var variables for functions inside of CFSCRIPT blocks. This may be old news for many folks as it's a CFMX 6.1 change. But it's something I've only recently stumbled across.
You can store ColdFusion components in a variety of places in your application. CFMX looks through these addresses in a particular order to find the CFC.
By making a few changes to the configuration of the underlying JRUN server, you can increase the amount of gumph logged by CFMX. This can be real useful in times of need when its not all too clear what's going on under the hood of your application.
Many developers seem keen to add things to the Java class path for their ColdFusion installations. Generally I rely on JRUNs dynamic class loading folders to store third-party Java libraries rather than modify the class path directly.
A recurring question on lists and forums is the generation of so called "search engine safe" or SES URLs. But URLs ought to be human readable and friendly too if you can help it.
Last month ColdFusion debuted in the TPCI top twenty languages. August sees ColdFusion drop to 25th place, probably on the back of excitement for the newly released PHP 5.
He3 public beta has been launched to much fanfare in mailing lists and the blogging community. But the impact of He3 is more fizz than bang.
The Verity that ships with CF is a much maligned and misunderstood beast. It's a great little feature bundled in for free. The only problem is Verity SDK for CFMX is a bit old -- and so more modern platforms have not been supported as well as they could be. Looks like Macromedia have recently got some updated binaries for Linux.
Rob Rohan and crew have released another update to the CFEclipse CFML plug-in for the Eclipse IDE v3.0. Given the DW team's reluctance to support the hand-coder and the virtual abandonment of Homesite+, the CFEclipse movement may get some legs.
At first glance Coral looks like another CFML engine -- similar to say BlueDragon. But on closer inspection it seems to be aimed at using CFML to develop desktop applications -- that is a compiled CF app and webserver bundled together.
The call for papers deadline for MXDU (that's MX Down Under) is tomorrow, 30 September. It's still not too late to make a submission - if you're a ColdFusion, Flash, Flash Remoting, Flash Com, Flash for DoCoMo, HomeSite, Dreamweaver, budding Central, Authorware, Director developer with an interesting story to tell we're interested to hear from you: http://www.mxdu.com
If the new look corporate Macromedia of this millenium is all about profitability it seems crazy that they don't do something with Homesite. It's a complaint that's been echoing around the traps for some time now. Either re-channel the product for development and sales or sell it to someone who will take care of it.
CFC's and custom tags are a great subsitute for "true" OO. If you consider that the vast majority of web development simply does not benefit from the differential between CFC's pseudo-OO and Java's true OO support, it seems perfectly resonable to me to build something entirely in a pattern devised using CFCs.
Joe Cheng pointed out in the comments of "Java jock Jihad", "there is just not a lot of common ground for CF and Java developers to stand on". Aaron Johnson has similar things to say, "Why should they care?". Maybe they're right.
With CFHTTP in such a sorrowful state in early CFMX I thought I'd hunt around for a java based alternative. I stumbled across HTTPClient and used it for a while importing feeds into Fullasagoog. I was stoked to find that Macromedia have used HTTPClient to replace the old shot-in-the-head CFHTTP libraries.
Well I decided to sit down and do something with DRK4. Lot of Macromedians playing with the Pollster App but not so many other folk -- so I wanted to see just how easy it was to get going. Being a sucker for punishment I decided I might as well integrate it into the FarCry CMS as well.
A slight ommission in the Archive/Deploy features of CFMX Enterprise is that "sandbox" security settings are not captured. This makes it annoying trying to transfer settings between different servers in a cluster. However, it appears you can copy the neo-security.xml (the only Sandbox configuration file) to another server and it just works.
Since ColdFusion MX can produce some pretty slick Flash charts with the CFChart tag there's no reason why Flash Remoting apps shouldn't have good looking charting in them as well. Originally built for my MXDU presentation, I've finally gotten around to releasing the CFMX/FMX/Flash Remoting/Charting demo that I had previously produced.
Err, is it just me or does it look as though there's been another design tweak on the Macromedia.com home...
Well I thought I might put together a quick note on how the CFUG went last night. Actually a very good discussion on CFMX Admin and a bunch of miscellaneous topics. Herein lies a summary of bits discussed and all the relevant links.
Sam Neff, fellow Team Macromedian, has whipped up a great presentation called "Serving Word". It's a ten minute treatise on dynamically generated MS Word documents using a combination of HTML, XML, and CSS.
Finished up some training on CFMX administration a few weeks ago. It struck me that there is very little in the way of admin information for CFMX bar a few technotes -- so I put together a humble little Breeze presentation to run folks through server settings and their nuances.
Paul Hastings, Team Macromedian and locales guru, has set up a new little blog on globalising CFMX; cfg11n. Funnily enough, G11N=globalization (11 letters between "g" & "n").
Working with deep structures can be a drag if you find yourself waiting for CFDUMP to render all of your data. Don't get me wrong, CFDUMP is a thing of great beauty -- but sometimes you just want a helicopter view of your structure.
Running CFMX with JRE version 1.4.1 seems to produce the wrong date/time for Aussies even though the windows time and locale may be set correctly (using getLocal() produces expected result).
Earlier versions of CF made it pretty difficult to work out what was going on under the hood when the server went into a flap-spin. Java on the other hand provides some useful tricks to deciphering what's happening when the server bombs.
If CFMX seems to be chewing on your memory you might put out the garbage to clean things up. The Java runtime accepts several flags that allow you to modify the behaviour of the underlying garbage collector.
Where in the world? Paul Hastings has taken another crack at determining where a user's coming from based on javainetlocator...
I noticed recently in a mailing list response to the announcement of Daemon's open source CMS for ColdFusion MX, FarCry: http://farcry.daemon.com.au, that there may be some confusion over the use of the CFIMPORT tag. The post in question observed that if the CFIMPORT tag was being used it must be to import JSPs, a valid reason for CFIMPORT, what the poster didn't realize was that CFIMPORT also allows a developer to import all custom tags from a specified directory as a library with a single call.
In true Daemon maniac fashion I did the Flash MX Developer & ColdFusion MX Developer (Advanced) certifications back to back today. I had to upgrade my Macromedia Developer certifications so that I can maintain my status as a Certified Macromedia Instructor and to also be eligible to teach some new classes. Both exams do a fair job of testing your knowledge and I would encourage anyone who's considering to go ahead and do it!!
Finally got round to documenting the Fullasagoog webservice -- luck I stumbled across a neat little set of methods for automating the process.
It's possible to create a CFC instance using either a relative or absolute file path using the TemplateProxy object in CFMX.
The CFCHART graphing engine in CFMX requires server side graphics and font libraries due to it's rendering behaviour. Lean installs of Linux will need XFree86 and it's libraries.
FarCry is an open source CMS for CFMX, originally developed by Daemon. It's fully functional, and runs in a variety of Enterprise environments today. Released under the Common Public License 1.0 -- it's free to all.
What started out as friendly banter with local Macromedians ended up as a funky software shop with a familiar pedigree :) The Daemon Bazaar is a repurposed Pet Market application that makes for a flashy MX Market.
ColdFusionMX runs it's own scheduling service -- just like a mini crontab. Although the schedule service is managed through the CF Administrator, you can still use the CFSCHEDULE tag to UPDATE, DELETE & RUN schedules. But it seems a bit of an oversight that you can't actually programatically list the currently active scheduled tasks using CFSCHEDULE. Here's a little snippet of code to list SCHEDULED tasks outside of the Administrator.
It looks as though Dylan65 went live somewhere before 2pm Sydney time today. A couple of interesting things about the quite relaunch of the site was the surprise visit by Mike Chambers, MM's Flash Community Manager, to the CFAussie mailing list.
The photos from MXDU are starting to come in and Justin Mclean's contribution from the MUG evening on day zero manages to include of the mullergut (original "one pack" - body by six pack) modelling the mugshot tshirt that I had made for that event.
CFMX is not supported on Windows Server 2003 just yet. But I stumbled across a couple of nice workarounds that will get you going on this platform. One's a detailed web page installation guide (recommended) and the others a slightly different approach from the Macromedia forums.
I've written a bit of CFML for CFMX Flash Remoting site deployment that dynamically creates an XML configuration file which the Flash app can use to set up createGatewayConnection() & getService() variables, inspired by comments that Charlie Arehart of CFMXPLUS fame had made to the Macromedia Trainers mailing list which I belong to.
6:30PM Sydney time... It's still a bit of a hairy start as they cutover all of the infrastructure to the new site -- but from what I can see Dylan65 is looking "Nanna Goat Sweet!"
Just a quick note to let folks know that FullAsAGoog has a webservice for repurposing the blended feed from the site. Feel free to use the webservice as you wish -- I would ask that people who want to use it for something serious let me know so I can warn you if I need to change the webservice in anyway.
In early August last year I put out a Flash Remoting example app written for CFMX that emulated the Windows Explorer, allowing you to browse the drives of a server via a standard web browser. At the time I withheld the FLA as I wanted to spend the time improving on it, but in preparation for my presentation on "Data Visualisation with Flash Remoting" at MXDU I've dusted it off and have now decided to release it for other developers to have a crack at.
I keep hearing people on one list or another banging their heads against a wall with things like, "This is driving me nuts. I am getting the "Internal Server Error 500" error page instead of a CFMX error page and debugging information". There is a really simple fix!
I've spent some time playing with RSS/RDF XML this year playing with Fullasagoog.com. Recently, I released a series RDF feeds for the blogs fullasagoog syndicates to make life easier for folks with NewsAggregators and several groups who just wanted some of their blogs mixed into a single file. I thought I might take the time to show just how easy it is to generate XML feeds in CFMX.
The guys at the mysterious Mythic.com site have created a handy Dreamweaver MX Extension that adds the ColdFusion MX functions to the Reference panel. The help files were taken from HomeSite+ and were modified to work with the DWMX reference system. The download page was last updated 19-Dec-2002 so it may be old news to some.
The FourQ project endeavours to build a content object application programming interface (COAPI) for use with CFMX CFCs. This custom, object persistence layer will also incorporate utilities for deploying and managing the content in the object store and provide an application framework for the development of content management systems (CMS).
Just doing some CFC development at the moment and am working with some local variables within the CFFunction tags. These should be initialised with var as previously documented on other sites. I was converting some CFSCRIPT code into the custom function that I was writing and so I dutifully initialised my local variable as the first line of the code, only to get an error when I ran the code telling me that the local variable must be "grouped at the top of the function body". Interesting thing this reveals is that any var statements must come at the beginning of the CFFunction code and that seems to even include coming before the CFSCRIPT tag. Modifying the code to initialise the variable with a CFSET ended the error message.
I've put together a collection of Flash Remoting examples that I hope will illustrate some of the potential of Rich Internet Applications (RIAs) in how they can be used to replace standard HTML forms. All examples use standard Flash UI components that are freely available with Macromedia Flash MX.
Now that Macromedia has updated their Certified Developer listing to include MX certified developers & designers I've written new agents to retrieve and store that data for the Flash Remoting application that I've developed for the Daemon site so that you can check out by country who's certified in what...
Launched the MX Downunder website yesterday with little fanfare... we're still trying to get all the content sorted out. It's been a bit nerve wracking trying to bring it all together; financing, drumming up sponsorship, coordinating speakers. But heh, if the enthusiasm we've seen so far continues we may have a sell out - and that would make it all worth while.
There is an odd bug that only appears to affect folk in the Aussie & NZ timezones (well that I know of). Basically the web based CF Admin interface doesn't allow you to schedule or manage tasks. But I've got a fix for you.
How many Advanced Certified ColdFusion 5 developers are there in the Republic of Moldova, and what are their name/s? We've gone one step further with the agent that I built to retrieve certification listings from the Macromedia site and are now publishing country listings on the Daemon site.
Ever wondered which country has the most certified ColdFusion Professionals? Or perhaps just how rare CF Pro's really are? Have been playing with the data for CF5 certifications that is displayed on the Macromedia site and dug up some interesting results.
There's been a few concerns locally about the move to MX and the hit on COM performance. Especially since the official performance information from Macromedia idicates that COM object instantiation can take up to 10x longer than CF5. Before you ditch the idea of upgrading to CFMX there are a number of things you might try to get COM objects performing at an acceptable level.
On the surface it looks as though the RequestTimeout functionality in CFMX is woefully broken. Have been holding out from the beginning of the month in hope that the "updater" might have addressed this issue, but alas. So here's some info on trying to get this thing to work.
Optimising Verity collections is so important to their performance that you really should be optimising whenever you can. On systems with a lot of collections this can seem arduous. Here are a couple of snippets to optimise your entire set of collections at once on both CF5 and CFMX.
Phew... After stretching the brain and pounding the keyboard I'm happy to say that I've managed to complete the four...
Working with CFMX, Flash Remoting and FMX the question comes up: "How can I use the data structures that I'm used to in CF within a Flash Remoting application on the Flash side?" We've put some sample files to demonstrate how this would be done.
Extract from the FUGLI list on passing information back to ColdFusion via the Flash Remoting Gateway.
If a shop was insistent on using EJB and CFMX together, would you generally recommend CFX or CFOBJECT? The question is really, what's the right tool for accessing EJB in CFMX? Here are some answers from the Macromedia dev team.
With the change to CFMX datasources now run through JDBC. This seems to be causing some trouble for folks use to connecting through ODBC to SQL Server. Thought I might post some collective thoughts on breathing life into your SQL Server connection when your drowning in the misery of [SQLException occurred in JDBCPool while attempting to connect]
We've been going insane lately trying to work out why some of our SQL Server 7.0 datasources work with CFMX and why others don't. We had a multitude of bizarre test cases that seemed to indicate that SA always worked while other database users were refused. Turns out there is a bug in the ColdFusion Administrator datasource interface but happily it has nothing to do with the SA account.
Announcing the availability of a CFMX/FMX/Flash Remoting application beta that mimics the Windows Explorer to locate files on the web server.
The global error handler in CFMX behaves quite differently to that in ColdFusion 5. The documentation surrounding the change in functionality is not the best. On top of that it looks like there are a few quirks to look out for.
Macromedia have released a whitepaper on performance comparing CFMX and CF5 on various platforms. ColdFusion MX outperforms ColdFusion 5 in both performance and scalability. Testing was done on Windows, Linux, and Solaris.
Been mucking around with variables again. Looks like the ColdFusion MX query object can now hold complex values. To my surprise you can now bung in structures, arrays and even other query objects. Not entirely sure what weird and wonderful things one might try now that this is possible but there it is.
A bit of a provcative statement from a J2EE neophyte, perhaps. Having tinkered a fair bit and chatted to a few people I think we'll have to wait for the next service pack to see an upgrade to the internal CFMX webservices module.
I note with interest that the Apache AXIS group have released beta 3 of their implementation of the SOAP ("Simple Object Access Protocol"). CFMX web services is based on an earlier beta release of this project.
The new CFDUMP in CFMX is full of surprises. Not only can you dump ColdFusion variables but just about everything else. Dumping functions and gives you all the detail you could want about the variables to pass in, the appropriate format and more.
If you have done any work with XML within CFMX you will no doubt have used CFDUMP to view the XML Document Object. However, what's not well known is that CFDUMP has two different views for XML; long and short. Here's how to get to both!
Ever wondered whether it's possible to consume a web service in CFMX from behind a proxy server? The
Found a great little tech note on the web server that ships with the CFMX install. Typically this installs with a webroot of c:\cfusionmx\wwwroot\ and a port number of 8500. If you need to change these settings, disable file broswing or say add a virtual mapping you ought to check out this little gem.
CFMX ships with an XPATH engine that is called using the XMLSearch() function. It's great and absolutely dead simple to use. I've got a few code examples to share that I whipped up playing with http://fullasagoog.com/
It's not a showstopper, hell it's hardly a blip. But it may cause some folks some grief so I thought I'd mention it. The classic CF server side validation using hidden fields doesn't render the custom error message in CFMX.
I want my Titanium PowerBook G4! O'Reilly Network have published the first of a three part series on the possibilites...
Macromedia have added three tutorials for Flash Remoting on ColdFusion MX. They are: - Building a Database Query Application with...
The Hedonists Dilemma is a "web services" game where wannabe hedonists pursue the good life and struggle to be on everybody's A list. Players have to choose either what party to go to or whether to host a party themselves.
A cool little code snippet popped up in the Neo beta forums. It's an undocumented attribute of CFDUMP in CF5+...
# Perl code here print "Hello world!";...