Andre's Blog
Perfection is when there is nothing left to take away
A look back and plans for 2009

I made nine releases of Stone Steps Webalizer in 2008. The most notable feature added in 2008 was XML/XSL reporting, which gives website administrators full control over generated HTML. About six thousand people downloaded various number of copies in 2008.

One of the challenges of 2008 was lack of funding - not a single donation was contributed to help the project in 2008. Hardware, some commercial software and co-location are not cheap and I hope to see more support in 2009.

Time to think about new features. Here is what I have in mind, ordered by priority. If you think something is missing, leave a comment or start a discussion thread in the forums.

Multiple DST Ranges

Only one daylight saving time range is currently supported. Originally, I didn't think that having to edit this setting once a year was a big deal, but now that I did this a few times in order to process historical data, I see multiple ranges quite useful.

Transfer Amounts

Transfer amounts like 761091243 are almost painful to look at in high-traffic website reports. Showing such number as 761GB would make transfer amounts more human-readable. At first, I was thinking just to add a multiplier suffix to each number, but then realized that a mix of numbers like 123GB, 456GB and 789KB would be even more confusing and thought just to make the unit of measurement computed at run time and show KB, MB, GB or TB instead of hard-coded KBytes. The jury is still out on this one, though.

Index Page Improvements

The index page report hasn't been updated for a while and is missing averages across all months and monthly download counts. It would also be convenient if a row for each month could be recreated from the corresponding database file.

Report Improvements

There's a number of things I have in mind to improve usability of reports. For example, instead of one continuous report page I would like to introduce the concept of an active report, which can be selected from the top menu, so that only the active report is shown and the rest of them is hidden. This would allow me to introduce more graphs without cluttering the report page.

Query String Filters

When URL filters, such as HideURL and IgnoreURL, are being evaluated, query strings are ignored because it is not possible to apply begins-with and ends-with patterns to a collection of query strings. Instead, I plan to extend the functionality provided by the existing query string filters (i.e. IncludeSearchArgs and ExcludeSearchArgs) to be able to hide or ignore associated URLs.

Stone Steps Webalizer Daemon

Stone Steps Webalizer is a command-line tool and one needs to set up a scheduler, such as cron or the Windows scheduler to run it against new log files day after day. Being able to set up Stone Steps Webalizer as a system service continuously monitoring log directories would produce more up-to-date and accurate results.

Load-balanced Log Files

Large websites often use multiple load-balanced web servers and each server produces its own log file. Being able to process multiple log files as if it were a single file would allow web administrators to see combined statistical data for the entire web application.

64-bit Support

This is probably the most frequently requested feature, as it would allow Stone Steps Webalizer to access memory beyond the 2/3/4GB limit, depending on the OS type, which would allow very large log files to be processed without having to swap in and out of the Berkeley database. This feature, however, is dependent on whether I find sufficient funds to buy 64-bit hardware and software or not.

Posted Fri, 05 Jun 2009 15:06:13 GMT by BananaAcid

 mybe you could add "multimatching" for user agents.

currently if a "GroupAgent" matches a line, it can not be rematched in another group.

i tried to create groups for OSes, Browsers and .NET versions.

since all strings are allready matched for OSes, some are left for browsers, and none are left for ".NET CLR i.i" matching... unfortunatly these groups are not seperated by the left over ones and the groups can not be grouped in goups themselves.

to sum up:

- multimatching (let lines be matched with multiple GroupAgent calls)

- allow grouping of GroupAgent groups (for example 3rd param in GroupAgent, first mentioned groupparam defines the first group to show that has a seperator too/ own box )