Compound Theory

v2.0

Categories

  1. Transfer
  2. ColdFusion
  3. Java
  4. ColdSpring
  5. Conduit
  6. JavaLoader
  7. ColdDoc
  8. AsyncHTTP
  9. OO Analysis and Design
  10. Flex
  11. Railo
  12. Hibernate
  13. ColdFusion Builder
  14. XML / XSL
  15. XHTML / CSS
  16. Ubuntu
  17. Eclipse
  18. Oracle Database
  19. Git
  20. Usability / UI Design
  21. cf.Objective()
  22. webDU
  23. cf.Objective(ANZ)
  24. Captcha
  25. MAX
  26. Melbourne CFUG
  27. Martial Arts
  28. Random Things

Recent Posts

Projects

Instant Message

Instantly grab my attention...

Recent Comments

18 May 2010 08:30 PM 1 Comment

Presenting ColdSpring 2.0 on CFMeetup.com

On 6pm US ET, Wednesday May 19 I will be presenting Dependency Injection Redefined - ColdSpring 2.0 to the CFMeetup Crowd.

For those of us in more southern parts of the world, that is 8:00am, the 20th of May, Australia.

This is the same talk I recently gave at cf.Objective() and WebDU .

Synopsis:
ColdSpring 2.0, codename Narwhal, is a complete rewrite of ColdSpring aiming is to provide a far more extensible architecture and many more features above and beyond what is currently provided with ColdSpring to date. These new features will give developers the capabilities to build and manipulate this Inversion of Control framework in fascinating and very powerful ways, thus saving them even more time when managing their dependencies and utilising functionality such as Aspect Oriented Programming.

In this presentation we will look at the new features of ColdSpring 2.0, both complete and envisioned, including functionality such as extensible schema support, events for bean life-cycles, enhanced AOP support, annotation support, and much more.

More details and rsvp can be found here .

Look forward to seeing you there!
03 May 2010 05:33 PM 2 Comments

ColdSpring Framework on Twitter

Just a note to let everyone know I set up a twitter account for ColdSpring.

It has automated updates for Git commits, and ticket events. It should be a good resource for helping people keep up to date with the going-on's of ColdSpring, and especially ColdSpring 2.0.

Follow coldspring_fw on Twitter!

29 April 2010 11:59 AM 0 Comments

ColdSpring 2.0 - Now On SourceForge

Up until recently, the goings-on of what has been happening in ColdSpring 2.0 has been fairly limited to my twitter account.

At cf.Objective(), I did a presentation entitled Dependency Injection Redefined - ColdSpring 2.0 Narwhal where I outlined what work had been done on ColdSpring 2.0, what was planned for the future, and where you could go for more information. (I'll also be doing this presentation at WebDU in a about a weeks as well).

The first thing to note, is that the code name for this project is Narwhal. Why Narwhal? Basically because they are awesome. They roam the ocean with a huge spike attached to their head, which can be used to impale, seals, penguins, and apparently also koalas. See - awesome. (Who really has reasons for code names?)

The next most interesting thing to note, is that much of ColdSpring's infrastructure is now hosted on Sourceforge, as it provides a large feature set for us to leverage. Here you can find the project page, which gives you access to the Git repository that contains the code for ColdSpring 2.0.  Sourceforge also provides hosting for the Trac install that is being used to host our documentation and tickets and milestones.  We are currently investigating options for integration with the current ColdSpring website.

I'm not going to go into new features in Narwhal, of which there are more than a few (I have to have some incentive for people to come to my my WebDu Talk!), but documentation has started on the Wiki, and will be expanding quickly in the future (If anyone wants to help with that, the more the merrier!).

You may also note that much of the documentation is also being generated automatically, in an attempt to alleviate some of the burden of authoring.  Now that there are XMLschemas being used, HTML documentation is being generated from them, and ColdDoc is also being used to generate API documentation for the underlying architecture.

It's still very early days for ColdSpring 2.0, but a Alpha1 does loom on the horizon. That being said, the Git repository is public, so feel free to pull it down, have a look at what is happening in the Unit Tests, what documentation is available, and feel free to discuss it on the mailing lists.  Just beware - this is still pre-Alpha, so the sand may shift under your feet as new code gets produced, bugs get quashed and new features get developed.  You have been warned!

More details coming soon!

Back from cf.Objective() 2010

I'm back home again from what I would like to say was, one of the best cf.Objective()'s I have ever been to, including the fact that I was incredibly ill for the last day of the conference. I only managed to catch two sessions in the afternoon, and otherwise was holed up in my hotel room either fast asleep, or feeling particularly sorry for myself.

There are many things I would like to prescribe the incredibly high quality of the conference to, but the the high calibre of the session presentations really stands out at the main contributor.  I believe that when the session quality of a conference is so high, the attendees are excited and motivated by new ideas, which directly translates into fantastic and thought inspiring hallway conversations, and everything continues to flow from there.

To make a few particular references to presentations I particularly enjoyed -

Easy and Flexible Validations for Objects - Bob Silverberg
I had not previously taken the time to look at Bob's ValidateThis framework, but let me just say this: It is slick!  I was very impressed by what was possible with very little configuration, and the the flexibility that was available. My hat is off to Bob for his work with this validation framework.

Continuous Integration with MXUnit, Ant and Hudson - Marc Esher
Marc is always a very entertaining presenter, and this presentation was no exception.  I've used Hudson with MXUnit before, but it was still fantastic to see Marc explain this technology in a very clear and easy to understand manner.  He also gets points in my book for using the Hudson Chuck Norris plugin.

Polyglot Programming - Barney Boisvert
If anyone has read Barney's blog, they should already know that he's a super smart fellow.  This presentation only solidified this fact, in which Barney dug deep into the very compelling reasons a developer should potentially look into developing with multiple languages at a time (something as web developers we are doing already).  Barney covered some really interesting points about language design, the intent of programming code and qualifying return on investment in regards to polyglot programming. All great stuff!

Running ColdFusion on the Amazon EC2 Cloud - Chris Peterson
This was a session I really wanted to attend, but unfortunately I slept through due to illness.  I wanted to make note of it, as I was told that Chris had a completely filled room, and I've been told it was a really interesting presentation all around.

Building Advanced Workflows with ColdSpring - Dan Skaggs
I don't believe I have had the opportunity to see Dan speak before this, but this presentation was an eye opener!  I came to this presentation with my 'ColdSpring Lead Developer' hat on to see what interesting things people were doing with ColdSpring, and came away with a new found respect for the framework itself, and the ingenuity that Dan was displaying in his use of it.  Dan walked us through how his company was using ColdSpring to dynamically configure application workflow and processing - which enables it to be both incredibly flexible in its implementation and amazingly easy to maintain. 


Bob Silverberg and I also did a two day Hands on ColdFusion 9 ORM Training before the conference.  Thanks to all our students who attended - we had a great time teaching the program, and we hope you guys got a lot out of it.  If anyone else is ever interested in taking the training course, please provide your contact details on the website so we can contact you at a later date.

All in all, a great conference all around.  See you all again next year!

Presenting and Teaching at cf.Objective() 2010

I'm a little behind the times on this blog post - but I am presenting and also teaching a course at cf.Objective() this year.

I will be presenting 2 sessions at the conference:

Dependency Injection Redefined - ColdSpring 2.0: Narwhal

ColdSpring 2.0, codenamed 'Narwhal', is a project that has been going on a little 'behind the scenes', except for the occasional tweet from either myself, or Chris Scott.

In this presentation, we'll look at some of the motivations behind the complete rewrite of ColdSpring for the 2.0 version, and some of the new features that will be available that should make dependency injection easier, and way more flexible than ever before.

I've had in my to-do list a reminder to write a long blog post on what is going on with Narwhal, which I should write at some point soon, so you have a good idea what to look out for.  That being said, Narwhal is taking shape nicely, and I think is going to be a very powerful addition to the ColdFusion framework landscape.

Advanced Java & ColdFusion Integration with JavaLoader 1.0

This talk will focus on the new features of JavaLoader 1.0, and how you can use them to integrate Java with your ColdFusion platform in some new and exciting ways.  If you are interested in JavaLoader 1.0, check out this previous blog post, it gives you a good run down on the new features it brings to the table.

We will also be investigating some of more common 'gotchas' with Java and ColdFusion integration, especially around ClassLoader issues, which should be useful for all involved.


Bob Silverberg and I are also going to be a teaching a 2 day training course, just before cf.Objective():

Hands-On ColdFusion ORM Training

This will be as very hands on session, where Bob and I will be going through building an application using ColdFuson 9's Object Relational Mapper from beginning to end.  This will include many best practices, discussions as well as theory about how the underlying Hibernate engine works with ColdFusion.  No ORM/Hibernate experience necessary.

More detail on the course can be found on our website, and also on the preconference page, where you can also check out all the other fantastic training content.

Don't forget that the early bird pricing for both conference tickets, and training finishes on the 29th of January, which is coming up soon!

cf.Objective() is looking to be a great conference. Hope to see you there!

Code Samples for Rapid OO Development with ColdFusion Frameworks

You can download the full code samples I used in my Rapid OO talk that I gave most recently at cf.Objective(ANZ) , and previously at cf.Objective() .

Before people ask, I don't tend to post slides, as they are generally only pictures, and tend to have no context without me talking next to them.

That being said, I'll have a chat with the CFMeetup crew, and see if they would like me to give the presentation there, so there is a recording for posterities sake, and for those who couldn't make those conferences.

ColdSpring News, CFConversations RoundTable and other cf.Objective() tidbits

While I am recovering from the Australian WebDU conference, a few days before that started I got off a plane after the end of the wonderful cf.Objective() conference.

I have to say, this year's cfObjective() was the best organised out of all the years I have been to.  As per usual, the content was stellar, the hotel was lovely, and it was an absolute pleasure to catch up with everyone at the conference.  I have to give a big 'congratulations' to Jared, Steven, Jim and the rest of the cf.Objective() crew for putting together such a smooth and professional conference.

I had the pleasure of doing two sessions, Rapid OO Development with ColdFusion Frameworks, which covered a variety of techniques on how to increase your development speed when building OO models, and I was very happy to see that it seemed to have been very well received.  I had one attendee let me know that 'Now I know why I'm using ColdSpring! I was using it before, but now I know why', which is an amazing thing to hear as a presenter, that you've managed to create an 'Aha!' moment for someone.

I also did my Introduction to Building Applications with Transfer ORM, which was a repeat of the session that I did last year.  Unfortunately Ray Camden couldn't make it to do his Transfer session, so I was called in at the last minute to take his place.

The big news that we announced at cf.Objective(), is that I will now be the lead developer on the ColdSpring project.  Since Chris Scott's major focus these days is the Swiz Flex framework, he decided it was time to pass on the reigns, and since I tend to talk to him regularly about Cold/Spring, have contributed code to ColdSpring , and know about running an Open Source project, he seemed to think I would be a good fit.  I'm pretty excited about the opportunity, and have discussed some great ideas with theColdSpring development group, of which Chris is going to stay on as lead architect.  I expect we will start off by building the infrastructure around the project, e.g. a centralised wiki, ticket tracker etc, and then move on to some more interesting items.

The obvious question there is, of course, what does this mean for Transfer? (I think I need to start writing down how many times I've been asked if it's 'Dead'.  Does anyone actually expect a 'yes' for an answer?), and quite frankly, I don't see this impacting on Transfer much at all, simply because this is going to be code that I would have probably ended up writing on ColdSpring anyway, but it is now a more formalised relationship.  When I run into a feature or a bug on an Open Source project, that I want to be implemented, my first natural reaction is to start looking into the code, and writing the feature.  This was first exemplified by my contribution toColdSpring of annotation based pointcuts.  There are several aspects of ColdSpring I wanted to improve on, so it was just a natural reaction for me to end up writing code for it.

As stated, the content at cf.Objective() was brilliant as per usual, with my own personal highlights being, Advanced ColdFusion Server Administration (Adam Lehman), Advanced ColdFusion 9 ORM (Terry Ryan) and ColdFusion Portlets (Adam Haskell).

Thinking about the content, I have a little confession to make, that I realised on the way back from cf.Objective() this year.  I have a tendency to go to the wrong sessions when at a conference. This may sound like a weird thing, but I realised the last few years I tend to go to sessions that I already know a lot about, just to see if they say something a little bit extra that I can add to my knowledge base.  Quite often I end up walking out feeling like I haven't added much to my repertoire.  Really what I should be doing is going (mostly) to sessions in which I know absolutely nothing about, which means I actually get the best return on the my investment in the conference.  While it may not be specifically applicable to what I'm currently doing, at the very least it will inspire me to do some interesting new things, and may give me some knowledge that I can then apply at some point in the future.  This is a philosophy I plan on applying to all future conferences that I attend.

Finally, I also had the opportunity to be part of a CFConversations round-table on the second night of the conference.  Brian Meloche, Andy Powell, Andy Matthews and I had a really good chat about the conference in general, our thoughts on some of Adobe's upcoming products, various other topics relating to ColdFusion.  It was lots of fun to do, and you can download and/or read more about it here.

Again, thanks to all the cf.Objective() crew, and look forward to seeing many of you again at cf.Objective(ANZ).