lundi 11 octobre 2010

Windowseries réseaux

Sous Windows, des fois, le simple fait de lancer une application comme TS3 vous permet de brider votre connexion ethernet à 100Mbps alors même que vous venez d'acheter un joli switch 1000Mbps. Passe encore.

Maintenant, vous souhaitez copier des fichiers linux -> windows par CIFS et là ça ne marche pas parce que Windows l'a décidé. En fait il pourrait très bien le faire à condition de modifier un paramètre système qui pose des problèmes de performances avec les jeux et les cartes 3D.

Bref je suis "like the fruit of the oak" comme dirait Francis. J'ai plus qu'à essayer le FTP.

lundi 4 octobre 2010

La meilleure SF de toute la zone lente

Attention, il paraît que Vernor Vinge publie un nouvel opus de la série "Zones of Thought" ce 21 octobre !

vendredi 1 octobre 2010

U SOX

Si toi aussi tu es soumis à Sarbanes-Oxley, peut-être utilises-tu déjà un générateur de mot passe de qualité. Sinon, je te prête celui-ci. Je n'en dis pas plus mais c'est du vrai. Du coup les mots de passe ont tous un petit air de famille.



#define FALSE 0
#define TRUE  1

int rand ();
unsigned long getseed ();

main (int argc, char *argv[])
{
  char AMin[] = "abcdefghijklmnopqrstuvwxyz";
  char AMaj[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  char Nume[] = "0123456789";
  char Spec[] = "!:~{}.^*=+-,?_%";
  long trustedhostid[2];
  int istrustedhost = 0;
  char PassWord[20];
  int NSpec = 15;
  int a = 0;

  int seed, numgen, longpass, typelettre;
  int FMin, FMaj, FNum, FSpe;
  int ic, i, j, k, l, n;
  FMin = FMaj = FNum = FSpe = FALSE;
  l = 1;

#if 0
  if (getuid () > 0)
    {
      fprintf (stderr, "Sorry, only root can run this command\n");
      exit (1);
    }
#endif

  seed = getseed ();
  while (seed <= 100000)
    {
      seed = getseed ();
    }

  longpass = 8;
  numgen = fonct_rand (seed);

  ic = 0;
  n = numgen % 26;
  if (numgen % 2 == 0)
    {
      PassWord[ic] = AMin[n];
      FMin = TRUE;
    }
  else
    {
      PassWord[ic] = AMaj[n];
      FMaj = TRUE;
    }

  for (ic = 1; ic < longpass; ic++)
    {
      seed = numgen;
      numgen = fonct_rand (seed);
      typelettre = numgen % 4;
      if (ic > longpass / 5 && !FMin)
    typelettre = 0;
      if (ic > longpass * 2 / 5 && !FMaj)
    typelettre = 1;
      if (ic > longpass * 3 / 5 && !FNum)
    typelettre = 2;
      if (ic > longpass * 4 / 5 && !FSpe)
    typelettre = 3;

      switch (typelettre)
    {
    case 0:
      n = numgen % 26;
      PassWord[ic] = AMin[n];
      FMin = TRUE;
      break;
    case 1:
      n = numgen % 26;
      PassWord[ic] = AMaj[n];
      FMaj = TRUE;
      break;
    case 2:
      n = numgen % 10;
      PassWord[ic] = Nume[n];
      FNum = TRUE;
      break;
    case 3:
      n = numgen % NSpec;
      PassWord[ic] = Spec[n];
      FSpe = TRUE;
      break;
    }
    }
  PassWord[ic] = '\0';

  printf ("%s\n", PassWord);

}

int
fonct_rand (int j)
{

  int i, k, l;

  l = 1;

  k = j / 100000;
  k *= 100000;

  l = j - k;
  for (i = 0; i < l; i++)
    rand ();

  return rand ();
}

unsigned long
getseed ()
{
  unsigned int myseed;
  FILE *devrandom;

  if ((devrandom = fopen ("/dev/random", "r")) == NULL)
    {
      fprintf (stderr, "Sorry , I can't open /dev/random \n");
      exit (1);
    }

  else
    {
      fread (&myseed, sizeof (myseed), 1, devrandom);
      fclose (devrandom);
    }
  return (myseed);

}

mercredi 8 septembre 2010

Sauvegarder son compte IMAP en mbox/maildir

J'ai suivi deux autres billets sur comment sauvegarder un compte IMAP avec cet autre bon logiciel libre : getmail4 .

En détails, ce que j'ai fait en détails pour sauver mon compte GMail en mbox et maildir dans ~/gmail.getmail4:

1) Créer le fichier le fichier ~/.getmail/gmail.conf comme ce qui suit:
[retriever]
type = SimpleIMAPSSLRetriever
server = imap.gmail.com
username =moi@gmail.com
password = pouetpouet
mailboxes = ("[Gmail]/Tous les messages",)

[destination]
type = MultiDestination
destinations = ("[mboxrd-destination]", "[maildir-destination]")

[mboxrd-destination]
type = Mboxrd
path = ~/gmail.getmail4/mboxrd/gmail-backup.mbox

[maildir-destination]
type = Maildir
path = ~/gmail.getmail4/maildir/

[options]
# print messages about each action (verbose = 2)
# Other options:
# 0 prints only warnings and errors
# 1 prints messages about retrieving and deleting messages only
verbose = 2
message_log = ~/gmail.getmail4/gmail.log

# preserves your mail after backup
delete = false
# just get new mails
read_all = false
2) Créer la strcture:
mkdir ~/gmail.getmail4/maildir/{new,cur,tmp} 
touch ~/gmail.getmail4/mboxrd/gmail-backup.mbox
3) feu !
getmail -r /home/benoit/.getmail/gmail.conf

mardi 7 septembre 2010

Importer des mails au format mbox sur un compte IMAP

Je n'utilise plus Evolution depuis que j'ai changé de portable. A présent j'utilise une combinaison de Thunderbird/Icedove + GMail mais je me suis toujours demandé comment proprement récupérer mais mails d'Evolution provenant de compte POP3.

Je sais déjà faire une restauration d'Evolution: en restaurant mon ~/.evolution + mon ~/.gconf* dans un compte de test, c'est possible de relancer Evolution comme s'il ne s'était jamais rien passé.

Mais là c'est encore plus simple et générique avec imap-uploader. J'ai déjà importé 2000 mails envoyés naguère en utilisant mon ~/.evolution/mail/local/Sent pour tester, le tout sous un libellé distinct sous GMail. Il ne me reste plus qu'à envoyer également mon ancien Inbox et ça sera joué !

python imap_upload.py --gmail --box evolution_Sent /home/benoit/.evolution-restaure/mail/local/Sent
python imap_upload.py --gmail --box evolution_Inbox /home/benoit/.evolution-restaure/mail/local/Inbox

vendredi 30 juillet 2010

Le livre préféré de RMS

Il l'a dit sur Reddit:

19. OsamaK: What's the best book you have ever read?

RMS: I can't remember now all the books I have read and loved. And even if
I could, I would not be able to pick one to call it best.

If you like fairly hard Science Fiction with a big vision, I recommend
A Fire Upon the Deep, by Vernor Vinge, and Diaspora, by Greg Egan. If
you like something a little less hard, I recommend The Jehovah
Contract by Victor Koman. If you like detective fiction, I recommend
Laura King's books about Mary Russell, starting with The Beekeeper's
Apprentice, and Steve Saylor's Roman mysteries about Gordianus the
Finder.
Je n'ai pas encore lu A Fire Upon the Deep mais je viens de terminer A Deepness in the Sky de Vernor Vinge. Et à ce jour, c'est vraiment le meilleur livre de SF que j'ai lu. C'est beaucoup plus complexe que les Ringworld de Larry Niven ou les Foundation d'Isaac Asimov. Ce que j'aime chez Vinge, c'est que c'est vraiment de la SF dure et son approche de l'Humanité. Là où chez Asimov, l'humanité va vers le mieux grâce à la "psychohistory", et même si chez Niven le Ringworld est en décrépitude, dans le monde des Qeng Ho de Vinge, les civilisations apparaissent, disparaissent, régressent et progressent sans cesse. Et le temps s'allonge à l'infini, avec les voyages qui se font en stase à des vitesses sub-luminiques, ce qui fait que la vie d'un homme peut s'étaler un millénaire.

Je ne connais pas Diaspora de Greg Egan, je vais commander ça dès que j'aurais lu A Fire Upon the Deep qui déjà sur mon bureau.