|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T d
Length: 2461 (0x99d) Types: TextFile Names: »delay«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─⟦this⟧ »EUUGD11/euug-87hel/sec1/news/misc/delay« └─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit └─⟦95173b3df⟧ »EurOpenD3/news/bnews.2.11/misc.tar.Z« └─⟦ff4664b96⟧ └─⟦this⟧ »misc/delay«
# # Note, Date-Received knows abotu yout local timezone # ./grabheaders | awk ' BEGIN{ t = "Jan 31 Feb 28 Mar 31 Apr 30 May 31 Jun 30 Jul 31 Aug 31 Sep 30 Oct 31 Nov 30 Dec 31" split(t,x) n = 0; for(i=1;i<24;i+=2) { month[x[i]] = month[(i+1)/2] = (i+1)/2 days[(i+1)/2] = n n += x[i+1] } } /^Date: /{ if (NF == 7 ){ t = $6 x[1] = $3 x[2] = $4 x[3] = $5 } else if (NF == 5 && split($3,x,"-") == 3) { t = $4 } else if (NF == 4 && split($2,x,"-") == 3) { t = $3 }else if (NF == 6) { t = $5 x[1] = $2 x[2] = $3 x[3] = $4 }else{ print "Bad date",messageid, $0 next } sent = x[1] + days[month[x[2]]] + (x[3]-80)*365 if (x[3]%4 == 0 && month[x[2]] > 2) sent++ split(t,x,":") sent *= 60*24 sent += x[1] * 60 + x[2] } /^Date-Received: /{ if (NF < 3){ print "Date-received", messageid ,$0 rec = 0 next } split($2,x,"/") rec = x[2] + days[x[1]+0] +(x[3]-80)*365 if (x[3]%4 == 0 && x[1] > 2) rec++ split($3,x,":") rec *= 60*24 rec += x[1] * 60 + x[2] + 1.44 if ($4 != "GMT") rec += 60*5 if (rec > today) today = rec } /^Message-ID: /{messageid = $2} /^Path: /{ n = split($2,x,"!") if( n > 2) feed = x[2] else feed = x[1] } /^$/{ n = int((rec - sent)/(60*24)+0.999) if( rec > 0 ) { if ( n >= 0) { adelay[n]++ if( n > amaxdelay) amaxdelay = n } else { adelay[-1]++ print "Time Warp", messageid } totdelay++ feedsite[feed]++ } rec = sent = 0 } END { n = int((rec - sent)/(60*24)+0.999) if( rec > 0 ) { if ( n >= 0) { adelay[n]++ if( n > amaxdelay) amaxdelay = n } else { adelay[-1]++ print "Time Warp", messageid } totdelay++ feedsite[feed]++ } i = 0 count = 0 printf("\n\tPropagation Delay\n") printf("\n\t No. of Cumulative\n") printf("\tDays Articles Percent\n") if (adelay[-1] > 0) { printf("\t <0%8d%7d%% (Time Warp)\n",adelay[-1],0) count += adelay[-1] } while (i <= amaxdelay) { count += adelay[i] if( adelay[i] != 0 ) printf("\t%3d%8d%7d%%\n",i,adelay[i],(count*100)/totdelay) i++ } n = 0 for (i in feedsite) ptr[++n] = i j = 1 while (j < n){ if (feedsite[ptr[j]] < feedsite[ptr[j+1]]){ temp = ptr[j] ptr[j] = ptr[j+1] ptr[j+1] = temp if( j > 1) { j-- continue } } j++ } printf("\n\tDistribution of news feeds\n") printf("\t Count Percent Site\n") j = 0 while (++j <= n){ i =feedsite[ptr[j]] printf("\t%8d%7d%% %s\n",i,(i*100)/totdelay,ptr[j]); } }'