Birthday and Shakespeare

It was my birthday yesterday. Jennifer and I enjoyed a performance of Henry IV Part II at the Courtyard Theatre in Stratford, courtesy of the RSC. The play lies in a series of historical plays written by William Shakespeare, starting with Richard II, Henry IV (Parts 1 & 2), Henry V, Henry VI (Parts 1, 2 & 3) and Richard III. They track almost a century of fascinating English history more or less accurately and provide a great evening’s entertainment when performed as well as the RSC do!

Now we’re enjoying Michael Palin’s New Europe and planning our next holiday backpacking across Eastern Europe.

Christmas at the Union

Yesterday we (OpenHeaven) ran “Christmas at the Union”, our Christmas event for 2007 at Loughborough Students Union. It was a great evening, carols, Santa, stories, sweets, silly songs and a deeper message about the meaning behind Christmas. Afterwards we (the “crew” team) pigged out on a Chinese takeaway, which was somewhat larger then we had anticipated:

Chinese Takeaway Supreme!

The rest of my photos will appear on Facebook, but here’s a taster:

Christmas at the Union Christmas at the Union


All photos now on Facebook:

Part 1

Part 2

MS Log Parser

Today I’ve been working on logging and auditing for our web app. We’ve already got it logging major events (searches, views, updates) but today I’ve added in auditing of any changes that a user makes.

This leads to one thing – huge log files. But help is at hand in the form of Microsoft’s LogParser tool. It is a command line applicatioon which provides a very powerful SQL like query syntax. You map an input source through the query onto an output source, which include charts created with Microsoft Office Web Components and even your own template files (useful for HTML reports).

As an example…

Say my log file contains data in the following format:


I can easily create a report of the distribution of hits during the day:

> logparser.exe “select to_string(time,’hh’) AS Hour, Count(*) AS Hits FROM mylog.csv GROUP BY Hour” -iTsFormat:”hh:mm”

Which gives me:

Hour Hits
—- —–
00   1
08   2782
09   8098
10   10710
11   13233
12   11048
13   10257
14   12467
15   11411
16   8304
17   2864
18   1216
19   610
20   52
21   10
22   1

I can then drive a nice bar chart like so:

> logparser.exe “select to_string(time,’hh’) AS Hour, Count(*) AS Hits INTO chart.jpg FROM mylog.csv GROUP BY Hour” -iTsFormat:”hh:mm” -chartType:Bar3D -chartTitle:”Hits by Hour”

Example Chart

So very cool and very powerful. I’m now wading through the tool’s author’s book.

Technology, Literature and the Rest