Saturday, August 24, 2013

Adventures in reinvention

If at first it seems right, that is no reason we can't try again, right?

It has been a while since I've made any forward momentum on the RDA, but I'd like this post to be the first step in picking things back up.  And since this is a new location for the development blog, I'll give some history - after all, that is the purpose of this blog.

From the beginning of this project I felt like I needed an outlet to speak about the development of the RDA  - design decisions and technical choices about the project are so numerous that I'd really like a way to keep track of them for myself even if no one else really reads this.  The plan was to post reasoning, updates, and even code snippets so that this would be a truly open project.  I do enjoy a bit of web design every now and then so I went ahead and made a GitHub page with the intention of keeping track of everything there.  It wasn't a bad system, but I always felt like it could be made better and never had any time to do so myself.

After some though, I realized that I should really stop trying to reinvent the wheel here and just start a blog on Blogger (which made sense since I've already set up the RDA dev email address).  So here we are - this should help me focus on finishing something resembling a product and encourage me to make more posts since updating the site will no longer be such a hassle.  I'll leave the old site up for historical reasons, but I'll be working on back porting the posts from it to here, so I won't have to jump back and forth.  Eventually, I will probably convert the GitHub site into something more static with a link to this blog.  I'll mark posts from the past and try to provide more information in the new spirit of this blog.

Now on to features: the RDA has a solid networking setup with Twisted and AMP currently, but what it is lacking is the ability to separate users into chat channels.  After some waffling, I'll be using a publish subscribe paradigm for the channels.

The bulk of the code will reside in the chat handler on the server.  For now, I'll focus on simply providing the ability to split users into channels - I'll provide the functionality to manage the channels later when I work on the concept of a campaign.