Re: crm114 on 64 bit SuSE

Thomas Spahni <[email protected]>
Newsgroups gmane.mail.spam.crm114
Message-ID <[email protected]>
On Mon, 11 Aug 2008, Ger Hobbelt wrote:

> Thanks for testing and reporting back; much appreciated!

You're welcome.

> 
> Further responses mingled with original email quotes:
> 
> On Sun, Aug 10, 2008 at 2:07 PM, Thomas Spahni <[email protected]> wrote:
> [..]
> > mail) but the build works well in production. There is just one glitch I
> > observed: learning just one message advances the count of messages learned
> > by TWO. I still could not find the reason for this. Any pointers would be
> > welcome.
> 
> Which classifier did you use? (Each keeps track of learn counts
> individually, hence the question)

My mailfilter.cf selects:
:clf: /osb unique microgroom/

> 
> > I tried to install Ger's crm114-20080502-BlameJason-Ger-2423.src.tar as
> > well. Compile went well but learning a message with mailreaver results in:
> 
> Whoops. Hrmmm... yeah; I didn't test mail*.crm scripts for a long time
> as I don't use them myself (I use crm114 for different purposes).
> I see where it could produce this kind of barfball, but I am very
> short on time now, so fixing this will have to wait unfortunately.
> :-((
> 
> Mea maxima culpa.

Don't bother. It's open source and when I'm too stupid to fix it myself I 
don't expect the developers to tackle the problem immediately. I will give 
it a try myself and report.

> 
> [...]
> > Additionally Ger's version produces a significant list of differences in
> > megatest (output attached).
> 
> Part of the diffs are the 'extra titles' (which show up twice instead
> of once) so that I can quickly see which classifiers produced what
> diff bits; important when you are looking at slews of numbers.
> 
> Let's have a look at your megatest output.
> (By the way, did you try 'make check' as well? That is ONLY available
> with the GerH builds and runs a growing series of tests which span
> more than megatest does. I'm interested to hear what that would
> produce on your system...)

Here it goes:

Making check in docs
make[1]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/docs'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/docs'
Making check in examples
make[1]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/examples'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/examples'
Making check in mailfilter
make[1]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/mailfilter'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/mailfilter'
Making check in man
make[1]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/man'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/man'
Making check in src
make[1]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/src'
make  check-TESTS
make[2]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/src'
==================
All 0 tests passed
==================
make[2]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/src'
make[1]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/src'
Making check in tests
make[1]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/tests'
Makefile:1908: warning: overriding commands for target `check-am'
Makefile:847: warning: ignoring old commands for target `check-am'
make[2]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/tests'
Makefile:1908: warning: overriding commands for target `check-am'
Makefile:847: warning: ignoring old commands for target `check-am'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/tests'
make[2]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/tests'
Makefile:1908: warning: overriding commands for target `check-am'
Makefile:847: warning: ignoring old commands for target `check-am'
==================
All 0 tests passed
==================
/bin/mkdir -p ./ref
Creating diff archives
(cd ../src && make  all);
make[3]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/src'
make  all-am
make[4]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/src'
make[4]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/src'
make[3]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/src'
test: CRM114 '-{}' -v
targetname = ./crm114_versiontest.filter.sh.temp
OK
test: CRM114 'bracktest.crm' 
OK
test: CRM114 'alius_w_comment.crm' 
OK
test: CRM114 'escapetest.crm' 
OK
test: CRM114 'fataltraptest.crm' 
targetname = ./crm114_error_report.filter.sh.temp
OK
test: CRM114 'fataltrapprogramerr.crm' 
targetname = ./crm114_error_report.filter.sh.temp
OK
test: CRM114 'inserttest_a.crm' 
OK
test: CRM114 'matchtest.crm' 
targetname = ./crm114_error_report.filter.sh.temp
OK
test: CRM114 'backwardstest.crm' 
OK
test: CRM114 'backwardstest.crm' 
OK
test: CRM114 'overalterisolatedtest.crm' 
OK
test: CRM114 'rewritetest.crm' 
OK
test: CRM114 'skudtest.crm' 
OK
test: CRM114 'statustest.crm' 
targetname = ./crm114_statustest.filter.sh.temp
OK
test: CRM114 'exectest.crm' 
targetname = ./crm114_statustest.filter.sh.temp
OK
test: CRM114 'unionintersecttest.crm' 
OK
test: CRM114 'beeptest.crm' 
OK
test: CRM114 'defaulttest.crm' 
OK
test: CRM114 'defaulttest.crm' --blah=command override
OK
test: CRM114 'windowtest.crm' 
OK
test: CRM114 'windowtest_fromvar.crm' 
OK
test: CRM114 'approxtest.crm' 
OK
test: CRM114 'mathalgtest.crm' 
OK
test: CRM114 'mathrpntest.crm' -q 1
OK
test: CRM114 'eval_infiniteloop.crm' 
targetname = ./crm114_error_report.filter.sh.temp
OK
test: CRM114 'randomiotest.crm' 
OK
test: CRM114 'paolo_overvars.crm' 
OK
test: CRM114 'paolo_ov2.crm' 
OK
test: CRM114 'paolo_ov3.crm' 
OK
test: CRM114 'paolo_ov4.crm' 
OK
test: CRM114 'paolo_ov5.crm' 
OK
test: CRM114 'print_binary2decimal_int32.crm' 
OK
test: CRM114 'match_re_fringe1.crm' 
OK
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

   This runs a moderately interesting set of base tests
   to exercise much of CRM114 under TRE.  This takes several
   seconds to run on a 3 GHz AMD/XP machine.  Please
   be patient; you (hopefully) won't see anything till the
   full set of tests complete.  If you didn't use TRE, all
   bets are off.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
test: CRM114 'match_isolate_test.crm' -e
targetname = ./crm114_isolate_test.filter.sh.temp
OK
test: CRM114 'match_isolate_reclaim.crm' -e
targetname = ./crm114_isolate_test.filter.sh.temp
OK
test: CRM114 'call_return_test.crm' 
OK
test: CRM114 'translate_tr.crm' 
OK
test: CRM114 'zz_translate_test.crm' 
OK
test: CRM114 'quine.crm' 
OK
test: CRM114 '-{window; isolate (:s:); syscall () (:s:) /echo one two three/; output /:*:s:/}' 
OK
test: CRM114 '-{window; isolate (:s:); syscall () () (:s:) /exit 123/; output / Status: :*:s: \n/}' 
OK
test: CRM114 '-{window; isolate (:s:); syscall () () (:s:) /jibberjabber 2>&1 /; output / Status: :*:s: \n/}' 
OK
test: CRM114 'indirecttest.crm' 
OK
*******************************************
* Default (SBPH Markovian) classifier 
*******************************************
rm -f randtst.txt
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:) {classify ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: 
OK
test: CRM114 '-{ isolate (:s:) {classify ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: 
OK
*******************************************
* OSB Markovian classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn <osb> (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn <osb> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify <osb> ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
OK
test: CRM114 '-{ isolate (:s:); {classify <osb> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
OK
*******************************************
* OSB Markov Unique classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn <osb unique > (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn <osb unique > (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify <osb unique> ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
OK
test: CRM114 '-{ isolate (:s:); {classify <osb unique> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
OK
*******************************************
* OSB Markov Chisquared Unique classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn <osb unique chi2> (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn <osb unique chi2> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify <osb unique chi2 > ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
OK
test: CRM114 '-{ isolate (:s:); {classify <osb unique chi2> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
OK
*******************************************
* OSBF Local Confidence (Fidelis) classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn < osbf > (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn < osbf > (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify <osbf> ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
OK
test: CRM114 '-{ isolate (:s:); {classify <osbf> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
OK
*******************************************
* OSB Winnow classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn <winnow> (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn <winnow refute> (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn <winnow> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn <winnow refute> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify <winnow> ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }       ' 
OK
test: CRM114 '-{ isolate (:s:); {classify <winnow> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}      ' 
OK

Now verify that winnow learns affect only the named file (i_test.css)

test: CRM114 '-{learn <winnow> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify <winnow> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}      ' 
OK

and now refute-learn into q_test.css

test: CRM114 '-{learn <winnow refute > (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify <winnow> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}      ' 
OK
*******************************************
* Unigram Bayesian classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn <unigram> (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn <unigram> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify <unigram> ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
OK
test: CRM114 '-{ isolate (:s:); {classify <unigram> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
OK
*******************************************
* unigram Winnow classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn <winnow unigram > (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn <winnow unigram refute> (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn <winnow unigram> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn <winnow unigram refute> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify <winnow unigram> ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }       ' 
OK
test: CRM114 '-{ isolate (:s:); {classify <winnow unigram> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}      ' 
OK
*******************************************
* OSB Hyperspace classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn <hyperspace unique> (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn <hyperspace unique> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify <hyperspace> ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
OK
test: CRM114 '-{ isolate (:s:); {classify <hyperspace> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
OK
*******************************************
* OSB three-letter Hyperspace classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn <hyperspace unique> (q_test.css) /.../}' 
OK
test: CRM114 '-{learn <hyperspace unique> (i_test.css) /.../}' 
OK
test: CRM114 '-{ isolate (:s:); {classify <hyperspace> ( i_test.css | q_test.css ) (:s:) /.../ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
OK
test: CRM114 '-{ isolate (:s:); {classify <hyperspace> ( i_test.css | q_test.css ) (:s:) /.../ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
OK
*******************************************
* Unigram Hyperspace classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn < hyperspace unique unigram> (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn < hyperspace unique unigram> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify < hyperspace unigram> ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
OK
test: CRM114 '-{ isolate (:s:); {classify <hyperspace unigram> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
OK
*******************************************
* String Hyperspace classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn < hyperspace string> (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn < hyperspace string> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify < hyperspace string> ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
OK
test: CRM114 '-{ isolate (:s:); {classify <hyperspace string> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
OK
*******************************************
* String Unigram Hyperspace classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn < hyperspace string unigram> (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn < hyperspace string unigram> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify < hyperspace string unigram> ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
OK
test: CRM114 '-{ isolate (:s:); {classify <hyperspace string unigram> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
OK
*******************************************
* Vector 3-word-bag Hyperspace classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn < hyperspace > (q_test.css) /[[:graph:]]+/ /vector: 3 1 1 1 1 1 / }' 
OK
test: CRM114 '-{learn < hyperspace > (i_test.css) /[[:graph:]]+/ /vector: 3 1 1 1 1 1/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify < hyperspace > ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ /vector: 3 1 1 1 1 1  /; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
OK
test: CRM114 '-{ isolate (:s:); {classify <hyperspace > ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ /vector: 3 1 1 1 1 1 /; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
OK
*******************************************
* Bit-Entropy classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn < entropy unique crosslink> (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn < entropy unique crosslink> (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify < entropy unique crosslink> ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v entropy=50 -v o_entropy=370 -v jumps=4 -v o_jumps=7 -v prob=2.0 -v pR=3.0
OK
test: CRM114 '-{ isolate (:s:); {classify <entropy unique crosslink> ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v file_features=300 -v entropy=50 -v o_entropy=370 -v jumps=40 -v o_jumps=7 -v prob=5.0 -v pR=5.0
---- diff report: ----
--- ./ref/Bit_Entropy_test1.step4.refoutput	2008-05-01 08:37:58.000000000 +0200
+++ ./testscript.sh.tempchk	2008-08-12 10:26:46.000000000 +0200
@@ -7,11 +7,11 @@
 STDERR TEST OUTPUT:
 
 STDOUT TEST OUTPUT:
- type Q 
-CLASSIFY fails; success probability: 0.0000  pR: -6.5308
-Best match to file #1 (q_test.css) prob: 1.0000  pR: 6.5308  
-Total features in input file: 552
-#0 (i_test.css): features: 425488 (100%), entropy: 459.942001, jumps: 26, prob: 2.95e-07, pR:  -6.53 
-#1 (q_test.css): features: 552504 (100%), entropy: 302.166313, jumps: 10, prob: 1.00e+00, pR:   6.53 
+ type I 
+CLASSIFY succeeds; success probability: 1.0000  pR: 4.9105
+Best match to file #0 (i_test.css) prob: 1.0000  pR: 4.9105
+Total features in input file: 408
+#0 (i_test.css): features: 425488 (5%), entropy: 138.295563, jumps: 4, prob: 1.00e-00, pR:   4.91
+#1 (q_test.css): features: 552504 (5%), entropy: 256.926733, jumps: 16, prob: 1.23e-05, pR:  -4.91
 
 
----------------------
FAIL(OVERRIDEN:OK)
*******************************************
* Bit-Entropy Toroid classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn < entropy > (q_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{learn < entropy > (i_test.css) /[[:graph:]]+/}' 
OK
test: CRM114 '-{ isolate (:s:); {classify < entropy > ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v entropy=100 -v jumps=10 -v prob=1.0 -v pR=4.0
OK
test: CRM114 '-{ isolate (:s:); {classify < entropy > ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v entropy=25 -v jumps=2 -v prob=1.0e-5 -v pR=1.0
OK
*******************************************
* Fast Substring Compression Match Classifier 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{learn < fscm > (q_test.css) /[[:graph:]]+/}' -s 200000
OK
test: CRM114 '-{learn < fscm > (i_test.css) /[[:graph:]]+/}' -s 200000
OK
test: CRM114 '-{ isolate (:s:); {classify < fscm > ( i_test.css | q_test.css ) (:s:)/[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
OK
test: CRM114 '-{ isolate (:s:); {classify < fscm > ( i_test.css | q_test.css ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
OK
*******************************************
* Support Vector Machine (SVM) unigram classifier 
*******************************************
rm -f i_vs_q_test.css
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{ match <fromend> (:one_paragraph:) /[[:graph:]]+.*?\n\n/; learn [:one_paragraph:] < svm unigram unique > (i_test.css) /[[:graph:]]+/; liaf}' 
OK
test: CRM114 '-{ match <fromend> (:one_paragraph:) /[[:graph:]]+.*?\n\n/; learn [:one_paragraph:] < svm unigram unique > (q_test.css) /[[:graph:]]+/; liaf }' 
OK

  build the actual hyperplanes

test: CRM114 '-{window; learn ( i_test.css | q_test.css | i_vs_q_test.css ) < svm unigram unique > /[[:graph:]]+/ /0 0 100 1e-3 1 0.5 1 1/ }' 
OK
test: CRM114 '-{ isolate (:s:); {classify < svm unigram unique > ( i_test.css | q_test.css | i_vs_q_test.css ) (:s:) /[[:graph:]]+/ /0 0 100 1e-3 1 0.5 1 1/ [:_dw:]   ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v prob=0.1 -v pR=0.2
OK
test: CRM114 '-{ isolate (:s:); {classify < svm unigram unique > ( i_test.css | q_test.css | i_vs_q_test.css ) (:s:) /[[:graph:]]+/ /0 0 100 1e-3 1 0.5 1 1/ [:_dw:] ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v prob=1e-4 -v pR=0.03 -vo_pR=22.74
OK
*******************************************
* Support Vector Machine (SVM) classifier 
*******************************************
rm -f i_vs_q_test.css
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{ match <fromend> (:one_paragraph:) /[[:graph:]]+.*?\n\n/; learn [:one_paragraph:] < svm unique > (i_test.css) /[[:graph:]]+/; liaf}' 
OK
test: CRM114 '-{ match <fromend> (:one_paragraph:) /[[:graph:]]+.*?\n\n/; learn [:one_paragraph:] < svm unique > (q_test.css) /[[:graph:]]+/; liaf }' 
OK

  build the actual hyperplanes

test: CRM114 '-{window; learn ( i_test.css | q_test.css | i_vs_q_test.css ) < svm unique > /[[:graph:]]+/ /0 0 100 1e-3 1 0.5 1 1/ }' 
OK
test: CRM114 '-{ isolate (:s:); {classify < svm unique > ( i_test.css | q_test.css | i_vs_q_test.css ) (:s:) /[[:graph:]]+/ /0 0 100 1e-3 1 0.5 1 1/ [:_dw:]   ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v prob=4e-3 -v o_prob=0.1275 -v pR=0.04 -v o_pR=8.36
OK
test: CRM114 '-{ isolate (:s:); {classify < svm unique > ( i_test.css | q_test.css | i_vs_q_test.css ) (:s:) /[[:graph:]]+/ /0 0 100 1e-3 1 0.5 1 1/ [:_dw:] ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v prob=2e-4 -v pR=0.04 -v o_pR=14.775
OK
*******************************************
* String Kernel SVM (SKS) classifier 
*******************************************
rm -f i_vs_q_test.css
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{ match <fromend> (:one_paragraph:) /[[:graph:]]+.*?\n\n/; learn [:one_paragraph:] < sks > (i_test.css) /[[:graph:]]+/; liaf}' 
OK
test: CRM114 '-{ match <fromend> (:one_paragraph:) /[[:graph:]]+.*?\n\n/; learn [:one_paragraph:] < sks > (q_test.css) /[[:graph:]]+/; liaf }' 
OK

  build the actual hyperplanes

test: CRM114 '-{window; learn ( i_test.css | q_test.css | i_vs_q_test.css ) < sks > /[[:graph:]]+/ /0 0 100 0.001 1 1 4/ }' 
OK
test: CRM114 '-{ isolate (:s:); {classify < sks > ( i_test.css | q_test.css | i_vs_q_test.css ) (:s:) /[[:graph:]]+/ /0 0 100 0.001 1 1 4/ [:_dw:]   ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v prob=0.0004 -v pR=0.03
OK
test: CRM114 '-{ isolate (:s:); {classify < sks > ( i_test.css | q_test.css | i_vs_q_test.css ) (:s:) /[[:graph:]]+/ /0 0 100 0.001 1 1 4/ [:_dw:] ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v prob=2e-4 -v pR=0.04
OK
*******************************************
* String Kernel SVM (SKS) Unique classifier 
*******************************************
rm -f i_vs_q_test.css
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{ match <fromend> (:one_paragraph:) /[[:graph:]]+.*?\n\n/; translate [:one_paragraph:] (:one_paragraph:) /.,!?@#^&*()/; learn [:one_paragraph:] < sks unique > (i_test.css) /[[:graph:]]+/ / 0 0 100 0.001 1 1 4/; liaf}' 
OK
test: CRM114 '-{ match <fromend> (:one_paragraph:) /[[:graph:]]+.*?\n\n/;  translate [:one_paragraph:] (:one_paragraph:) /.,!?@#^&*()/; learn [:one_paragraph:] < sks unique > (q_test.css) /[[:graph:]]+/ /0 0 100 0.001 1 1 4/ ; liaf }' 
OK

  build the actual hyperplanes

test: CRM114 '-{window; learn ( i_test.css | q_test.css | i_vs_q_test.css ) < sks unique > /[[:graph:]]+/ /0 0 100 0.001 1 1 4/ }' 
OK
test: CRM114 '-{ isolate (:s:);  translate /.,!?@#^&*()/; {classify < sks unique > ( i_test.css | q_test.css | i_vs_q_test.css ) (:s:) /[[:graph:]]+/ /0 0 100 0.001 1 1 4/ [:_dw:]   ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ } }' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v features=10 -v prob=0.004 -v pR=0.1
OK
test: CRM114 '-{ isolate (:s:); translate /.,!?@#^&*()/; {classify < sks unique > ( i_test.css | q_test.css | i_vs_q_test.css ) (:s:) /[[:graph:]]+/ /0 0 100 0.001 1 1 4/ [:_dw:] ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v features=10 -v prob=0.004 -v pR=0.1
OK
*******************************************
* Bytewise Correlation classifier 
*******************************************
rm -f i_vs_q_test.css
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{ isolate (:s:) {classify <correlate> ( ./INTRO_mt_ng_reference_2.input | ./QUICKREF_mt_ng_reference_1.input ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v features=10 -v prob=0.004 -v pR=0.1
OK
test: CRM114 '-{ isolate (:s:) {classify <correlate> ( ./INTRO_mt_ng_reference_2.input | ./QUICKREF_mt_ng_reference_1.input ) (:s:) /[[:graph:]]+/ ; output / type I \n:*:s:\n/} alius { output / type Q \n:*:s:\n/ }}' 
targetname = ./crm114_classify.filter.sh.temp
AWK filter tolerances / args: -v features=10 -v prob=0.004 -v pR=0.1
OK
*******************************************
* Clump \/ Pmulc Test 
*******************************************
rm -f i_test.css
rm -f q_test.css
test: CRM114 '-{ match <fromend> (:one_paragraph:) /([[:graph:]]+.*?\n\n){5}/; clump <bychunk> [:one_paragraph:] (i_test.css) /[[:graph:]]+/; output /./ ; liaf}' 
---- diff report: ----
--- ./ref/Clump_Pmulc_test1.step1.refoutput	2008-05-01 08:39:33.000000000 +0200
+++ ./testscript.sh.tempchk	2008-08-12 10:27:14.000000000 +0200
@@ -2,9 +2,16 @@
 -{ match <fromend> (:one_paragraph:) /([[:graph:]]+.*?\n\n){5}/; clump <bychunk> [:one_paragraph:] (i_test.css) /[[:graph:]]+/; output /./ ; liaf} 
 
 RETURN CODE:
-0
+154
 
 STDERR TEST OUTPUT:
 
+crm114: *UNTRAPPABLE ERROR*
+ Cannot allocate distance matrix M[] (C) Stick a fork in us; we're _done_.
+Sorry, but this program is very sick and probably should be killed off.
+This happened at line 3 of file (from command line):
+    clump <bychunk> [:one_paragraph:] (i_test.css) /[[:graph:]]+/
+(runtime system location: crm_expr_clump.c(782) in routine: thresholding_average_cluster)
+
 STDOUT TEST OUTPUT:
 
----------------------
FAIL(OVERRIDEN:OK)
test: CRM114 '-{ match <fromend> (:one_paragraph:) /([[:graph:]]+.*?\n\n){5}/; clump [:one_paragraph:] <bychunk> (i_test.css) /[[:graph:]]+/; output /./; liaf }' 
---- diff report: ----
--- ./ref/Clump_Pmulc_test1.step2.refoutput	2008-05-01 08:39:41.000000000 +0200
+++ ./testscript.sh.tempchk	2008-08-12 10:27:14.000000000 +0200
@@ -2,9 +2,18 @@
 -{ match <fromend> (:one_paragraph:) /([[:graph:]]+.*?\n\n){5}/; clump [:one_paragraph:] <bychunk> (i_test.css) /[[:graph:]]+/; output /./; liaf } 
 
 RETURN CODE:
-0
+154
 
 STDERR TEST OUTPUT:
 
+crm114: *UNTRAPPABLE ERROR*
+
+Better start screaming, guv', since the software's just gone critical:
+assertion '!(scale <= 1.19209290e-7F && scale >= -1.19209290e-7F)' failed!
+Sorry, but this program is very sick and probably should be killed off.
+This happened at line 3 of file (from command line):
+    clump [:one_paragraph:] <bychunk> (i_test.css) /[[:graph:]]+/
+(runtime system location: crm_expr_clump.c(841) in routine: thresholding_average_cluster)
+
 STDOUT TEST OUTPUT:
 
----------------------
FAIL(OVERRIDEN:OK)

Now see where our paragraphs go to

test: CRM114 '-{ isolate (:s:); { pmulc  ( i_test.css) (:s:) <bychunk> /[[:graph:]]+/  [:_dw:]   ; output /Likely result: \n:*:s:\n/} alius { output / Unsure result \n:*:s:\n/ } }' 
---- diff report: ----
--- ./ref/Clump_Pmulc_test1.step3.refoutput	2008-05-01 08:40:09.000000000 +0200
+++ ./testscript.sh.tempchk	2008-08-12 10:27:14.000000000 +0200
@@ -7,18 +7,10 @@
 STDERR TEST OUTPUT:
 
 STDOUT TEST OUTPUT:
-...............................................................Likely result: 
-PMULC succeeds; success probabilty: 1.0000 pR: 61.5681
-Best match to clump #8 (clump_#8) prob: 1.0000  pR: 61.5681
-Closest document: #46 (document_#46) affinity: 0.8233
+ Unsure result 
+PMULC fails; success probability: 0.0000 pR: 0.0000
+Best match to clump #1 (clump_#1) prob: 0.0000  pR: 0.0000
+Closest document: #-1 (document_#-1) affinity: -1.0000
 Total features in input file: 259
-1: (clump_#1): documents: 4  affinity: 0.1529  prob: 0.0000  pR: -70.0000
-2: (clump_#2): documents: 2  affinity: 0.0942  prob: 0.0000  pR: -70.0000
-3: (clump_#3): documents: 49  affinity: 0.1234  prob: 0.0000  pR: -70.0000
-4: (clump_#4): documents: 3  affinity: 0.1136  prob: 0.0000  pR: -70.0000
-5: (clump_#5): documents: 1  affinity: 0.1408  prob: 0.0000  pR: -70.0000
-6: (clump_#6): documents: 1  affinity: 0.1379  prob: 0.0000  pR: -70.0000
-7: (clump_#7): documents: 1  affinity: 0.0991  prob: 0.0000  pR: -70.0000
-8: (clump_#8): documents: 2  affinity: 0.5186  prob: 1.0000  pR: 61.5681
 
 
----------------------
FAIL(OVERRIDEN:OK)
test: CRM114 '-{ isolate (:s:); { pmulc  ( i_test.css) (:s:) <bychunk> /[[:graph:]]+/  [:_dw:]   ; output /Likely result: \n:*:s:\n/} alius { output / Unsure result \n:*:s:\n/ } }' 
---- diff report: ----
--- ./ref/Clump_Pmulc_test1.step4.refoutput	2008-05-01 08:40:23.000000000 +0200
+++ ./testscript.sh.tempchk	2008-08-12 10:27:14.000000000 +0200
@@ -7,18 +7,10 @@
 STDERR TEST OUTPUT:
 
 STDOUT TEST OUTPUT:
-Likely result: 
-PMULC succeeds; success probabilty: 1.0000 pR: 59.1777
-Best match to clump #2 (clump_#2) prob: 1.0000  pR: 59.1777
-Closest document: #1 (document_#1) affinity: 0.7596
+ Unsure result 
+PMULC fails; success probability: 0.0000 pR: 0.0000
+Best match to clump #1 (clump_#1) prob: 0.0000  pR: 0.0000
+Closest document: #-1 (document_#-1) affinity: -1.0000
 Total features in input file: 223
-1: (clump_#1): documents: 4  affinity: 0.1356  prob: 0.0000  pR: -70.0000
-2: (clump_#2): documents: 2  affinity: 0.4753  prob: 1.0000  pR: 59.1777
-3: (clump_#3): documents: 49  affinity: 0.1422  prob: 0.0000  pR: -70.0000
-4: (clump_#4): documents: 3  affinity: 0.1230  prob: 0.0000  pR: -70.0000
-5: (clump_#5): documents: 1  affinity: 0.1208  prob: 0.0000  pR: -70.0000
-6: (clump_#6): documents: 1  affinity: 0.1421  prob: 0.0000  pR: -70.0000
-7: (clump_#7): documents: 1  affinity: 0.1173  prob: 0.0000  pR: -70.0000
-8: (clump_#8): documents: 2  affinity: 0.0928  prob: 0.0000  pR: -70.0000
 
 
----------------------
FAIL(OVERRIDEN:OK)
test: CRM114 '-{ isolate (:s:); { pmulc  ( i_test.css) (:s:) <bychunk> /[[:graph:]]+/  [:_dw:]   ; output /Likely result: \n:*:s:\n/} alius { output / Unsure result \n:*:s:\n/ } }' 
---- diff report: ----
--- ./ref/Clump_Pmulc_test1.step5.refoutput	2008-05-01 08:40:39.000000000 +0200
+++ ./testscript.sh.tempchk	2008-08-12 10:27:14.000000000 +0200
@@ -8,68 +8,7 @@
 
 STDOUT TEST OUTPUT:
 Likely result: 
-0 (document_#0) clump: 1 (clump_#1) affinity: 0.1439
-1 (document_#1) clump: 2 (clump_#2) affinity: 0.0887
-2 (document_#2) clump: 3 (clump_#3) affinity: 0.1784
-3 (document_#3) clump: 4 (clump_#4) affinity: 0.1651
-4 (document_#4) clump: 4 (clump_#4) affinity: 0.1949
-5 (document_#5) clump: 4 (clump_#4) affinity: 0.2162
-6 (document_#6) clump: 3 (clump_#3) affinity: 0.1953
-7 (document_#7) clump: 1 (clump_#1) affinity: 0.1418
-8 (document_#8) clump: 1 (clump_#1) affinity: 0.1535
-9 (document_#9) clump: 1 (clump_#1) affinity: 0.1432
-10 (document_#10) clump: 3 (clump_#3) affinity: 0.1790
-11 (document_#11) clump: 3 (clump_#3) affinity: 0.1883
-12 (document_#12) clump: 3 (clump_#3) affinity: 0.2052
-13 (document_#13) clump: 3 (clump_#3) affinity: 0.1841
-14 (document_#14) clump: 3 (clump_#3) affinity: 0.2289
-15 (document_#15) clump: 3 (clump_#3) affinity: 0.1805
-16 (document_#16) clump: 3 (clump_#3) affinity: 0.1776
-17 (document_#17) clump: 3 (clump_#3) affinity: 0.1966
-18 (document_#18) clump: 2 (clump_#2) affinity: 0.0887
-19 (document_#19) clump: 3 (clump_#3) affinity: 0.1803
-20 (document_#20) clump: 3 (clump_#3) affinity: 0.2188
-21 (document_#21) clump: 3 (clump_#3) affinity: 0.2216
-22 (document_#22) clump: 3 (clump_#3) affinity: 0.2264
-23 (document_#23) clump: 3 (clump_#3) affinity: 0.1826
-24 (document_#24) clump: 3 (clump_#3) affinity: 0.2031
-25 (document_#25) clump: 3 (clump_#3) affinity: 0.1978
-26 (document_#26) clump: 3 (clump_#3) affinity: 0.1834
-27 (document_#27) clump: 3 (clump_#3) affinity: 0.2121
-28 (document_#28) clump: 3 (clump_#3) affinity: 0.1853
-29 (document_#29) clump: 3 (clump_#3) affinity: 0.1602
-30 (document_#30) clump: 3 (clump_#3) affinity: 0.1999
-31 (document_#31) clump: 3 (clump_#3) affinity: 0.2193
-32 (document_#32) clump: 3 (clump_#3) affinity: 0.2209
-33 (document_#33) clump: 3 (clump_#3) affinity: 0.1977
-34 (document_#34) clump: 5 (clump_#5) affinity: 0.0000
-35 (document_#35) clump: 6 (clump_#6) affinity: 0.0000
-36 (document_#36) clump: 3 (clump_#3) affinity: 0.1724
-37 (document_#37) clump: 3 (clump_#3) affinity: 0.1824
-38 (document_#38) clump: 3 (clump_#3) affinity: 0.1955
-39 (document_#39) clump: 3 (clump_#3) affinity: 0.1970
-40 (document_#40) clump: 3 (clump_#3) affinity: 0.1906
-41 (document_#41) clump: 3 (clump_#3) affinity: 0.1979
-42 (document_#42) clump: 3 (clump_#3) affinity: 0.1926
-43 (document_#43) clump: 3 (clump_#3) affinity: 0.1717
-44 (document_#44) clump: 7 (clump_#7) affinity: 0.0000
-45 (document_#45) clump: 3 (clump_#3) affinity: 0.1876
-46 (document_#46) clump: 8 (clump_#8) affinity: 0.1011
-47 (document_#47) clump: 8 (clump_#8) affinity: 0.1011
-48 (document_#48) clump: 3 (clump_#3) affinity: 0.1751
-49 (document_#49) clump: 3 (clump_#3) affinity: 0.1998
-50 (document_#50) clump: 3 (clump_#3) affinity: 0.1896
-51 (document_#51) clump: 3 (clump_#3) affinity: 0.1863
-52 (document_#52) clump: 3 (clump_#3) affinity: 0.2194
-53 (document_#53) clump: 3 (clump_#3) affinity: 0.2076
-54 (document_#54) clump: 3 (clump_#3) affinity: 0.2291
-55 (document_#55) clump: 3 (clump_#3) affinity: 0.2257
-56 (document_#56) clump: 3 (clump_#3) affinity: 0.2070
-57 (document_#57) clump: 3 (clump_#3) affinity: 0.1970
-58 (document_#58) clump: 3 (clump_#3) affinity: 0.2020
-59 (document_#59) clump: 3 (clump_#3) affinity: 0.2016
-60 (document_#60) clump: 3 (clump_#3) affinity: 0.1767
-61 (document_#61) clump: 3 (clump_#3) affinity: 0.1724
-62 (document_#62) clump: 3 (clump_#3) affinity: 0.1727
+0 (document_#0) clump: 0 (unassigned) affinity: 0.0822
+1 (document_#1) clump: 0 (unassigned) affinity: 0.0822
 
 
----------------------
FAIL(OVERRIDEN:OK)
*******************************************
*               TESTING DONE!
*  All 'megatest'-derived test cases have
*  been checked: OK (some may have been
*  'OVERRIDDEN', please check the output
*  when you worry about those...
*
*******************************************
make[2]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/tests'
make[2]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/tests'
Makefile:1908: warning: overriding commands for target `check-am'
Makefile:847: warning: ignoring old commands for target `check-am'
rm -f i_test.css
rm -f i_vs_q_test.css
rm -f q_test.css
rm -f randtst.txt
rm -rf *.temp.*
rm -rf *.temperr
rm -rf *.tempchk
rm -rf *.diffout
rm -rf *.tempout
rm -rf *.filtout
make[2]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/tests'
make[1]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason/tests'
make[1]: Entering directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason'
make[1]: Nothing to be done for `check-am'.
make[1]: Leaving directory `/home/tsp/programs/crm114/crm114-20080502-BlameJason'

> 
> > Thank you all for your excellent work and I hope this report may be
> > useful.
> 
> Absolutely: very useful! Thanks again!
> 
> 

Thank you for your detailed comments on the megatest diffs. I will study 
these carefully.

My best regards
Thomas Spahni

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.