Alex Elliott
The internet home of a prospective software engineer
This is my personal blog where I discuss projects that I'm currently working on, work I've recently completed, or write about any topic which has caught my interest in the world of Computing from my studies or from my personal research.
Latest Articles
A New zBot
November 13th, 2008
I did say there was news of a project coming up, so here it is. Version 2.0 of my PHP IRC bot, zbot (on irc.zymic.com). It’s been out of action for a while, since it was hosted on a machine I don’t have access to at the moment (no SSH, bleh). But there’s a (better) alternative now, so I can start work on getting it back.
Identifying the problem(s)
Building a new 2.0 version of my IRC bot has been something I’ve wanted to do for a while now, and there are a few main reasons why I’ve decided that it should be a fresh start rather than an update. These are mostly (fairly) fundamental feature issues, which should be implemented quite a long way down the source tree – and so modifying the source to patch them in would be a tedious and lengthy process which might introduce a fair few bugs into the codebase.
The main things I want to improve in the new version are as follows:
- Generally cleaner code (I might choose to release this source publicly, and I want it to be nice).
- Improve the module system to allow the modules to intercommunicate, by doing this I can abstract even some of the “core” functionality into modules, which will allow for patches at a later date without a restart.
- Ground-up design for a bot rehash feature, in which it reloads all settings from configuration files.
- Simpler text-file configuration files which will be parsed and read-in.
- Work out a system for concurrency, perhaps spawning child PHP processes to handle any tasks which might take a long time (such as fetching files online), this would free up the rest of the core loop to handle other input while these tasks are performed.
- Additional bot features, such as automatic tracking of users in channels, dynamic topic changes (so for example, we could specify a field which would be changed by an external source, allowing us to do things like include the current stable version number of PHP in #php).
- Web interfaces for some bot data, like current factoids, quotes, and possibly a module repository that people could submit to.
Moving forward
I hope to look at building a new version soon, sorting some groundwork for things at the moment, I’ll try to keep this updated as work goes on.
Of course, my good buddy Ed (Bread) will probably assist as he did in the last version (he provided the initial module system and a few plugins), and maybe this time we’ll actually write some documentation so people can write their own modules easily! :p
Since I will be hosting this on my shiny new VPS, we have more freedom (having a web interface was not possible before), and it means we can have one central source tree (I’m thinking stable/ and testing/ with a script to update stable when testing is shown not to break things
).
Search
Recent Articles
- Back to Work
- Expression Editor Update (2)
- Expression Editor Update
- A New Project
- My Little FAQ For PHP Pitfalls
My Projects
- Expression EditorGraphical Regular Expression Editing Tool
- My Pastebin – PasteSite.ComMy Easy Usable NoPaste/Pastebin Application
Blogroll
- Binary VisionThe Technology Musings of Ed Cradock
- Tim Davies sans vowelsThe Blog of Tim Davies
- WizedAdam McPeake’s Blog
Other Sites
- HideMyAss – Free Web ProxyHide My Ass! Free Proxy and Privacy Tools – Surf The Web Anonymously
- Iam-andy – Design PortfolioThe Design Portfolio of Andy Mallaby
- Zymic – Free Webhosting and MoreFree Web Hosting, Free Templates, Free Tutorials and more! Zymic Webmaster Resources
Archives
- July 2010 (1)
- January 2010 (1)
- December 2009 (2)
- November 2009 (1)
- February 2009 (1)
- January 2009 (1)
- December 2008 (1)
- November 2008 (5)
Categories
- arbutus (1)
- c++ (4)
- general (4)
- musing (1)
- php (5)
- polymer (4)
- zbot (3)
- projects (11)
- expressioneditor (4)
- qt (4)
- regular expressions (3)
- web (5)