PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Noireaude : explain-shell – Un site sympa pour éviter de faire une connerie avec votre terminal

lundi 9 septembre 2013 à 13:30

ExplainShell-1

Je suppose que pas mal d’entre vous sont déjà tombés sur ce billet de chez Korben, qui présentait explain-shell, un site web très sympa que vous pouvez consulter avant d’entrer une commande dans votre terminal, afin de savoir si vous avez entré les bons arguments. Cela peut être très utile dans certains cas comme lors de l’utilisation de la commande « rm -rf » par exemple, qui mal utilisée peut s’avérer catastrophique. Vous pouvez également vous en servir dans un but instructif un peu à la manière d’un man.

Important :

Je n’ai pas eu de soucis à la maison avec ce site mais en essayant au boulot, le proxy de la boîte (et surtout Sophos) l’ont bloqué tout net en m’indiquant un menace potentielle. Je suis presque sûr (99,99%)  qu’il s’agit d’un faux positif du à Sophos (qui est le seul un peu chonchon d’après virus total), mais dans tous les cas je préférais quand même vous prévenir par acquis de conscience. À vous de voir si vous voulez tenter le coup ou pas.

Si c’est le cas, pour utiliser explain-shell il suffit de vous rendre sur la page du site et d’entrer votre commande dans le champ de recherche. Si vous voulez consulter la liste complète des arguments disponibles pour une commande spécifique, il suffit d’entrer la commande en question (ici rm) et d’admirer le résultat.

ExplainShell-2

Si vous voulez en revanche n’afficher que des infos relatives aux arguments que vous allez utiliser, il suffit d’entrer la commande concernée et le résultat va s’afficher sous la forme d’une arborescence. Celle-ci ne contiendra alors que les explications relatives aux arguments que vous avez indiqué dans votre commande, qui sera décomposées dans l’ordre de saisie. Ceci va vous permettre de vérifier rapidement si vous n’avez pas fait de bêtise(s) et si cela va réellement correspondre à ce que vous tentez de faire.

ExplainShell-3

Alors bien entendu c’est en anglais (ce qui ne va peut-être pas convenir à tout le monde), on peut faire ça avec un man ou --help mais quoi qu’il en soit, c’est bien sympa et c’est le genre de truc à garder sous la patte.  Ça peut s’avérer utile.

Comme le précise Korben dans son billet, vous avez également Shellcheck.net qui permet de faire la même chose mais avec un script. Ça peut également servir.

Amusez-vous bien.

Via reddit.com/r/ubuntufr

flattr this!

Gravatar de Noireaude
Original post of Noireaude.Votez pour ce billet sur Planet Libre.

Benkemoun : Accélérer des sites web avec nginx et memcache

lundi 9 septembre 2013 à 11:14

site_internetLes performances de sites web sont un sujet très complexe qui peut être abordé sous de nombreux angles. Ce sujet est tout à fait critique du fait que les moteurs de recherche prennent en compte cette métrique pour le référencement des sites. Dans le cas de sites e-commerce, les performances peuvent influer assez fortement le taux de conversion des visites en achat comme l’a montré Amazon.

Afin d’optimiser les performances d’un site, il est souvent préférable de s’intéresser au code et au fonctionnement interne du site afin de détecter les améliorations possibles. Mais, parfois, pour des raisons diverses et variées, vous n’avez soit pas la possibilité soit pas les connaissances vous permettant de mettre les mains dans le code. C’est à cette situation que nous allons nous intéresser aujourd’hui.

Le concept

L’idée est d’utiliser nginx en tant que serveur HTTP frontal et de le coupler à memcache en tant que système de mémoire cache ultra-rapide. Cette manipulation se déroulera en deux parties. Tout d’abord, il faut configurer nginx pour qu’il aille chercher les pages et contenus statiques dans memcache. Ensuite, il faudra remplir la base de données de memcache en pages HTML et contenu statique.

En réussissant à faire cela, nous allons pouvoir fortement réduire le temps de chargement de chaque page mais aussi accroitre considérablement la quantité de requêtes que notre infrastructure pourra traiter en parallèle. Ceci s’explique assez simplement par le fait qu’il est beaucoup moins couteux d’aller chercher une information en base de données stockée en mémoire que d’exécuter toute une pile applicative interfacée avec une base de données type SQL.

Installation et configuration de memcached

L’installation du démon memache, à savoir memcached, est particulièrement simple. Vous pouvez utiliser votre gestionnaire de paquet préféré. Le fichier de configuration est très simple à utiliser, il suffit d’indiquer la quantité de mémoire que vous souhaitez allouer memcached ainsi que l’IP à laquelle vous l’attacherez.

Dans mon cas, j’ai installé memcached directement sur le serveur frontal et l’ai rendu accessible sur une IP interne firewallée de sorte à ce que seuls les serveurs concernés y aient accès. Vous trouverez un exemple de fichier de configuration ici.

Configuration de nginx

En ce qui concerne la configuration de nginx, vous trouverez un exemple ci-dessous.

server {
  listen 80;
  server_name sitetroprapide.fr;
  access_log  /var/log/nginx/access.log;
  error_log  /var/log/nginx/error.log;

  location / {
    if ($request_method != GET)
    {
      return 500;
    }
 default_type text/html;
 add_header "Content" "text/html; charset=utf8";
 charset utf-8;
 set $memcached_key $http_host$uri;
 memcached_pass 10.1.1.1:11211;
 error_page 500 404 405 = @bypass;
 }

 location @bypass {
 proxy_pass http://sitetroprapide-prod;
 proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
 proxy_redirect off;
 proxy_buffering off;
 client_max_body_size 20M;
 proxy_set_header Host $http_host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }

}

Les parties spécifiques à memcache sont les lignes 15 à 17. La ligne 15 avec la directive set est probablement celle qui mérite le plus votre attention. En effet, cette ligne définit la « clé » que nginx ira demander à memcache afin de pour la distribuer aux clients. En fonction des sites que vous souhaitez héberger et du type de contenu, vous devez paramétrer cette ligne de sorte à ce que deux contenus différents n’aient pas la même clé sinon il y aura conflit. La configuration proposé utilisera des clés de type « www.sitetroprapide.fr/ » et « www.sitetroprapide.fr/page-1.html ». La ligne 16 avec la directive memcached_pass correspond au serveur memcache que vous souhaitez utiliser.

La ligne 17 avec la directive error_page permet de renvoyer la requête dont le contenu n’a pas été trouvé dans memcache vers les serveurs applicatifs. Grace à cette directive, vous aurez également la possibilité de générer des erreurs afin d’éviter le cache memcache dans certains cas comme c’est le cas pour les requêtes autres que des GET (cf. le block if à la ligne 8).

Mettre les données dans memcache

Vous l’aurez probablement compris, les étapes proposées plus haut permettent à nginx d’aller chercher du contenu dans memcache mais pas d’en stocker dedans. Afin de mettre les données dans memcache, vous aurez plusieurs solutions.

Tout d’abord, vous pouvez modifier votre site afin qu’il stocke le contenu des pages dans memcache. Cette solution est la plus élégante mais nous force à modifier l’application ce que nous souhaitions éviter depuis le début.

Ensuite, une autre solution est de charger les pages du site dans memcache en utilisant un script externe. C’est la solution que j’ai choisi. Vous trouverez un exemple de script que j’ai développé pour l’occasion en Python. Ce script insère dans memcache toutes les pages qui ont lien à partir de la page d’accueil ainsi que tous les contenus associés. Ce n’est probablement pas un exemple d’élégance pour du développement Python mais ça fait ce que je voulais lui faire faire.

Problématiques

Avant de vous montrer un exemple des bénéfices tirés de cette configuration, il me parait indispensable de parler des problématiques induites.

Lorsque vous chargez une page avec une clé dans memcache, le serveur frontal servira toujours cette page sans jamais aller consulter vos serveurs applicatifs. Cela signifie que si vous servez des pages ayant la même URL que vos utilisateurs soient identifiés ou non, memcache distribuera systématiquement la même page. Dans ce cas-là, il faudra adapter la configuration nginx afin de ne pas aller chercher les informations dans memcache si le cookie d’authentification est présent.

Pour résumer, il ne faut pas perdre de vue ce que fait cette configuration car ce n’est pas une solution miracle. C’est une solution très bien adaptée aux sites tels que des sites d’actualité où seulement une faible proportion des utilisateurs sont identifiés. Elle peut également s’appliquer aux sites de e-commerce afin d’accélérer le chargement des pages pour les nouveaux utilisateurs qui ne se sont pas encore identifiés par contre dès qu’ils s’identifieront, les performances redeviendront standards.

Résultats

Voici deux exemples de graphiques présentant le temps de chargement des pages pour deux sites sur lesquels j’ai implémenté cette configuration. L’amélioration est assez flagrante.

resultat2resultat1

Le script de mise à jour du contenu est exécuté toutes les heures afin d’éviter d’impacter trop fortement les pages non mises en cache. C’est une fréquence de mise à jour acceptable car ce sont des sites relativement peu mis à jour mais cela va dépendre en fonction de cas. Il reste encore des améliorations à faire au niveau du script afin de pouvoir fournir une interface permettant de rafraichir le cache de manière plus automatisée.

Bilan

Pour résumer, il est possible d’accélérer de manière très significative le chargement des pages web en utilisant nginx coupé à memcache. Néanmoins, cette configuration nécessite un mécanisme de chargement des données qui colle le mieux possible au type de site mis en cache. Il faudra donc se pencher sur chaque cas afin d’étudier les possibilités de mise en cache et de trouver la meilleure approche à adopter.

Gravatar de Benkemoun
Original post of Benkemoun.Votez pour ce billet sur Planet Libre.

Pascal Chevrel : Événements chez Mozilla Paris en Septembre !

lundi 9 septembre 2013 à 11:10

Depuis la récente ouverture des nouveaux locaux de Mozilla à Paris, nous organisons régulièrement des réunions et des événements avec la communauté Mozilla bien sûr, mais aussi avec les communautés du libre et du web francophones.

Nous organisons aussi de nombreuses autres rencontres et séminaires de travail dans d'autres domaines (par exemple cette semaine le W3C et le CSS WG travailleront dans nos locaux) et ce mois-ci, nous avons plusieurs événements intéressants auxquels vous pouvez assister / participer :

Ce n'est évidemment qu'un début, si vous faites du libre et du web et que vous voulez orgnaniser un petit événement ou une réunion de travail, n'hésitez pas à nous (me) contacter ! :)

Plan vers Mozilla Paris

Gravatar de Pascal Chevrel
Original post of Pascal Chevrel.Votez pour ce billet sur Planet Libre.

Framablog : Quand l'Inde montre l'exemple en éducation (et en France ?)

lundi 9 septembre 2013 à 10:40

Le gouvernement indien a inauguré cet été une plateforme de ressources éducatives.

Nous en avons aussi en France, comme par exemple l’Académie en ligne. Sauf que, comme il a été dit dans ces mêmes colonnes à son lancement, cette dernière plateforme est totalement verrouillée par le choix de sa licence (lire les Conditions d’utilisation du site pour comprendre d’un seul coup d’oeil où se situe le problème).

En Inde, par contre, on a tout compris. On a fait le choix par défaut de la licence Creative Commons By-Sa et on demande explicitement des formats ouverts pour les documents déposés.

Longue vie au National Repository of Open Educational Resources et ses ressources éducatives vraiment libres. Quant à nous, on va continuer à pousser pour qu’il en aille de même un jour en France, sachant que l’espoir fait vivre et que la route est longue mais la voie est libre.

On pourra également lire sur le Framablog (en faisant le rêve que nos décideurs tombent dessus) :


NROER logo


L’Inde lance un dépôt national de ressources éducatives libres

India launches National Repository of Open Educational Resources

Jane Park - 14 août 2013 - Creative Commons Blog
(Traduction : lamessen, pol, ProgVal, Asta)

L’Inde a lancé un nouveau dépôt d’apprentissage destiné à accueillir les ressources éducatives libres (RÉL). Le ministère de l’Éducation et de l’alphabétisation, le ministère du Développement des ressources humaines, le gouvernement indien, l’Institut central des technologies de l’éducation et le Conseil national de la recherche et de la formation pour l’éducation (NCERT) se sont associés pour développer le Dépôt national des ressources éducatives libres (NROER). Pallam Raju, ministre indien du Développement des ressources humaines, a lancé ce dépôt mardi. Shashi Tharoor, ministre d’État indien en charge des ressources et du développement humain, a annoncé que la licence par défaut de toutes les ressources du dépôt serait la Creative Commons Attributions-Partage à l’identique (CC BY-SA).

Ce dépôt contient actuellement des vidéos, de l’audio, des médias interactifs, des images et des documents. Il vise à « rassembler toutes les ressources numériques et numérisables pour le système éducatif indien, pour toutes les classes, toutes les matières et toutes les langues ».

D’après l’annonce du ministre Sashi Tharoor,

Cette initiative est également une étape importante vers une éducation inclusive. Ouvrir l’accès à tous nécessite un débat sur la question de la propriété, du copyright, des licences et un équilibrage des objectifs avec les intérêts commerciaux légitimes. C’est particulièrement important pour les institutions publiques et les projets financés sur fonds publics. Je suis heureux que le NCERT ait pris l’initiative de déclarer que le NROER utiliserait la licence CC BY-SA… Cette décision du NCERT est en accord avec la déclaration de Paris sur les ressources éducatives libres de l’Unesco et permettra de garantir que les ressources seront librement accessibles à tous. Pour le dire dans les termes des Creative Commons — pour réutiliser, réviser, modifier et redistribuer.

Pour contribuer au dépôt, chacun devra garantir qu’il « accepte de placer ces ressources sous licence Creative Commons » (CC BY-SA) et « que les documents chargés sont encodés en utilisant des standards ouverts, non privatifs ».

Pour en savoir plus sur la manière de contribuer au projet avec vos ressources éducatives libres, visitez http://nroer.in/Contribute/.

Gravatar de Framablog
Original post of Framablog.Votez pour ce billet sur Planet Libre.

Noireaude : Stellarium disponible en version 0.12.3

lundi 9 septembre 2013 à 10:30

Stellarium est un logiciel permettant d’avoir un petit planétarium personnel à la maison contenant un très grand nombre d’options. Vous pourrez disposer d’un immense catalogue référençant plus de 600 000 étoiles, pouvant être étendu via l’ajout de modules téléchargeables à plus de 210 millions. Rien que ça! Vous pourrez aussi visiter plein de planètes, faire le tour de notre galaxie et bien d’autres choses encore, grâce à une interface arborant un look épuré très agréable à l’œil et très facile à prendre en main. La version 0.12.3 de Stellarium a été publiée hier, embarquant diverses améliorations et corrections de bugs.

Il n’y a pas à proprement parler de grands changements pour cette nouvelle version de Stellarium, mais on notera tout de même l’introduction d’un nouveau plugin, « Bright Novae », qui comme son nom l’indique et comme le montre la capture ci-dessous va vous permettre d’observer quelques novae lumineuses.

Stellarium-plugin-Bright-Novae

Pour ce qui est des corrections de bugs, celles-ci sont relatives aux plugins et aux outils de recherches.

Si ça vous tente vous pouvez vous procurer Stellarium sur la plus part des distributions GNU/Linux, Windows et Mac OS X, depuis la page d’accueil du site officiel. Les utilisateurs d’Ubuntu et dérivés peuvent également passer par le PPA suivant (j’ai vérifié hier il a été mis à jour), à l’aide de ces quelques lignes de commande :

Installer Stellarium 0.12.3 sur Ubuntu et dérivés :

sudo add-apt-repository ppa:stellarium/stellarium-releases
sudo apt-get update
sudo apt-get install stellarium

Désinstaller Stellarium 0.12.3 :

ppa-purge ppa:stellarium/stellarium-releases

ou

sudo add-apt-repository -r ppa:stellarium/stellarium-releases
sudo apt-get update
sudo apt-get remove stellarium

Amusez-vous bien.

source

flattr this!

Gravatar de Noireaude
Original post of Noireaude.Votez pour ce billet sur Planet Libre.