
Eugene Kirpichov
2010/12/17 Henning Thielemann
: Eugene Kirpichov schrieb:
I've published a large presentation about two Haskell-based tools of mine - tplot and splot.
Their motto is "visualize system behavior from logs with a shell one-liner". Based on my experience, they usually seem to live up to this motto.
http://www.slideshare.net/jkff/two-visualization-tools
[attention attractor: the presentation has *really a lot* of pictures]
... and complete TeX code attached! :-) However can I also view a simple PDF document of the presentation?
You can download the PDF here - http://www.slideshare.net/jkff/two-visualization-tools/download (however one has to be logged in to Slideshare, for example with a facebook acct., for this link to work)
Just in case, I'm also attaching a PDF of the current version to this email, but visiting the link is preferable, since I'll be updating the contents.
Please, if at all possible, link an up-to-date downloadable PDF from the documentation (http://hackage.haskell.org/package/timeplot) or from the homepage (http://haskell.org/haskellwiki/Timeplot) to make our life easier! Anyway, your tools look very interesting, I gave tplot a shot. Unfortunately, I hit various strange failures: $ head -4 or.log Mar 8 18:55:11 =overrun 1 Mar 8 18:55:13 =overrun 6 Mar 8 18:55:15 =overrun 13 Mar 8 18:55:16 =overrun 3 $ wc -l or.log 466 or.log $ ls -l or.log overruns466.log lrwxrwxrwx 1 wferi wferi 15 Mar 17 14:45 or.log -> overruns466.log -rw-rw-r-- 1 wferi wferi 12587 Mar 17 14:35 overruns466.log $ tplot -if or.log -tf 'date %b %e %T' -o overruns.png -k 'overrun' 'sum 10' This worked just fine. However, when given the same file with a longer name, tplot does not terminate: $ tplot -if overruns466.log -tf 'date %b %e %T' -o overruns.png -k 'overrun' 'sum 10' ^C while doing the same the other way around still works: $ cat overruns466.log | tplot -if - -tf 'date %b %e %T' -o overruns.png -k 'overrun' 'sum 10' Choosing any other extension (svg, pdf or ps) also results in nontermination (or at least unbearable runtime and memory consumption). Adding a simple no-op statement, like: diff -ur ../timeplot-0.2.19/Tools/TimePlot.hs ./Tools/TimePlot.hs --- ../timeplot-0.2.19/Tools/TimePlot.hs 2011-03-09 11:36:24.000000000 +0100 +++ ./Tools/TimePlot.hs 2011-03-17 16:42:57.247625607 +0100 @@ -627,6 +627,7 @@ when (null args || args == ["--help"]) $ showHelp >> exitSuccess case (readConf args) of Conf conf -> do + putStr "" let render = case (outFormat conf) of { PNG -> \c w h f -> const () `fmap` renderableToPNGFile c w h f; PDF -> renderableToPDFFile ; also results in nontermination, even in the previously working case. Something is clearly wrong here, seemingly in the runtime IO system. -- Thanks, Feri. GHC 6.12.1 Chart-0.14 bytestring-0.9.1.5 bytestring-lexing-0.2.1 cairo-0.11.0 colour-2.3.1 containers-0.3.0.0 data-accessor-0.2.1.3 data-accessor-template-0.2.1.7 haskell98-1.0.1.1 regex-tdfa-1.1.4 strptime-1.0.1 time-1.1.4