GNU/Linux Magazine N167
Total Page:16
File Type:pdf, Size:1020Kb
SOMMAIRE N°167 ÉDITORIAL « Bah ! Je n’ai rien à me NEWS reprocher moi » 04 Les nouveautés de PHP 5.5 Voici généralement l’ar- gument largement entendu NETADMIN de ceux qui n’ont pas d’avis ou sont potentiellement 08 Tu deviendras web designer, mon fils favorables à la surveillance 12 Vos applications web temps réel facilement avec MeteorJS globale et systématique : « De toute façon, on nous surveille déjà et je m’en fiche parce que, En COUVERTURE moi, je ne fais rien de mal, je n’ai rien à cacher ». 24 Ceci peut sembler être un argument impa- Administrez et configurez LE KERNEL rable si on retire purement et simplement l’as- Compilez un noyau Linux : Le but de cet article sera de pect moral de la question. Pourtant, c’est un comprendre en détail comment générer un noyau GNU/Linux raisonnement totalement faux. En effet, dans la personnalisé. Chaque étape sera reprise et détaillée avec des société telle qu’elle existe, ce n’est pas un individu outils de façon à maîtriser au final l'ensemble. qui détermine ce qui est bien ou mal, juste ou A la découverte de DKMS : Qui n'a jamais eu des problèmes de injuste, normal ou déviant, entendu ou inaccep- version de drivers après la mise à jour de son noyau GNU/Linux ? table... Ce sont les normes dictées par la société Ce problème est lié principalement à la désynchronisation entre les sources elle-même. Ces notions sont donc parfaitement du noyau et celles utilisées pour générer le driver. hors de contrôle pour l’individu isolé, variables géographiquement et promptes à changer dans le temps. REPÈRES Ainsi, l’argument qui consiste à dire qu’on n’a 42 Correction géométrique d’images prises en vue oblique – projection rien à se reprocher ne peut être valable qu’accom- sur modèle numérique d’élévation pour exploitation quantitative de pagné des mots « maintenant », « ici » et « selon photographies numériques moi-même ». En d’autres termes, ce n’est pas vous CODE(S) qui décidez si vous faites quelque chose de mal ou non, mais la société, selon les normes et les 58 log4php : adoptez une méthodologie rigoureuse pour les logs de votre lois établies par et pour la société (en principe). application web Mais la surveillance globale, au cœur de 63 Abus, un autre bus light toutes les inquiétudes actuellement, implique MOBILITÉ d’autres risques, découlant de l’interprétation des informations. Lorsqu’on peut collecter toutes 78 réutiliser du code C/C++ natif sous Android avec le Native Development les données que l’on souhaite sur « une cible », Kit (NDK) on peut littéralement faire dire tout ce que l’on ABOnnEMENTS souhaite à ces mêmes données. Pire encore, si l’analyse est faite par un ensemble d’algorithmes, 21/22/29 Bons d'abonnement et de commande le risque de faux positifs est bel et bien présent. Même s’il ne s’agit que d’un faible pourcentage, Les abonnements numériques et les anciens numéros classer automatiquement une personne dans Nouveau ! sont désormais disponibles sur : les « individus à risque » ou les « possibles ter- roristes » n’a rien à voir avec le fait de placer un fichier en quarantaine ou un mail dans les en version PDF : en version papier : « spams probables ». numerique.ed-diamond.com boutique.ed-diamond.com À l’heure où je rédige cet édito, le Conseil Constitutionnel n’a pas été saisi concernant la GNU/Linux Magazine France Responsable publicité : Valérie Fréchard, Tél. : 03 67 10 00 27 est édité par Les Éditions Diamond [email protected] loi de programmation militaire (LPM) et son Service abonnement : Tél. : 03 67 10 00 20 Impression : pva, Druck und Medien-Dienstleistungen GmbH, Landau, Allemagne fameux article 13 (devenu 20). Lorsque vous Distribution France : (uniquement pour les dépositaires de presse) lirez ceci, il est donc possible que cette loi soit MLP Réassort : Plate-forme de Saint-Barthélemy-d’Anjou. Tél. : 02 41 27 53 12 Plate-forme de Saint-Quentin-Fallavier. Tél. : 04 74 82 63 04 appliquée (décrets d’application) et si tel est le B.P. 20142 – 67603 Sélestat Cedex IMPrIMÉ en Allemagne - PrINTED in Germany cas, je pense qu’il peut être tout à fait raison- Tél. : 03 67 10 00 20 – Fax : 03 67 10 00 21 E-mail : [email protected] Dépôt légal : À parution, N° ISSN : 1291-78 34 nable de commencer à réviser vos classiques, Service commercial : [email protected] Commission paritaire : K78 976 Sites : www.gnulinuxmag.com – Périodicité : Mensuel en commençant par Orwell... boutique.ed-diamond.com Prix de vente : 7,90 € Directeur de publication : Arnaud Metzler Rédacteur en chef : Denis Bodor Bonne année 1984^W2014 ! Secrétaire de rédaction : Véronique Sittler Réalisation graphique : Jérémy Gall La rédaction n’est pas responsable des textes, illustrations et photos qui lui sont communiqués par leurs auteurs. La reproduction totale ou partielle des articles publiés dans GNU/Linux Magazine France est interdite sans accord écrit de la société Les Éditions Diamond. Sauf accord particulier, les manuscrits, photos et dessins adressés à GNU/Linux Magazine France, publiés ou non, ne sont ni rendus, ni renvoyés. Les indications de prix et d’adresses figurant dans les pages rédactionnelles sont données à titre d’information, sans aucun but publicitaire. Toutes les marques citées dans ce numéro sont déposées par leur propriétaire respectif. Tous les logos représentés dans le magazine sont la propriété de leur ayant droit respectif. GNU/Linux Magazine France N°167 3 NEWS LES NOUVEAUTÉS DE PHP 5.5 Les nouveautés de PHP 5.5 par Stéphane Mourey [Taohacker] Il y a quelques mois, la version 5.5 de PHP est sortie de son état de release Candidate pour devenir la dernière version officielle. Moins attendue sans doute que la version 5.4 (qui offrait enfin une solution au problème de l’héritage multiple), la nouvelle version n’en offre pas moins quelques nouveautés intéressantes que nous allons découvrir dans cet article. mais le suspend. La fonction reprend exac- l’empreinte mémoire de votre script. Pour 1 tement là où elle en était lorsqu’on lui de- ce faire, vous procédez comme pour les Les générateurs mande un nouvel élément de l’ensemble. autres fonctions, en précédant leur nom Depuis la version 5, PHP fournit du signe esperluette « & », tant dans sa une interface Iterator qui permet de Imaginons par exemple que vous vou- déclaration que dans son utilisation : construire des itérateurs. Les itérateurs liez parcourir les résultats d’une fonction sont des objets qui permettent d’accéder sur un intervalle donné d’entiers. Comme function &gererateurIntervalleDEntiers($debut,$fin) { à un ensemble de données, d’objets ou peu importe la fonction dans notre for ($i=$debut;$i<=$fin;$i++) { yield $i; de ce que vous voulez, pour pouvoir le exemple, nous l’appellerons fonction(). } parcourir comme un tableau. Cette possi- Nous pouvons donc construire un gé- } bilité, très intéressante et très puissante, nérateur de la façon suivante : foreach (&gererateurIntervalleDEntiers(1,10) as est toutefois un peu complexe à implé- $valeur) { function gererateurPourFonction($debut,$fin) { echo $valeur."\n"; menter : il y a cinq méthodes à écrire for ($i=$debut;$i<=$fin;$i++) { } pour remplir les exigences de l’interface, yield fonction($i); current key next rewind } à savoir , , , } Enfin, pour conclure sur les généra- et valid. Ces méthodes permettent de teurs, si réellement vous avez besoin de s’assurer que l’itérateur se comportera Ensuite, nous pouvons utiliser ce revenir en arrière dans votre parcours, comme un tableau dans les différentes générateur dans une boucle foreach, la seule solution que vous avez est de situations où il aura à le faire. éventuellement après lui avoir donné cloner votre objet générateur à l’aide un nom de variable pour la lisibilité : de l’instruction clone. Vous obtiendrez Il se peut toutefois que, tout en vou- alors un générateur identique, mais lant parcourir votre ensemble comme $monGenerateur = generateurPourFonction(1,10); réinitialisé : vous pourrez à nouveau un tableau, vous n’ayez pas besoin de foreach ($monGenerateur as $valeur) { echo $valeur."\n"; le parcourir, mais en partant du début. toute la souplesse que cela implique. Si } vous avez simplement besoin d’avancer dans votre ensemble, sans avoir jamais Si vous souhaitez que votre généra- 2 besoin de le réinitialiser ou d’aller en teur retourne une paire clé / valeur à oPcache arrière, vous pourrez utiliser un généra- chaque itération, et vous permette du Déjà disponible depuis la version 5.2, teur. Celui-ci est beaucoup plus simple à coup de construire un tableau associa- l’extension OPcache est maintenant pré- mettre en œuvre. En effet, pour créer un tif, vous utiliserez l’instruction yield en sente par défaut dans PHP 5.5. Cette ex- générateur, vous n’avez besoin d’écrire utilisant la syntaxe suivante : tension vise à stocker en cache le bycode qu’une seule fonction... des scripts précompilés dans la mémoire yield $clef => $valeur; partagée, de sorte qu’il n’est plus néces- Dans cette fonction, vous allez parcourir saire à PHP de charger et d’analyser les votre ensemble et à chaque fois que vous Si vous souhaitez renvoyer une va- scripts à chaque demande. Il en résulte disposerez d’un élément de votre ensemble leur nulle, utilisez yield sans paramètre : un gain de performance non négligeable. sur lequel vous voulez travailler, vous le yield; renverrez à l’aide de l’instruction yield Si vous utilisez l’extension Xdebug au lieu de return. La différence entre Enfin, il est possible que votre géné- conjointement à celle-ci, il vous fau- yield et return est que yield ne ter- rateur renvoie ses valeurs par référence, dra pren dre garde à charger OPcache mine pas le fonctionnement de la fonction ce qui est intéressant pour limiter en premier.