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!
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!
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!
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!
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():
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!
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.
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).