Compound Theory

v2.0

Categories

  1. Transfer
  2. ColdFusion
  3. Java
  4. JavaLoader
  5. AsyncHTTP
  6. OO Analysis and Design
  7. XML / XSL
  8. XHTML / CSS
  9. Ubuntu
  10. Eclipse
  11. Oracle Database
  12. Usability / UI Design
  13. cf.Objective
  14. webDU
  15. Captcha
  16. Melbourne CFUG
  17. Martial Arts
  18. Random Things

Recent Posts

Projects

Instant Message

Instantly grab my attention...

Recent Comments

07 July 2008 08:25 AM 6 Comments

How do you test CFML against multiple versions of ColdFusion?

'How do I run ColdFusion 8 and 7 side by side on IIS?' or 'How can I run Railo and Adobe ColdFusion side by side, so I can share the same code base?', is a question I see quite regularly on CF lists.

I figured I would write up a blog post about how I go about solving this problem, since I do this a lot with my Transfer development.

The quick answer is - I don't.  Trying to set up two different Application servers (CF7 vs CF8) on the same Web Server (IIS or Apache), is not something I desire to tackle, and seems way more convoluted than I care to trouble myself with.

The problem is usually broken down into:

I solve each of these problems with Virtual Machines , and Shared Folders.

I have actually bought VMware's Workstation product, and I use it every day, but there are several free products out there that will do virtualisation for free.

First thing first, where does my actual CFML code sit? This sits on my primary machine, commonly referred to as the host machine, in VM speak.  This is because the host has guest machines, namely of the Virtual Machine variety.

This means my CFML code is always available if I want to get my hands on it, and I can open it in Eclipse on my host machine as well, so I do all my editing and development with tools on my host machine.

I also do this because I can then share this code between virtual machines, using a mechanism called Shared folders.

So, now that I have my ColdFusion code, I create myself a new virtual machine.  In my case, I use Ubuntu Server, because its lightweight, and I can get one up and running in about half an hour, but you could use XP, or anything that runs CF.

I then configure my virtual machine to share my host folder which contains my CFML, which is a setting I am able to configure within VMWare. This then becomes accessible at /mnt/hgfs/wwwroot in my Ubuntu server on my VM.

From here, I can now install ColdFusion 8 on this VM, and point it to /mnt/hgfs/wwwroot folder to serve cfml from.

I can then create extra virtual machines, one for each version of ColdFusion that I need.

When I need to test against a version of ColdFusion, all I need to do is start up the virtual machine in question, and browse to it.  To switch versions of ColdFusion, I simply power the current one down, and start up another one.

I find this a much easier way to test the same code base between different versions of ColdFusion than trying to run them side by side.

03 July 2008 11:59 AM 1 Comment

Melbourne CFUG - 17th of July

We're back to regular CFUG's, after the break for WebDU, and I think we have a pretty interesting presentation lined up!

Location:
NGA.net, Level 2, 17 Raglan St, South Melbourne
Map: http://link.toolbot.com/google.com/73016

When:
17th of July, Meeting starts at 7:00, so get there before hand (doors open at 6:30).

Agenda:
Elliott Sprehn

Elliott is a software engineer at TeraTech, Inc. and the lead developer for the Conferences department. He has worked on a variety
of projects that include network services, realtime messaging systems, survey processors and most commonly web applications. As a strong advocate of web standards and accessibility he volunteers his free time to help new developers learn standards and best practices. He is also proponent of design patterns and draws his vision about application design from experience with many languages that include ColdFusion, Java, ruby and php.

Internals of the Adobe ColdFusion Server
To many CF developers the ColdFusion server is a block box that just works. This presentation takes a look at how the internals of the engine operate. The presentation covers how variables, scopes, functions, cfcs, custom tags, includes and java objects are implemented and how we can use this knowledge to do things not normally possible with the CF functions.


We'll look at how to implement several features in CF6, CF7 and CF8 like:
- Query Caching with the native CF query cache for queries that use
cfqueryparam.
- Create and execute queries that use cfqueryparam from cfscript.
- Create a function like CF8 to get database info for a datasource.
- Add global mappings by appending to a structure like this.mappings in CF8.
- Call functions and component methods and inspect the local scope
after their execution.
- Access the Application.cfc anywhere in an application.
- Allow passing arrays of values in the url scope instead of lists
when there are duplicate keys.

If you are going to attend, please RSVP to mark (dot) mandel (at) gmail (dot) com.

Only those that RSVP are eligible for the door prizes, so make sure you apply!

See the CFUG Melbourne Calendar at:
http://www.cfcentral.com.au/Events/index.cfm

Or add to your Google Calendar - search for 'CFUG Melbourne'.

As per usual, we'll grab pizza during the evening, so we have something to scoff down!

Look forward to seeing you all there.
19 June 2008 05:19 AM 11 Comments

ColdFusion 9 + Hibernate == Transfer Killer?

So I figured I better head this off at the pass, because I'm already getting questions in my inbox about whether this is the end of the road with Transfer , and what I plan to do with it, and OMGZ! TRANSFER IZ DEADZ!!!.

Let it be known, it couldn't be farther from the truth.

Transfer is not dead, development will still continue way into the future, and I can see a healthy life-cycle for its continuance.

A few points for your consideration:

  1. ColdFusion 9 is not even here yet.  Nobody even knows the exact date it will be shipped.  You want ORM? You can have it right now with Transfer! No waiting around, no fussing.  The documentation is written, the example applications are there, and you already have a large community to integrate with. 
  2. Hibernate integration may not even be implemented with ColdFusion 9.  Yes, we've seen some short demo's, but we've seen demo's of functionality in pre-release at keynotes before, and they didn't make it into production before.  Hibernate and ORM is a pretty complex beast, and especially tying that into CFCs, so any number of things could make it ship late, or not at all.
  3. ColdFusion 9 will cost you $$$ to upgrade.  So you're not getting all this for free.  Transfer can be used right now for $0, and will always be $0.  It is only then up to you whether you want to pay for support, or training, consulting or even new features!
  4. The Transfer release cycle will always be faster than ColdFusion's.  If there is a feature you want in CF's ORM support, you'll have to wait ~18 months.  The Transfer release cycle is around the several month mark, and with the sponsored development program, the features you want in your ORM support can generally be developed in the same week you request them in, in fact the last sponsored development I completed I did in 6 hours! (Yet to be blogged, although in SVN).
  5. We don't know how well the ORM integration in ColdFusion 9 will be developed.  While I love the hard work that Adobe does, we can all remember Flash Forms.  Lots of Shiney, not very useful (maybe that was too low a blow? ;) ).  My point is, there is no point in putting the nail in the coffin until we really know what we are dealing with.
  6. There are plenty of businesses and projects out there using Transfer already, and there is no reason they would suddenly stop using it, and switch (although that is a possibility).  As long as people keep using Transfer, I will keep developing it.
  7. Transfer is a proven technology that has undergone a lot of rigorous testing.  While Hibernate can say the same, we have yet to see how the ColdFusion and CFC integration will perform.
  8. There is no reason why Transfer can't take advantage of some of the ORM integration tools.  For example, if a CFC annotation structure is setup for use with Hibernate, there is no reason Transfer couldn't use the same annotations, so using one tool or another is quite seamless.
  9. All in all, competition is a good thing.  Having competition forces everyone involved to strive to become best in breed.  So this will actually be a good thing, both for Transfer and for ColdFusion.

I don't want to be showering doubt over the ColdFusion 9 integration with Hibernate, it makes sense for them to do it, and I can completely see where it is coming from, and there are a lot of smart people behind it.  But, there is still a lot of unknown factors here, and a lot of reasons to still use Transfer, so don't feel like the project, or the business is going to die, because its not.

I'm really excited by some of the announcements I've been seeing with ColdFusion 9, including the ORM integration, and I think the next few years will be an exciting time for the ColdFusion community.

10 June 2008 05:43 AM 0 Comments

CFMeetup Transfer Introduction Recording

This is just to post a link to the recording of the session of Introduction to Building Applications with Transfer ORM that I did recently on cfmeetup!

To view the recording, you can go here .

This one should hopefully not have the sync issues the previous one did.

08 June 2008 12:20 PM 5 Comments

Transfer 1.0 Goes Gold!

Today is the day in which Transfer finally hits its stable, final, and complete 1.0 status.

The release candidate phase is finally over, and it showed up some critical bugs, which have since been fixed.

Things are moving along speedily, with the recent completion of the support contracts, and sponsored development programs.

I just finished writing a day's training program for webDU, which will soon to be available both on-site, and via Connect.

On the next to-do list, is the rebuilding of the Transfer and Compound Theory websites, with alerts for events, training, and a whole lot more!

I'd like to extend a huge thank you to the community that surrounds Transfer, you guys are fantastic, and without you there is no way Transfer could be where it is now.

Keep expecting good things from Transfer!

You can download the 1.0 Release from here.

For more details, check out the Release Notes.