I've recently been looking at different ways to extend and reuse code within various frameworks with a couple of the guys at work. We looked a all aspects of the systems that go to make up a web application and the content management that is involved.
One of the area's we looked at was data definition, how it could be made more intuitive, more convention based, more extensible and more reusable. We talked around a lot of concepts. One of those concepts was something called data streams from the Fedora Content Model.
I'm sorry to say that I've been putting this post off. Why? Well to be honest I've been struggling with getting my head around how to actually use longpolling. Its all very well understanding the mechanics, but how can you use it effectively.
Part of the problem I've been having is the nature of sending messages and filtering them with BlazeDS. What I keep forgetting is that long poll messaging is "fire and forget". You don't send a message and expect an immediate response. You send a message and a response might be broadcast to all event listeners with a specific filter. If you want a request and response, call a webservice or a make an ajax request. Don't use long polling and event gateways.
I'm on fire!! A blog round-up two weeks in a row!!
I read and pick the entries for the blog round in Google Reader. There are currently 101 subscriptions listed there, but I'm always happy to add more if someone would like me to consider their blog posts for inclusion in these sporadic updates. You can see the 101 already added listed on my blog roll page.
Lets crack on with the round-up.
I've been tinkering with a couple of bits and pieces with Twitter for a little while, but I've never really put them out there or publicised them.
The first, and most importantly, is the twitter account CFOverflow. The second is my list of twitter favourites.
I'm rubbish! I really am... I promise and I promise to keep on top of Blog Round-ups, but I never seem to quite manage it.
I would really like to keep writing this round-ups ever week, but its quite an effort. Can I persuade anyone to co-author these posts with me? Leave me a comment. Drop me an email. Shout me on Twitter.
Anyway, on with the round-up.
Ten days ago I post my first project to RIAForge. Its a pretty simple project as it only consists of one CFC and I would appreciate some feed back on the code. Hence the request for a code review.
This CFC is based on research and work that I did to be able to create a finance calculator for a client and works quite nicely. I'm also pleased to see that at the time of writing this post my project has already been viewed 700 times and downloaded 23 times. I hope you're finding it useful.
The CFC is, as the title of this blog post suggests an APR and IRR calculator and you can download it from RIAForge here : http://aprcfc.riaforge.org/.
In my last post on long polling I went through the basic set up of ColdFusion and BlazeDS before getting into too much code.
This part I want to get a basic connection and a couple of simple messages being sent and received.
One of several pieces of functionality we'd like is to have is real time notifications of workflow changes. The way it was described was "we want to push alerts to the users".
I decided to have a look at how we actually addressed this "problem". We didn't really need to "push" alerts to users, so the solution was traditional polling or long polling.
I've been compiling ColdFusion applications on and off over the years for various reasons, usually on my server or another server that I have access to.
Recently I've been compiling for deployment to an external server that I've not had access. I ran into a few problems with the resulting compiled code not running on these servers while it runs perfectly locally.
To start at the beginning, I've often simply pre-compiled an application in place, so that it need not compile the templates on first access. Occasionally I've compiled for source-less deployment. Usually under those circumstances I've had access to the server, where I've simply loaded source code onto the server, compile, dropped the compile code into place and then removed the source.