Chatspot Blog Launched

April 15th, 2006

We’ve finally got the development blog online, although we’re still working on getting the template up and active to fit this in with the rest of the Chatspot theme. Hopefully this blog will be used for giving an overview on how development in Chatspot is coming along, answering any frequent questions we notice on the forums and basically promoting more transparency in the whole process from design to being on your website.

For now, comments are not going to be enabled. I’d like the main focus point of discussion to remain at the forums, where everyone can easily access the repistories of knowledge which people are building up for us (thanks to continued contributions from people like Tim and ~HG~). Both me and Techboy will be posting here, although probably me more as I know more about where all the development is headed and new things that will be launched up on site soon enough.

Now is a good time to subscribe to the RSS feed or make a note of the Monday/Saturday update schedule. We’ll be posting sneak previews, teasers and maybe even some preliminary beta downloads here so keep your eyes wide open.

The v2 Code Crash (and how it’s being rectified)

April 17th, 2006

Chatspot v1 was quite a ‘quick-fix’ solution built on top of Smartor’s “Chatbox” phpBB modification, which, in itself, is not the best code the world had ever seen. Things would’ve stopped there unless it had experienced roaring success at Dreamviews, which, ultimately, spurred me to take it on as a sort of pet project to see how it could be modified to build upon that success. Unfortunately the focus was more on features than it was stability, and this led to unimaginable problems. v2, as it stands today, is a big mess of several features who all have different ways on how to do things. Various people have contributed their patches and fixes here and there, and it is possible to find seams in coding standards by pretty much just taking a glance at the codebase.

So I was faced with a small dillema. Some people are quite happy with what “just works”, and v2 does this, barely, but it was clear to me and Techboy that there would be absolutely no way to develop the v2 branch any further without creating a huge security hole that happened to have a few chat features bolted onto it. So it was decided a better idea to halt any further development - having to drop some features I would’ve liked to of seen myself - and begin work on a v3 that allowed ‘home grown’ features that other people had added to be dropped into Chatspot easily while fixing the codebase-rot that was beginning to show strains in ways of v2’s performance and security.

v3, then, employs a new modular-feature architecture that allows different modules for different features to be added. We, the authors, employ it, but it is made primarialy for other people to be able to add their features in without disturbing the code. This allows us to update any security holes across any installations that have competent Administrators who are able to use the updater (and it is simple enough, sometimes able to do things itself), while keeping any new features people have added working. v2 is not like that - if there’s a security hole near your hack, you need to start splicing code to solve it. This can be a complicated or at least gruelling task, and v3 completely eliminates this.

How the module system works is something I’ll be looking at in next posts (Saturday). We use modules for core functionality (build frames, post, poll and so forth) and have coupled it with our Javascript framework so modules can easily display their own output or add their own functions without having to modify any of the base code. It’s still under construction, though, and a lot of thought is paid to making sure that it is simple enough to use -  I’m anticpating some annoyance when people see this is not such a feature-filled release, but that’ll soon be quelled ;) - while being powerful enough to reduce the temptation of hacking the code.

Planned Site Enhancements and Module System

April 22nd, 2006

So, you might have noticed that Kaniaz and I have been doing some minor updates to the Chatspot website. I’m gonna use this post to explain what these enhancements will be. I’ll then explain the module system.

The most noticable thing, which some of you may have already noticed, is the fact that the site is now integrated with our forum and that there is now a site-wide . It notifies you of your Private Messages from the main site now also, provides a link to the RSS, and some of the forum pages that were linked from the black bar on the forum - which is now gone. We plan to add some other nice bits and peices to this - and if you have any suggestions, post them in Development on the forum.

Some subtle changes have also been made to the forum template. You might have noticed the user column on posts has been shrunk a little and we have shiny new rank images :P . and yes, Kaniaz is working on making the two other templates for the website and thinking of a way to make default subSilver make a bit more like the site design - because let’s face it, it’s not very pretty.

On another note, I’m thinking of making my Trac installation public - that is, our development server - so you can all download copies of the “cutting edge” versions of Chatspot. However, at this point I think it more likely that beta versions will be released to our “veterans” by invite from Kaniaz and I rather than releasing possibly unstable and dangerous code into the wild - yes, we learnt from our Chatspot 2 mistake. Stay tuned for more information on that - but I am not entirely sure I want to do this so don’t hold your breath (and if you do, I’m not liable for death, you have been warned!)

Moving on to modules! Kaniaz mentioned he’d be looking at it, but it’s my turn to post, so I’m going to instead. I’m going to start with a diagram - of Kaniaz’s, ironically - of the Chatspot 3 architecture, taken from our Trac.

ChatspotThree @ trac

So you might be asking - what does all this mean? Controller is the main central point for all of Chatspot’s communication between systems. The first thing that is loaded in is the Modules class. This loads in all the modules - which each have corresponding XML files. The XML tells it what action the module wants to hook into - for example, the post action. When the controller receives an action parameter, it asks the modules class if anything has hooked onto this action. If it has, it then passes control to the module, which will handle the action.

There is then a Database class which is an abstraction layer between phpBB and Chatspot - this automatically cleans up input too, so addslashes htmlentities stripslashes isnt ALL OVER the codebase. There are two helper classes on top of this - User, which handles session data and provides an abstraction between phpBB, and Room, which handles room session data such as permanent, room owner, room permissions (room permissions will be far more complex, too.)
The javascript provides a host of effects and, of course, handles XMLHTTPRequest - which you might know as Ajax. It has support for a growl-like popup which we call “Toast.” Essentially, you can use this for anything you like when writing a module.

Chatspot 3 will be great like this, in our opinion - module coders will be able to do anything without editing the codebase - and end users will be able to have FULL control over Chatspot’s workings (excluding required modules - post, build, poll.) There will be more complex room permissions, moderator permissions, just as people have asked for, so that for example moderator vs admin kicks can be controlled if the Site Admin wishes it to be so (this was requested a few times.)

So, of course, a version of Chatspot you’ll all love is on the way. ;) Keep your eyes out on the forum, because I know you’re all just drooling over my post :P

See you all later,

Techboy

PS: For the record, info was replaced with devblog because it wasn’t visited very often at all according to the site stats.

Well then, long time no see.

February 27th, 2008

Hello there again,

It’s mark here, or Techboy; if you’re going to refer to me as a nickname, though, let it now be “Demerzel” which is a lot less, er, amateur. If a bit more geeky.

Last time I wrote here was April 2006. I have nothing to say now, though.

I look to return to work on Chatspot perhaps over the weekends initally and in the summer of 2008. I still have a development server with Chatspot 3 on it. An entirely different chatspot 3 from the one outlined below, of course.

The main site is broke, but incase anybody is subscribed to this, I am of course reachable.

techboy@users.sourceforge.net, just like the good old days.

Speak to you soon,
Mark.