Max (avatraxiom) wrote,

My Latest Side-Project

So, I haven't said much about it to anybody, but for a few weeks I've been working on re-writing AWStats. It's a fairly-popular program that generates charts and graphs based on your web server's logs, so you can see how many hits, visits, etc. that you're getting. It makes lots of different charts and graphs.

However, the code is pretty messy, and it's not maintained very much by its current author. I emailed him, and he said that I should go ahead and make my changes, and he'll either incorporate my patches into AWStats or I can just call it something different and ship it myself.

I've been making a lot of progress. My first focus has been to take all of the HTML output and put it into templates using the Template Toolkit, which leads to a lot of code cleanup. That's what I'm still working on now, though I've made a lot of progress on it. It's probably also led to security improvements, since I've been correctly filtering things.

I've also started to make the code use instead of manually sending HTTP headers and manually parsing the URL query string.

So far (I think I've worked about six or seven days cumulatively on it) the changes I've made can be represented as a patch of about 4700 lines and 203KB. For anybody who doesn't know these things, that's a huge amount of development. And that's just how big it all is as one patch--if we counted each change I made separately, it'd probably get closer to 6000 lines.

I think this will be a pretty good thing to do, because the current status of all open-source web-log analyzers is:

Webalizer: Hasn't been updated in years.
Analog: Hasn't been updated in years.
AWStats: Maintained only barely, probably full of security holes, very messy code.

And that's it. So since I know Perl pretty well (and AWStats is in Perl), I figured it would be a good thing to re-write and get out there.

Tags: awstats, tech
  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded