[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [atlarge-discuss] Enough!



On 17:37 30/05/03, Sotiris Sotiropoulos said:
I fully retract my accusations against Jefsey, and I offer him abject apologies for my harsh words and generally belligerent attitude.
Dear Sotiris,
this is a noble attitude. I know it is tought for you. I know you faught for what you believe, and I respect you for that. There is no shame in being awkward when you fight and you think to be right (I hope, because I am). But you faught the wrong fight: you faught the ones who try to defend you and us all.

The watch.c file is attached. If you have some "C" you will see how this program only does what it is intended to: to correct the Members leaks; to format the responses and help the count and control, to report pn the current situation. Obviously without any possible impact on the result since it deals with the presentation of the data, not with the data themselves which are on archives.

I must say that I was advised to take conservative mesures including to have a Justice Police Officer to copy the archives and to get the traffic of this list certified; and a record of your current positions taken. This had been done. You must realize that your reactions have costed me real money. I am not a rich man - oh! no, I just try to do a lot for what I believe and I know is to be common good on the nets - and this will hurt. But such are the risks of helping.


The good news is that it lead me to understand something. IDNO was killed by WXW disputing Joop. GA was partly killed by Jeff's characters. This happens all the time all over the world. And attacked people do not know how to react. Too far. Too costly. Too complex. And they give up. Even Joop did.

You may have noticed I do not give up. We decided yesterday to have a try at that. With spam, mailing list impoliteness or attacks are really the two pleas of the network. IMHO this a good crusade for the @large, because it is something we can do among ourselves, for ourselves, by ouerselves. Without needing anyone else. Making the net secure, kind and polite for he kids, the women, the minorities, the language speakers, the people is a daily fight you helped me to understand.the necessity. It may also be a way to help the rude person who epress this way his own difficulties.

1. our small world@wide fondation has registered " http://apolite.net " (it should be active tonight).

2. the "let-have@apolite.net" mailing list will be created this WE, all those who want to take part of it are welcome!

3. the initial action would be to have a list of lawyers, one per country, able to document actions to undertake against a local brute (I already had a Canadian lawyer ready to respond). Or to take contract and help.

4. again, being polite is not luring people in telling them you are many people, but being polite is also to respect the privacy of others. In England they can just send a letter to Somerset House to change name. In many countries having your real name traced may lead you to jail. We want to work on a solution to a problem not to become TIA informers. We may have an idea, calling for serious development.

5. in case of justice action one needs a certified copy of the mail exchanges. We will see how to provide a service of confidential archiving to mailing lists or to people. This may lead to serious developements and to law writing. I think we have or we will have with us people able to make the world moving in that area. Specially in the WSIS teams.

6. we may create a "block list". Known offenders being graded, mailing lists would be permitted to register through "apolite.net" filter (which would know who is the Member) whatever the pseudo he may want to use.

All this will obviusly call for time and money. We think we can subsidize it in different ways. I said I am not a resigner. I tought I had the guts to resist brother Sotiris. Now that brother Sotiris is brother Sotiris again, I totally loyaly propose him to share into that action, he help started.

For "apolite.net".
jfc









Any other idea will be welcome.













// Programme WATCH.C
// --------------------------------------------------------------------------
// Ce programme est la propi‚t‚ personnelle de JFC MORFIN et d'UTEL
// --------------------------------------------------------------------------
#include <dir.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
#include <alloc.h>
#include <io.h>
#include <dos.h>
#include <stdio.h>
#include "mtools.h"
#include "mtools.c"

// D‚claration des variables
// -------------------------
char texter   [3001];
char letter   [3001];
char leftover [71];
char temp     [101];
char oldid    [21];
char id       [1100][11];
char rtemp    [150];
long pos,  Wtc;

int  r1, r11, r27;
int  nrid;
int  voters   =0;
int  twice    =0;
int  pbs      =0;
int  balv     =0;
int  empty    =0;
int  responded=0;
int  reps     [1100];
int  voted    [1100];
int  nr       [1100];
int  max            ;
int  resultn  [150] ;
int  resulty  [150] ;
int  nogo=0;
int  ballot=0;
int  totvote ;
int  totquest;

char question [150][45];
char quest    [150][3];
char mail     [1100][30];

FILE *Fin=0L,  *Fout=0L, *Fwtc=0L, *Flist=0L, *Fbins=0L, *Fvot=0L, *Fvtd=0;
FILE *Farc=0L, *Fbrc=0l, *Fnrc=0L , *Fpbs=0L,  *Fwtv=0L, *Fqst=0;
FILE *Frep=0L, *Fill=0L;

// D‚claration des fonctions
// -------------------------
void fvote(void);
void checker(void);

// --------------------------------------------------------------------------
// Fonction principale
// --------------------------------------------------------------------------
main (int argc, char *argv[])
{
int i, j, k;

// mise … z‚ro des variables
// -------------------------
   i=0;
   totvote=totquest=0;
   leftover[0]=0;
   for (k=0;k<140;k++) rtemp[k]=resulty[k]=resultn[k]=0;

// Ouverture des fichiers
// ----------------------
   Fin   =fopen("atlarge.mbx","r");
   Flist =fopen("polcom"     ,"r");
   Fqst  =fopen("atlarge.qst","r");
   Farc  =fopen("atlarge.arc","r");
   Fout  =fopen("atlarge.vtx","w");
   Fbins =fopen("atlarge.not","w");
   Fvot  =fopen("atlarge.vot","w");
   Fwtc  =fopen("atlarge.wtc","w");
   Fbrc  =fopen("atlarge.brc","w");
   Fpbs  =fopen("atlarge.pbs","w");
   Fnrc  =fopen("atlarge.nrc","w");
   Fwtv  =fopen("atlarge.wtv","w");
   Fvtd  =fopen("atlarge.vtd","w");
   Frep  =fopen("atlarge.rep","w");
   Fill  =fopen("atlarge.ill","w");

// Point de d‚part du fichier WTC
// ------------------------------
   fscanf (Farc,"%ld", &Wtc);
   fprintf(Fwtc,"STARTS AT: %0ld\n", Wtc);

// lecture du fichier des questions
// --------------------------------
   for (k=0;k<140;k++) 
   {
      fgets(texter,1000,Fqst); 
      m_short(texter);
      sprintf(question[k],"%s", &texter[6]);
      sprintf(quest   [k],"%-2.2s", texter);
   }

// Lecture des ID des votants
// --------------------------
   while (1)
   {
      if (fgets(texter,1000,Flist)<=0) break;
      sscanf(texter,"%s %s", &id[i],&temp);
      m_upper(id[i]);
      temp[sizeof(mail[i])-1]=0;
      sprintf(mail[i],"%s",temp);
      reps [i]=0;
      voted[i]=0;
      nr   [i]=0;
      i++;
   }
   max=i;

// Lecture des donn‚es
// -------------------
   while (1)
   {
      pos=ftell(Fin);

//    Fin de fichier enregistre la position du jour
//    ---------------------------------------------
      if (fgets(texter,1000,Fin)<=0) 
      {
         fprintf(Fbrc,"%0ld\n",pos);
         break;
      }

//    Nouveau Message
//    ---------------
      if (!strncmp("From ???@???",texter,12)) 
      {
         oldid[0]=0;
         printf(".");
      }

      m_compact(texter);

//    Si la ligne pr‚c‚dente n'‚tait pas finie
//    ----------------------------------------
      if (leftover[0])
      {
         sprintf(letter,"%s %s", leftover,texter);
         sprintf(texter,"%s",letter);
      }

//    Entr‚e de la mension anti spam dans le mode contr“le
//    ----------------------------------------------------
      if (!strncmp("this a private",texter,9))   
      {
         fprintf(Fout,"%s\n",texter);
      }

//    Message ID
//    ----------
      else if (!strncmp("Message-Id",texter,10)) 
      {
         fprintf(Fout,"%s\n",texter);
         for (i=0;texter[i];i++) if (texter[i]=='@') texter[i]=0;
         if (pos>Wtc) fprintf(Fwtc,"%s\n",texter);
      }

//    Lignes de vote acceptables
//    --------------------------
      else if (strstr(texter, "=>"  ))  fvote();
      else if (strstr(texter, "=3D>"))  fvote();
      else if (strstr(texter, "=&gt;")) fvote();
      else if (strstr(texter, "=&GT;")) fvote();
      else fprintf(Fbins,"%s\n", texter);
   }
   Fin = (FILE *)fclose(Fin );
   Fout= (FILE *)fclose(Fout);
   fprintf(Fwtc,"STOPS AT: %0ld\n", pos);


// Reporting
// ---------
   for (i=0;i<max;i++)
   {
   char t1 [10], t2 [10], t3[10];

//    S'il y a des reps : c'est un vote
//    ---------------------------------
      if (reps [i]) 
      {
         sprintf(t1,"%d", reps[i]);  
         responded++;
      }
      else          
      {
         t1[0]=0; 
      }

//    Si c'est un bulletin de vote (premier vote)
//    -------------------------------------------
      if (voted[i]) 
      {
         sprintf(t2,"*"); 
         voters++;
         fprintf(Fvtd,"%s\n",id[i]);
      } 
      else 
      {
         t2[0]=0;
      }

//    Nombre de bulletins trait‚s du votant et verification
//    -----------------------------------------------------
      if (nr   [i])  
      {
         sprintf(t3,"%d", nr  [i]);  

//       Verifie le total de bulletins
//       -----------------------------
         balv=balv+nr[i];
      }
      else t3[0]=0;

//    Nombre de bulletin lus sans reponse
//    -----------------------------------
      if (nr[i] && reps[i]==0) 
      {
         sprintf(t2,"?");
         pbs++;
         fprintf(Fpbs,"%s\n",mail[i]);
         fprintf(Fnrc,"%s\n",id  [i]);
      }

      fprintf(Fvot,"%04d - %s - %-2.2s > %-1.1s/%-1.1s %s\n", i, id[i], t1,t2, t3, mail[i]);
      fprintf(Fwtv,"%04d - %s - %-2.2s > %-1.1s/%-1.1s\n"   , i, id[i], t1,t2, t3);
   }

// Reports de l'‚tat du vote
// -------------------------
   fprintf(Fvot,">>>\n");
   fprintf(Fvot,">>> Voters: %0d\n",voters);
   fprintf(Fvot,">>>\n");
   fprintf(Fwtv,">>>\n");
   fprintf(Fwtv,">>> Voters: %0d\n",voters);
   fprintf(Fwtv,">>>\n");
   for (i=0;i<140;i++)
   {
      if (i<30) fprintf(Fvot,"=>%s %-45.45s: %0d\n"              , quest[i], question[i], resulty[i]);
      else      fprintf(Fvot,"=>%s %-45.45s: % 4d(Y) - % 4d(N)\n", quest[i], question[i], resulty[i], resultn[i]);
   }
   fprintf(Fvot,">>>\n");
   fprintf(Fvot,">>> ELECTED PANEL\n");
   fprintf(Fvot,">>>\n");
   j=1;
   for (k=1100;k>=0;k--)
   {
      for (i=0;i<28;i++)
      {
         if (resulty[i]==k) 
         {
            if (j==1 ) r1 =k;
            if (j==11) r11=k;
            if (j==27) r27=k;
            fprintf(Fvot,"=>%s %-45.45s: % 4d (%0d)\n" , quest[i], question[i], resulty[i], j++);
         }
      }
      if (j==12) fprintf(Fvot,">>>\n");
   }
   fflush(Fvot);

// Les votes sont ou vot‚s, ou dupliqu‚ ou vides
// ---------------------------------------------
   empty=ballot-voters-twice;

   fprintf(Fvot,">>>\n");
   fprintf(Fvot,">>> AVERAGES\n");
   fprintf(Fvot,">>>\n");
   fflush(Fvot);
   fprintf(Fvot,"Number of candidates selected per voters: %0d>>>\n", totvote/voters);
   fprintf(Fvot,"Number of questions answered  per voters: %0d>>>\n", totquest/voters);
   fprintf(Frep,"ICANN@LARGE.ORG PANEL ELECTION - PROVISIONAL STATUS\n");
   fprintf(Frep,"=====\n", voters);
   fprintf(Frep,"The daily watchdog.zip file has been forwarded to the watchogs.\n", voters);
   fprintf(Frep,"It includes:\n", voters);
   fprintf(Frep,"- all the received ballots anonymized by the watch.exe program\n", voters);
   fprintf(Frep,"- the code of the watch.c program\n", voters);
   fprintf(Frep,"- the detail of the VIDs having returned a ballot\n", voters);
   fprintf(Frep,"=====\n", voters);
   fprintf(Frep,"%d (checked as: %d) ballots have been archived\n",ballot, balv);
   fprintf(Frep,"they include:\n", twice);
   fprintf(Frep,"- %0d duplicates\n", twice);
   fprintf(Frep,"- %0d empty ballots returned\n", empty);
   fprintf(Frep,"  from %0d probably wrong/anti-spam e-mail addresses\n", pbs);
   fprintf(Frep,"=====\n");
   fprintf(Frep,"%d Members have voted\n", voters);
   fprintf(Frep,"- the leading candidate has %d votes, i.e. %0d %%\n", r1 , 100*r1/voters);
   fprintf(Frep,"- the 11th candidate has %d votes, i.e. %0d %%\n"   , r11, 100*r11/voters);
   fprintf(Frep,"- the last candidate has %d votes, i.e. %0d %%\n"   , r27, 100*r27/voters);
   fprintf(Frep,"=====\n");
   fprintf(Frep,"Statistics:\n");
   fprintf(Frep,"- average number of candidates selected per voters: %0d\n", totvote/voters);
   fprintf(Frep,"- everage number of answers (Y/N) given per voters: %0d\n", totquest/voters);
   fprintf(Frep,"=====\n");
   fprintf(Frep,"\"lead, follow, or get out of the way!\"\n");
   fprintf(Frep,"=====\n");
   return(0); 

}
// --------------------------------------------------------------------------
// Traitement de ligned de vote
// --------------------------------------------------------------------------
void fvote()
{
int n;
int i;
int k;
char entry=0;

// On passe en mode majuscule pour des votes identiques
// ----------------------------------------------------
   m_upper(texter);
   memset(letter,0,sizeof(letter));
   k=0;
   n=0;
 
// Efface le d‚but de ligne anormal
// --------------------------------
   if (texter[0]=='>') n=1;
   if (texter[0]==':') n=1;
   if (texter[1]==' ') n=2;
   if (texter[3]==' ') n=3;
 
// Lit la ligne
// ------------  
   for (i=n;texter[i];i++)
   {

// Flag standard
// -------------  
      if (texter[i]=='=' && texter[i+1]=='>')
      {
         if (entry && letter[0]) checker();
         memset(letter,0,sizeof(letter));
         k=2;
         i++;
         sprintf(letter,"=>");
         entry=1;
      }

// Transcodage =3D>
// ----------------  
      else if (texter[i]=='=' && texter[i+1]=='3' && texter[i+2]=='D' && texter[i+3]=='>')
      {
         if (entry && letter[0]) checker();
         memset(letter,0,sizeof(letter));
         k=2;
         i++; i++; i++;
         sprintf(letter,"=>");
         entry=1;
      }
// Transcodage =a&gt;
// ------------------  
      else if (texter[i]=='=' && texter[i+1]=='&' && texter[i+2]=='G' && texter[i+3]=='T' && texter[i+4]==';')
      {
         if (entry && letter[0]) checker();
         memset(letter,0,sizeof(letter));
         k=2;
         i++; i++; i++; i++;
         sprintf(letter,"=>");
         entry=1;
      }
// Ajouts intenpestifs
// -------------------  
      else if (texter[i]=='=');
      else if (texter[i]=='>');
      else if (texter[i]==' ' && texter[i+1]==']' && letter[k-1]=='[') letter[k++]=' ';
      else if (texter[i]==' '); 
      else letter[k++]=texter[i]; 
   }

// On voit le vote
// ---------------
   if (entry && letter[0])  checker();
}

// --------------------------------------------------------------------------
// prise en compte du vote
// --------------------------------------------------------------------------
void checker ()
{
int i;
int k;
char check[100];

// Longeur est trop courte : leftover
// ----------------------------------
   if (strlen(letter)<21)
   {
      sprintf(leftover,"%s",letter);
fprintf(Fout,"?? %s\n", letter); 
      return;
   }

// le VID du vote
// --------------
   sprintf(check,"%-9.9s",&letter[4]);
   for (i=0;i<=max;i++)
   {
      if (!strcmp(check,id[i])) 
      {
         goto ok; 
      }
   }
   sprintf(leftover,"%s",letter);
   fprintf(Fill,"%s\n", letter);
   return;

// On a trouv‚ le votant
// ---------------------
ok:

// Debut de l'entr‚e
// -----------------
   if (strcmp(check,oldid)) 
   {
//    Nouveau vote
//    ------------
      ballot++;

//    Nuveau vote de cet votant
//    -------------------------
      nr[i]++;
fprintf(Fout,"<---- nr[%0d]=%0d %s:%s\n",i,nr[i], check, oldid);
      nrid=i;
      if (nogo==0)
      {
         for (k=0;k<140;k++) 
         {
            if (k<30 && rtemp[k])      resulty[k]++;
            if (k>29 && rtemp[k]=='Y') resulty[k]++;
            if (k>29 && rtemp[k]=='N') resultn[k]++;
            rtemp[k]=0;
         }
      }

//    S'il a d‚j… vot‚ : ne revote pas
//    --------------------------------
      if (voted[i]) {nogo=1; twice++;}
      else nogo=0;

//    oldid est mis … jour les donn‚es sont imprim‚es
//    -----------------------------------------------
      sprintf(oldid,"%s",check);
      fprintf(Fout,"%000d ======= %0d: %s === %s ====\n", ballot, i, check, mail[i]);
      if (pos>=Wtc) 
      fprintf(Fwtc,"%000d ======= %0d: %s ===========\n", ballot, i, check);
   }

// impression de la ligne
// ----------------------
   fprintf(Fout,"%-13.13s %04d %s\n", letter, ballot, &letter[16]);
   if (pos>=Wtc) 
   fprintf(Fwtc,"%-13.13s %04d %s\n", letter, ballot, &letter[16]);
   leftover[0]=0;                                     

// compte du votes
// --------------- 
   if (letter[17]!=' ' && !nogo) 
   {
//    Nombre de vote - le bulletin est accept‚
//    ----------------------------------------
      reps[nrid]++; 
      if (voted[nrid]==0) voted[nrid]=1;

//    Comptabilise les entr‚es
//    ------------------------
      if      (letter[2]=='A') k=100+letter[3]-'0';
      else if (letter[2]=='B') k=110+letter[3]-'0';
      else if (letter[2]=='C') k=120+letter[3]-'0';
      else if (letter[2]=='D') k=130+letter[3]-'0';
      else                     k=10*(letter[2]-'0')+letter[3]-'0';
      rtemp[k]=letter[17];
      if (letter[2]<'3') totvote++;
      else               totquest++;
   }
}


---------------------------------------------------------------------
To unsubscribe, e-mail: atlarge-discuss-unsubscribe@lists.fitug.de
For additional commands, e-mail: atlarge-discuss-help@lists.fitug.de