Pizza-coke.net : Blog Linux & OpenBsd, accompagné d'une pizza

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 19 juillet 2017

OVH : le grand saut ?

La vie est faite de rencontres et d'inattendus. Il y a environ dix jours, un ami me done un contact chez OVH. Il me dit de l'appeler pour voir si mes compétences ne pourraient pas trouver à s'exprimer au complet... Difficile challenge car la polyvalence est très certainement ce qui me caractérise le plus. J'allie des compétences en informatique, bien sûr, mais bien d'autres dans des domaines très divers (le droit, le management, la négociation, le théâtre...). Fort d'une expérience de vie qui laisse à penser qu'il faut explorer toutes les opportunités que la vie nous offre, j'appelle donc cette personne. Premier contact téléphonique absolument génial. On me propose d'étudier un poste qui semble tout à fait me correspondre (donc, oui, le père noël existe). Hier, j'ai eu des entretiens avec 4 personnes de l'entreprise. Tout s'accélère. Dans le bon sens... En fait, je suis devenu impatient à l'idée de rejoindre cette équipe pour laquelle j'ai déjà des idées qui foisonnent. Prochain rendez-vous : entre le 7 et le 15 août. L'attente va me paraître interminable dans la mesure où je dois continuer à poursuivre mon activité d'indépendant que j'ai actuellement et qui m'oblige à étudier des contrats et des projets pour la rentrée de septembre... Au risque de devoir les abandonner alors que des personnes m'auront transmises toute leur confiance... Le poste pourrait être à pourvoir dès septembre. Comme le temps va être long et rapide à la fois...

Champignonment vôtre

Pizza-coke

dimanche 29 janvier 2017

500 lignes de code en Perl

Ce samedi, j'ai conçu un petit programme en Perl pour réaliser des importations de données en masse. C'était bien, pas compliqué et rapide à programmer. Je me suis dit que tout le monde devrait apprendre un minimum de programmation. Avec Perl, l'avantage est que c'est portable sur toutes les architectures. Si vous voulez vous lancer dans la programmation, choisissez Perl.

Pour ceux qui cherchent de la documentation en français : c'est ici

Votre bien dévoué

Pizza coke

lundi 16 janvier 2017

Jean-claude, concepteur de virus

VirusBelge.jpg

mercredi 25 juin 2014

FAQ d'OpenBSD en français

Juste un lien pour ceux que ça intéresse, il existe une FAQ d'openBSD en français. Elle n'est pas accessible depuis la page d'accueil, étonnamment :

http://www.openbsd.gr/faq/fr/

Bonne lecture

Pizza

mercredi 4 juin 2014

Upgrade d'openbsd 5.4 en 5.5

Mon serveur de fichiers professionnels tourne sous OpenBSD 5.4. J'y accède en sftp. La configuration est donc minimale : pas d'interface graphique, un seul port ouvert (22).
Néanmoins, j'appréhendais l'upgrade de l'OS avec appréhension car on ne sait jamais si cela ne va pas modifier un fichier système que l'on aurait bidouillé.
En même temps, j'avais une confiance aveugle dans la qualité du travail des développeurs d'OpenBSD. J'abordais cette opération sereinement, même si elle était risquée professionnellement parlant (risque amoindri par la réplication des données sur un serveur FreeBSD).
J'ai donc rebooté la machine avec le cd rom d'installation à l'intérieur.
J'ai suivi les instructions. Tout s'est fait automatiquement en moins de 15 minutes (téléchargements inclus des ports nécessaires).
Je n'ai donc rien à dire. C'est presqu'un problème d'ailleurs car ça tourne sans difficulté. Ca ne plante pas. Ca n'a pas de problème. Ca fait son job, tout simplement: rien à écrire dessus.

Pizza

lundi 3 février 2014

Crypter des fichiers sous OpenBSD (vnconfig)

Après avoir fait des tours et des détours sous Linux, bien content de Debian depuis maintenant trois ans (plus envie de changer), je m'intéresse un peu plus à OpenBSD. Ne cachons pas mon goût pour la sécurité et la cryptographie : c'est pour ça qu'OpenBSD m'intéresse. Ca fait bien longtemps que j'ai envie de me faire un serveur SFTP sous OpenBSD pour stocker mes fichiers professionnels, qui nécessitent une grande attention sécuritaire compte tenu de l'importance de la confidentialité dans mon métier. Par ailleurs, mes nombreux déplacements en Chine m'obligent à les transporter avec moi régulièrement et le stockage de ses derniers sur un serveur distant me satisfait.

Néanmoins, comme ma problématique est celle de la confidentialité, je ne voudrais pas que si ma maison venait à se faire cambrioler, on puisse accéder à ces fichiers particuliers. Je vais donc les crypter et faire une duplication sur un second serveur. Mon premier objectif est donc de crypter les fichiers. Pour cela, on va utiliser vnconfig.

Les commandes sont les suivantes (en root):

#dd if=/dev/random of=/home/login/encrypted.asc bs=1M count=100


#vnconfig -ck /dev/vnd0c /home/login/encrypted.asc
Encryption key:
#
#cd /mnt

#mkdir encrypted
#
#newfs /dev/rvnd0c
/dev/rvnd0c: 100.0 MB in 204800 sectors of 512 bytes
4 cylinder groups of 25.00MB, 1600 blocks, 3200 inodes each
super-block backups (for fsck -b at):
32, 51232, 102432, 153632
#
#mount /dev/vnd0c /mnt/encrypted
#
#cp -R /home/login/directory /mnt/encrypted #
#umount /mnt/encrypted
#vnconfig -u /dev/vnd0c
#

Les données sont maintenant stockées sur le disque dur de manière chiffrée avec pour seul accès le mot de passe donné à l'étape Encryption key. Pour récupérer les données, il suffit de faire les étapes suivantes :

#
#vnconfig -ck /dev/vnd0c /home/login/encrypted.asc
Encryption key:
#mount /dev/vnd0c /mnt/encrypted
#
Si un essai infructueux de mot de passe a été fait, le volume sera impossible à monter. Pour tenter à nouveau d'y accéder, il faut dé-lier le volume par vnconfig -u. Ainsi, on a un volume image de 100 Mo cryptable, sauvegardant la structure des répertoires et les données des fichiers... Evidemment, si on perd le mot de passe ou le fichier encrypted.asc : tout est PERDU.

Pizza

vendredi 3 janvier 2014

Eee pc sous Debian 7.2 : tout fonctionne parfaitement

De guerre lasse, sans avoir pu installer le wifi sur la slackware, j'ai tenté une installation de la dernière Debian 7.2, avec ce problème de cdrom externe. Après avoir configuré le bios (qui est vraiment merdique, y a pas d'autres mots pour le qualifier) de telle manière qu'il ne puisse booter que le lecteur cd rom en USB, sans autre possibilité par défaut pas de boot sur le disque dur), l'installation s'est fait par le réseau sans problème (net install). Reboot sans problème et le wifi et le bluetooth fonctionne tout à fait normalement. Tout tourne à merveille. Un vrai bonheur.

Concernant la Slackware, j'avais essayé plusieurs fois, sans succès, de compiler un nouveau noyau.Etant linuxien depuis 1999, je n'en étais pas à mon premier noyau, mais là, rien à faire : la compilation n'a jamais fonctionné. Peut-être que les ressources système de l'ordinateur n'étaient pas suffisantes. C'est possible... On ne saura jamais. En tout cas, ça fonctionne.

Pizza

mercredi 18 janvier 2012

Les lunettes 3D/4D chinoises pour gamers

Pour les gamers, rien n'est trop beau pour profiter de leurs jeux. En Chine, la dernière nouveauté en vogue : les lunettes 4D. Mieux que la 3D, ces lunettes permettent d'ajouter une nouvelle dimension au jeu. Laquelle me demandez-vous?

En fait, d'après les vendeurs, il faut bien comprendre qu'il s'agit de lunette 3D classique, mais qui seront compatibles avec la technologie 4D lorsqu'elle sera créée... Et ça se vend comme des petits pains... De là à dire que l'inculture du gamers de base chinois est sans limite, il n'y a qu'un pas. Mais on ne le franchira pas : c'est politiquement incorrect.

Champignonement vôtre

Pizza

dimanche 15 janvier 2012

Slackware 13.37 & wifi

Cher lecteur,

Dans mes pérégrinations dernières, je suis parti à l'étranger. Avant de m'engager sur le départ avec un ordinateur datant d'il y a quelques années, lourd de quelques 8 kg (batterie incluse), et un bouton marche/arrêt capricieux, j'ai décidé de m'engager avec un e-pc. Là encore, mon choix se fait sur un matériel pas trop neuf pour être sûr de pouvoir y faire tourner un linux tip - top, sans difficulté...

Me voilà avec le matos chez moi et j'y installe une slackware 13.37, comme j'avais déjà eu l'occasion de vous l'écrire. Après presque deux semaines d'installation, aucun problème particulier à signaler. J'ai installé OpenOffice, ce qui m'a permis de travailler tranquillement avec des document word (.doc ou .docx). Ca, c'est ok.

En revanche, le wifi ne fonctionne toujours pas, malgré plusieurs tentatives. J'ai donc décidé de compiler un noyau 'sur mesure' (c'est quand même l'intérêt d'avoir linux). Problème: impossible de booter la machine avec le nouveau noyau. J'en suis au point mort, depuis deux semaines. J'étais parti avec l'ordinateur en me disant que la finalisation de la configuration m'occuperait. Vais-je devoir rentrer en France avec ce pc qui ne fait pas fonctionner le wifi. Pfff... 15 ans que je suis sous Linux, et je suis face à un problème que je ne comprends pas. Ca fait bizarre. Je pense que le problème est situé dans la distribution Slackware que je maîtrise mal. Dès que j'ai une solution, je reviens vous la donner.

Bien champignonement vôtre

Pizza

lundi 9 janvier 2012

Tux ICQ

ICQ est un client de messagerie que j'ai toujours particulièrement aimé. Je l'ai délaissé quelques années et mon week end en Chine (toujours très fatigué le week end, envie de rien) m'a donné l'envie de le réutiliser. Me voici donc en train de mettre en route Kopete...

Dans cette perspective, je me suis dit : "et si je me faisais un avatar sur mesure ?" Je vous présente donc "Tux-on-icq", histoire de féliciter ICQ de mettre en place une version linux.

Tux_on_icq



Librement réutilisable, ça va de soi...

Pizza

ICQ : 228166224

mercredi 28 décembre 2011

Installation d'OpenBsd sur un compaq prosignia 150

Après mes déboires de l'installation d'OpenBsd sur mon nouveau notebook, j'ai décidé de récupérer dans mes vieux cartons un vieux coucou de 1999 : mon premier pc portable. Il s'agit d'un compaq prosignia 150. Une vraie bête à l'époque. Un amd K6-2 de 383 Mhz, 55 Mo de mémoire vive avec un disque dur de 6 Go, il avait tout d'un grand. Et il l'a été. Windows 98 a partagé le disque dur avec:

- Linux Mandrake 7.0;
- Linux Debian 2.2;
- Suse Linux 6.4;
- Linux Red Hat 7;
- Linux Mandriva;

Toutefois, avec l'arrivée de l'adsl, j'avais fini par perdre l'utilisation d'internet via le port RJ45, provenant d'une carte pcmcia Compaq Netintelligent 10/100. Bref, une carte réseau avec driver propriétaire intégré. Je travaillais alors à la fabrication de site internet, j'utilisais Apache en local, couplé avec PHP. Je vous laisse imaginer le nombre de reboot.

Le temps aidant, Windows 98 a fini par être totalement inutilisable : l'antivirus prenait de plus en plus de place, les mises à jour de Windows également. Le disque a fini par être saturé de ces petits défauts que l'on ne rencontre pas en de telles proportions sous linux (probablement car les virus sont inexistants).

Pris d'une soudaine envie de faire revivre ce pc - et d'avoir une station me permettant de tester openbsd avant d'attaquer une installation sur ma machine actuelle - j'ai tenté une installation d'OpenBsd 5.0. Pas de problème. Ca a pris moins de 25 minutes :-) Seul hic : l'accès au réseau internet qui n'est toujours pas possible. Je pensais que, depuis le temps, un driver aurait été développé. Et bien non. J'ai donc décidé de faire la double acquisition :

- d'une carte réseau pcmcia "lambda" (environ 8 euros);
- d'un port réseau via USB (figurez vous que ça existait déjà à l'époque);

J'attends les deux accès réseau pour demain. Si jamais ça fonctionne (les deux), je configurerai ce vieux portable en filtre de paquet avec PF. Rien de tel qu'une machine dédié :-) En attendant, j'ai un pc sous openbsd pour faire mes armes.

J'ai reçu une carte réseau, sans marque, à 8 euros. Elle fonctionne à merveille. Pour l'autre, il s'agit d'un adapteur RJ45 sur port USB. Il est sans marque également. En revanche, mon port USB doit être trop vieux car, pour le moment, ça ne fonctionne pas.


Faut que je change le titre de mon blog. Wahou!

Pizza

dimanche 25 décembre 2011

Asus eee pc & OS alternatif...

J'ai fait l'acquisition d'un Asus Eee pc 1215N en vue de mes déplacements à l'étranger. J'en avais marre de me trimballer un ordinateur portable qui, muni de tous les accessoires, pèse environ 8 kg... Je me munis donc de ce nouveau micro pc. Première chose : je vire Windows et m'occupe du remboursement (40 euros pour Windows 7, c'est peu mais ça ne vaut pas plus cher...)

Premier problème : il n'y a pas de lecteur de cdrom. Pour installer un nouveau système d'exploitation, il faut donc acheter un lecteur de cdrom / DVD externe : 35 euros. Le remboursement de windows 7 me permet donc d'acquérir le lecteur externe pour un prix équivalent à la licence de W.. Bref, je lance l'ordinateur : automatiquement Windows essaie de m'enregistrer - de force - auprès de sa centrale (condition résolutoire du remboursement). Je débranche le cable réseau... Pas d'autres moyens.

Ensuite, je reboote la machine en préparant le bios pour booter directement sur le lecteur de DVD où était installé un DVD FreeBSD. Evie de changer d'univers, d'essayer BSD, je profite de ce novel appareil pour me lancer dans cette nouvelle aventure.

L'installation étant prévue pour aller chercher tout dans un lecteur de cdrom, il ne trouve pas le lecteur qui passe par un port USB. Bref, pas d'installation possible. Idem avec NetBSD et PC - BSD. Agacé, je me fais une installation Debian à partir d'un DVD. Là, pas de problème si ce n'est que le réseau ne se configure pas pendant l'installation... Incompréhensible.

Me voici donc en train d'utiliser Knoppix pour faire une installation. Là, aucun problème. A partir de cette OS en Ram, je tente une installation Gentoo. Ca ne marche pas non plus. Grrrr... Ayant reçu OpenBSD (set de cds), je tente une installation. Ca marche! Allez chercher à comprendre... Premier redémarrage : c'est trè long car l'OS configure plein de choses. Ne le sachant pas, je l'arrête au bout de deux heures (!). Je le redémarre et le laisse aller jusqu'au bout (23 heures!). Arrivé au bout: le login ne fonctionne pas. Pas de possibilité de rebooter la machine. Je l'arrête en "force", sans avoir pu me connecter via le login.

Je redémarre et ça reprend un cycle très lent. Je comprends que ma première impatience a été fatale. C'est pour ça que ça a pris si longtemps. Néanmoins, j'en ai tellement marre que je ne souhaite pas refaire une installation. Je tente un live DVD Gentoo. L'interface graphique se bloque... De guerre lasse, je fais une installation de Knoppix sur le disque dur. Ca marche bien, c'est stable. Rien à dire. Je voulais profiter pour essayer autre chose. C'est loupé.

Conclusion : une absence de lecteur de DVD interne est quand même très problématique pour installer un OS alternatif. Pourtant, j'avais vérifié que cet ordinateur était bien compatible avec les BSD. Si j'ai le temps et l'envie de m'amuser, je retenterais peut-être une installation d'OpenBSD. En attendant, j'utilise mon ordinateur, ça marche et c'est ce qui compte.

Pizza

lundi 12 décembre 2011

Les outils du linuxiens

Mes amis me demandent souvent s'ils peuvent se convertir sans dommage à Linux. La meilleure réponse est toujours celle du partage sur la machine des deux systèmes d'exploitation : celui avec lequel ils ont l'habitude de travailler et Linux. En général, je les oriente vers une Mandriva pour débuter. C'est joli, facile à utiliser et relativement complet (plus qu'Ubuntu à mon sens). Par ailleurs, ma première distribution Linux était une mandrake 7.0. A cet époque, installer Linux sur un ordinateur portable n'était pas une sinécure...

Aujourd'hui, je travaille sur ma Debian et je constate que mes mises à jour successives mettent à mal les fichiers de configuration que j'avais placés à l'intérieur, les permissions et les versions chèrement acquises... J'ai fait le choix d'une installation "stable" en ne voulant pas avoir de produit qui pourraient être flottant en terme de stabilité. Mon objectif : créer un super calculateur (à l'échelle d'un particulier, on s'entend) et faire une DMZ qui me permette de surfer anonymement sur le web lorsque je suis à l'étranger.

Les deux objectifs sont parfaitement atteints, si ce n'est que l'accès à mon réseau sans fil est régulièrement coupé par les mises à jour. Je me bats pendant des heures pour récupérer un accès à Internet, même en filaire, et je ne comprends pas toujours pourquoi ça refonctionne, ou non.

Tout ça pour dire qu'utiliser une distribution Linux un tant soit peu "moins grand public", c'est souvent faire l'impasse sur un certain nombre d'outils bien pratiques, qui nécessitent d'avoir des connaissances malgré tout approfondies de ce que l'on trouve dans le moteur. C'est un peu comme acheter une superbe voiture de sport, ultra rapide et robuste, mais avec un moteur si original dans sa conception que l'on est obligé d'apprendre la mécanique pour pouvoir faire une vidange... Le seul garage compétent pour faire la vidange se situant à plus de 2000 kilomètres.

La question cruciale est alors : de quoi ai-je besoin en tant que linuxien accompli pour pouvoir me tirer d'embarras ? Quels sont les outils et connaissances indispensables à la gestion de ma distribution sous Linux ?

En premier lieu, sans qu'il ne soit besoin de faire beaucoup de difficulté sur ce point, il faut une BONNE connaissance du Shell Bash et des commandes UNIX. Il faut impérativement être capable d'utiliser la machine sans souris, juste en ligne de commande. Il faut se rassurer, cela s'apprend vite, peu d'instructions étant vraiment utiles.

En second lieu, il faut savoir naviguer dans les pages de manuel fourni avec la machine (et donc choisir de les installer au moment de l'installation). Elles sont accessibles par l'instruction "man" suivie de la commande correspondante. Comme aucun exemple d'utilisation n'est donnée, pour plus de clarté, il est utile de regarder les pages de manuel correspondant aux commandes dont on connaît la syntaxe :-)

En troisième lieu, des connaissances en programmation sont un plus qui peut devenir très utile dans certaines circonstances. Personnellement, s'il n'y avait qu'un langage à connaître, je conseillerais Perl. Puissant, facile à mettre en oeuvre, rapide à utiliser.

En quatrième lieu, bien étudier le système des permissions. Les problèmes de Linux viennent souvent du fait que l'on a le droit / ou non / d'utiliser un logiciel. Il est rare que la machine ne fonctionne pas pour un problème logiciel (en fait, ça m'est déjà arrivé il y a des années pour être honnête. La dernière fois remonte à (au moins) sept ans).

En cinquième lieu, l'envie de "bidouiller" car être sous Linux, c'est aimé passer un peu de temps avec sa machine pour la voir évoluer. Quand un problème se rencontre, la recherche de sa résolution apporte toujours de nouvelles connaissances et c'est toujours très instructif. Encore faut-il aimer se poser des questions...

En sixième lieu, être curieux. Il faut avoir l'envie de regarder régulièrement ce qui se fait et se dit sur les forums, dans les revues, etc... Il faut avoir un tempérament un peu "hacker" (à ne pas confondre avec "cracker").

Toutes les considérations politiques autour de Linux sont superfétatoires et n'apportent rien à ce système qui, une fois installé, sans mise à jour trop fréquente, ne risque pas de décevoir.

Un bon bouquin sur Linux, même (et surtout) assez ancien est toujours utile. Les livres sur Linux que je consulte le plus souvent sont mes plus vieux ouvrages (datant de 1998 ou 1999) car ils contiennent des tas d'informations sur le mode ligne de commande qui est toujours le plus rapide et le plus efficace en cas de souci. Par ailleurs, cela permet de comprendre ce qui se passe derrière une application graphique. Bref, le plus intéressant. Trouver ces livres d'occasions ne coûtent pas chers et permet de faire un recyclage écologique de connaissance qui est profitable à tous. Il est rare qu'un livre sur une distribution ne permette pas d'apprendre des choses sur Linux en général.

Bon, il est temps que je parte. Bon courage!

Pizza

jeudi 24 novembre 2011

Beowulf.org, l'art du cluster Debian

Dans mes pérégrinations mathématiques de recherche de nombres premiers (je dépasserai le milliard aujourd'hui), je m'intéresse évidemment au moyen de mettre en place un cluster de vieux coucous qui viendraient compléter mon pc actuellement dédié à la course - poursuite des nombres premiers.

En faisant quelques recherches, je suis tombé sur un projet lié à Debian, intitulé "Beowulf", et qui permet de comprendre comment on peut constituer des cluster à peu de frais, sans être un spécialiste en informatique. Il faut lire l'anglais, certes, mais il est bon que chacun connaisse l'adresse de ce site : http://www.beowulf.org

Bonne lecture

Pizza

mardi 22 novembre 2011

Du bonheur d'être en Debian

Depuis que je suis sur Debian, je n'ai plus de difficulté pour mettre à jour les paquets. Ces derniers sont mis à jour simplement, efficacement, les conflits sont gérés sans difficulté. Bref, tout est merveilleux. Résultat: après une enième maj sans problème, j'ai réalisé que ça me manquait ces détails croustillants qui font que le système doit être entretenu.

Je m'aperçois de ce fait que j'en arrive à oublier les instructions de ligne de commande pour mettre à jour la date et l'heure du système et autre joyeuseté linuxienne. Fini le bon temps où on devait réinstaller plusieurs paquets qui se battaient les uns avec les autres. Bref, pour ceux qui ne le sauraient pas encore, Debian est vraiment devenu une distribution de "pantouflard". Rien à voir avec les premières distributions d'il y a une douzaine d'année.

J'ai juste un problème avec mon wifi, mais de toute évidence, le problème ne provient pas de mon système d'exploitation, mais bien du routeur que j'utilise qui filtre le système d'exploitation (il bloque Linux et laisse passer Windows: un comble pour un netgear WMR 3500L!).

Au départ, je pensais faire un blog qui me permettrait d'exposer toutes mes petites difficultés quotidiennes avec mon système et me permettrait de faire profiter de mon expérience les autres utilisateurs. Que nenni! Pas de problème donc pas de billet...

Pizza

samedi 18 juin 2011

Recherche J. Pichon, livres de mathématiques

Je profite de ce blog pour passer ma petite annonce. Je recherche les ouvrages suivants de Jacques Pichon :

  • Les courbes dans le plan et dans l'espace.
  • Primitives. Différentielles.


Merci de me faire une offre :-)

Pizza

jeudi 16 juin 2011

Les nombres premiers et l'obésité

Je continue à améliorer mon algorithme de découverte des nombres premiers... Résultat : je peux parcourir des intervalles de 50 millions environ de manière quotidienne. Je constate donc que mon fichier recensant tous les nombres premiers jusqu'à 330 millions fait un peu plus de 100 Mo à ce jour. Quand j'aurais rempli une liste de nombre vraiment significative, je vous en reparlerais. Pour le moment, en vue d'améliorer mon algorithme, je lis des ouvrages d'arithmétiques.

Pizza

jeudi 9 juin 2011

Les nombres premiers (suite)

Dans la logique qui m'anime, j'ai optimisé (encore) mon programme et je vais bientôt avoir tous les nombres premiers inférieurs à 270 000 000. C'est pas mal, mais ce n'est pas encore énorme. J'ai surtout remarqué que mon ordinateur a un processeur à 6 coeurs. Donc, en laissant en parallèle 5 programmes de recherche de nombres premiers, j'utilise 85% du processeur, et il m'en reste assez pour faire fonctionner n'importe quelle application (KDE + d'autres applications).

La vraie question que je me pose est comment faire faire des calculs par l'ordinateur sur des nombres vraiment grand (plus de 100 000 chiffres). Une idée m'est venue d'utiliser le principe d'un boulier chinois. Avec 11 tiges, on peut déjà compter jusqu'à 16 000 000 000. En soi, ce n'est pas mal. Concrètement, en créant un programme spécifique "grand nombre", il me semble envisageable de tester des nombres premiers d'un niveau de 10 exp(10 exp(10)).

Je vais faire des recherches et vous tient au courant :-)

Pizza

vendredi 27 mai 2011

Les nombres premiers

Depuis quelques temps, je m'amuse à améliorer un petit script Perl qui a pour fonction de trouver des nombres premiers. Il utilise la méthode brute de tester tous les nombres premiers comme diviseurs potentiels avant de déclarer si, oui ou non, un nombre peut être déclaré premier. Rien de bien original en somme. Pourtant, une particularité de mon programme me laisse à penser que je pourrais bientôt conjecturer quelque chose pour compléter le théorème fondamental de l'arithmétique. Bref, on en reparlera le moment venu.

Aujourd'hui, j'ai pensé à utiliser les six coeurs de mon processeur pour trouver plus vite ces fameux nombres qui m'obsèdent. Ce soir, j'ai trouvé tous les nombres premiers jusqu'au environ de 24 000 000. Alors que pour scanner une distance d'un million, dans ce voisinage des plus de 10 000 000, il me faut un peu plus de deux heures de calcul. J'ai pour le même temps, en répartissant un programme de recherche par coeur de mon processeur, scanné 2 500 000. Du bon boulot :-)

Non seulement ça "justifie" l'investissement en processeur, mais également c'est une excellente école sur la mise en place de calcul parallèle et l'optimisation des algorithmes. Bref, je suis heureux. Objectif : les 50 000 000 pour dimanche soir.

Pizza

dimanche 24 avril 2011

Compiler Perl sur sa Linux Debian Squeeze

J'adore le langage Perl. Pourquoi ? Parce qu'à part faire mon café, il fait à peu près tout ce que je veux, sans poser aucune difficulté, avec un temps de programmation ultra réduit (contrairement à des langages comme C ou Java). Faisons d'abord une petite vérification. Sur ma Debian, je tape en ligne de commande :

# perl -v

This is perl, v5.10.1 (*) built for x86_64-linux-gnu-thread-multi (with 51 registered patches, see perl -V for more detail)

Copyright 1987-2009, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.

La dernière version de Perl, qui est stable, est 5.12.3. Inutile de dire, qu'en bon geek, je me dois de mettre en place la dernière version. J'ai choisi, pour ce faire, de réaliser ça à l'ancienne, c'est-à-dire en compilant mes sources moi-meme.

Première étape : téléchargement des sources.

Je vais donc sur le site de Perl : http://www.perl.org/

Deuxième étape : création d'un répertoire de travail

Pour plus de propreté dans mon travail, je crée un répertoire de travail que j'appelle "working_progress" par la commande:

# mkdir working_progress

J'y installe mes sources encore toutes chaudes du téléchargement.

# mv /home/téléchargements/perl-5.12.3.tar.gz /home/working_progress

Troisième étape : la compilation

Pour compiler les sources, j'ai besoin d'un compilateur C (gcc par exemple) que l'on peut utiliser par le biais du programme 'make'. Je vérifie l'existence de ses deux programmes :

# make -v

GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.

Ceci est un logiciel libre ; voir le source pour les conditions de copie. Il n'y a PAS de garantie ; tant pour une utilisation COMMERCIALE que pour RÉPONDRE À UN BESOIN PARTICULIER.

Ce logiciel est construit pour x86_64-pc-linux-gnu

# gcc -v

Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v with-pkgversion='Debian 4.4.5-8' with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs enable-languages=c,c+ + ,fortran,objc,obj-c+ + prefix=/usr program-suffix=-4.4 enable-shared enable-multiarch enable-linker-build-id with-system-zlib libexecdir=/usr/lib without-included-gettext enable-threads=posix with-gxx-include-dir=/usr/include/c++/4.4 libdir=/usr/lib enable-nls enable-clocale=gnu enable-libstdcxx-debug enable-objc-gc with-arch-32=i586 with-tune=generic enable-checking=release build=x86_64-linux-gnu host=x86_64-linux-gnu target=x86_64-linux-gnu
Thread model: posix
gcc version 4.4.5 (Debian 4.4.5-8)

Ensuite, je désarchive le fichier.

# tar xvzf perl-5.12.3.tar.gz

Je me rends dans le nouveau répertoire créer :

# cd perl-5.12.3

Avant de lancer la compilation, je dois configurer Perl. Je le fais par le biais d'un programme shell appelé "configure" que j'appelle par la commande (en root) :

# sh Configure

Beginning of configuration questions for perl5.



Checking echo to see how to suppress newlines... ...using \c The star should be here-->*



First let's make sure your kit is complete. Checking... Looks good...

This installation shell script will examine your system and ask you questions to determine how the perl5 package should be installed. If you get stuck on a question, you may use a ! shell escape to start a subshell or execute a command. Many of the questions will have default answers in square brackets; typing carriage return will give you the default. '' On some of the questions which ask for file or directory names you are allowed to use the name ok)".''

Type carriage return to continue

The prompter used in this script allows you to use shell variables and backticks in your answers. You may use $1, $2, etc... to refer to the words in the default answer, as if the default line was a set of arguments given to a script shell. This means you may also use $* to repeat the whole default line, so you do not have to re-type everything to add something to the default.

Everytime there is a substitution, you will have to confirm. If there is an error (e.g. an unmatched backtick), the default answer will remain unchanged and you will be prompted again. '' If you are in a hurry, you may run 'Configure -d'. This will bypass nearly all the questions and use the computed defaults (or the previous answers if there was already a config.sh file). Type 'Configure -h' for a list of options.'' You may also start interactively and then answer '& -d' at any prompt to turn on the non-interactive behaviour for the remainder of the execution. '' Type carriage return to continue''

D'autres écrans d'installations se suivent... Au terme d'une longue série de questions, pas toujours compréhensibles, on aboutit à la fabrication du makefile, qui est la matrice meme du futur Perl. Il n'y a plus qu'à lancer "make".

# make

Attention, peut-être que certaines erreurs vont être générées. Pour moi, malgré ma version Debian "Squeeze", une première erreur a été générée comme étant un problème de librairie manquante et de chemin. J'ai corrigé en donnant la bonne adresse des répertoires. Par défaut, Perl s'installe dans /usr/local /bin. En indiquant le chemin : /usr/ systématiquement plutot que /usr/local/, cela corrige une grande partie des erreurs. Par ailleurs, il manquait quelques librairies que j'ai ajoutées. Enfin, beaucoup de chemin de librairie (lib) étaient faux et menaient à des répertoires vides... Il faut bien vérifier le tout :-)

Après cela, j'obtiens un résultat du logiciel "make" sans erreur. L'opération de correction peut prendre du temps. Personnellement, j'ai mis trois heures pour tout corriger (à chaque fois, il faut relancer "sh Configure").

Ensuite, il faut poursuivre par la commande indispensable :

# make test

Si cette opération ne génère pas d'erreur fondamentale - ou pas trop d'erreurs - il reste une dernière étape :

# make install

Une fois cette dernière opération terminée, vous pouvez vérifier que tout va bien en faisant un :

# perl - v

This is perl 5, version 12, subversion 3 (0x1f16400) built for x86_64-linux-stdio

Copyright 1987-2010, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.

Et bien voilà, votre version de perl est à la pointe :-)

Je vais aller me préparer une pizza, parce que les nourritures intellectuelles, ça creuse...

Pizza

- page 1 de 2