cf.Objective(ANZ) 2009 Recap - Part 1

Well, this is my 3rd time attending a development conference and I had a great time there. I am glad that now there is a ColdFusion specific conference in Australia (in addition to WebDU - which also has a dedicated ColdFusion stream) - thank you for the committee to bring it here down under, you all did a fantastic job.

The conference lives up to its promise being an "enterprise" conference - I would say the majority of the content are quite advanced - well according to me anyway (someone with 3 years ColdFusion experience).

The conference size is small-ish - probably around 100 people there, which is the intention of the organizers. I quite like the small size - it does give me the opportunity to talk to few people - I would imagine it'd be easier to be a loner, sitting in the corner somewhere and not talking to anyone in bigger conferences. If you wish to connect with me - please don't be a stranger - there's Twitter after all :)

Well enough rumbling, below is the quick run down / summary of the sessions that I went to (only day 1). I write in the hope that I can entice those who didn't go for whatever reasons, to consider going and support this conference, especially if you are local to Melbourne. Try to get your company to send you to the conference, that's what I did - although I ended up paying for it myself as I resigned 2 weeks before the conference (oh well...). Even if you have to pay for it yourselves - you probably can claim it on your tax (but check with your accountant first).

Adobe Keynote

I wish I could say much about the keynote, but I couldn't since I came late, stuck on Melbourne traffic for 1 hour. I think most of the things said in the keynote, I have heard them either from blog posts or perhaps WebDU? It's good to see that Ben Forta came, I think it's a good gesture from Adobe that they still care with marketing ColdFusion in Australia.

Push Me - Push You, Building Publish-Subscribe RIAs with Flex, AIR, LiveCycle Data Services and ColdFusion

Andrew Muller was explaining the goodness of Push technology and how easily it can be achieved using ColdFusion and BlazeDS (and LifeCycle).

I was also briefly talking to Robin from RocketBoots - he also seems to be a believer of the Push technology - he showed me Rocketboots Labs - in it there is a project called CFJavascript, he demoed some sample apps on how it is used.

It seems Push technology is something cool once you get it - I seem to hear it quite a lot, but I haven't seen any application on my work situation so far, I'll keep this at the back of my mind - one day it may become relevant to me.

Rapid OO Development with ColdFusion Frameworks

Mark Mandel showed different ways of building the sample (mafia) OO application, starting from the usual hancoded service - data layer CFCs, to the ORM using Transfer, to the usage of ColdSpring combined with Transfer. He also touched a little bit on Abstract Base Class and Code Generation in Transfer (which a news to me, I never knew Transfer has a code generator).

JVM tuning and optimization

Mike Schierberl (ah so this is the guy who gives us VarScoper - I didn't know - shame on me!) showed us a few tips and tricks to troubleshoot memory problem in ColdFusion.

He talked about where to look if you suspect something is not right with the server (for example look at logs and coldfusion.out file), how to enable Garbage Collection logging. He then ran through some Profiler tools that can be used to identify memory problems such JRockIt and YourKit Java Profiler.

One thing that Mike kept on driving is: always back up your jvm.config file before making any adjustment to it.

Mike then showed some codes that might cause memory leak such as not var scoped variables especially the big query variable or cffile variable. I think he tried to drive the point that you cannot do much control on Java garbage collection side of things (from memory doing Java certification few months back - garbage collection is not even guaranteed to run even if you request it) - but you can control your code, so pay closer attention on the way you code.

Future Proofing your application development

Andrew Mercer reminds us of how fun and easy it is to build applications in ColdFusion. Not knowing or using OO or frameworks shouldn't make ColdFusion developers feel as a second class developers.

He gave practical advise on how to continously refactor your application to future-proof it against the changes in requirements etc2. I think he also basically said that you should only need to refactor if you have a problem to solve. For instance your app might start with inline cfqueries, but as the app grows you might want to encapsulate the cfqueries (or any other functionalities) together in CFCs, but as you have lots of CFCs - it's becoming a pain to manage the dependencies between them - so you introduce ColdSpring into the picture and so on and so forth.

Andrew also briefly mentioned some lightweight frameworks (such as Framework one) that now emerge as perhaps a backlash to the existing frameworks which seem to be quite heavy and complicated.

At the end of the presentation, Andrew asked the audience for sharing their experience with building apps with frameworks etc. There seem to be a lot of people happy with their experience with FuseBox.

Connecting Hardware to ColdFusion

Justin McLean showed us how ColdFusion (well not directly but via Java) can talk to Arduino boards and make some cool stuffs like making the board fires up lights at random, reading room light and temperature and heaps more.

I was sitting there thinking to myself where is the commercial value of doing this - and apparently Justin also not sure :) - but he said he loves doing this as it challenges him to learn different things, to think creatively and at the end it makes him better programmer. Well can't argue with that.

More resources from Justin's talk can be found at Justin blog.

So that's just a quick summary of day 1 - hopefully I can compile a day 2 summary soon - which even got crazier stuffs like clustering, installing ColdFusion apps as separate WARs, using Java domain model in ColdFusion - madness!!