Oct 02, 2005 11:26
It's been a big few weeks in xrcd development, many things have been added, and we've all endured longstanding splits and downtime due to the instability. All this is in an effort to get xrcd's code 'up to scratch', as there have been many open issues for a long time now which needed addressing before xrcd could progress any further.
Server links should stabilise a bit more now, synchronisation routines have been evaluated, and a lot less killing should need to be done to correct mistakes. Parts of the protocol have been modified to minimize data transfers, for example; Servers will no longer reference each other by fully qualified host name, rather only their aliases will be transported around. This eliminated alot of redundancy in the protocol, and reduced data transfers considerably.
NOTE: Aliases also spill over into the user space, and in many commands, servers should be referenced by their alias from now on.
Alot of problems in the connection I/O has been addressed with the introduction of buffering, while this is only preliminary, and not a totally guaranteed fix, it has made connections more reliable. If you experience missing messages, or messages that seem out of order, print as much raw data between yourself and the server regarding the command you issued to generate the error, as well as some parts before and after to aid debugging, and send it to xrcd@juped-dev.org.
Code in xrcd has gone under heavy reconstruction to follow specific guidelines that were required to ensure the code was easily manageable, as well as run optimally. Hopefully this should make the xrcd experience not only faster, but more reliable in future. I'm also happy to announce that BSD support has been added and tested under FreeBSD, it might be nice to try some other UNIX flavours in future. Windows support is theoretically possible, but one of the new libraries xrcd depends on, mhash (a high end hashing algorithm library), requires a Windows dll to be built. Anyone with experience converting CygWin code to DevCPP, is willing to make a DevCPP *.devpak, or is able to compile both mhash and xrcd under cygwin is welcome to email me personally to discuss it further.
Anonymous access was briefly enabled to the SVN repositories here at chaoscontrol.mine.nu, but after re-evaluation this has been disabled. Security concerns have required me to segregate code between xrcd 'release' and xrcd 'devnet'. Releases will most likely be made available on Source forge in the future, once xrcd reaches beta. On the plus side of SVN, automatic updates appear to work under both Linux and BSD now.
In the last week, with the enabling of BSD support, we have introduced hostcore.us, kindly donated by stefan. It's actually become one of the more reliable xrcd servers. Perhaps because BSD is more resistant to coding errors. It has been added to the irc.* and us.* pools, so beware, Australian users should now use au.* to ensure an Australian connection. More servers are welcome in all regions.
Alot of the restructuring has also been involved in the connections, more logical handling of different protocols has been added. This was started by an interest in adding TetriNET support. Currently, xrcd supports connecting to the TetriNET port and logging in, but no game play or channels as yet. Currently this is only enabled on knuckles.au but if people are interested in checking it out I can enable it on the other servers.
Games like TetriNET are an invaluable community relaxation tool, not only in chat worlds, but in development worlds where you just want to chill out. xrcd's main aim is to be your all-in-one chat network tool, but it's able to provide so much more than what anyone originally thought, even myself. All in all, xrcd is still very unstable, but it's getting to a point where it may not be so much longer. I pray for that damn day, I've been going non-stop all week.