Archive for the ‘Reading’ Category.

Unconditional Success

Before I forget it completely, I have to post a link to Nick Williams’ Unconditional Success. This book is outrageously funny. We kept a copy on our desk and would open it at random pages to reinvigorate the team spirit.

Visualising log files with gnuplot

I recently had the pleasure of supporting a new system throughout its first month of production. This was a good opportunity to refresh my command line skills. As it happened I spent a lot of time looking at log files trying to figure out what happened to the productions system. I figured, that a graphical representation of the events would be nice and started using gnuplot.

First I started out with a bunch of bash scripts, using what your usual unix installation provides, but then I actually came up with some groovy scripts to provide better abstractions. A log file generally looks somewhat like this:

04/01/1970 07:55:13 garbage
04/01/1970 09:27:48 Event 2
04/01/1970 10:01:28 garbage
04/01/1970 10:38:30 garbage
04/01/1970 10:48:36 garbage
04/01/1970 10:51:58 Event 2
04/01/1970 11:03:45 garbage
04/01/1970 11:34:03 Event 1
04/01/1970 12:24:33 garbage
05/01/1970 04:35:50 ERROR

There is a lot of garbage plus some events we might be interested in. It allows to specify events, e.g. by providing a regexp:

Event EVENT1 = new RegExEvent("Event 1", ~/Event 1/)
Event EVENT2 = new RegExEvent("Event 2", ~/Event 2/)
Event ERROR = new RegExEvent("Error", ~/ERROR/)

The next step is newing up a TimeLineVisualizer on these events and passing in a stream with the actual log:

def logFile = new File("test.log");
 
logFile.withInputStream {InputStream stream ->
  def visualizer = new TimeLineVisualizer([
          EVENT1,
          EVENT2,
          ERROR
  ]);
  visualizer.visualize(stream)
}

If you have the gnuplot binary on your path this will yield something like this:

timeline

Also in some cases you would like to know which time of day events are most likely to happen. For producing histograms I created another visualizer (which currently takes only one event).

logFile.withInputStream {InputStream stream ->
  def visualizer = new HistogramVisualizer(EVENT2, HistogramVisualizer.HOUR_OF_DAY_BINS)
  visualizer.visualize(stream)
}

For the example log file, which unfortunately has an even distribution of events, we get this:

histogram

The cool thing about gnuplot is, that you can actually run these things in a cron job to produce daily reports (and mail them to the appropriate people) or on a continuous integration server to visualise how the system is being exercised by the test suite.

Books to Go

Ab sofort ist der podcast zur neuen hervorragenden “BOOKS TO GO”-Taschenbuchreihe des dtv verfügbar.

Ein schönes Wort!

Gestern habe ich voller Stolz festgestellt, dass ich ein Wort kenne, für das Google nur einen Treffer findet. Es handelt sich dabei um das Wort “Rechtsfreundregel”, das mir aus einer Vorlesung von Prof. Hofmann in Erinnerung geblieben ist und an die ich wieder denken musste, als ich dieses las.

Guardian Web-Site Relaunched

Seit dem Wochenende ist die Guardian Web-Site mit neuem Design und neuer Technik live.

Summer Reading

I just received the confirmation for my summer reading order from amazon. So this year it will be:

  • Dendelion Wine by Ray Bradbury
  • Farewell Summer by Ray Bradbury
  • Collapse. How Societies Choose to Fail or Succeed: How Societies Choose to Fail or Survive by Jared Diamond
  • The Long Tail. How Endless Choice Is Creating Unlimited Demand by Chris Anderson
  • Auf der Suche nach einer besseren Welt by Karl Popper

And you know what? There’s no proper nerdstuff in it…

Modewort

Heute in Poppers “Offener Gesellschaft” (geschrieben in den 40ern) über folgende Bemerkung gestolpert:

…, aber die Struktur (oder vielleicht ziehen sie das Modewort “pattern” vor) der sozialen Umwelt…

Langschwanzaffen

Habe gerade Eine kurze Geschichte der Sprachen gelesen. Das war recht interessant. Unter anderem weiß ich jetzt, dass es Langschwanzaffen gibt. Da diese aber offensichtlich nur für Linguisten von Interesse sind, gibt es leider keinen Wikipediaartikel.

Catch-22

During my endless travels on the London Underground I finally managed to read Joseph Heller’s Catch-22. It was a bit confusing first, but I got into it. It’s an amazing description of the lunacy war imposes on man. This is definely one the classics, that are actually worth reading.

Die offene Gesellschaft und ihre Feinde

Ich bin gestern mit Band 1 von Poppers “Offener Gesellschaft” fertig geworden. Das Buch ist gut lesbar, obwohl es relativ wissenschaftlich gehalten ist, da der Autor die Fußnoten im hinteren Teil des Buches zusammengefasst hat.

Gegenstand des ersten Bandes ist die Analyse von Platons Staatstheorie, die Popper als totalitär identifiziert, und der Gegenentwurf, die offene Gesellschaft. Das ist auch ohne große Kennerschaft der Materie ganz spannend gewesen. Insgesamt empfehlenswert in Zeiten des Kriegs gegen den Terrorismus.

Entgegen der leicht bescheuerten Forderung den Nationalsozialismus zum Schulfach zu machen, plädiere ich dafür den humanistischen Liberalismus zu lehren, denn spannend ist nicht der totalitäre Staat, sondern die liberale offene Gesellschaft und ihre Verteidigung (hierzu gehört natürlich auch die Kenntnis der Wesenszüge des totalitären Staats).