Archives annuelles : 2011

Iim ou le mirro­ring du CPAN facile

Depuis le 6 octobre 2011, http://cpan.fiat-tux.fr est un miroir offi­ciel du CPAN !

Pour mettre en place mon miroir, j’avais sage­ment été sur la page du CPAN expliquant comment faire. Et comme je n’ai pas peur des trucs expe­ri­men­taux, j’avais utilisé la tech­nique de l’instant mirro­ring. Ça consiste à récu­pé­rer très souvent un fichier conte­nant la liste des dernières modi­fi­ca­tions pour que le démon sache quoi télé­char­ger. (et un coup de rsync de temps en temps via cron pour éviter les éven­tuels problèmes)

J’avais donc utilisé rrr-client, comme indiqué sur la page de l’ins­tant mirro­ring.

Tout fonc­tion­nait parfai­te­ment… ou pas ! Après le reboot sauvage de mon serveur néces­saire pour cause d’at­taque (a priori, la faille http-range d’apache d’il y a peu), j’ai oublié de relan­cer le démon de synchro.

Coup de bol, quand j’ai demandé à être ajouté aux miroirs offi­ciels du CPAN, c’est Henk Penning qui m’a répondu. Il a vu que mon mirroir n’était pas en instant mirro­ring (il y avait quand même le rsync en cron) et m’a proposé l’ou­til d’ins­tant mirro­ring qu’il a déve­loppé : iim.

Iim se diffé­ren­cie de rrr-client par plusieurs aspects :

  • le rsync pério­dique est inté­gré dans le démon
  • le démon peut mourir pério­dique­ment pour éviter que des fuites mémoire deviennent problè­ma­tiques (oui, bon, un bon logi­ciel n’est pas sensé avoir de fuites mémoire)
  • une tâche cron peut (et c’est recom­mandé) appe­ler le logi­ciel. Comme iim est bien fait, si le démon tourne, ça ne fait rien, sinon ça le rallume. => et là, c’est la killer feature : je n’ai pas à m’en occu­per en cas de reboot, la synchro­ni­sa­tion repren­dra toute seule
  • on a une petite inter­face (custo­mi­zable) pour moni­to­rer le démon : c’est le score­board.

Pour ce qui est de l’ins­tal­la­tion et de la confi­gu­ra­tion, je vous laisse lire le manuel, y en a pour 10 minutes en tout ! (allez, 15 minutes en custo­mi­sant un peu le score­board).

Thx Henk !

Me soutenir sur Tipeee Me soutenir sur Liberapay

Un grand homme est mort…

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int                main(int argc, char **argv)
{
  char const        *nom = "Dennis Ritchie";
  char const        *pseudo = "dmr";
  char const        *lieu_de_naissance = "Bronxville, New York";
  char const        *diplome = "Diplômé de l'université de Harvard en physique et mathématique appliquée";
  char const        *nom_confrere = "Ken Thompson";
  char const        *date_de_naissance = "9 septembre 1941";
  char               biographie[2012][1024];
  int                i;

  sprintf(biographie[1941], "%s nait le %s à %s", nom, date_de_naissance, lieu_de_naissance);

  sprintf(biographie[1967], "%s, %s entre aux Laboratoires Bell, un centre de recherche et développement en informatique situé à Murray Hill, dans le New Jersey.", diplome, nom);

  sprintf(biographie[1969], "%s commence à travailler sur un nouveau langage de programmation, évolution du langage B, projet de %s auquel il a participé. nom de code pour ce nouveau langage, NB, pour New B.", nom, nom_confrere);

  sprintf(biographie[1973], "Le langage C est rendu public. Et, toujours en 1973, au Symposium on Operating Systems Principles à l\'Université de Purdue, %s présente avec %s un article sur un nouveau système d\'exploitation basé sur le C, UNIX", nom, nom_confrere);

  sprintf(biographie[1975], "Avec sa version 6, UNIX commence à être utilisé en dehors des laboratoires Bell. UNIX et le langage C sont aujourd'hui considérés comme étant les éléments fondateurs de l\'informatique moderne.");

  sprintf(biographie[1978], "Avec Brian Kernighan, %s publie \"The C Programming Language\", la première \'bible\' expliquant la programmation en langage C. L\'ouvrage est communément appelé le K&R, les initiales des auteurs.", nom);

  sprintf(biographie[1983], "%s reçoit le Turing Award, prix le plus prestigieux en informatique, avec %s pour UNIX et le développement de la théorie des systèmes d'exploitations génériques.", nom, nom_confrere);

  sprintf(biographie[1999], "%s et %s reçoivent des mains de Bill Clinton la médaille nationale de la technologie.", nom, nom_confrere);

  sprintf(biographie[2007], "%s , alors à la tête du département de recherche sur les  logiciels système aux Laboratoires Bell, prend sa retraite.", nom);

  sprintf(biographie[2011], "Le 8 octobre, à l\'âge de 70 ans, %s s\'éteint suite à une longue maladie.", nom);

  for(i = 1941; i <= 2011; i++)
    if (strlen(biographie[i]))
      printf("%d : %s\n\n", i, biographie[i]);

  printf("Goodbye World");

  return 0;
}
Me soutenir sur Tipeee Me soutenir sur Liberapay