[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, "=>")) fvote();
else if (strstr(texter, "=>")) 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>
// ------------------
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