Announcing cwBlog!
Before I even start talking about cwBlog, or telling you what it's all about, I want to say a big Thank You to Ray Camden for writing and maintaining BlogCFC. It's a great piece of software and a perfect example of how ColdFusion applications can rock! *sheds a tear*. But, there comes a time in every relationship where you just have to sit down, take a couple of minutes and wonder: is it all worth it? Do I really need to put up with all of the shortcomings? Of course, I jest. However, there have been occasions where I find myself wanting to tinker with the inner workings of BlogCFC and thinking: what happens to my changes when a new update comes out? This is where cwBlog comes into play.
cwBlog is going to be my attempt at writing up a complete blogging application in ColdFusion. I know it's ambitious, and also probably stupid, but I'm not known for making smart decisions. I've prepared a list of some of the key features that I'm planning on:
- User management : this will allow multiple users to post to the same blog;
- Categories management : other than the standard uses, the admin will be able to give users write access to the categories of his choice;
- FCKEditor support built-in, with configuration management straight from the admin;
- Easily skinnable layout, preferably also for the admin;
- Interactive code snippets : links to view the code in a separate window and for download;
- Modules support, or plug-ins;
- And other standard features, like RSS feeds, archives, stats page and links to popular bookmarking sites.
The entire project is going to be open source : every single snippet of code will be freely available for viewing and distribution. I will also be posting details of how work is advancing, issues I'll be facing and interesting milestones as I reach them. Help is obviously welcome, so if anyone wants to join in on the fun just let me know. You can also simply sit back and enjoy the show. EIther is fine by me.


Your mention of giving users write access to specific categories is even very similar to something I'd done with the framework's rule managers in which the blog owner could assign rules to determine who would be allowed to compose or even comment on the individual blog. It happened purely by coincidence that you could do some really powerful things like allow comments with a time limit, merely because of the introduction of the rule manager.
Of course the problem was that with it being so feature rich, it turned out to be a bad sample application for the framework because so much of its code had nothing to do with the conventional workings of the framework. You would have actually had to dig to find where the framework came into play in many cases.
Anyway I've always had this notion of being able to customize an application entirely through add-ons or "plugins" in such a fashion that customizations never edit any existing code. The problem of apps that are "easy to modify" is that they later become "impossible to upgrade". Which costs people money in the long run. It's a primary aspect of the framework that, much like basic OO principals, you should be able to customize basically anything without ever editing someone else's code. And so since you never edit someone else's code, you always have the ability to upgrade to new versions later, including your modifications and you don't end up losing all that time and money you spent modifying it.
The reason I mention it here is that it seems like if you're going to create an application like this blog and you want it to be really extensible, you might want to have a look at the framework as a potential starting point. :) You may not end up using the framework as a basis for the code and that's fine, but you may also find ideas or techniques in it that are helpful in designing your own extensible architecture. And being open source of course you're free to take whatever code you find useful.
I have a request, Francois. Can you make the user account system accessible to plugins so webmasters can use an existing database of users? For example, if you have a community or business website with user accounts it would be very useful if blogging can be added to the site without having to have a second login prompt for user. I guess somehow sessions would need to be shared so if a logged in user went to the blog page then your new blog app would notice they're already logged in to the parent website.
Can you add tags to improve blog searches, then someone can write a plugin that shows "Other blog entries that are about xyz...". Implanted keywords produce a very high level of relevance rather than just searching blog titles and body text.
Good luck with the project. Competition creates innovation! (Just look at the different CFML engines and web browsers and the cool things that have come out from that)
I hope not, use jquery please! :-) It's a less bloaty framework, just 15KB. Luckily for anyone using CF8's ajax tags Google Chrome seems to be compatible with it, but imagine if it wasn't. CF developers would have to wait until Adobe release a hotfix for CF. At least with independent js frameworks the developers are free to upgrade to the latest version whenever they like - for bug fixes or new features. Sorry for the rant. :-)
Thanks for all the comments. I never expected to get this much feedback so quickly!
@ike,
You're giving me alot to think about. The only experience I've had with frameworks up until now was Coldbox, but I will definitely take a look at onTap now before starting ;). I also agree that the application should be extensible through plugins, rather than through the code itself. I'll have to think long and hard on how I want to implement that before getting too far ahead.
@Henry,
As much as I praise Adobe for putting in the new AJAX tags in ColdFusion 8, I also find jQuery to be a much lighter, stable and faster library for creating interactive applications. Although jQuery is a little harder to learn, I believe the added benefits are worth the steeper (just a little) learning curve.
@Gary,
Thanks for the info on TinyMCE. I had only worked with FCKEditor in the past but will take a look before getting started. As for the user account system, I'm considering creating the login system as an actual plug-in, so it can easily be customized without affecting the actual application's basic functions. Tags are also a great idea and shouldn't be too big of a challenge to put in ;).
If you use a framework like Cold/FuseBox then how easy would it be for people who don't use frameworks to a) install, and b) understand? Not having used frameworks I tend to avoid apps/tools which depend on them. Sure, it may be down to lack of understanding on my part.
Login as a plugin - excellent. Other plugins people could create - YouTube video embedding, send to my Facebook, comment filtering (basic swear/spam words or compare in real time against a spammers database).
Something to think about - when subscribing to a blog it will either email you *everytime* someone else comments or will only email you once until you click on the emailed link to view the comments. I prefer the latter method to save a build up of emails if the blog is popular. Might be cool to give commenters the option on which format to subscribe to.
I've also found it fairly easy to pick up, since it is heavily documented on the main site. Since I've started using it I've found that I my code is more organized and the tedious parts of scaffolding applications is much easier/faster.
I also like your suggestions for the plug-ins and the comment system. I'll definitely try and make both options available to the user :).
With a few blog systems already on the OS market should one not support them rather than make others?
I agree with you, in theory at least. cwBlog will be open source, so there'll be nothing stopping Ray or any other developper from taking "inspiration" from it's development ;).
My purpose here is not to replace BlogCFC (I wouldn't dream of it). I especially want to try my hand at creating a complete application, maybe throw in some OO concepts in there, and see where I can go from there.
Other than that, if people want to pick up cwBlog for their blogging software that's fine, but that wouldn't be the main goal.
Don't forget the most excellent mango blog, as well as mach-blog and farcry blog who's users sing their praises.
Perhaps changing the "core" of blogCFC would be a lot of work; you might want to move to a more plugin type architecture as well as a stronger OO back-end etc.
I certainly wouldn't say that just because there are 4 (at least) cf blogs out there that you shouldn't build your own, but at least make sure that your feature set covers what has already been provided to the community and/or you add your own features.
However, since the app will be plug-in based, it should be fairly easy for someone to develop a different UI without affecting the core functionalities. Only time will tell ;).
http://www.batteryfast.co.uk/laptop-ac-adapter/com... AC Adapter for Compaq 6.5A 18.5V Pavilon ZD7000 NX9500
http://www.batteryfast.co.uk/dell/d620.htm dell d620 battery,