Site Update - 5-March-2006

It's been quite some time since an update. I know how irate you people get without your updates... So here I go. I've been rewriting the site in Ruby on Rails. My progress in this endeavor can be seen in our Subversion respository in the www module. The basic site is fully functioning, but right now I'm focusing on getting content editing working (pretty much done), and then the more important part: a forum engine. I have found that Rails Engines is a very powerful plugin system for Rails, and I see no reason to tie the forum code to our Rails. Why not make it an engine? It'd certainly make things easier for anyone wanting to implement their own forum in Rails.

On the ignitionServer side of things, well. I did some tinkering with the code, and found out something that didn't dawn on me until just a few days ago: there is no way that it would be a good idea to embed the MSXML runtime and use it to parse XML files. I originally thought the overhead that the XML parser introduced wasn't really that bad, but I noticed that the server responds VERY slowly with XML parsing happening. And, well, a-duh. That makes perfect sense, it's an XML PARSER! So... I need to figure out another data format. The configuration file format from the 80's needs to go, but I need to use something that will both last for an infinite number of updates AND be simple to implement. I've been looking at two or three things. The first format I looked at is JSON, or JavaScript Object Notation. It's pretty complex in the amount of data it can represent, and shouldn't be difficult to make a parser for. I've also looked at YAML, mainly because YAML is the format used by Ruby in many locations. It's simple to write, but I don't know if the complex syntax (i.e. if you leave out a space, it spews everywhere) is worth my use of it. I've also thought of some other stuff that would work.. but it's not as elegant as I would like. Honestly, I don't know. But I do need to find a good, simple, data representation format.

Essentially, with ignitionServer... I need to do a few things to be able to release 0.3.7. First and foremost, I need to rewrite the configuration file reader and format. Then, I need to write the authentication framework. Pretty much, I need to start laying the brickwork for role based access control. Role based access control makes the most logical sense, and also is the most customizable for server administrators/owners. Then, I need to make ignitionServer run as a Windows service so I can nuke the monitor's funky-munky connectivity. By running as a Windows service, ignitionServer will be able to run without people being logged in to the machine (so, for example, it will be useful for Windows Server users). It also makes it more secure in that it can run in the security context of a special user (i.e. "IRCX Server" or "ignitionServer"). This prevents ignitionServer from accessing other users' data and whatnot, should a bug crop up that lets such behavior happen. Then, I need to make graphical administration tools. Like a control panel applet or something. I'm not sure how I'll do this yet. I think that the best course of action is to only allow Administrators to run it. Anyways. All this, and then I'll be able to release 0.3.7. Then, 0.3.8 will come out with more improvements, hopefully a remote administration program, real documentation (YAY!), and so on.

I have a lot of stuff to do, honestly. To me, getting the site up is top priority. I'm working hard in this respect, as you can see if you look in Subversion. Then, I'll work on ignitionServer. Pretty much, I want everyone to understand that most of the changes I did before Christmas will have to be reverted because of the XML parser crap. I'm deeply sorry about it, honest. But I think you guys want smooth, fast software more than you want bloated, slow software. So I think that it'll work out in the long run.