diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..6e3bf7e
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,6 @@
+# A sample Gemfile
+source "https://rubygems.org"
+gem 'guard'
+gem 'guard-livereload'
+
+# gem "rails"
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000..92b52bc
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,57 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ celluloid (0.16.0)
+ timers (~> 4.0.0)
+ coderay (1.1.0)
+ em-websocket (0.5.1)
+ eventmachine (>= 0.12.9)
+ http_parser.rb (~> 0.6.0)
+ eventmachine (1.0.4)
+ ffi (1.9.6)
+ formatador (0.2.5)
+ guard (2.11.1)
+ formatador (>= 0.2.4)
+ listen (~> 2.7)
+ lumberjack (~> 1.0)
+ nenv (~> 0.1)
+ notiffany (~> 0.0)
+ pry (>= 0.9.12)
+ shellany (~> 0.0)
+ thor (>= 0.18.1)
+ guard-livereload (2.4.0)
+ em-websocket (~> 0.5)
+ guard (~> 2.8)
+ multi_json (~> 1.8)
+ hitimes (1.2.2)
+ http_parser.rb (0.6.0)
+ listen (2.8.5)
+ celluloid (>= 0.15.2)
+ rb-fsevent (>= 0.9.3)
+ rb-inotify (>= 0.9)
+ lumberjack (1.0.9)
+ method_source (0.8.2)
+ multi_json (1.10.1)
+ nenv (0.2.0)
+ notiffany (0.0.3)
+ nenv (~> 0.1)
+ shellany (~> 0.0)
+ pry (0.10.1)
+ coderay (~> 1.1.0)
+ method_source (~> 0.8.1)
+ slop (~> 3.4)
+ rb-fsevent (0.9.4)
+ rb-inotify (0.9.5)
+ ffi (>= 0.5.0)
+ shellany (0.0.1)
+ slop (3.6.0)
+ thor (0.19.1)
+ timers (4.0.1)
+ hitimes
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ guard
+ guard-livereload
diff --git a/Guardfile b/Guardfile
new file mode 100644
index 0000000..8c3922c
--- /dev/null
+++ b/Guardfile
@@ -0,0 +1,34 @@
+# A sample Guardfile
+# More info at https://github.com/guard/guard#readme
+
+## Uncomment and set this to only include directories you want to watch
+# directories %w(app lib config test spec feature)
+
+## Uncomment to clear the screen before every task
+# clearing :on
+
+## Guard internally checks for changes in the Guardfile and exits.
+## If you want Guard to automatically start up again, run guard in a
+## shell loop, e.g.:
+##
+## $ while bundle exec guard; do echo "Restarting Guard..."; done
+##
+## Note: if you are using the `directories` clause above and you are not
+## watching the project directory ('.'), the you will want to move the Guardfile
+## to a watched dir and symlink it back, e.g.
+#
+# $ mkdir config
+# $ mv Guardfile config/
+# $ ln -s config/Guardfile .
+#
+# and, you'll have to watch "config/Guardfile" instead of "Guardfile"
+
+guard 'livereload' do
+ watch(%r{app/views/.+\.(erb|haml|slim)$})
+ watch(%r{app/helpers/.+\.rb})
+ watch(%r{public/.+\.(css|js|html)})
+ watch(%r{config/locales/.+\.yml})
+ watch(%r{.+\.(css|js|html)})
+ # Rails Assets Pipeline
+ watch(%r{(app|vendor)(/assets/\w+/(.+\.(css|js|html|png|jpg))).*}) { |m| "/assets/#{m[3]}" }
+end
diff --git a/content/archlinux-made-simple.md b/content/archlinux-made-simple.md
new file mode 100644
index 0000000..183038f
--- /dev/null
+++ b/content/archlinux-made-simple.md
@@ -0,0 +1,262 @@
+Title: Archlinux made simple
+Date: 2012-10-05 14:48
+Author: Wxcafe
+Category: OSes
+Slug: archlinux-made-simple
+
+Archlinux est réputée être une distribution Linux très complexe a
+installer et a maintenir.
+
+Je vais tenter ici de vous convaincre que ce n'est pas le cas, et
+qu'elle peut se monter très intéressante et très instructive a installer
+tout autant qu'a utiliser.
+
+Il convient tout d'abord de rappeler a quels principes obéit Arch:
+
+1. Le KISS : Keep It Simple and Stupid, Archlinux tente de faire des
+ programmes simples et utilisables par tous. Avec comme base de
+ simplicité les utilisateurs de LFS... Mais il n'empêche qu'avec un peu
+ de bonne volonté, la configuration n'est pas si compliquée!
+
+2. La philosophie UNIX : chaque programme est prévu pour ne remplir
+ qu'une seule tâche. Bien entendu, cela ne concerne que les programmes
+ conçus pour s’insérer dans la philosophie UNIX, et les installations de
+ dépendances avec le gestionnaire de paquet d'Arch fonctionnent
+ superbement bien.
+
+De plus, posons les bases d'Arch : le gestionnaire de paquets s'appelle
+pacman, et les commandes de base sont :
+
+- recherche d'un paquet :
+
+ pacman -Ss paquet
+
+- installation d'un paquet :
+
+ sudo pacman -S paquet
+
+- désinstallation d'un paquet :
+
+ sudo pacman -R paquet
+
+- mise a jour de tous les paquets installés :
+
+ sudo pacman -Syu paquet
+
+Archlinux est une distribution dite "rolling release", ce qui signifie
+qu'il n'y a pas de version a proprement dites, et que les paquets se
+mettent a jour en permanence, sans jamais changer la "version" d'Arch.
+Il n'y a d'ailleurs qu'une seule version de l'installeur sur le site,
+puisqu'une version plus ancienne n'aurait aucun sens.
+
+Arch n'offre pas d'interface graphique par défaut : après avoir installé
+le système, vous n'aurez qu'une invite de commande. Heureusement, je
+vais ici vous guider a travers l'installation d'une interface graphique
+(mate, le fork de gnome 2)
+
+L'installation d'Arch se fait par le réseau, veillez a avoir une
+connection WiFi ou filaire a proximité avant de suivre ce guide.
+
+Ce guide utilise SystemV, alors qu'Arch va prochainement passer sous
+systemd. N'ayant pas encore eu le temps d’expérimenter assez avec ce
+dernier, je ferais un tutoriel pour passer votre Arch a systemd bientôt.
+
+Bon, passons a l'explication de l'installation proprement dite :
+
+Tout d'abord, téléchargeons l'iso d'arch la plus récente :
+
+ wget http://mir.archlinux.fr/iso/2012.09.07/archlinux-2012.09.07-dual.iso
+
+Ensuite, gravons cette image sur un disque USB :
+
+ dd if=archlinux-2012.09.07-dual.iso of=/dev/sdX
+
+Après reboot de la machine sur l'iso en question et choix de
+l'architecture, nous sommes accueillis par un shell root.
+
+La première chose a faire est de paramétrer le clavier :
+
+ loadkeys fr
+
+Puis nous pouvons passer a l'installation proprement dite.
+Partitionnement :
+
+ cfdisk # cfdisk est suffisamment clair pour ne pas nécessiter d'explications
+
+formatage des partitions :
+
+ mkfs.ext4 /dev/sda1 # partition root
+
+ pacman -Syu btrfs-progs && mkfs.btrfs /dev/sda2 # partition home
+
+ mkswap /dev/sda3 && swapon /dev/sda3 # partition de swap
+
+Montons les partitions nouvellement créées, puis installons le système :
+
+ mount /dev/sda1 /mnt
+
+ mkdir /mnt/home && mount /dev/sda2 /mnt/home
+
+ dhclient eth0 # si vous utilisez une connection filaire, sinon voire http://wiki.archlinux.fr/Wifi#Configuration
+
+ pacstrap /mnt base base-devel
+
+ genfstab -p /mnt > /mnt/etc/fstab
+
+Allons prendre un café le temps que ça charge, puis installons les
+quelques paquets nécessaires a notre installation et au premier
+démarrage:
+
+ pacstrap /mnt syslinux btrfs-progs wireless_tools dhclient
+
+Maintenant, passons sur notre install toute fraîche d'Arch :
+
+ arch-chroot /mnt bash
+
+configurons les bases :
+
+ echo HOSTNAME > /etc/hostname
+
+ ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
+
+ date MMJJhhmmAAAA
+
+ hwclock --systohc
+
+ vim /etc/locale.gen # Décommentez les lignes correspondant au français : fr_FR.UTF-8 et fr_FR.ISO-8859-1
+
+ echo 'LANG="fr_FR.UTF-8"' > /etc/locale.conf
+
+ locale-gen
+
+ mkinitcpio -p linux
+
+Enfin, vérifions que syslinux est correctement configuré :
+
+ vim /boot/syslinux/syslinux.cfg # il devrait y avoir "append root=/dev/sda1"
+
+Si tout est correct, installons syslinux, et paramétrons un mot de passe
+root :
+
+ syslinux-install_update /dev/sda -mia
+
+ passwd root
+
+Et voila, l'installation est terminée! Plus qu'a quitter la session et a
+redémarrer l'ordinateur!
+
+ exit
+ umount /mnt/home
+ umount /mnt
+ reboot
+
+Fini!
+
+Prenons une petite pause. La partie suivante de ce tutoriel consister en
+un paramétrage des principaux services nécessaires a l'utilisation d'un
+OS, disons, moyen :
+
+- Installation de MATE, le gestionnaire de bureau (voir
+[http://mate-desktop.org/][])
+
+- Installation de sudo et de networkmanager pour faire fonctionner les
+composants essentiels du système sans avoir a tout activer a la main a
+chaque démarrage
+
+- Installation de SLiM comme gestionnaire de login graphique, pour
+présenter une interface plus accueillante que la console, et
+configuration de celui-ci
+
+- Installation des principaux logiciels utiles non inclus dans mate ni
+base (yaourt, chromium, thunderbird, etc...).
+
+Ce guide est bien sur optionnel, si vous souhaitez utiliser Arch avec un
+gestionnaire de bureau autre que mate, ou sans, vous pouvez vous arrêter
+ici.
+
+Bon, reprenons.
+
+Nous sommes donc sur une demande de mot de passe. Entrez donc le mot de
+passe paramétré plus haut pour le root, puis retapez la commande
+utilisée plus tôt pour vous connecter a internet.
+
+Il convient d'ajouter le dépôt de MATE pour installer ce dernier, puis
+d'effectuer l'action en question :
+
+ vim /etc/pacman.conf
+
+Ici, ajoutez les lignes suivantes :
+
+ [mate]
+ Server = http://repo.mate-desktop.org/archlinux/$arch
+
+Installons maintenant les paquets :
+
+ pacman -Syu mate mate-extras dbus dbus-core alsa networkmanager sudo
+
+Ajoutons un compte utilisateur pour utiliser les composants du système
+sans tout crasher a chaque fois :
+
+ useradd -g users -G wheel,audio,optical,lp,scanner,log,power,floppy,storage,games,video -m -s /bin/bash *votrenom*
+ passwd *votrenom*
+ su *votrenom*
+
+Il faut maintenant éditer le fichier \~/.xinitrc pour préciser a X.org
+ce que l'on veut utiliser :
+
+ echo "exec ck-launch-session mate-session" > ~/.xinitrc
+
+Profitons en pour ajouter les démons système au lancement :
+
+ vim /etc/rc.conf
+
+Ajoutez donc `dbus, alsa. hwclock` et `networkmanager` dans la section
+DAEMONS (entre les parenthèses, après crond normalement)
+
+ DAEMONS=(syslog-ng network crond dbus alsa hwclock networkmanager)
+
+Pour éviter un reboot, il est ici possible de faire un
+
+ su
+
+Puis un
+
+ /etc/rc.d/dbus start && /etc/rc.d/alsa start && /etc/rc.d/networkmanager start
+
+Sinon, il est possible de juste redémarrer.
+Une fois cela fait, profitez de ce moment pour vous autoriser vous même
+a utiliser sudo. Loggez vous en root, et :
+
+ vim /etc/sudoers
+
+Décommentez la ligne qui commence par \# %wheel ALL=(ALL)
+Sauvegardez le fichier, puis, après un `su *votrenom*`, tentez de faire
+un sudo ls /
+Normalement, vous devriez avoir un listing du dossier /
+Bon, maintenant, pourquoi ne pas tenter de lancer MATE?
+C'est simple comme bonjour :
+
+ startx
+
+Et PAF! Voila un MATE desktop flambant neuf a configurer!
+Avant de faire ça, retournez sur un TTY (CTRL+ALT+Fx), loggez vous,
+puis installez SLiM (`sudo pacman -Syu slim`).
+Configurons le:
+
+ echo "exec dbus-launch mate-session" > ~/.xinitrc && vim /etc/slim.conf
+
+Éditez la ligne
+"`sessions xfce4,icewm-session,wmaker,blackbox`" de facon a
+ce qu'elle ressemble a "`sessions mate-session`"
+Puis ajoutez slim dans /etc/rc.conf, dans la section DAEMONS.
+Normalement, tout devrait fonctionner!
+Ah oui, et pour installer thunderbird, firefox, chromium, etc...
+
+ sudo pacman -Syu chromium thunderbird xchat firefox rhythmbox pidgin transmission-gtk vlc
+
+Voila! Et comme dirait [@Spartition][], c'est sale, mais qu'est-ce que c'est
+bon!
+A plus~
+
+ [@Spartition]: https://twitter.com/spartition
+ [http://mate-desktop.org/]: http://mate-desktop.org/
diff --git a/content/debuts-presentation-etc.md b/content/debuts-presentation-etc.md
new file mode 100644
index 0000000..adce6b8
--- /dev/null
+++ b/content/debuts-presentation-etc.md
@@ -0,0 +1,36 @@
+Title: Débuts, présentation, etc...
+Date: 2012-08-18 20:27
+Author: Wxcafe
+Category: Notes
+Slug: debuts-presentation-etc
+
+Bonjour!
+
+Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur
+Twitter, mais aussi sur IRC (Je traîne pas mal sur
+irc.freenode.net/\#\#nolife et \#debian-fr)
+
+J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je
+fais partie de ce genre de personne qui sont capables d'investir tout
+leur temps et leur énergie a s’intéresser a un sujet en particulier, et
+qui ne peuvent pas vivre sans leurs passions, avec une petite différence
+cependant, qui est que je m’intéresse a plusieurs choses :
+l'informatique, qui est un champ tellement large qu'on peut passer une
+vie a apprendre des choses dessus, et plus particulièrement à
+l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres
+{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les
+trolls seront a partir de maintenant indiqués avec le tag [tr]] du
+libre, je préfère utiliser de l'open-source si c'est possible},
+programmation en C, python et java, etc...) , mais aussi a
+l’électronique.
+
+Dans un tout autre registre, je m’intéresse aussi
+beaucoup aux différents aspects du féminisme et des égalités sexuelles
+(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) ,
+et a la culture dite "geek" en général.
+
+Je tenterai de poster ici le plus souvent possible, mais j'ai de gros
+problèmes en terme de régularité de post, donc ne vous inquiétez pas si
+vous ne voyez rien pendant deux semaines.
+
+Merci beaucoup de votre attention, et a bientôt!
diff --git a/content/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere.md b/content/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere.md
new file mode 100644
index 0000000..6842759
--- /dev/null
+++ b/content/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere.md
@@ -0,0 +1,84 @@
+Title: GNU/Linux pour les non technophiles, ou l'OS libre pour votre grand-mère
+Date: 2012-08-22 20:33
+Author: Wxcafe
+Category: Teaching
+Slug: gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere
+
+GNU/Linux est un vaste et extraordinaire territoire technologique, mais
+je ne vais pas m'attarder ici sur les aspects profondément techniques de
+ce territoire pour faire plutôt une sorte d'introduction a ce qu'est
+vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de
+connaissances en informatique.
+
+GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un
+Système d'Exploitation. Un système d'exploitation est, pour simplifier,
+un ensemble d'outils informatiques qui vous permettent d'utiliser votre
+ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation
+de système d'exploitation (Operating System en anglais) est OS. Les 4
+principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et
+Solaris. Les trois derniers sont issus d'un autre système, plus ancien,
+nommé UNIX.
+
+De ce fait, on pourrait penser que Linux remplace complètement Windows
+une fois installé, et comprend une interface graphique, et toutes sortes
+d'utilitaires permettant a l'utilisateur d'utiliser le système (sous
+Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer.
+Pour l'interface graphique, pensez a... Pensez que votre système affiche
+autre chose que des lignes de commande.) Or non, une fois installé,
+Linux en lui même ne vous afficherait aucune interface graphique, et
+s'il est effectivement livré avec des utilitaires, ils ne sont que des
+programmes en ligne de commande. Autant les utilisateurs avancés sauront
+s'en servir, et pourront argumenter que c'est plus efficace ou plus
+rapide, autant les utilisateurs basiques préfèrent une interface
+graphique. Alors comment en obtenir une?
+
+Ici, il convient de faire une précision importante. Si il n'existe
+qu'une seule version de Windows, ou de Mac OS, il existe en fait
+plusieurs centaines de "versions" différentes de Linux. Appelées
+distributions, ces dernière sont développées par des groupes
+complètement séparés, et se basent sur le fait que Linux soit
+entièrement placé sous licence libre (ce qui leur permet de l'utiliser a
+leur guise, a condition que leur travail soit lui aussi placé sous
+licence libre). De ce fait, de nombreuses distributions existent et se
+développent en parallèle. On peut ainsi citer [Debian][], qui est l'une
+des distributions les plus importantes, ou encore [Ubuntu][], qui est
+l'une des plus connues et des plus simples a utiliser.
+
+Ainsi, ces distributions intègrent une interface graphique. Cependant,
+grâce a la liberté dont bénéficient les développeurs sous Linux, il
+existe de nombreuses interfaces graphiques différentes : [Unity][], la
+nouvelle interface d'Ubuntu; [GNOME][] , une interface qui vise a la
+simplicité; ou encore [KDE][], une interface utilisateur ressemblant a
+Windows 7.
+
+Ainsi, le choix astronomique de distributions Linux a bien un sens :
+chacune d'entre elle intègre des outils différents. Par exemple, Debian
+intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend
+particulièrement stable. Ubuntu intègre Unity, ce qui en fait une
+distribution particulièrement intuitive. Linux Mint intègre Cinnamon,
+qui est une version dérivée de GNOME 3, ce qui permet encore une autre
+expérience. Et Arch Linux n'intègre pas d'interface graphique du tout,
+ce qui permet a l'utilisateur de choisir entre les multiples interfaces
+existantes.
+
+Ce qu'il est important de retenir de cela, c'est que Linux est un OS
+complètement libre, ce qui signifie que n'importe qui peut modifier et
+utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi,
+Linux est un OS qui est véritablement créé par des passionnés, pour tous
+et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué
+a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus.
+Cependant, Linux donne la possibilité a l'utilisateur de le rendre
+affreusement complexe, mais aussi de le rendre adapté a ses besoins,
+quels que soient ceux ci. Et c'est la que réside l'incroyable puissance
+de ce Système d'Exploitation. Il est extraordinairement adaptable.
+
+N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas
+technophiles. Ils pourraient adorer, et peut être même le devenir :)
+
+A bientôt!
+
+ [Debian]: http://debian.org
+ [Ubuntu]: http://ubuntu.com
+ [Unity]: unity.ubuntu.com
+ [GNOME]: gnome.org
+ [KDE]: http://kde.org/
diff --git a/content/introduction-a-bash-en-tant-que-language-de-programmation.md b/content/introduction-a-bash-en-tant-que-language-de-programmation.md
new file mode 100644
index 0000000..17981af
--- /dev/null
+++ b/content/introduction-a-bash-en-tant-que-language-de-programmation.md
@@ -0,0 +1,158 @@
+Title: Introduction a bash en tant que language de programmation.
+Date: 2012-09-08 18:15
+Author: Wxcafe
+Category: Programmation
+Slug: introduction-a-bash-en-tant-que-language-de-programmation
+
+L’interpréteur de commandes bash (Bourne Again SHell)
+est possiblement le shell le plus connu, notamment grâce a son
+intégration en tant que shell par défaut dans les distributions Linux
+les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva -
+Mageia, etc...).
+
+Cependant, il n'est souvent connu qu'en tant qu’interpréteur de
+commande. Alors qu'en réalité, le bash est un langage de programmation
+(presque) complet! Ainsi, il intègre les structures de contrôle
+habituelles ( pour mémoire, les structures de contrôle comprennent les
+conditions (les ifs), les boucles (les while), et les choix (les case),
+entre autres.), et est donc ce que l'on pourrait appeler un langage de
+script, interprété, de la même façon que python, a la difference près
+qu'il contient un prompt (un système d'entrée de commande interactif)
+bien plus complet et développé que python.
+
+Cependant, les programmes en bash ne sont executables que dans un
+environnement de type UNIX, et donc pas sous Windows (cygwin
+(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous
+windows. Il faut malgré tout convenir que cet environnement est bien
+plus compliqué a manipuler, et globalement ne permet pas d'acceder a des
+portages de qualité satisfaisante.)
+
+Ainsi, il est possible de créer des fichiers .sh, contenant des
+instructions bash mises a la suite (de la même façon qu'un script BATCH
+Windows .bat), et faisant appel autant aux commandes internes de bash,
+aussi bien que les commandes externes mises en place par les programmes
+installés sur le système, exactement comme dans une invite de commande.
+Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit
+panda roux directement dans la boite magique, tandis qu'un if
+[condition] suivi d'un then (quelque chose) lancera le fameux quelque
+chose suscité si la condition est vérifiée. Un peu comme en C, quoi.
+
+De cette façon, et avec quelques informations et connaissances, il est
+facile de comprendre le fonctionnement de la programmation en bash.
+Quelques exemples commentés:
+
+ #!/bin/bash
+ # La ligne du dessus est très importante, c'est elle qui dit a bash quel doit être
+ # l'interpreteur des commandes écrites dans ce script. Ici, on dit a bash d'interpréter
+ # lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire
+ # executer du python, par exemple, en mettant #!/usr/bin/python a la place.
+ echo "this is a test of bash as a simple script manager" # echo est une commande d'affichage de message.
+ echo "what's your name, user?"
+ read your_name # la commande read permet de demander a l'utilisateur de donner une
+ # information, stockée dans la variable en paramètre.
+ echo $your_name "is your name" # echo permet aussi d'afficher la valeur de variables.
+ # Ici, on renvoie la variable remplie précédemment, suivie d'un message.
+ exit # cet appel a exit n'est pas obligatoire, mais donne un aspect plus
+ # propre au code. Il ne quittera pas la session de terminal, cependant.
+
+Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite
+d'être clair quand aux capacités et a la simplicité du bash en tant que
+language de programmation. Alors en effet, nous n'avons ici absolument
+pas utilisé les capacités de bash en lui même, et n'avons fait que le
+renvoyer a des programmes externes (sauf read, il est vrai). Voyons
+maintenant la syntaxe de bash quand il s'agit d'utiliser les structures
+de contrôle:
+
+ #!/bin/bash
+ echo "welcome to this second bash program. would you please kindly enter the name of the machine you're running this on?"
+ read host_name
+ if [ $host_name == $HOSTNAME ] ## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système.
+ then echo "you told the truth!"
+ fi ## le fi est la commande fermant le if, tout comme le EndIf en basic. C'est un peu vieillot, mais important en bash.
+ if [ $host_name != $HOSTNAME ] ## l'opérateur != est l'inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes.
+ then echo "you lied!"
+ fi
+ exit
+
+Voila un petit programme permettant d'apprendre la syntaxe du if en
+bash. comme vous pouvez le voir, le language est plutôt lite, et la
+structure if n'est pas très difficile a prendre en main.
+
+Passons maintenant au while:
+
+ #!/bin/bash
+ echo "what is your name?"
+ read name
+ while [ 1 < 10 ] ## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.
+ do echo "i love" $name
+ done
+ exit
+
+Ce petit programme permet d'observer les bases de while (qui est la
+boucle de base en bash).
+
+Le troisième opérateur de bash est case. Voyons:
+
+ #!/bin/bash
+ echo "please enter a number between one and five"
+ read number
+ case $number in
+ 1)
+ echo "the choosen number was one"
+ ;;
+ 2)
+ echo "the choosen number was two"
+ ;;
+ 3)
+ echo "the choosen number was three"
+ ;;
+ 4)
+ echo "the choosen number was four"
+ ;;
+ 5)
+ echo "the choosen number was five"
+ ;;
+ *)
+ echo "this number is not correct"
+ ;;
+ esac
+ exit
+
+case est un opérateur plus complexe a utiliser a bon escient, et sert a
+faire des ifs multiples sans avoir a taper des dizaines de lignes de
+code.
+(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre
+que le code vérifie chacune des conditions : le 1) est validé si la
+valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc..
+le \*) désigne toutes les valeurs, et est donc validé si aucune autre
+valeur n'a précédemment acceptée.
+
+Quelques notions manquent ici:
+- les nombres aléatoires sont générés par un appel a la variable
+\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a
+16 bits donc). il est possible de faire des invocations a des nombres
+aléatoires plus grands, mais les méthodes permettant de faire cela sont
+plus complexes, et je ne les aborderai donc pas ici.
+- comme vous avez pu le constater, les variables sont désignées en tant
+que telles par l'utilisation d'un symbole \$ au début de leur nom.
+Ainsi, echo number renverra "number", tandis que echo \$number renverra
+le résultat de la variable \$number.
+être utilisées dans un programme bash.
+- comme vous avez pu le constater, les commandes doivent tenir en
+théorie en une ligne. Cependant, le caractère \\ permet de retourner a
+la ligne en faisant considérer a bash qu'il s'agit de la même ligne.
+
+Globalement, il faut admettre que bash n'a pas vocation a être un
+langage de programmation extrêmement développé. Sans framework
+graphique, avec peu de manières d'utiliser de grandes variables, ou
+encore une gestion de la mémoire risible, bash n'a rien d'un langage de
+développement professionnel.
+Cependant, le simple fait qu'il soit considéré comme un langage de
+programmation a part entière font de lui un langage de script d'une
+puissance incontestable, et sa simplicité et sa grande popularité font
+de lui un langage de choix pour apprendre la programmation simplement et
+sans trop se prendre la tête.
+
+J'espère que cet article aura été utile a certain-e-s, et je vous
+souhaite bonne chance dans votre découverte de la programmation (n'allez
+pas voir ceux qui font de l'orienté objet, c'est des méchants :3)
diff --git a/content/la-cryptographie-avec-pgp-et-principalement-gnupg.md b/content/la-cryptographie-avec-pgp-et-principalement-gnupg.md
new file mode 100644
index 0000000..d93b36a
--- /dev/null
+++ b/content/la-cryptographie-avec-pgp-et-principalement-gnupg.md
@@ -0,0 +1,177 @@
+Title: La cryptographie avec PGP et principalement GnuPG
+Date: 2012-11-19 00:36
+Author: Wxcafe
+Category: Tutoriel
+Slug: la-cryptographie-avec-pgp-et-principalement-gnupg
+
+PGP (pour [pretty good privacy][]) est un système de
+chiffrement asymétrique (pour plus d'information sur le chiffrement
+asymétrique, voir [ici][]) utilisant en général les algorithmes RSA
+et/ou DSA, et pouvant servir a chiffrer tout fichier, mais aussi a
+signer des emails. Le système de signature consiste a s'identifier en
+tant que la personne que l'on est, en certifiant de son identité, et
+repose sur un système dit de *Web of Trust*.
+
+Ce concept de Web of Trust est simple: si je valide le code vous
+identifiant (votre clé), en certifiant que vous êtes qui vous êtes et
+que je vous connais, et que d'autres personnes m'ont déjà
+personnellement validé, les autres utilisateurs seront enclins a croire
+que vous êtes en effet la personne que vous prétendez être. Bien
+entendu, les utilisateurs validant trop de clés rapportées comme fausses
+voient la valeur de leurs signatures baissée, et toutes les clés signées
+par ces utilisateurs voient leur crédibilité baisser.
+Inversement, les "bons utilisateurs" voient la valeur de leurs
+signatures augmentée, ce qui augmente la crédibilité des clés qu'ils ont
+signées.
+
+Ceci dit, un email peut être a la fois signé et chiffré, de façon a être
+sûr, non seulement que l’expéditeur de l'email est bien celui qu'il dit
+être, mais aussi que l'email n'a pas été modifié entre l'envoi et
+la réception (en effet, avec un chiffrement de type RSA/DSA, une
+modification du corps de l'email rend ce dernier illisible, la clé
+publique ne correspondant plus a la phrase de passe du message), ce qui
+offre bien évidemment des avantages non négligeables dans un
+environnement ou la protection des échanges est importante (soit a peu
+près partout sur internet, si vous tenez a votre vie privée. Pensez a
+[quitter Gmail][] aussi, par exemple).
+
+Il est cependant a noter que les clés publiques sont généralement
+situées sur un serveur de clés publiques, tel pgp.mit.edu ou encore
+subkeys.pgp.net (certaines personnes préfèrent garder leur clés hors des
+serveurs de clés publiques, craignant une compromission de ces serveurs.
+Dans le cas d'utilisateurs normaux (c'est a dire n'échangeant pas de
+secrets classés secret-défense par email), la protection offerte par les
+serveurs de clé publiques est suffisante)
+
+L'une des implémentations les plus connues et utilisées de PGP est sans
+conteste GPG ([GNU Privacy Guard][]) , qui comme son nom l'indique fait
+partie du projet GNU, et qui (`` de façon surprenante pour un
+programme GNU``) est extrêmement efficace et claire.
+
+Après ces explications techniques, voici venue le
+moment intéressant/utile, a savoir l'application. Le chiffrement et la
+signature de mails doivent cependant attendre un petit peu, étant donné
+qu'il vous faut d'abord créer votre clé et la placer sur un serveur de
+clés publiques, de façon à ce que votre destinataire puisse vous
+identifier lorsqu'il recevra le mail, mais aussi a configurer votre
+client mail pour utiliser gpg (je baserai les explications de cet
+article sur Thunderbird, mais des explications efficaces sont trouvables
+facilement sur les interwebs).
+
+Tout d'abord, générons une clé GPG :
+
+ gpg --gen-key
+
+GPG va vous demander les méthodes de chiffrement que vous voulez
+utiliser, le plus sur est de laisser la valeur par défaut. La question
+suivante est de savoir quelle taille votre clé doit faire, il est
+préférable de choisir la taille la plus importante possible (4096). GPG
+veut ensuite savoir quand votre clé doit expirer. La méthode simple est
+bien évidemment de ne jamais la faire expirer, il est cependant plus
+intéressant dans une logique de sécurité de régler cette durée a six
+mois/un an.
+
+Des informations personnelles vous sont ensuite demandées,
+concernant votre nom (mettez le vrai, tel qu'il apparaît sur votre carte
+d'identité, si vous souhaitez utiliser votre véritable identité), votre
+adresse mail (mettez la plus utilisée, vous pourrez en rajouter plus
+tard), et un mot de passe pour la clé (utilisez un mot de passe
+sécurisé!! Il est conseillé d'utiliser au moins 8 caractères, dont majuscules,
+minuscules, caractères spéciaux et nombres (vous pouvez utiliser la
+commande `makepasswd`, qui génère automatiquement un mot de
+passe)
+
+GPG va maintenant prendre un peu de temps pour générer le couple clé
+publique/clé privée, vous devriez profiter de ce temps pour effectuer
+des opérations autres sur votre ordinateur : taper des textes, lancer
+des films, écouter de la musique... De façon à augmenter les chances
+d'obtenir un nombre bien aléatoire (le générateur d'aléatoire se base
+sur la RAM pour obtenir des bits au hasard)
+
+Une fois cela fini, vous obtenez un couple clé publique/clé privée, que
+vous ne pouvez pas visualiser entièrement pour l'instant. Il est
+cependant possible (et recommandé) de les exporter pour les sauvegarder
+via une commande:
+
+ gpg --armor --export --output=pubkey.gpg
+
+pour la clé publique, et
+
+ gpg --armor --export-secret-keys --output=seckey.gpg
+
+pour la clé privée. Il est possible et même souhaitable de copier ces
+clés sur une clé USB, une carte SD, ou un autre support de stockage
+résistant, de façon a avoir une solution de sauvegarde, au cas ou vous
+perdiez ces clés sur ce PC.
+
+Cela fait, listons les informations sur votre clé publique :
+
+ $ gpg --list-keys --fingerprint
+ pub 4096R/27D81AC8 2012-11-17
+ Key fingerprint = 6345 A91A FF89 97E0 13D0 96A9 9E2A 1917 27D8 1AC8
+ uid Clément Hertling (Wxcafe)
+ uid [jpeg image of size 14692]
+ sub 4096R/9ED7F77F 2012-11-17
+
+La partie `pub` indique que c'est une clé publique, `4096R` indique que c'est
+une clé RSA sur 4096 bits. La partie `27D81AC8` est
+l'identifiant de la clé publique, `Key fingerprint = 6345 A91A FF89 97E0 13D0
+96A9 9E2A 1917 27D8 1AC8` est appelé fingerprint de la clé. Les champs
+`uid` sont des manières d'identifier la clé et la personne associée a
+celle-ci, et enfin le champ `sub` est indicateur d'une subkey, système
+uniquement pris en charge par GPG et non inclus dans les premières
+versions de PGP, donc non-implémentées dans nombre de clients pgp.
+Passons maintenant a la mise en place de cette clé publique sur un
+serveur de clés : nous utiliserons ici le serveur pgp.mit.edu.
+
+ gpg --keyserver pgp.mit.edu --send-keys *ID de la clé a uploader*
+
+Maintenant que votre clé publique a été uploadée, vous pouvez l'utiliser
+pour signer et chiffrer vos emails!
+Installons donc l'extension Enigmail pour Thunderbird, permettant de
+chiffrer/signer vos emails de façon transparente. Il conviendra de
+paramétrer cette extension, via le menu OpenPGP dans Thunderbird, puis
+Setup Wizard (l'option entre Help et About OpenPGP). Normalement,
+Enigmail détecte votre installation de gpg automatiquement, si cependant
+ce n'était pas le cas, vous pouvez utiliser la clé exportée tout a
+l'heure (pubkey.gpg) en l'important (import key from file).
+
+Selon les options que vous avez utilisées, vos emails seront
+automatiquement signés et/ou chiffrés a l'envoi. Gardez cependant a
+l'esprit que si tout le monde peut lire les mails signés, il n'en est
+pas de même pour les mails chiffrés, pour lesquels il est nécessaire de
+posséder la clé publique du correspondant en question, et de posséder
+soi même une clé privée, donc d'utiliser OpenPGP aussi.
+Concernant les signatures de clés, elles fonctionnent de manière très
+simple :
+Vous devez télécharger la clé de votre correspondant, via un
+
+ gpg --keyserver pgp.mit.edu --search-keys *ID de la clé de votre correspondant*
+
+(a noter que cette commande fonctionne aussi en cherchant une adresse
+email ou un nom. Cependant, en cherchant via l'identifiant de la clé,
+vous êtes sur de trouver votre correspondant. Globalement, l'email est
+lui aussi assez sûr en terme de recherche de clés, tandis que le nom
+donne rarement un résultat). L'étape suivante est de vérifier que votre
+correspondant est bien la personne qui est spécifiée sur sa clé. Pour
+cela, il convient d'avoir déjà vu physiquement cette personne et si
+possible d'avoir vu une pièce d'identité lui appartenant, et d'avoir une
+confirmation de cette personne que la clé que vous voyez lui appartient
+bien.
+Ceci fait, vous pouvez signer la clé via un
+
+ gpg --sign *ID de la clé a signer*
+
+puis la renvoyer au serveur via
+
+ gpg --keyserver pgp.mit.edu --send-key *ID de la clé a signer*
+
+Voila, la clé de votre correspondant est signée!
+
+Ce tutoriel sur PGP/GPG est terminé, et votre sécurité est améliorée
+grâce a cette superbe invention qu'est la cryptographie!
+
+ [pretty good privacy]: http://fr.wikipedia.org/wiki/Pretty_Good_Privacy
+ [ici]: http://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique
+ [quitter Gmail]: http://www.hauteresolution.net/pourquoi-je-vais-quitter-gmail/
+ [GNU Privacy Guard]: http://fr.wikipedia.org/wiki/GNU_Privacy_Guard
diff --git a/content/la-programmation-expliquee-simplement.md b/content/la-programmation-expliquee-simplement.md
new file mode 100644
index 0000000..5342b12
--- /dev/null
+++ b/content/la-programmation-expliquee-simplement.md
@@ -0,0 +1,75 @@
+Title: La programmation expliquée simplement
+Date: 2012-08-27 00:22
+Author: Wxcafe
+Category: Teaching
+Slug: la-programmation-expliquee-simplement
+
+Salut!
+Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire
+récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé
+pas mal de temps assez occupé.
+
+Enfin, après un certain temps a farfouiller au millieu des connecteurs
+SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques
+durs, je suis de retour pour un court article.
+Du coup, je m'étais dit que j'allais reprendre sur le thème de
+l'informatique expliquée au grand public, en tentant d'aller un peu plus
+loin que la dernière fois sur le thème de la programmation
+Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur.
+Si a peu près tout le monde sait que "les ordinateurs, ils ne
+comprennent que les 1 et les 0!", peu de gens savent comment cela
+fonctionne en détail.
+
+Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà
+des notions de base en informatique. Ainsi, vous savez surement que les
+ordinateurs fonctionnent avec des programmes, qui sont composés de
+code.
+Ainsi, il faut comprendre que le code (source) est "compilé" en un
+fichier "binaire". Un fichier binaire est un fichier comprenant les
+instructions telles qu’exécutées par le processeur, et donc absolument
+illisible pour un humain.
+
+La compilation est le processus qui transforme le code source en
+binaire executable. Les binaires ont, sous Windows, l'extension .exe,
+tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension
+particulière.
+Ceci étant dit, il faut comprendre que certains langages sont plus
+proches que d'autres du langage processeur, les langages les plus
+proches sont dits de "bas niveau". Les langages les plus éloignés sont
+donc dits de haut niveau.
+
+Par exemple, l'assembleur est l'un des languages de plus bas niveau,
+tandis que python par exemple est un langage de plus haut niveau. Les
+langages de haut niveau sont souvent bien plus simples a comprendre et a
+apprendre que les langages de bas niveau
+
+Ainsi, en C, un langage de niveau relativement bas, pour afficher
+"hello world" sur l'écran, le code nécessaire est :
+
+ #include
+ void main() {
+ printf("hello world");
+ return 0;
+ }
+
+le même programme en python s'écrit :
+
+ print "hello world"
+
+et n'a pas besoin d'être compilé , puisqu'il peut être intepreté
+directement.
+
+Python utilise en effet un système similaire a Java en ayant un
+interpréteur dit "runtime" ou "temps réel", qui interprète le programme
+sans le compiler. Java utilise un système légèrement différent, puisque
+le code a besoin d'être compilé, mais est interpreté par un interpréteur
+et non par le processeur.
+
+Cette méthode permet le fameux "code once, run everywhere", ce qui
+signifie que le même code est exécutable sur quasiment tous les systèmes
+d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est
+disponible.)
+
+Voila, je vous laisse sur le fonctionnement de Java et de Python, et je
+vais me coucher.
+A bientôt!
diff --git a/content/la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne.md b/content/la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne.md
new file mode 100644
index 0000000..976d720
--- /dev/null
+++ b/content/la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne.md
@@ -0,0 +1,108 @@
+Title: La séparation des églises et de l'état, une idée qu'elle est bonne?
+Date: 2012-12-13 03:08
+Author: Wxcafe
+Category: Ranting
+Slug: la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne
+
+Aujourd'hui, et depuis 1901 (j'ai révisé mon histoire récemment), il
+existe une loi dite de séparation des églises et de l'état, qui consiste
+a faire en sorte que l'état n'ait rien a voir avec les differentes
+églises, pour de sombres histoires d'indépendance et de laïcité.
+(principes qui sont aujourd'hui en voie de disparition, mais ce n'est
+pas le propos qui nous occupe ici). Cela dit, cette bonne idée
+politique, si elle a évité a ses auteurs de nombreux tracas, et leur a
+surement permis de conserver une tête en état de fonctionnement bien
+reliée a leur colonne vertébrale, ne vous interesse que moyennement, et
+vous voudriez retourner répondre a vos mails sur Gmail et micro-blogguer
+(quel mot horrible...) sur twitter?
+
+Ça tombe bien, vous abordez justement le sujet véritable de cet article
+(non, mon blog n'est pas devenu un histoblog, désolé aux déçus...), a savoir
+la centralisation qui se met progressivement en place sur internet depuis
+quelques années : Twitter, Google, Facebook, Micro$oft, Apple, tous ces
+acteurs du web (et pas que, pour certains...) ont commencé a prendre
+pour manie de centraliser vos données : pour prendre un exemple simple,
+si vous utilisez Gmail (qui depuis quelque temps, lit aussi vos mails
+pour accorder la publicité, dites adieu a votre vie privée), vous avez
+un compte Google Talk, probablement aussi un Google+.
+
+L'outil le plus pratique aujourd'hui pour aggreger des flux RSS est
+Google Reader, et vous l'utilisez aussi probablement. Votre téléphone
+est un android? Ah, un Nexus? Vous avez donc toutes les applications
+google installées, et Chrome mobile comme navigateur par défaut, qui est
+synchronisé avec la version qui tourne sur votre PC (via les serveurs de
+Google, bien sur).
+Depuis peu, les recherches sur le moteur de recherche
+sont elles aussi ajoutées a votre profil, enregistrées a jamais par
+Google (qui n'est pas touchée, en tant que société américaine, par la
+"loi des 10 ans" francaise.). Vous commencez a voir le truc? Non, ne
+jetez pas ce telephone, enfin! (je refuse de rembourser tout smartphone
+ayant été perdu a cause de cet article) J'ai pris ici comme exemple
+Google, parce que c'est celui qui propose le plus de services, mais
+Apple avec iCloud, iTunes et son iPhone fait pareil, tout comme M$ avec
+WP8 et Skydrive.
+
+Twitter et Facebook n'ont de rôle dans ce sujet qu'en ce que vous leur
+fournissez des informations dont ils s'empressent de devenir seuls
+propriétaires (cf les Conditions d'Utilisation de ces deux services),
+puis de les revendre a des annonceurs faisant de la publicité
+ciblée. Le problème est simple a apprehender, vous ne voulez pas que
+l'un de ces services connaisse trop de choses sur vous (et ils recoupent
+très bien les informations venant de sources differentes), car il est
+évident qu'ils les vendent a des entreprises peu scrupuleuses quand
+a leurs engagements de confidentialité, quand a leurs securité
+aussi; mais surtout parce que depuis le 11 Septembre 2001 et le
+Patriot Act, toute entreprise américaine **doit**fournir toutes ses
+informations au gouvernement américain **sans aucune intervention d'un
+juge, ou de quelque institution de controle que ce soit.**
+
+Ce qui est, comme vous pouvez le comprendre, relativement
+problématique. (pour ceux qui a ce point se disent "je n'ai rien a
+cacher, donc je m'en fous si le gouvernement américain sait tout de
+moi", je vous conseille d'aller lire [cet article][] de Jean Marc
+Manach, plein de bon sens...) Pour éviter cela, vous avez plusieurs
+possibilités: utiliser des services concurrents pour tout (Facebook
+Mail, Skydrive, Twitter et Google Reader par exemple), tout en vous
+souvenant que comme ces entreprises sont toutes américaines, le
+gouvenrnement américain détient tout de même vos informations, et que ca
+lui prendra juste un peu plus de temps.
+
+Vous pouvez aussi n'utiliser que des entreprises francaises,
+mais cela ne regle que le problème du Patriot Act, et pas celui de
+la revente de vos données. Et puis essayez de trouver un service équivalent
+a Google Reader et fourni par une entreprise française, on en reparlera.
+Non, la véritable alternative, c'est d'héberger vos services vous
+même, d'avoir votre propre serveur sur lequel vous possedez le plus
+de services possibles, et d'utiliser des concurents ou des services
+libres au maximum pour les autres, ceux qui ne sont pas distribuables
+(par exemple, les cartes sont difficiles a mettre en commun,
+or plusieurs alternatives existent: Google Maps, ``Apple
+Maps``, Bing Maps, OpenStreetMaps, etc...).
+Beaucoup de ces services sont cependant très facilement
+décentralisables, surement parce qu'ils ont a la base étés conçus comme
+des services décentralisés. Ainsi les emails, le web, le chat (via XMPP)
+par exemple sont basés sur un système décentralisé.
+
+De plus, votre serveur peut vous servir a beaucoup d'autres des
+choses que vous feriez habituellement sur votre ordinateur
+personnel: conserver une présence sur IRC, compiler du code, faire
+du rendu vidéo, etc... En bref, un serveur peut vous servir
+a effectuer toutes les opérations que vous effectuez sur votre
+ordinateur sans les inconvénients de la consommation éléctrique
+ni du bruit, mais vous permet aussi de ne dépendre aucunement
+d'une entreprise américaine, et cependant de disposer de tous les
+services utiles offerts par ces dernières.
+
+Un serveur peut de plus vous permettre de controller parfaitement
+tous ces services, sans aucune limitation d'aucune sorte,
+voire de vous créer une page web. Bien entendu, il est bien plus
+utile d'avoir un serveur si vous avez aussi un nom de domaine.
+Heureusement, ils sont peu chers et souvent fournis avec le serveur.
+
+Dans de prochains articles, je vous expliquerai comment louer puis
+configurer votre serveur pour qu'il serve de serveur mail (IMAP/SMTP),
+web, base de données, et proxy. Cela dit, comme c'est un serveur sous
+linux, vous pouvez l'utiliser pour a peu près n'importe quoi.
+Voila, a bientôt!
+
+ [cet article]: http://www.internetactu.net/2009/03/12/la-vie-privee-un-probleme-de-vieux-cons/
diff --git a/content/le-quenya-episode-o.md b/content/le-quenya-episode-o.md
new file mode 100644
index 0000000..e854971
--- /dev/null
+++ b/content/le-quenya-episode-o.md
@@ -0,0 +1,44 @@
+Title: Le Quenya - Épisode ø
+Date: 2012-09-18 19:07
+Author: Wxcafe
+Category: Language
+Slug: le-quenya-episode-o
+
+Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y
+a peu...), le nom que donnait Tolkien au dialecte principal parlé par
+les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des
+Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte
+avant de commencer cet article que l'une des œuvres les plus
+impressionnantes de Tolkien, si ce n'est la plus grande, est
+l'impressionnant travail linguistique passé sur les différentes langues
+présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya,
+la langue des nains, qui est appelé le khazalide, etc.
+
+En effet, a contrario des "langues" développées dans d'autres œuvres littéraires
+telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot
+de français (ou d'anglais) a un mot de sa "langue", les langues de
+l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des
+racines logiques, des systèmes de grammaire et de conjugaison propres,
+une logique inhérente dans la prononciation ou l'orthographe, et ainsi
+de suite.
+
+Un véritable rêve de linguiste donc, puisque ces langues sont
+pratiquement entièrement documentées par Tolkien lui même (voir
+l'appendice E du SdA, particulièrement instructif a ce sujet.)
+
+J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster
+ici des résumés des cours que je suis ( disponibles [ici][] , une
+traduction en français est disponible [la][] en pdf ), et des infos ici
+toutes les deux semaines.
+
+Si ce sujet vous intéresse, le compte twitter @Quenya101 poste
+régulièrement des informations sur le sujet, et pour plus d'infos sur le
+sujet, vous pouvez en trouver [par ici][].
+
+Et en tant que première leçon, vous pouvez apprendre que ce mot que vous
+avez prononcé comme le Kenya tout le long de cet article se prononce en
+fait [Kwenïa], ou bien Qwenya!
+
+ [ici]: http://folk.uib.no/hnohf/qcourse.htm
+ [la]: http://www.ambar-eldaron.com/telechargements/integraleshelge.pdf
+ [par ici]: olk.uib.no/hnohf/quenya.htm
diff --git a/content/les-differentes-couches-dun-systeme-dexploitation.md b/content/les-differentes-couches-dun-systeme-dexploitation.md
new file mode 100644
index 0000000..235077b
--- /dev/null
+++ b/content/les-differentes-couches-dun-systeme-dexploitation.md
@@ -0,0 +1,94 @@
+Title: Les différentes couches d'un système d'exploitation
+Date: 2012-09-06 23:29
+Author: Wxcafe
+Category: Teaching
+Slug: les-differentes-couches-dun-systeme-dexploitation
+
+Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques
+années (plus ou moins, parce que j'ai toujours un Windows en dual boot,
+principalement pour les jeux (possiblement plus pour longtemps, avec
+l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou
+moins bien mon système. Or il y a plusieurs choses a savoir sur les
+systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est
+le système de couches.
+
+Un système d'exploitation (de type UNIX, \enfin un vrai système quoi.
+\) incorpore plusieurs systèmes de couches.
+
+Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique,
+c'est a dire que tous les composants sont intégrés au kernel. Ce qui
+signifie que rien ne peut être ajouté au noyau sans recompiler celui ci.
+Or, quand on sait que le noyau comprend entre autres les drivers du
+matériel et des systèmes de fichier, cela peut poser des problèmes quand
+a la taille du kernel et a la licence libre de ce dernier.
+
+Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui
+signifie que des modules peuvent être chargé a tout moment en cours
+d’exécution, ce qui permet l'utilisation de nouveaux systèmes de
+fichiers a chaud, ou l'insertion de matériel et l'installation de
+drivers sans interrompre l’exécution du système (Windows utilise un
+système de fausse installation de drivers pour le matériel externe, et
+un système de pré-installation des drivers pour les périphériques dits
+"plug and play")
+
+Après le noyau intervient le système. Or, au tous premiers instants du
+boot, les systèmes GNU/Linux utilisent un système permettant de limiter
+l'utilisation de ressources systèmes si elles ne sont pas nécessaires,
+et incorpore ainsi un système dit de "runlevels"
+
+Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce
+runlevel permet de tester le bon démarrage du système sans avoir a
+effectuer de manipulation pour le ré-éteindre
+
+Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté
+étant donné que ce runlevel donne accès a un système en étant
+automatiquement loggé en tant que root, avec tous les autres
+utilisateurs désactivés, de même que tous les systèmes de réseaux
+
+Le runlevel 2 est appelé mode multi user, et vous mets en face d'un
+système classique. en ligne de commande, mais avec tous les systèmes de
+réseau désactivés.
+
+Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux
+activés.
+
+Le runlevel 4 n'est pas officiellement défini, et est censé être
+activable en fonction des besoins de l'utilisateur. Sur la plupart des
+distributions grand public, ce runlevel est lié au...
+
+Runlevel 5! Multi-user, networking, with working GUI! c'est le système
+tel que vous le connaissez, avec l'interface graphique et le système de
+login graphique.
+
+Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine
+quand il devient le runlevel courant.
+
+(Il est a noter que Debian, et donc toutes les distribs qui en sont
+dérivées, ne font pas de distinction entre les differents runlevels du 2
+au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login
+et une interface graphique, et un mode réseau fonctionnel, bref avec des
+fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)
+
+Il est possible de changer de runlevel grâce a la commande runlevel
+(oui, c'est évident...)
+
+Les systèmes Linux utilisent aussi un système dit de SandBox , qui en
+informatique est un système permettant d'isoler les processus les uns
+des autres. Ainsi, la pile réseau, qui est le système auquel les
+différents processus envoient les différents paquets qui doivent sortir
+de la machine , et qui redistribue ces paquets, est isolée du reste du
+système, en cela qu'aucun des autres processus ne peuvent modifier cette
+pile hors du runlevel 1 ou 2.
+
+De la même façon, le navigateur chrom/ium fait fonctionner tous les
+onglets, ainsi que toutes les extensions, dans des processus différents.
+Certaines distributions linux implémentent un système de cette sorte
+pour toutes les applications, ou seulement pour certaines. ainsi Chakra
+Linux a un système d'installation d'applications dans des disques
+virtuels, ce qui permet une sécurité totale du processus.
+
+Voila, j'espère vous en avoir appris un peu sur le fonctionnement des
+différentes couches de linux, et j'espère que cet article vous poussera
+a tester un peu votre système et a vous amuser avec les différents
+runlevels
+
diff --git a/content/les-systemes-de-fichiers.md b/content/les-systemes-de-fichiers.md
new file mode 100644
index 0000000..7003c88
--- /dev/null
+++ b/content/les-systemes-de-fichiers.md
@@ -0,0 +1,123 @@
+Title: Les systèmes de fichiers
+Date: 2012-09-25 10:28
+Author: Wxcafe
+Category: Teaching
+Slug: les-systemes-de-fichiers
+
+Un système de fichiers. Vous en avez surement déjà entendu parlé si vous
+avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous
+connaissez surement NTFS, EXT4, ou encore FAT32.
+
+Ces différents noms désignent en effet des systèmes de fichiers. Mais
+qu'est-ce qu'un système de fichiers?
+
+Pour comprendre cela, il faut déjà savoir ce qu'est exactement un
+fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la
+plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio
+([kibioctet][]), en fonction du système de fichier utilisé.), qui est
+donc composé de bits, interprétés différemment en fonction du type de
+fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il
+n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent,
+ou il commence ni où il s'arrête (je schématise un peu, mais c'est
+l'idée).
+
+Ainsi, le système de fichier donne un cadre et un standard à
+l'arborescence des fichiers. Par exemple, le système de fichier ext4
+utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de
+disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio
+et mesurer la taille des fichiers en blocs de cette façon. Les systèmes
+de fichiers nécessitent l'inclusion de drivers dans le noyau pour
+pouvoir être pris en compte.
+
+Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs,
+reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu
+près tout type de partition récente.
+
+Il convient de bien faire la différence entre le système de fichier et
+l'arborescence des fichiers. Si l'arborescence des fichiers est en fait
+une entité virtuelle englobant la racine / et tous les fichiers et
+dossiers contenus dedans, le système de fichier permet a votre système
+GNU/Linux de distinguer les différents fichiers composants cette
+arborescence.
+
+Détaillons maintenant les types de fichiers les plus répandus:
+
+- FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table,
+ soit la définition d'un système de fichier), remplissent leur rôle le
+ plus simplement possible. Ne permettant (historiquement) que des noms de
+ 8 caractères (plus extension de trois caractères), ni chiffrement, ni
+ système de distinction d'utilisateurs (DOS étant un système
+ mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32,
+ utlisants respectivement des blocs de 16 et 32 Kio.
+
+- NTFS :. Le NTFS (pour New Technology File System, rapport a Windows
+ NT) est un système de fichier qui est apparu avec Windows XP, et qui
+ était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a
+ FAT différentes capacités dont le chiffrement, les liens symboliques, la
+ compression et les quotas pour les volumes, permettant de limiter la
+ taille maximum occupée dans une partition.
+
+- ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012.
+ Ne différant pas énormément de NTFS, je le mentionne principalement
+ parce qu'il est prévu qu'il soit le défaut pour Windows 8.
+ Il apporte principalement la redondance, c'est a dire que chaque
+ fichier possède une somme de contrôle en 64 bits stockée dans un fichier
+ séparé pour éviter les corruption de disque.
+
+- Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers
+ les plus utilisés sous linux pour le grand public. (Je traiterai ici
+ d'ext4, puisque c'est le plus récent.) Il dispose de toutes les
+ fonctions que l'on peut attendre d'un système de fichiers moderne, ni
+ plus ni moins. Ainsi, ext4 est un système de fichiers journalisé,
+ acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite
+ "par extent", ce qui signifie que la création d'un fichier réserve
+ automatiquement les zones contiguës de façon a réduire la fragmentation.
+
+- ReiserFS : ce système de fichiers, créé par le (légèrement mégalo)
+ programmeur Hans Reiser, est a retenir pour avoir été le premier système
+ de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des
+ 4 milliards. Le but de ce système est de créer un système polyvalent, a
+ la fois système de fichiers et base de donnée (de part sa grande
+ capacité en terme de nombre de fichiers et de l'utilisation d'un
+ journal.)
+
+- Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi
+ l'allocation par extent, mais possède de plus un système de
+ sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers
+ montées en même temps (système pratique et utile pour faire des
+ snapshots de systèmes.). Il permet aussi de redimensionner a chaud la
+ taille des partitions, en les agrandissant ou en les rétrécissant, est
+ compatible avec [LVM][], a un système de checking intégré (btrfsck), et
+ utilise un algorithme de compression appelé LZ4, qui accélère les accès
+ aux fichiers compressés d'environ 30% par rapport a LZO, le système
+ utilisé dans ext4.
+
+- HFS+ : le système de fichier présent sur tous les macs a des capacités
+ relativement standards, et ressemble énormément a l'ext3. Il supporte
+ cependant les liens directs vers les dossiers, fonction rare sur les
+ systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau
+ dans les années a venir
+
+- ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux
+ et \*BSD, est, tel Btrfs, a la fois un système de fichier et un
+ remplaçant/compatible avec LVM, C'est un système de fichiers conçu
+ principalement pour les serveurs, et il intègre ainsi un système de
+ redondance des données pour éviter les corruptions, un mode RAID-Z
+ (apparenté au RAID5), des checks d’intégrité en continu, des snapshots,
+ etc...
+
+Comme on a pu le voir, les systèmes de fichiers disponibles sont
+légions. Cependant, le plus adapté a Linux et a une utilisation grand
+public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier
+n'est pas aujourd'hui proposé par défaut sur les distributions les plus
+utilisées, au profit de l'ext4, qui commence a accuser son âge...
+
+Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au
+fonctionnement du système, sont en fait de première importance, et ce
+choix ne devrait pas être laissé au hasard, et être mis a jour
+régulièrement (pour éviter les failles de sécurité...)
+
+Bon courage, et bon choix pour votre prochain système.
+
+ [kibioctet]: http://fr.wikipedia.org/wiki/Kibioctet#Multiples_normalis.C3.A9s
+ [LVM]: http://fr.wikipedia.org/wiki/LVM
diff --git a/content/linformatique-a-lecole.md b/content/linformatique-a-lecole.md
new file mode 100644
index 0000000..e7bf923
--- /dev/null
+++ b/content/linformatique-a-lecole.md
@@ -0,0 +1,81 @@
+Title: L'informatique a l'école
+Date: 2012-10-15 20:34
+Author: Wxcafe
+Category: Ranting
+Slug: linformatique-a-lecole
+
+Après avoir lu [cet article][] paru sur écrans.fr, et au vu des
+nombreuses réflexions que j'ai eu sur ce sujet au cours des années, je
+commence a me demander si la réponse logique ne serait pas d'enseigner
+les bases de l'informatique (bases d’électronique, de programmation et
+de logique formelle) dès le collège.
+
+En effet, l'exemple qui me revient toujours est celui des technoprêtres
+de warhammer 40 000, dans un univers ou la technologie est ritualisée et
+incomprise même des plus savants, qui se contentent de reproduire ce qui
+existe, et parfois par chance de retrouver un schéma explicatif lisible
+par une machine, et qu'ils ne comprennent pas eux mêmes, ou toute
+technologie est ointe d'onguents sacrés, entourée d'encens avant d'être
+péniblement actionnée par des assistants ne comprenant rien a cette
+technologie (ayant lu [Hackers - Heroes of the Computer Revolution][] de
+Steven Levy, c'est l'ambiance que l'on retrouve quand l'auteur décrit
+l'ambiance près des machines IBM au MIT, au début de l'ouvrage), et il
+me semble que de plus en plus la société se rapproche de cela.
+
+Cette culture de l’ingénierie, qui existait beaucoup lors des débuts de
+l'informatique (telle que décrite par exemple par Steve Wozniak dans son
+livre [iWoz][]) disparait pour laisser place a une culture de la
+consommation et de l'utilisation de contenus existants, et même a une
+certaine peur de la compréhension de la technologie. Ceux qui s'y
+intéressent sont considérés comme marginaux (combien de hackers créent
+des outils sur lesquels seront construits tous les systèmes du siècle a
+venir, tels des Dennis Ritchie en puissance? Combien d'entre eux ne sont
+pas intégrés a la société dite "normale"?), et on peut souvent observer
+les réactions de peur que lancent les actions des hackers, ne serait-ce
+que dans les journaux (combien de journaux 'mainstream' ont-ils parlés
+des hackers en bien, c'est a dire tels qu'ils sont réellement, depuis
+les années 80?) ou a la télévision.
+
+Ainsi, la culture et la connaissance de ces appareils que
+sont les ordinateurs, qui aujourd'hui se trouvent du fond de nos
+poches a dans l'espace en passant par l’intérieur des pacemakers
+jusqu’à être une composante indispensable de la société, se perdent et
+rendent ainsi la compréhension de ces appareils impossible (j'ai eu
+la désagréable surprise récemment de voir un camarade de classe
+me poser ingénument la question "Ah, mais en fait, quand tu installes
+Linux, ça change le fond d'écran et les icônes?". Au-delà du niveau,
+la misère de cette question est que cette personne n'avait probablement
+aucune idée de la façon dont fonctionnait son ordinateur, a part
+pour le fond d'écran en question et pour les fameuses icônes.) pour
+le grand public, et cet évolution crée de fait une sorte d'oligarchie de
+techno-comprenants, seuls capables de manier et de créer la technologie.
+
+C'est pour cela qu'il me semble intéressant, important, peut être même
+requis, d'inclure au programme du collège puis du lycée des cours
+d’électronique et d'informatique tels que décrits plus haut, de façon a
+ce que les élèves comprennent le monde qui les entoure. Car c'est la le
+but du cycle scolaire secondaire, me semble-t-il, et non pas de former
+des futurs travailleurs. Sinon, pourquoi y aurait-il des cours de
+musique, d'arts plastiques, ou encore de philosophie? Si le but du cycle
+secondaire est bien d'ouvrir l'esprit des élèves sur le monde et sur ce
+qui les entoure, alors les cours sur l'informatique s'imposent comme une
+évidence, puisque ceux-ci nous entourent aujourd'hui bien plus que quoi
+que soit d'autre...
+
+Ces cours seraient susceptibles de s’insérer en un mélange entre des
+cours de technologie (qui aujourd'hui sont bien plus orientés physique
+et machines-outils qu'informatique ou électronique, alors que la
+technologie d'aujourd'hui et vraisemblablement de demain aussi est
+l'informatique) et de physique, pour le côté électronique, et de façon a
+donner enfin aux cours de physique un intérêt quelconque, sortir au delà
+de la théorie et de l'abstraction complète que sont actuellement ces
+cours et passer un peu dans la réalisation, avec des arduinos par
+exemple.
+
+Vous aussi, intéressez vous a cela, de façon a ce que les jeunes ne
+finissent pas par ne rien comprendre a ce qui est aujourd'hui l'une des
+composante les plus importantes du monde tel qu'il est programmé.
+
+ [cet article]: http://t.co/5PTfe6zu
+ [Hackers - Heroes of the Computer Revolution]: http://en.wikipedia.org/wiki/Hackers:_Heroes_of_the_Computer_Revolution
+ [iWoz]: http://en.wikipedia.org/wiki/IWoz
diff --git a/content/update-a-propos-du-blog.md b/content/update-a-propos-du-blog.md
new file mode 100644
index 0000000..2d63b13
--- /dev/null
+++ b/content/update-a-propos-du-blog.md
@@ -0,0 +1,34 @@
+Title: Update a propos du blog
+Date: 2012-09-18 16:57
+Author: Wxcafe
+Category: Notes
+Slug: update-a-propos-du-blog
+
+Bonsoir! Un petit post pour faire un peu le point sur ce blog.
+Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais
+que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y
+avoir un tantinet réfléchi, ceci est du a deux points principaux :
+
+- Tout d'abord, le manque d'inspiration, tout simplement. C'est assez
+compliqué de trouver des sujets intéressants liés a l'informatique, et
+qui méritent un article. Je vous invite d'ailleurs a me suggérer des
+sujets via les commentaires ou twitter ([@Wxcafe][])
+
+- Ensuite, le délai de 8 jours est trop court pour me permettre de faire
+les recherches nécessaires, tout en manageant mes cours et mon temps
+libre.
+
+A cause de cela, j'ai pris la décision de changer le rythme de parution
+des articles a un \*minimum\* d'un post tous les 10 jours. Bien entendu,
+si j'ai de l'inspiration en trop, plus de posts sont envisageables.
+
+Voila. A part ca, je tiens a vous remercier de me lire (c'est assez
+étonnant de voir ca...), et je précise que je vais ajouter une page
+About Me, qui bien entendu rassemblera des informations sur moi, ma vie,
+mon oeuvre :P
+
+Ceci dit, je vais bosser un peu sur le prochain article.
+
+A plus tard!
+
+ [@Wxcafe]: https://twitter.com/wxcafe
diff --git a/output/author/wxcafe3.html b/output/author/wxcafe3.html
new file mode 100644
index 0000000..8105624
--- /dev/null
+++ b/output/author/wxcafe3.html
@@ -0,0 +1,1271 @@
+
+
+
Archlinux est réputée être une distribution Linux très complexe a
+installer et a maintenir.
+
Je vais tenter ici de vous convaincre que ce n'est pas le cas, et
+qu'elle peut se monter très intéressante et très instructive a installer
+tout autant qu'a utiliser.
+
Il convient tout d'abord de rappeler a quels principes obéit Arch:
+
+
+
Le KISS : Keep It Simple and Stupid, Archlinux tente de faire des
+ programmes simples et utilisables par tous. Avec comme base de
+ simplicité les utilisateurs de LFS... Mais il n'empêche qu'avec un peu
+ de bonne volonté, la configuration n'est pas si compliquée!
+
+
+
La philosophie UNIX : chaque programme est prévu pour ne remplir
+ qu'une seule tâche. Bien entendu, cela ne concerne que les programmes
+ conçus pour s’insérer dans la philosophie UNIX, et les installations de
+ dépendances avec le gestionnaire de paquet d'Arch fonctionnent
+ superbement bien.
+
+
+
De plus, posons les bases d'Arch : le gestionnaire de paquets s'appelle
+pacman, et les commandes de base sont :
+
+
+
recherche d'un paquet :
+
pacman-Sspaquet
+
+
+
+
+
+
installation d'un paquet :
+
sudopacman-Spaquet
+
+
+
+
+
+
désinstallation d'un paquet :
+
sudopacman-Rpaquet
+
+
+
+
+
+
mise a jour de tous les paquets installés :
+
sudopacman-Syupaquet
+
+
+
+
+
+
Archlinux est une distribution dite "rolling release", ce qui signifie
+qu'il n'y a pas de version a proprement dites, et que les paquets se
+mettent a jour en permanence, sans jamais changer la "version" d'Arch.
+Il n'y a d'ailleurs qu'une seule version de l'installeur sur le site,
+puisqu'une version plus ancienne n'aurait aucun sens.
+
Arch n'offre pas d'interface graphique par défaut : après avoir installé
+le système, vous n'aurez qu'une invite de commande. Heureusement, je
+vais ici vous guider a travers l'installation d'une interface graphique
+(mate, le fork de gnome 2)
+
L'installation d'Arch se fait par le réseau, veillez a avoir une
+connection WiFi ou filaire a proximité avant de suivre ce guide.
+
Ce guide utilise SystemV, alors qu'Arch va prochainement passer sous
+systemd. N'ayant pas encore eu le temps d’expérimenter assez avec ce
+dernier, je ferais un tutoriel pour passer votre Arch a systemd bientôt.
+
Bon, passons a l'explication de l'installation proprement dite :
+
Tout d'abord, téléchargeons l'iso d'arch la plus récente :
Et voila, l'installation est terminée! Plus qu'a quitter la session et a
+redémarrer l'ordinateur!
+
exit
+umount/mnt/home
+umount/mnt
+reboot
+
+
+
+
Fini!
+
Prenons une petite pause. La partie suivante de ce tutoriel consister en
+un paramétrage des principaux services nécessaires a l'utilisation d'un
+OS, disons, moyen :
Installation de sudo et de networkmanager pour faire fonctionner les
+composants essentiels du système sans avoir a tout activer a la main a
+chaque démarrage
+
+
+
Installation de SLiM comme gestionnaire de login graphique, pour
+présenter une interface plus accueillante que la console, et
+configuration de celui-ci
+
+
+
Installation des principaux logiciels utiles non inclus dans mate ni
+base (yaourt, chromium, thunderbird, etc...).
+
+
+
Ce guide est bien sur optionnel, si vous souhaitez utiliser Arch avec un
+gestionnaire de bureau autre que mate, ou sans, vous pouvez vous arrêter
+ici.
+
Bon, reprenons.
+
Nous sommes donc sur une demande de mot de passe. Entrez donc le mot de
+passe paramétré plus haut pour le root, puis retapez la commande
+utilisée plus tôt pour vous connecter a internet.
+
Il convient d'ajouter le dépôt de MATE pour installer ce dernier, puis
+d'effectuer l'action en question :
Sinon, il est possible de juste redémarrer.
+Une fois cela fait, profitez de ce moment pour vous autoriser vous même
+a utiliser sudo. Loggez vous en root, et :
+
vim/etc/sudoers
+
+
+
+
Décommentez la ligne qui commence par # %wheel ALL=(ALL)
+Sauvegardez le fichier, puis, après un su *votrenom*, tentez de faire
+un sudo ls /
+Normalement, vous devriez avoir un listing du dossier /
+Bon, maintenant, pourquoi ne pas tenter de lancer MATE?
+C'est simple comme bonjour :
+
startx
+
+
+
+
Et PAF! Voila un MATE desktop flambant neuf a configurer!
+Avant de faire ça, retournez sur un TTY (CTRL+ALT+Fx), loggez vous,
+puis installez SLiM (sudo pacman -Syu slim).
+Configurons le:
Éditez la ligne
+"sessions xfce4,icewm-session,wmaker,blackbox" de facon a
+ce qu'elle ressemble a "sessions mate-session"
+Puis ajoutez slim dans /etc/rc.conf, dans la section DAEMONS.
+Normalement, tout devrait fonctionner!
+Ah oui, et pour installer thunderbird, firefox, chromium, etc...
Un système de fichiers. Vous en avez surement déjà entendu parlé si vous
+avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous
+connaissez surement NTFS, EXT4, ou encore FAT32.
+
Ces différents noms désignent en effet des systèmes de fichiers. Mais
+qu'est-ce qu'un système de fichiers?
+
Pour comprendre cela, il faut déjà savoir ce qu'est exactement un
+fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la
+plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio
+(kibioctet), en fonction du système de fichier utilisé.), qui est
+donc composé de bits, interprétés différemment en fonction du type de
+fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il
+n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent,
+ou il commence ni où il s'arrête (je schématise un peu, mais c'est
+l'idée).
+
Ainsi, le système de fichier donne un cadre et un standard à
+l'arborescence des fichiers. Par exemple, le système de fichier ext4
+utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de
+disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio
+et mesurer la taille des fichiers en blocs de cette façon. Les systèmes
+de fichiers nécessitent l'inclusion de drivers dans le noyau pour
+pouvoir être pris en compte.
+
Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs,
+reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu
+près tout type de partition récente.
+
Il convient de bien faire la différence entre le système de fichier et
+l'arborescence des fichiers. Si l'arborescence des fichiers est en fait
+une entité virtuelle englobant la racine / et tous les fichiers et
+dossiers contenus dedans, le système de fichier permet a votre système
+GNU/Linux de distinguer les différents fichiers composants cette
+arborescence.
+
Détaillons maintenant les types de fichiers les plus répandus:
+
+
+
FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table,
+ soit la définition d'un système de fichier), remplissent leur rôle le
+ plus simplement possible. Ne permettant (historiquement) que des noms de
+ 8 caractères (plus extension de trois caractères), ni chiffrement, ni
+ système de distinction d'utilisateurs (DOS étant un système
+ mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32,
+ utlisants respectivement des blocs de 16 et 32 Kio.
+
+
+
NTFS :. Le NTFS (pour New Technology File System, rapport a Windows
+ NT) est un système de fichier qui est apparu avec Windows XP, et qui
+ était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a
+ FAT différentes capacités dont le chiffrement, les liens symboliques, la
+ compression et les quotas pour les volumes, permettant de limiter la
+ taille maximum occupée dans une partition.
+
+
+
ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012.
+ Ne différant pas énormément de NTFS, je le mentionne principalement
+ parce qu'il est prévu qu'il soit le défaut pour Windows 8.
+ Il apporte principalement la redondance, c'est a dire que chaque
+ fichier possède une somme de contrôle en 64 bits stockée dans un fichier
+ séparé pour éviter les corruption de disque.
+
+
+
Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers
+ les plus utilisés sous linux pour le grand public. (Je traiterai ici
+ d'ext4, puisque c'est le plus récent.) Il dispose de toutes les
+ fonctions que l'on peut attendre d'un système de fichiers moderne, ni
+ plus ni moins. Ainsi, ext4 est un système de fichiers journalisé,
+ acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite
+ "par extent", ce qui signifie que la création d'un fichier réserve
+ automatiquement les zones contiguës de façon a réduire la fragmentation.
+
+
+
ReiserFS : ce système de fichiers, créé par le (légèrement mégalo)
+ programmeur Hans Reiser, est a retenir pour avoir été le premier système
+ de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des
+ 4 milliards. Le but de ce système est de créer un système polyvalent, a
+ la fois système de fichiers et base de donnée (de part sa grande
+ capacité en terme de nombre de fichiers et de l'utilisation d'un
+ journal.)
+
+
+
Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi
+ l'allocation par extent, mais possède de plus un système de
+ sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers
+ montées en même temps (système pratique et utile pour faire des
+ snapshots de systèmes.). Il permet aussi de redimensionner a chaud la
+ taille des partitions, en les agrandissant ou en les rétrécissant, est
+ compatible avec LVM, a un système de checking intégré (btrfsck), et
+ utilise un algorithme de compression appelé LZ4, qui accélère les accès
+ aux fichiers compressés d'environ 30% par rapport a LZO, le système
+ utilisé dans ext4.
+
+
+
HFS+ : le système de fichier présent sur tous les macs a des capacités
+ relativement standards, et ressemble énormément a l'ext3. Il supporte
+ cependant les liens directs vers les dossiers, fonction rare sur les
+ systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau
+ dans les années a venir
+
+
+
ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux
+ et *BSD, est, tel Btrfs, a la fois un système de fichier et un
+ remplaçant/compatible avec LVM, C'est un système de fichiers conçu
+ principalement pour les serveurs, et il intègre ainsi un système de
+ redondance des données pour éviter les corruptions, un mode RAID-Z
+ (apparenté au RAID5), des checks d’intégrité en continu, des snapshots,
+ etc...
+
+
+
Comme on a pu le voir, les systèmes de fichiers disponibles sont
+légions. Cependant, le plus adapté a Linux et a une utilisation grand
+public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier
+n'est pas aujourd'hui proposé par défaut sur les distributions les plus
+utilisées, au profit de l'ext4, qui commence a accuser son âge...
+
Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au
+fonctionnement du système, sont en fait de première importance, et ce
+choix ne devrait pas être laissé au hasard, et être mis a jour
+régulièrement (pour éviter les failles de sécurité...)
+
Bon courage, et bon choix pour votre prochain système.
Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y
+a peu...), le nom que donnait Tolkien au dialecte principal parlé par
+les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des
+Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte
+avant de commencer cet article que l'une des œuvres les plus
+impressionnantes de Tolkien, si ce n'est la plus grande, est
+l'impressionnant travail linguistique passé sur les différentes langues
+présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya,
+la langue des nains, qui est appelé le khazalide, etc.
+
En effet, a contrario des "langues" développées dans d'autres œuvres littéraires
+telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot
+de français (ou d'anglais) a un mot de sa "langue", les langues de
+l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des
+racines logiques, des systèmes de grammaire et de conjugaison propres,
+une logique inhérente dans la prononciation ou l'orthographe, et ainsi
+de suite.
+
Un véritable rêve de linguiste donc, puisque ces langues sont
+pratiquement entièrement documentées par Tolkien lui même (voir
+l'appendice E du SdA, particulièrement instructif a ce sujet.)
+
J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster
+ici des résumés des cours que je suis ( disponibles ici , une
+traduction en français est disponible la en pdf ), et des infos ici
+toutes les deux semaines.
+
Si ce sujet vous intéresse, le compte twitter @Quenya101 poste
+régulièrement des informations sur le sujet, et pour plus d'infos sur le
+sujet, vous pouvez en trouver par ici.
+
Et en tant que première leçon, vous pouvez apprendre que ce mot que vous
+avez prononcé comme le Kenya tout le long de cet article se prononce en
+fait [Kwenïa], ou bien Qwenya!
Bonsoir! Un petit post pour faire un peu le point sur ce blog.
+Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais
+que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y
+avoir un tantinet réfléchi, ceci est du a deux points principaux :
+
+
+
Tout d'abord, le manque d'inspiration, tout simplement. C'est assez
+compliqué de trouver des sujets intéressants liés a l'informatique, et
+qui méritent un article. Je vous invite d'ailleurs a me suggérer des
+sujets via les commentaires ou twitter (@Wxcafe)
+
+
+
Ensuite, le délai de 8 jours est trop court pour me permettre de faire
+les recherches nécessaires, tout en manageant mes cours et mon temps
+libre.
+
+
+
A cause de cela, j'ai pris la décision de changer le rythme de parution
+des articles a un *minimum* d'un post tous les 10 jours. Bien entendu,
+si j'ai de l'inspiration en trop, plus de posts sont envisageables.
+
Voila. A part ca, je tiens a vous remercier de me lire (c'est assez
+étonnant de voir ca...), et je précise que je vais ajouter une page
+About Me, qui bien entendu rassemblera des informations sur moi, ma vie,
+mon oeuvre :P
+
Ceci dit, je vais bosser un peu sur le prochain article.
L’interpréteur de commandes bash (Bourne Again SHell)
+est possiblement le shell le plus connu, notamment grâce a son
+intégration en tant que shell par défaut dans les distributions Linux
+les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva -
+Mageia, etc...).
+
Cependant, il n'est souvent connu qu'en tant qu’interpréteur de
+commande. Alors qu'en réalité, le bash est un langage de programmation
+(presque) complet! Ainsi, il intègre les structures de contrôle
+habituelles ( pour mémoire, les structures de contrôle comprennent les
+conditions (les ifs), les boucles (les while), et les choix (les case),
+entre autres.), et est donc ce que l'on pourrait appeler un langage de
+script, interprété, de la même façon que python, a la difference près
+qu'il contient un prompt (un système d'entrée de commande interactif)
+bien plus complet et développé que python.
+
Cependant, les programmes en bash ne sont executables que dans un
+environnement de type UNIX, et donc pas sous Windows (cygwin
+(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous
+windows. Il faut malgré tout convenir que cet environnement est bien
+plus compliqué a manipuler, et globalement ne permet pas d'acceder a des
+portages de qualité satisfaisante.)
+
Ainsi, il est possible de créer des fichiers .sh, contenant des
+instructions bash mises a la suite (de la même façon qu'un script BATCH
+Windows .bat), et faisant appel autant aux commandes internes de bash,
+aussi bien que les commandes externes mises en place par les programmes
+installés sur le système, exactement comme dans une invite de commande.
+Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit
+panda roux directement dans la boite magique, tandis qu'un if
+[condition] suivi d'un then (quelque chose) lancera le fameux quelque
+chose suscité si la condition est vérifiée. Un peu comme en C, quoi.
+
De cette façon, et avec quelques informations et connaissances, il est
+facile de comprendre le fonctionnement de la programmation en bash.
+Quelques exemples commentés:
+
1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
#!/bin/bash
+# La ligne du dessus est très importante, c'est elle qui dit a bash quel doit être
+# l'interpreteur des commandes écrites dans ce script. Ici, on dit a bash d'interpréter
+# lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire
+# executer du python, par exemple, en mettant #!/usr/bin/python a la place.
+echo"this is a test of bash as a simple script manager"# echo est une commande d'affichage de message.
+echo"what's your name, user?"
+read your_name # la commande read permet de demander a l'utilisateur de donner une
+# information, stockée dans la variable en paramètre.
+echo$your_name"is your name"# echo permet aussi d'afficher la valeur de variables.
+# Ici, on renvoie la variable remplie précédemment, suivie d'un message.
+exit# cet appel a exit n'est pas obligatoire, mais donne un aspect plus
+# propre au code. Il ne quittera pas la session de terminal, cependant.
+
+
+
+
Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite
+d'être clair quand aux capacités et a la simplicité du bash en tant que
+language de programmation. Alors en effet, nous n'avons ici absolument
+pas utilisé les capacités de bash en lui même, et n'avons fait que le
+renvoyer a des programmes externes (sauf read, il est vrai). Voyons
+maintenant la syntaxe de bash quand il s'agit d'utiliser les structures
+de contrôle:
+
1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
#!/bin/bash
+echo"welcome to this second bash program. would you please kindly enter the name of the machine you're running this on?"
+read host_name
+if[$host_name==$HOSTNAME]## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système.
+then echo"you told the truth!"
+fi## le fi est la commande fermant le if, tout comme le EndIf en basic. C'est un peu vieillot, mais important en bash.
+if[$host_name !=$HOSTNAME]## l'opérateur != est l'inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes.
+then echo"you lied!"
+fi
+exit
+
+
+
+
Voila un petit programme permettant d'apprendre la syntaxe du if en
+bash. comme vous pouvez le voir, le language est plutôt lite, et la
+structure if n'est pas très difficile a prendre en main.
+
Passons maintenant au while:
+
1
+2
+3
+4
+5
+6
+7
#!/bin/bash
+echo"what is your name?"
+read name
+while[ 1 < 10 ]## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.
+do echo"i love"$name
+done
+exit
+
+
+
+
Ce petit programme permet d'observer les bases de while (qui est la
+boucle de base en bash).
#!/bin/bash
+echo"please enter a number between one and five"
+read number
+case$number in
+1)
+echo"the choosen number was one"
+;;
+2)
+echo"the choosen number was two"
+;;
+3)
+echo"the choosen number was three"
+;;
+4)
+echo"the choosen number was four"
+;;
+5)
+echo"the choosen number was five"
+;;
+*)
+echo"this number is not correct"
+;;
+esac
+exit
+
+
+
+
case est un opérateur plus complexe a utiliser a bon escient, et sert a
+faire des ifs multiples sans avoir a taper des dizaines de lignes de
+code.
+(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre
+que le code vérifie chacune des conditions : le 1) est validé si la
+valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc..
+le *) désigne toutes les valeurs, et est donc validé si aucune autre
+valeur n'a précédemment acceptée.
+
Quelques notions manquent ici:
+- les nombres aléatoires sont générés par un appel a la variable
+\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a
+16 bits donc). il est possible de faire des invocations a des nombres
+aléatoires plus grands, mais les méthodes permettant de faire cela sont
+plus complexes, et je ne les aborderai donc pas ici.
+- comme vous avez pu le constater, les variables sont désignées en tant
+que telles par l'utilisation d'un symbole \$ au début de leur nom.
+Ainsi, echo number renverra "number", tandis que echo \$number renverra
+le résultat de la variable \$number.
+être utilisées dans un programme bash.
+- comme vous avez pu le constater, les commandes doivent tenir en
+théorie en une ligne. Cependant, le caractère \ permet de retourner a
+la ligne en faisant considérer a bash qu'il s'agit de la même ligne.
+
Globalement, il faut admettre que bash n'a pas vocation a être un
+langage de programmation extrêmement développé. Sans framework
+graphique, avec peu de manières d'utiliser de grandes variables, ou
+encore une gestion de la mémoire risible, bash n'a rien d'un langage de
+développement professionnel.
+Cependant, le simple fait qu'il soit considéré comme un langage de
+programmation a part entière font de lui un langage de script d'une
+puissance incontestable, et sa simplicité et sa grande popularité font
+de lui un langage de choix pour apprendre la programmation simplement et
+sans trop se prendre la tête.
+
J'espère que cet article aura été utile a certain-e-s, et je vous
+souhaite bonne chance dans votre découverte de la programmation (n'allez
+pas voir ceux qui font de l'orienté objet, c'est des méchants :3)
Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques
+années (plus ou moins, parce que j'ai toujours un Windows en dual boot,
+principalement pour les jeux (possiblement plus pour longtemps, avec
+l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou
+moins bien mon système. Or il y a plusieurs choses a savoir sur les
+systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est
+le système de couches.
+
Un système d'exploitation (de type UNIX, \<troll>enfin un vrai système quoi.
+\</troll>) incorpore plusieurs systèmes de couches.
+
Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique,
+c'est a dire que tous les composants sont intégrés au kernel. Ce qui
+signifie que rien ne peut être ajouté au noyau sans recompiler celui ci.
+Or, quand on sait que le noyau comprend entre autres les drivers du
+matériel et des systèmes de fichier, cela peut poser des problèmes quand
+a la taille du kernel et a la licence libre de ce dernier.
+
Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui
+signifie que des modules peuvent être chargé a tout moment en cours
+d’exécution, ce qui permet l'utilisation de nouveaux systèmes de
+fichiers a chaud, ou l'insertion de matériel et l'installation de
+drivers sans interrompre l’exécution du système (Windows utilise un
+système de fausse installation de drivers pour le matériel externe, et
+un système de pré-installation des drivers pour les périphériques dits
+"plug and play")
+
Après le noyau intervient le système. Or, au tous premiers instants du
+boot, les systèmes GNU/Linux utilisent un système permettant de limiter
+l'utilisation de ressources systèmes si elles ne sont pas nécessaires,
+et incorpore ainsi un système dit de "runlevels"
+
Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce
+runlevel permet de tester le bon démarrage du système sans avoir a
+effectuer de manipulation pour le ré-éteindre
+
Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté
+étant donné que ce runlevel donne accès a un système en étant
+automatiquement loggé en tant que root, avec tous les autres
+utilisateurs désactivés, de même que tous les systèmes de réseaux
+
Le runlevel 2 est appelé mode multi user, et vous mets en face d'un
+système classique. en ligne de commande, mais avec tous les systèmes de
+réseau désactivés.
+
Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux
+activés.
+
Le runlevel 4 n'est pas officiellement défini, et est censé être
+activable en fonction des besoins de l'utilisateur. Sur la plupart des
+distributions grand public, ce runlevel est lié au...
+
Runlevel 5! Multi-user, networking, with working GUI! c'est le système
+tel que vous le connaissez, avec l'interface graphique et le système de
+login graphique.
+
Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine
+quand il devient le runlevel courant.
+
(Il est a noter que Debian, et donc toutes les distribs qui en sont
+dérivées, ne font pas de distinction entre les differents runlevels du 2
+au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login
+et une interface graphique, et un mode réseau fonctionnel, bref avec des
+fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)
+
Il est possible de changer de runlevel grâce a la commande runlevel
+(oui, c'est évident...)
+
Les systèmes Linux utilisent aussi un système dit de SandBox , qui en
+informatique est un système permettant d'isoler les processus les uns
+des autres. Ainsi, la pile réseau, qui est le système auquel les
+différents processus envoient les différents paquets qui doivent sortir
+de la machine , et qui redistribue ces paquets, est isolée du reste du
+système, en cela qu'aucun des autres processus ne peuvent modifier cette
+pile hors du runlevel 1 ou 2.
+
De la même façon, le navigateur chrom/ium fait fonctionner tous les
+onglets, ainsi que toutes les extensions, dans des processus différents.
+Certaines distributions linux implémentent un système de cette sorte
+pour toutes les applications, ou seulement pour certaines. ainsi Chakra
+Linux a un système d'installation d'applications dans des disques
+virtuels, ce qui permet une sécurité totale du processus.
+
Voila, j'espère vous en avoir appris un peu sur le fonctionnement des
+différentes couches de linux, et j'espère que cet article vous poussera
+a tester un peu votre système et a vous amuser avec les différents
+runlevels
Salut!
+Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire
+récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé
+pas mal de temps assez occupé.
+
Enfin, après un certain temps a farfouiller au millieu des connecteurs
+SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques
+durs, je suis de retour pour un court article.
+Du coup, je m'étais dit que j'allais reprendre sur le thème de
+l'informatique expliquée au grand public, en tentant d'aller un peu plus
+loin que la dernière fois sur le thème de la programmation
+Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur.
+Si a peu près tout le monde sait que "les ordinateurs, ils ne
+comprennent que les 1 et les 0!", peu de gens savent comment cela
+fonctionne en détail.
+
Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà
+des notions de base en informatique. Ainsi, vous savez surement que les
+ordinateurs fonctionnent avec des programmes, qui sont composés de
+code.
+Ainsi, il faut comprendre que le code (source) est "compilé" en un
+fichier "binaire". Un fichier binaire est un fichier comprenant les
+instructions telles qu’exécutées par le processeur, et donc absolument
+illisible pour un humain.
+
La compilation est le processus qui transforme le code source en
+binaire executable. Les binaires ont, sous Windows, l'extension .exe,
+tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension
+particulière.
+Ceci étant dit, il faut comprendre que certains langages sont plus
+proches que d'autres du langage processeur, les langages les plus
+proches sont dits de "bas niveau". Les langages les plus éloignés sont
+donc dits de haut niveau.
+
Par exemple, l'assembleur est l'un des languages de plus bas niveau,
+tandis que python par exemple est un langage de plus haut niveau. Les
+langages de haut niveau sont souvent bien plus simples a comprendre et a
+apprendre que les langages de bas niveau
+
Ainsi, en C, un langage de niveau relativement bas, pour afficher
+"hello world" sur l'écran, le code nécessaire est :
et n'a pas besoin d'être compilé , puisqu'il peut être intepreté
+directement.
+
Python utilise en effet un système similaire a Java en ayant un
+interpréteur dit "runtime" ou "temps réel", qui interprète le programme
+sans le compiler. Java utilise un système légèrement différent, puisque
+le code a besoin d'être compilé, mais est interpreté par un interpréteur
+et non par le processeur.
+
Cette méthode permet le fameux "code once, run everywhere", ce qui
+signifie que le même code est exécutable sur quasiment tous les systèmes
+d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est
+disponible.)
+
Voila, je vous laisse sur le fonctionnement de Java et de Python, et je
+vais me coucher.
+A bientôt!
GNU/Linux est un vaste et extraordinaire territoire technologique, mais
+je ne vais pas m'attarder ici sur les aspects profondément techniques de
+ce territoire pour faire plutôt une sorte d'introduction a ce qu'est
+vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de
+connaissances en informatique.
+
GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un
+Système d'Exploitation. Un système d'exploitation est, pour simplifier,
+un ensemble d'outils informatiques qui vous permettent d'utiliser votre
+ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation
+de système d'exploitation (Operating System en anglais) est OS. Les 4
+principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et
+Solaris. Les trois derniers sont issus d'un autre système, plus ancien,
+nommé UNIX.
+
De ce fait, on pourrait penser que Linux remplace complètement Windows
+une fois installé, et comprend une interface graphique, et toutes sortes
+d'utilitaires permettant a l'utilisateur d'utiliser le système (sous
+Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer.
+Pour l'interface graphique, pensez a... Pensez que votre système affiche
+autre chose que des lignes de commande.) Or non, une fois installé,
+Linux en lui même ne vous afficherait aucune interface graphique, et
+s'il est effectivement livré avec des utilitaires, ils ne sont que des
+programmes en ligne de commande. Autant les utilisateurs avancés sauront
+s'en servir, et pourront argumenter que c'est plus efficace ou plus
+rapide, autant les utilisateurs basiques préfèrent une interface
+graphique. Alors comment en obtenir une?
+
Ici, il convient de faire une précision importante. Si il n'existe
+qu'une seule version de Windows, ou de Mac OS, il existe en fait
+plusieurs centaines de "versions" différentes de Linux. Appelées
+distributions, ces dernière sont développées par des groupes
+complètement séparés, et se basent sur le fait que Linux soit
+entièrement placé sous licence libre (ce qui leur permet de l'utiliser a
+leur guise, a condition que leur travail soit lui aussi placé sous
+licence libre). De ce fait, de nombreuses distributions existent et se
+développent en parallèle. On peut ainsi citer Debian, qui est l'une
+des distributions les plus importantes, ou encore Ubuntu, qui est
+l'une des plus connues et des plus simples a utiliser.
+
Ainsi, ces distributions intègrent une interface graphique. Cependant,
+grâce a la liberté dont bénéficient les développeurs sous Linux, il
+existe de nombreuses interfaces graphiques différentes : Unity, la
+nouvelle interface d'Ubuntu; GNOME , une interface qui vise a la
+simplicité; ou encore KDE, une interface utilisateur ressemblant a
+Windows 7.
+
Ainsi, le choix astronomique de distributions Linux a bien un sens :
+chacune d'entre elle intègre des outils différents. Par exemple, Debian
+intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend
+particulièrement stable. Ubuntu intègre Unity, ce qui en fait une
+distribution particulièrement intuitive. Linux Mint intègre Cinnamon,
+qui est une version dérivée de GNOME 3, ce qui permet encore une autre
+expérience. Et Arch Linux n'intègre pas d'interface graphique du tout,
+ce qui permet a l'utilisateur de choisir entre les multiples interfaces
+existantes.
+
Ce qu'il est important de retenir de cela, c'est que Linux est un OS
+complètement libre, ce qui signifie que n'importe qui peut modifier et
+utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi,
+Linux est un OS qui est véritablement créé par des passionnés, pour tous
+et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué
+a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus.
+Cependant, Linux donne la possibilité a l'utilisateur de le rendre
+affreusement complexe, mais aussi de le rendre adapté a ses besoins,
+quels que soient ceux ci. Et c'est la que réside l'incroyable puissance
+de ce Système d'Exploitation. Il est extraordinairement adaptable.
+
N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas
+technophiles. Ils pourraient adorer, et peut être même le devenir :)
Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur
+Twitter, mais aussi sur IRC (Je traîne pas mal sur
+irc.freenode.net/##nolife et #debian-fr)
+
J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je
+fais partie de ce genre de personne qui sont capables d'investir tout
+leur temps et leur énergie a s’intéresser a un sujet en particulier, et
+qui ne peuvent pas vivre sans leurs passions, avec une petite différence
+cependant, qui est que je m’intéresse a plusieurs choses :
+l'informatique, qui est un champ tellement large qu'on peut passer une
+vie a apprendre des choses dessus, et plus particulièrement à
+l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres
+{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les
+trolls seront a partir de maintenant indiqués avec le tag [tr]] du
+libre, je préfère utiliser de l'open-source si c'est possible},
+programmation en C, python et java, etc...) , mais aussi a
+l’électronique.
+
Dans un tout autre registre, je m’intéresse aussi
+beaucoup aux différents aspects du féminisme et des égalités sexuelles
+(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) ,
+et a la culture dite "geek" en général.
+
Je tenterai de poster ici le plus souvent possible, mais j'ai de gros
+problèmes en terme de régularité de post, donc ne vous inquiétez pas si
+vous ne voyez rien pendant deux semaines.
Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y
+a peu...), le nom que donnait Tolkien au dialecte principal parlé par
+les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des
+Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte
+avant de commencer cet article que l'une des œuvres les plus
+impressionnantes de Tolkien, si ce n'est la plus grande, est
+l'impressionnant travail linguistique passé sur les différentes langues
+présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya,
+la langue des nains, qui est appelé le khazalide, etc.
+
En effet, a contrario des "langues" développées dans d'autres œuvres littéraires
+telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot
+de français (ou d'anglais) a un mot de sa "langue", les langues de
+l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des
+racines logiques, des systèmes de grammaire et de conjugaison propres,
+une logique inhérente dans la prononciation ou l'orthographe, et ainsi
+de suite.
+
Un véritable rêve de linguiste donc, puisque ces langues sont
+pratiquement entièrement documentées par Tolkien lui même (voir
+l'appendice E du SdA, particulièrement instructif a ce sujet.)
+
J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster
+ici des résumés des cours que je suis ( disponibles ici , une
+traduction en français est disponible la en pdf ), et des infos ici
+toutes les deux semaines.
+
Si ce sujet vous intéresse, le compte twitter @Quenya101 poste
+régulièrement des informations sur le sujet, et pour plus d'infos sur le
+sujet, vous pouvez en trouver par ici.
+
Et en tant que première leçon, vous pouvez apprendre que ce mot que vous
+avez prononcé comme le Kenya tout le long de cet article se prononce en
+fait [Kwenïa], ou bien Qwenya!
Disclaimer: Ce billet est écrit après le visionnage de la conférence de Moxie
+Marlinspike suivante: More Tricks for Defeating SSL,
+présentée a la DefCon 17 (en 2011), et la lecture du billet suivant:
+A Critique of Lavabit,
+ce qui peut avoir l'effet de rendre légèrement parano. Si vous considérez que
+c'est le cas ici, veuillez ne pas tenir compte de ce billet (et vous pouvez dès
+a présent dire coucou aux différentes personnes qui écoutent votre connection)
+
Si vous venez ici souvent (vous devriez), et que vous utilisez SSL pour vous
+connecter a ce site (vous devriez, vraiment, dans ce cas), vous avez peut être
+remarqué quelque chose récemment : il se trouve que le certificat qui permet de
+desservir ce site a changé.
+
Cela fait suite aux évènements évoqués dans le Disclaimer, mais aussi a des
+doigts sortis d'un endroit particulier du corps de l'admin/auteur de ce "blog",
+qui a pris enfin les 5 minutes nécessaires a la compréhension superficielle
+du fonctionnement de SSL, et les 10 nécessaires a la mise en place d'un système
+fonctionnel utilisant cette compréhension récemment acquise.
+
Bref, le certificat a changé. Mais de quelle façon, vous demandez vous peut
+être (ou pas, mais bon, je vais expliquer de toute façon). Et bien c'est très
+simple : il existait auparavant un certificat pour wxcafe.net, un pour
+paste.wxcafe.net, un pour mail.wxcafe.net, etc... Bref, un certificat
+différent pour chaque sous-domaine.
+
Il s'avère que c'est a la fois très peu pratique a utiliser (les utilisateurs
+doivent ajouter chaque certificat a leur navigateur séparément, chaque
+changement de sous-domaine conduit a un message d'erreur, etc) et pas plus
+sécurisé que d'avoir un seul certificat wildcard. J'ai donc généré un certificat
+pour *.wxcafe.net hier, et il sera dorénavant utilisé pour tous les
+sous-domaine de wxcafe.net; et un certificat pour wxcafe.net, qui ne matche
+pas *.wxcafe.net, et qui sera donc utilisé... bah pour wxcafe.net.
+
Il serait préférable de faire des redirections automatiques des adresses http
+vers les adresses https, cependant, étant donné que le certificat est
+self-signed, il me semble préférable que l'arrivée sur le site ne commence pas
+par une page firefox disant "Something's Wrong!", et ces redirections ne seront
+donc pas mises en place.
+
De plus, après la lecture de l'article de blog sur Lavabit dont le lien est plus
+haut, il semble intéressant (et assez important) de faire en sorte que le
+serveur utilise en priorité (et si possible, uniquement) des ciphers supportant
+PFS, soit EDH et EECDH (Ephemeral Diffie-Helmann et la version Elliptic Curves
+de ce même algorithme). Cela permet de faire en sorte que toutes les
+communications avec ce serveur soient future-proof, c'est a dire que, même si
+quelqu'un récupérait la clé privée, elle ne serait pas utile pour déchiffrer les
+communications passées.
+
Bon, maintenant que les explications basiques sont faites, voyons
+l'implémentation :
+Pour générer la clé, tout d'abord, il convient d'utiliser les commandes
+suivantes:
+
sudoopensslgenrsa-outexample.key4096
+# nous utilisons ici une clé de 4096 bits, la taille est laissée a votre appréciation
+sudoopensslreq-new-keyexample.key-outexample.csr
+# OpenSSL va ici vous demander de nombreuses informations, "Common Name" devant contenir le FQDN
+sudoopensslX509-req-days1095-inexample.csr-signkeyexample.key-outexample.crt
+# enfin, nous générons la clé, d'une durée de vie de 3 ans
+
+
+
+
Bien entendu, si vous voulez utiliser une clé wildcard, il vous faut préciser
+*.example.com comme common name.
+Une fois la clé générée, il faut dire aux différents services de l'utiliser, et
+de n'utiliser que des ciphers PFS. La méthode dépend donc du service.
+Je vais lister ici les methodes pour quelques services que j'utilise :
# tout d'abord, lancez la commande suivante :
+sudoopenssldhparam-out/etc/prosody/certs/dh-2048.pem2048
+# ensuite, pour chaque VirtualHost dans /etc/prosody/prosody.conf :
+ssl={
+ dhparam="/etc/prosody/certs/dh-2048.pem";
+ key="/etc/certs/example.com.key";
+ certificate="/etc/certs/example.com.crt";
+}
+# la cipher suite de prosody utilise par défaut EDH et EECDH
+
Voila. Pour d'autres protocoles/services, je vous invite a RTFM^W vous reporter
+au manuel approprié.
+
Cela étant dit, je conseille a tout le monde d'aller voir la conférence dans le
+disclaimer, et tant qu'a faire la conférence du même hacker SSL and the future
+of Authenticity qui parle de son
+implémentation d'une technologie "remplaçant" le système de CAs qui existe
+actuellement.
Comme vous avez pu le remarquer, ce blog a "un peu" changé récemment.
+
Du coup, expliquons. J'ai récemment monté serverporn, et ai par la même
+occasion découvert pelican. J'ai tout de suite accroché a ce générateur de
+site statique en python, du fait de son efficacité, de sa facilité d'utilisation
+et de sa grande customisation. En gros, pelican est un logiciel qui prend des
+fichiers markdown ou reStructuredText, les passe a la moulinette d'un "thème"
+constitué de templates pour les fichiers html et l'organisation du projet et
+d'une partie "statique" contenant le css, et les autres fichiers nécessaires au
+projet, et en fait des pages html.
Sachant que les fichiers .html sont en réalité des fichiers suivant la syntaxe
+django, et utilisent des variables particulières telles {{ article.content }},
+par exemple. La syntaxe complète est très bien documentée dans la doc de
+pelican.
+
L'un des grands avantages de pelican est aussi la facilité qu'il offre quand a
+la mise a jour du blog.
+En effet, il offre un système de Makefiles permettant, grâce a de nombreuses
+cibles de compilation, de régénérer le site entier, de ne générer que les
+fichiers modifiés depuis la dernière génération, de générer uniquement les
+fichiers n'existant pas la dernière fois, etc...
+La gestion du projet en devient donc très simple, puisque après avoir écrit un
+article, il suffit de faire un make html pour mettre a jour le blog.
+
De plus, le système de wordpress commençait a ne plus me convenir, du fait du
+manque de customisation, du fait que ça soit du PHP (beurk), etc. La, avec
+pelican, je contrôle bien plus ce qui est mis sur le serveur (puisque c'est moi
+qui ait modifié les templates et le css), c'est lisible (puisque c'est du
+python, par opposition au PHP...), et c'est plus "efficace". Le markdown est
+très pratique, je peux utiliser mon éditeur de texte de prédilection pour faire
+les articles, je n'ai pas besoin d'un accès continu au net, bref, c'est plus
+efficace.
+
En ce qui concerne les points négatifs :
+
+
+
Perte des commentaires:
+ Je vous propose de vous référer a l'article de Gordontesos ici quand a
+ mon avis sur ce sujet.
+
+
+
Perte du bouton flattr:
+ Il va bientôt être remis, c'est juste un manque de temps de ma part, mais vu
+ que toutes les pages passent par les mêmes templates, c'est assez facile a
+ faire.
+
+
+
Perte du spam:
+ Pourquoi c'est dans les points négatifs, ca?
+
+
+
Temps d'adaptation et d'appréhension du système:
+ Oui, pendant encore un certain temps, il y aura des glitchs plus ou moins
+ réguliers sur le blog, c'est parce que j'apprend a me servir de ce système
+ et que j'apprend du css et du html. Ca arrive, ca passera, mais dans tous
+ les cas ca me permet d'apprendre plein de choses, donc je mets plutôt ca
+ dans la catëgorie positive.
+
+
+
Voila, c'est mon retour d'expérience sur pelican. A plus.
Juste une petite note pour annoncer le prochain article, consacré a la
+fabrication d'une PirateBox basée sur un Raspberry Pi. Voila, a bientôt
+sur le blog!
Bonsoir! Un petit post pour faire un peu le point sur ce blog.
+Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais
+que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y
+avoir un tantinet réfléchi, ceci est du a deux points principaux :
+
+
+
Tout d'abord, le manque d'inspiration, tout simplement. C'est assez
+compliqué de trouver des sujets intéressants liés a l'informatique, et
+qui méritent un article. Je vous invite d'ailleurs a me suggérer des
+sujets via les commentaires ou twitter (@Wxcafe)
+
+
+
Ensuite, le délai de 8 jours est trop court pour me permettre de faire
+les recherches nécessaires, tout en manageant mes cours et mon temps
+libre.
+
+
+
A cause de cela, j'ai pris la décision de changer le rythme de parution
+des articles a un *minimum* d'un post tous les 10 jours. Bien entendu,
+si j'ai de l'inspiration en trop, plus de posts sont envisageables.
+
Voila. A part ca, je tiens a vous remercier de me lire (c'est assez
+étonnant de voir ca...), et je précise que je vais ajouter une page
+About Me, qui bien entendu rassemblera des informations sur moi, ma vie,
+mon oeuvre :P
+
Ceci dit, je vais bosser un peu sur le prochain article.
Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur
+Twitter, mais aussi sur IRC (Je traîne pas mal sur
+irc.freenode.net/##nolife et #debian-fr)
+
J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je
+fais partie de ce genre de personne qui sont capables d'investir tout
+leur temps et leur énergie a s’intéresser a un sujet en particulier, et
+qui ne peuvent pas vivre sans leurs passions, avec une petite différence
+cependant, qui est que je m’intéresse a plusieurs choses :
+l'informatique, qui est un champ tellement large qu'on peut passer une
+vie a apprendre des choses dessus, et plus particulièrement à
+l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres
+{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les
+trolls seront a partir de maintenant indiqués avec le tag [tr]] du
+libre, je préfère utiliser de l'open-source si c'est possible},
+programmation en C, python et java, etc...) , mais aussi a
+l’électronique.
+
Dans un tout autre registre, je m’intéresse aussi
+beaucoup aux différents aspects du féminisme et des égalités sexuelles
+(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) ,
+et a la culture dite "geek" en général.
+
Je tenterai de poster ici le plus souvent possible, mais j'ai de gros
+problèmes en terme de régularité de post, donc ne vous inquiétez pas si
+vous ne voyez rien pendant deux semaines.
L’interpréteur de commandes bash (Bourne Again SHell)
+est possiblement le shell le plus connu, notamment grâce a son
+intégration en tant que shell par défaut dans les distributions Linux
+les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva -
+Mageia, etc...).
+
Cependant, il n'est souvent connu qu'en tant qu’interpréteur de
+commande. Alors qu'en réalité, le bash est un langage de programmation
+(presque) complet! Ainsi, il intègre les structures de contrôle
+habituelles ( pour mémoire, les structures de contrôle comprennent les
+conditions (les ifs), les boucles (les while), et les choix (les case),
+entre autres.), et est donc ce que l'on pourrait appeler un langage de
+script, interprété, de la même façon que python, a la difference près
+qu'il contient un prompt (un système d'entrée de commande interactif)
+bien plus complet et développé que python.
+
Cependant, les programmes en bash ne sont executables que dans un
+environnement de type UNIX, et donc pas sous Windows (cygwin
+(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous
+windows. Il faut malgré tout convenir que cet environnement est bien
+plus compliqué a manipuler, et globalement ne permet pas d'acceder a des
+portages de qualité satisfaisante.)
+
Ainsi, il est possible de créer des fichiers .sh, contenant des
+instructions bash mises a la suite (de la même façon qu'un script BATCH
+Windows .bat), et faisant appel autant aux commandes internes de bash,
+aussi bien que les commandes externes mises en place par les programmes
+installés sur le système, exactement comme dans une invite de commande.
+Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit
+panda roux directement dans la boite magique, tandis qu'un if
+[condition] suivi d'un then (quelque chose) lancera le fameux quelque
+chose suscité si la condition est vérifiée. Un peu comme en C, quoi.
+
De cette façon, et avec quelques informations et connaissances, il est
+facile de comprendre le fonctionnement de la programmation en bash.
+Quelques exemples commentés:
+
1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
#!/bin/bash
+# La ligne du dessus est très importante, c'est elle qui dit a bash quel doit être
+# l'interpreteur des commandes écrites dans ce script. Ici, on dit a bash d'interpréter
+# lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire
+# executer du python, par exemple, en mettant #!/usr/bin/python a la place.
+echo"this is a test of bash as a simple script manager"# echo est une commande d'affichage de message.
+echo"what's your name, user?"
+read your_name # la commande read permet de demander a l'utilisateur de donner une
+# information, stockée dans la variable en paramètre.
+echo$your_name"is your name"# echo permet aussi d'afficher la valeur de variables.
+# Ici, on renvoie la variable remplie précédemment, suivie d'un message.
+exit# cet appel a exit n'est pas obligatoire, mais donne un aspect plus
+# propre au code. Il ne quittera pas la session de terminal, cependant.
+
+
+
+
Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite
+d'être clair quand aux capacités et a la simplicité du bash en tant que
+language de programmation. Alors en effet, nous n'avons ici absolument
+pas utilisé les capacités de bash en lui même, et n'avons fait que le
+renvoyer a des programmes externes (sauf read, il est vrai). Voyons
+maintenant la syntaxe de bash quand il s'agit d'utiliser les structures
+de contrôle:
+
1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
#!/bin/bash
+echo"welcome to this second bash program. would you please kindly enter the name of the machine you're running this on?"
+read host_name
+if[$host_name==$HOSTNAME]## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système.
+then echo"you told the truth!"
+fi## le fi est la commande fermant le if, tout comme le EndIf en basic. C'est un peu vieillot, mais important en bash.
+if[$host_name !=$HOSTNAME]## l'opérateur != est l'inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes.
+then echo"you lied!"
+fi
+exit
+
+
+
+
Voila un petit programme permettant d'apprendre la syntaxe du if en
+bash. comme vous pouvez le voir, le language est plutôt lite, et la
+structure if n'est pas très difficile a prendre en main.
+
Passons maintenant au while:
+
1
+2
+3
+4
+5
+6
+7
#!/bin/bash
+echo"what is your name?"
+read name
+while[ 1 < 10 ]## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.
+do echo"i love"$name
+done
+exit
+
+
+
+
Ce petit programme permet d'observer les bases de while (qui est la
+boucle de base en bash).
#!/bin/bash
+echo"please enter a number between one and five"
+read number
+case$number in
+1)
+echo"the choosen number was one"
+;;
+2)
+echo"the choosen number was two"
+;;
+3)
+echo"the choosen number was three"
+;;
+4)
+echo"the choosen number was four"
+;;
+5)
+echo"the choosen number was five"
+;;
+*)
+echo"this number is not correct"
+;;
+esac
+exit
+
+
+
+
case est un opérateur plus complexe a utiliser a bon escient, et sert a
+faire des ifs multiples sans avoir a taper des dizaines de lignes de
+code.
+(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre
+que le code vérifie chacune des conditions : le 1) est validé si la
+valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc..
+le *) désigne toutes les valeurs, et est donc validé si aucune autre
+valeur n'a précédemment acceptée.
+
Quelques notions manquent ici:
+- les nombres aléatoires sont générés par un appel a la variable
+\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a
+16 bits donc). il est possible de faire des invocations a des nombres
+aléatoires plus grands, mais les méthodes permettant de faire cela sont
+plus complexes, et je ne les aborderai donc pas ici.
+- comme vous avez pu le constater, les variables sont désignées en tant
+que telles par l'utilisation d'un symbole \$ au début de leur nom.
+Ainsi, echo number renverra "number", tandis que echo \$number renverra
+le résultat de la variable \$number.
+être utilisées dans un programme bash.
+- comme vous avez pu le constater, les commandes doivent tenir en
+théorie en une ligne. Cependant, le caractère \ permet de retourner a
+la ligne en faisant considérer a bash qu'il s'agit de la même ligne.
+
Globalement, il faut admettre que bash n'a pas vocation a être un
+langage de programmation extrêmement développé. Sans framework
+graphique, avec peu de manières d'utiliser de grandes variables, ou
+encore une gestion de la mémoire risible, bash n'a rien d'un langage de
+développement professionnel.
+Cependant, le simple fait qu'il soit considéré comme un langage de
+programmation a part entière font de lui un langage de script d'une
+puissance incontestable, et sa simplicité et sa grande popularité font
+de lui un langage de choix pour apprendre la programmation simplement et
+sans trop se prendre la tête.
+
J'espère que cet article aura été utile a certain-e-s, et je vous
+souhaite bonne chance dans votre découverte de la programmation (n'allez
+pas voir ceux qui font de l'orienté objet, c'est des méchants :3)
Le chiffrement SSL pour les services en ligne est un problème relativement
+récent, par rapport a l’histoire d’Internet. Sa mise en place pose
+problème : les protocoles existants ne s’accommodent qu’assez mal de recevoir
+soudainement un flot de données chiffrées, mais développer de nouveaux
+protocoles est complexe et n’apporte rien d’intéressant. Pour palier a ce
+problème, deux solutions sont apparues.
+
Le première consiste à faire écouter les services sur un
+autre port, dans un tunnel SSL. De cette façon, le service existant écoute
+normalement, mais il ne répond pas directement aux requêtes. A la place, un
+tunnel SSL est mis en place, et les requêtes et les réponses passent dans le
+tunnel (ou elles apparaissent donc chiffrées pour l’extérieur). Cela permet de
+proposer un service chiffré en modifiant de façon minimale le programme, au prix
+de devoir aussi changer tous les clients, et de devoir les orienter sur un autre
+port.
+
L’autre approche qui a été utilisée est une approche d’upgrade. La
+communication commence en mode non chiffré, puis le client demande l’upgrade de
+la connexion vers le mode chiffré s’il le supporte, les deux machines
+machines font un handshake SSL et la communication continue a travers le
+tunnel SSL. Le service peut continuer a écouter sur son port habituel, et seuls
+les clients capables de passer en SSL le feront, ce qui permet de faire la “mise
+a jour” en douceur.
+
Il est souvent demandé quelle est la meilleure méthode pour mettre en place un
+service – laisser un port pour le SSL et un pour le trafic non chiffré, ou bien
+un seul, avec STARTTLS, qui upgrade les connexions si nécessaire.
+La réponse est que STARTTLS est plus interessant, pour plusieurs raisons. Tout
+d’abord, il permet de n’utiliser qu’un seul port : ça permet de simplifier la
+configuration du firewall. En plus de ça, il permet aux clients “anciens” (ceux
+qui ne supportent pas SSL, donc ceux qui devraient être changés) de toujours se
+connecter, même si cela signifie que leurs informations seront transmises en
+clair. Surtout, il permet d’éviter aux utilisateurs d’avoir a configurer leurs
+clients. Si le client supporte le chiffrement, il l’activera de lui même s’il
+voit qu’il est disponible.
+Bref, mettez en place du STARTTLS, et pas du SSL. C’est mieux pour la sécurité
+de tout le monde.
Un système de fichiers. Vous en avez surement déjà entendu parlé si vous
+avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous
+connaissez surement NTFS, EXT4, ou encore FAT32.
+
Ces différents noms désignent en effet des systèmes de fichiers. Mais
+qu'est-ce qu'un système de fichiers?
+
Pour comprendre cela, il faut déjà savoir ce qu'est exactement un
+fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la
+plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio
+(kibioctet), en fonction du système de fichier utilisé.), qui est
+donc composé de bits, interprétés différemment en fonction du type de
+fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il
+n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent,
+ou il commence ni où il s'arrête (je schématise un peu, mais c'est
+l'idée).
+
Ainsi, le système de fichier donne un cadre et un standard à
+l'arborescence des fichiers. Par exemple, le système de fichier ext4
+utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de
+disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio
+et mesurer la taille des fichiers en blocs de cette façon. Les systèmes
+de fichiers nécessitent l'inclusion de drivers dans le noyau pour
+pouvoir être pris en compte.
+
Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs,
+reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu
+près tout type de partition récente.
+
Il convient de bien faire la différence entre le système de fichier et
+l'arborescence des fichiers. Si l'arborescence des fichiers est en fait
+une entité virtuelle englobant la racine / et tous les fichiers et
+dossiers contenus dedans, le système de fichier permet a votre système
+GNU/Linux de distinguer les différents fichiers composants cette
+arborescence.
+
Détaillons maintenant les types de fichiers les plus répandus:
+
+
+
FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table,
+ soit la définition d'un système de fichier), remplissent leur rôle le
+ plus simplement possible. Ne permettant (historiquement) que des noms de
+ 8 caractères (plus extension de trois caractères), ni chiffrement, ni
+ système de distinction d'utilisateurs (DOS étant un système
+ mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32,
+ utlisants respectivement des blocs de 16 et 32 Kio.
+
+
+
NTFS :. Le NTFS (pour New Technology File System, rapport a Windows
+ NT) est un système de fichier qui est apparu avec Windows XP, et qui
+ était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a
+ FAT différentes capacités dont le chiffrement, les liens symboliques, la
+ compression et les quotas pour les volumes, permettant de limiter la
+ taille maximum occupée dans une partition.
+
+
+
ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012.
+ Ne différant pas énormément de NTFS, je le mentionne principalement
+ parce qu'il est prévu qu'il soit le défaut pour Windows 8.
+ Il apporte principalement la redondance, c'est a dire que chaque
+ fichier possède une somme de contrôle en 64 bits stockée dans un fichier
+ séparé pour éviter les corruption de disque.
+
+
+
Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers
+ les plus utilisés sous linux pour le grand public. (Je traiterai ici
+ d'ext4, puisque c'est le plus récent.) Il dispose de toutes les
+ fonctions que l'on peut attendre d'un système de fichiers moderne, ni
+ plus ni moins. Ainsi, ext4 est un système de fichiers journalisé,
+ acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite
+ "par extent", ce qui signifie que la création d'un fichier réserve
+ automatiquement les zones contiguës de façon a réduire la fragmentation.
+
+
+
ReiserFS : ce système de fichiers, créé par le (légèrement mégalo)
+ programmeur Hans Reiser, est a retenir pour avoir été le premier système
+ de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des
+ 4 milliards. Le but de ce système est de créer un système polyvalent, a
+ la fois système de fichiers et base de donnée (de part sa grande
+ capacité en terme de nombre de fichiers et de l'utilisation d'un
+ journal.)
+
+
+
Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi
+ l'allocation par extent, mais possède de plus un système de
+ sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers
+ montées en même temps (système pratique et utile pour faire des
+ snapshots de systèmes.). Il permet aussi de redimensionner a chaud la
+ taille des partitions, en les agrandissant ou en les rétrécissant, est
+ compatible avec LVM, a un système de checking intégré (btrfsck), et
+ utilise un algorithme de compression appelé LZ4, qui accélère les accès
+ aux fichiers compressés d'environ 30% par rapport a LZO, le système
+ utilisé dans ext4.
+
+
+
HFS+ : le système de fichier présent sur tous les macs a des capacités
+ relativement standards, et ressemble énormément a l'ext3. Il supporte
+ cependant les liens directs vers les dossiers, fonction rare sur les
+ systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau
+ dans les années a venir
+
+
+
ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux
+ et *BSD, est, tel Btrfs, a la fois un système de fichier et un
+ remplaçant/compatible avec LVM, C'est un système de fichiers conçu
+ principalement pour les serveurs, et il intègre ainsi un système de
+ redondance des données pour éviter les corruptions, un mode RAID-Z
+ (apparenté au RAID5), des checks d’intégrité en continu, des snapshots,
+ etc...
+
+
+
Comme on a pu le voir, les systèmes de fichiers disponibles sont
+légions. Cependant, le plus adapté a Linux et a une utilisation grand
+public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier
+n'est pas aujourd'hui proposé par défaut sur les distributions les plus
+utilisées, au profit de l'ext4, qui commence a accuser son âge...
+
Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au
+fonctionnement du système, sont en fait de première importance, et ce
+choix ne devrait pas être laissé au hasard, et être mis a jour
+régulièrement (pour éviter les failles de sécurité...)
+
Bon courage, et bon choix pour votre prochain système.
Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques
+années (plus ou moins, parce que j'ai toujours un Windows en dual boot,
+principalement pour les jeux (possiblement plus pour longtemps, avec
+l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou
+moins bien mon système. Or il y a plusieurs choses a savoir sur les
+systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est
+le système de couches.
+
Un système d'exploitation (de type UNIX, \<troll>enfin un vrai système quoi.
+\</troll>) incorpore plusieurs systèmes de couches.
+
Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique,
+c'est a dire que tous les composants sont intégrés au kernel. Ce qui
+signifie que rien ne peut être ajouté au noyau sans recompiler celui ci.
+Or, quand on sait que le noyau comprend entre autres les drivers du
+matériel et des systèmes de fichier, cela peut poser des problèmes quand
+a la taille du kernel et a la licence libre de ce dernier.
+
Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui
+signifie que des modules peuvent être chargé a tout moment en cours
+d’exécution, ce qui permet l'utilisation de nouveaux systèmes de
+fichiers a chaud, ou l'insertion de matériel et l'installation de
+drivers sans interrompre l’exécution du système (Windows utilise un
+système de fausse installation de drivers pour le matériel externe, et
+un système de pré-installation des drivers pour les périphériques dits
+"plug and play")
+
Après le noyau intervient le système. Or, au tous premiers instants du
+boot, les systèmes GNU/Linux utilisent un système permettant de limiter
+l'utilisation de ressources systèmes si elles ne sont pas nécessaires,
+et incorpore ainsi un système dit de "runlevels"
+
Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce
+runlevel permet de tester le bon démarrage du système sans avoir a
+effectuer de manipulation pour le ré-éteindre
+
Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté
+étant donné que ce runlevel donne accès a un système en étant
+automatiquement loggé en tant que root, avec tous les autres
+utilisateurs désactivés, de même que tous les systèmes de réseaux
+
Le runlevel 2 est appelé mode multi user, et vous mets en face d'un
+système classique. en ligne de commande, mais avec tous les systèmes de
+réseau désactivés.
+
Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux
+activés.
+
Le runlevel 4 n'est pas officiellement défini, et est censé être
+activable en fonction des besoins de l'utilisateur. Sur la plupart des
+distributions grand public, ce runlevel est lié au...
+
Runlevel 5! Multi-user, networking, with working GUI! c'est le système
+tel que vous le connaissez, avec l'interface graphique et le système de
+login graphique.
+
Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine
+quand il devient le runlevel courant.
+
(Il est a noter que Debian, et donc toutes les distribs qui en sont
+dérivées, ne font pas de distinction entre les differents runlevels du 2
+au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login
+et une interface graphique, et un mode réseau fonctionnel, bref avec des
+fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)
+
Il est possible de changer de runlevel grâce a la commande runlevel
+(oui, c'est évident...)
+
Les systèmes Linux utilisent aussi un système dit de SandBox , qui en
+informatique est un système permettant d'isoler les processus les uns
+des autres. Ainsi, la pile réseau, qui est le système auquel les
+différents processus envoient les différents paquets qui doivent sortir
+de la machine , et qui redistribue ces paquets, est isolée du reste du
+système, en cela qu'aucun des autres processus ne peuvent modifier cette
+pile hors du runlevel 1 ou 2.
+
De la même façon, le navigateur chrom/ium fait fonctionner tous les
+onglets, ainsi que toutes les extensions, dans des processus différents.
+Certaines distributions linux implémentent un système de cette sorte
+pour toutes les applications, ou seulement pour certaines. ainsi Chakra
+Linux a un système d'installation d'applications dans des disques
+virtuels, ce qui permet une sécurité totale du processus.
+
Voila, j'espère vous en avoir appris un peu sur le fonctionnement des
+différentes couches de linux, et j'espère que cet article vous poussera
+a tester un peu votre système et a vous amuser avec les différents
+runlevels
Salut!
+Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire
+récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé
+pas mal de temps assez occupé.
+
Enfin, après un certain temps a farfouiller au millieu des connecteurs
+SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques
+durs, je suis de retour pour un court article.
+Du coup, je m'étais dit que j'allais reprendre sur le thème de
+l'informatique expliquée au grand public, en tentant d'aller un peu plus
+loin que la dernière fois sur le thème de la programmation
+Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur.
+Si a peu près tout le monde sait que "les ordinateurs, ils ne
+comprennent que les 1 et les 0!", peu de gens savent comment cela
+fonctionne en détail.
+
Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà
+des notions de base en informatique. Ainsi, vous savez surement que les
+ordinateurs fonctionnent avec des programmes, qui sont composés de
+code.
+Ainsi, il faut comprendre que le code (source) est "compilé" en un
+fichier "binaire". Un fichier binaire est un fichier comprenant les
+instructions telles qu’exécutées par le processeur, et donc absolument
+illisible pour un humain.
+
La compilation est le processus qui transforme le code source en
+binaire executable. Les binaires ont, sous Windows, l'extension .exe,
+tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension
+particulière.
+Ceci étant dit, il faut comprendre que certains langages sont plus
+proches que d'autres du langage processeur, les langages les plus
+proches sont dits de "bas niveau". Les langages les plus éloignés sont
+donc dits de haut niveau.
+
Par exemple, l'assembleur est l'un des languages de plus bas niveau,
+tandis que python par exemple est un langage de plus haut niveau. Les
+langages de haut niveau sont souvent bien plus simples a comprendre et a
+apprendre que les langages de bas niveau
+
Ainsi, en C, un langage de niveau relativement bas, pour afficher
+"hello world" sur l'écran, le code nécessaire est :
et n'a pas besoin d'être compilé , puisqu'il peut être intepreté
+directement.
+
Python utilise en effet un système similaire a Java en ayant un
+interpréteur dit "runtime" ou "temps réel", qui interprète le programme
+sans le compiler. Java utilise un système légèrement différent, puisque
+le code a besoin d'être compilé, mais est interpreté par un interpréteur
+et non par le processeur.
+
Cette méthode permet le fameux "code once, run everywhere", ce qui
+signifie que le même code est exécutable sur quasiment tous les systèmes
+d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est
+disponible.)
+
Voila, je vous laisse sur le fonctionnement de Java et de Python, et je
+vais me coucher.
+A bientôt!
GNU/Linux est un vaste et extraordinaire territoire technologique, mais
+je ne vais pas m'attarder ici sur les aspects profondément techniques de
+ce territoire pour faire plutôt une sorte d'introduction a ce qu'est
+vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de
+connaissances en informatique.
+
GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un
+Système d'Exploitation. Un système d'exploitation est, pour simplifier,
+un ensemble d'outils informatiques qui vous permettent d'utiliser votre
+ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation
+de système d'exploitation (Operating System en anglais) est OS. Les 4
+principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et
+Solaris. Les trois derniers sont issus d'un autre système, plus ancien,
+nommé UNIX.
+
De ce fait, on pourrait penser que Linux remplace complètement Windows
+une fois installé, et comprend une interface graphique, et toutes sortes
+d'utilitaires permettant a l'utilisateur d'utiliser le système (sous
+Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer.
+Pour l'interface graphique, pensez a... Pensez que votre système affiche
+autre chose que des lignes de commande.) Or non, une fois installé,
+Linux en lui même ne vous afficherait aucune interface graphique, et
+s'il est effectivement livré avec des utilitaires, ils ne sont que des
+programmes en ligne de commande. Autant les utilisateurs avancés sauront
+s'en servir, et pourront argumenter que c'est plus efficace ou plus
+rapide, autant les utilisateurs basiques préfèrent une interface
+graphique. Alors comment en obtenir une?
+
Ici, il convient de faire une précision importante. Si il n'existe
+qu'une seule version de Windows, ou de Mac OS, il existe en fait
+plusieurs centaines de "versions" différentes de Linux. Appelées
+distributions, ces dernière sont développées par des groupes
+complètement séparés, et se basent sur le fait que Linux soit
+entièrement placé sous licence libre (ce qui leur permet de l'utiliser a
+leur guise, a condition que leur travail soit lui aussi placé sous
+licence libre). De ce fait, de nombreuses distributions existent et se
+développent en parallèle. On peut ainsi citer Debian, qui est l'une
+des distributions les plus importantes, ou encore Ubuntu, qui est
+l'une des plus connues et des plus simples a utiliser.
+
Ainsi, ces distributions intègrent une interface graphique. Cependant,
+grâce a la liberté dont bénéficient les développeurs sous Linux, il
+existe de nombreuses interfaces graphiques différentes : Unity, la
+nouvelle interface d'Ubuntu; GNOME , une interface qui vise a la
+simplicité; ou encore KDE, une interface utilisateur ressemblant a
+Windows 7.
+
Ainsi, le choix astronomique de distributions Linux a bien un sens :
+chacune d'entre elle intègre des outils différents. Par exemple, Debian
+intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend
+particulièrement stable. Ubuntu intègre Unity, ce qui en fait une
+distribution particulièrement intuitive. Linux Mint intègre Cinnamon,
+qui est une version dérivée de GNOME 3, ce qui permet encore une autre
+expérience. Et Arch Linux n'intègre pas d'interface graphique du tout,
+ce qui permet a l'utilisateur de choisir entre les multiples interfaces
+existantes.
+
Ce qu'il est important de retenir de cela, c'est que Linux est un OS
+complètement libre, ce qui signifie que n'importe qui peut modifier et
+utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi,
+Linux est un OS qui est véritablement créé par des passionnés, pour tous
+et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué
+a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus.
+Cependant, Linux donne la possibilité a l'utilisateur de le rendre
+affreusement complexe, mais aussi de le rendre adapté a ses besoins,
+quels que soient ceux ci. Et c'est la que réside l'incroyable puissance
+de ce Système d'Exploitation. Il est extraordinairement adaptable.
+
N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas
+technophiles. Ils pourraient adorer, et peut être même le devenir :)
J'avais dit il y a un certain temps que j'allais écrire un tutoriel expliquant
+comment gérer ses mails soi-même. Il se trouve que j'ai récemment décidé de
+changer le serveur qui héberge (entre autres) ce blog, et que ce dernier héberge
+aussi mes emails. J'ai donc totalement changé d'infrastructure quand a la
+gestion de mon système de mails.
+
Ainsi, j'ai décidé de passer de Postfix a OpenSMTPd, changement que je voulais
+effectuer depuis un certain temps. OpenSMTPd est un
+projet originaire d'OpenBSD qui a pour but de fournir un
+serveur SMTP fiable, simple, rapide, et surtout sécurisé (les même buts que ceux
+qu'a le projet OpenBSD, globalement).
+
Pour rappel, le système d'emails fonctionne d'une façon très simple : votre MUA
+(Mail User Agent, ou client email) contacte le MTA (Mail Transport Agent, ou
+serveur SMTP) de votre fournisseur email, qui contacte le MTA du fournisseur du
+destinataire, qui lui même contacte le MDA (Mail Delivery Agent) qui délivre le
+mail au destinataire.
+
Si vous avez bien suivi, vous pouvez voir que je n'ai pas parlé de récupération
+ni de lecture des mails. C'est pour une raison simple, qui est que ces taches
+sont remplies par d'autres services encore (IMAP/POP pour la récupération depuis
+le serveur, des yeux pour la lecture).
+
Or ce qui nous intéresse ici, ce n'est pas simplement d'envoyer et de recevoir
+des emails mais bien aussi de pouvoir les récupérer et les lire, et c'est pour
+ça que ce tutoriel ne parlera pas que d'OpenSMTPd mais aussi de
+Dovecot qui fait office de serveur IMAP et
+amavis/spamassassin
+pour filtrer les mails entrants et sortants.
+Le schéma suivant explique la façon dont les mails sont gérés sur le système
Normalement, ceci devrait être a peu près clair.
+Pour expliquer vite fait, les emails entrants (venant des utilisateurs mais
+aussi d'autres correspondants) sont transmis a OpenSMTPd, qui envoie tout a
+amavis, qui vérifie a la fois les spams et les malwares pour les mails
+venants de l'exterieur, et qui signe avec DKIM pour les mails venants de
+nos utilisateurs, puis qui rentransmet les mails filtrés/signés a OpenSMTPd,
+qui a ce moment-ci trie en fonction de la destination : les mails gérés
+par le domaine vont via dovecot dans les boites mail des destinataires
+locaux, les mails exterieurs vont directement vers le MTA du serveur
+distant.
+
Voyons comment mettre cela en place. Tout d'abord, il faut décider de la façon
+dont les différents services vont communiquer.
+
Déjà, amavis étant configuré par défaut pour écouter (en SMTP) sur le port
+10024 et répondre sur le port 10025 quand il s'agit de filtrer et
+écouter sur le port 10026 et répondre sur le port 10027 quand il s'agit de
+signer, nous allons profiter de cette configuration et donc lui parler en SMTP
+sur ces ports.
+
Quand a Dovecot, nous allons lui transmettre les emails en LMTP (Local Mail
+Transfer Protocol), non pas sur un port mais via un socket (dans ce cas précis,
+/var/run/dovecot/lmtp).
+
Ainsi, pour reprendre le schéma présenté plus haut :
Maintenant que la théorie est claire, mettons en place tout cela. Je me baserai
+ici sur le fait que vous utilisiez une plateforme Debian ou OpenBSD. Pour
+d'autres plateformes, la configuration devrait être sensiblement la même
+
(Vous aurez besoin de certificats SSL pour ce guide, même self-signés.
+Si vous ne savez pas comment en créer, vous pouvez aller voir ce
+post)
+
Tout d'abord, commençons par installer les programmes nécessaires :
Tout d'abord, le paragraphe nommé "Certs" contient les déclaration
+ d'emplacement des certificats SSL.
+
Ensuite, le paragraphe contenant les ports externes sur lesquels nous écoutons :
+ port 25 avec TLS optionel et ports 465 et 587 avec TLS obligatoire
+
Les alias sont définis juste après
+
Le paragraphe suivant contient les ports locaux sur lesquels nous écoutons :
+ 10025 (port de sortie du filtre de amavis) dont on taggue les mails sortants
+ comme "Filtered" et 10027 (port de sortie des mails signés par amavis) dont on
+ taggue les mails sortants comme "Signed"
+
Nous avons ensuite le paragraphe qui traite les mails rentrants. Si le mail
+ traité est taggué comme Filtered, alors il a été vérifié par amavis, et on
+ peut donc le transmettre au destinataire. Sinon, c'est qu'il n'a pas encore
+ été vérifié par amavis, donc on lui transmet pour analyse (sur le port 10024
+ donc). Il est important de mettre les déclarations dans ce sens, car la
+ première règle qui matche l'état du paquet est appliquée. Ici, la deuxième
+ ligne matchant tous les mails arrivant et la première seulement ceux filtrés,
+ inverser leur sens voudrait dire que les mails seraient toujours renvoyés a
+ amavis
+
Enfin, le dernier paragraphe traite les mails sortants. De la même façon que
+ pour le paragraphe précédent, si le mail sortant est déjà taggué comme Signed
+ on le transmet au MTA du destinataire, sinon il n'a pas encore été signé par
+ DKIM par amavis et on le transmet donc a amavis pour qu'il le signe. Le
+ problème de l'ordre des lignes se pose encore, pour la même raison qu'au
+ dessus.
+
+
Nous allons maintenant configurer dovecot. Comme nous l'avons vu, dovecot doit
+écouter en LMTP via la socket /var/run/dovecot/lmtp et transmettre les
+emails a la boite email de l'utilisateur. Il serait aussi interessant
+qu'il nous permette de récuperer les mails. Pour cette configuration, on ne
+mettra en place que du IMAPS. Cependant, si vous voulez mettre en place du
+POP3[s], différents guides sont trouvables facilement sur internet.
+
/etc/dovecot/dovecot.conf
+
## Dovecot configuration file
+
+# basic config
+info_log_path=/var/log/dovecot-info.log
+log_path=/var/log/dovecot.log
+log_timestamp="%Y-%m-%d %H:%M:%S "
+mail_location=maildir:%h/mail
+
+# authentication
+passdb{
+ driver=pam
+}
+userdb{
+ driver=passwd
+}
+
+# the protocols we use
+protocols=imaplmtpsieve
+
+# ssl config
+ssl_cert=</etc/certs/exem.pl.cert
+ssl_key=</etc/certs/exem.pl.key
+ssl_cipher_list=HIGH+kEDH:HIGH+kEECDH:HIGH:!PSK:!SRP:!3DES:!aNULL
+ssl=yes
+
+## configuring services
+# disables imap login without SSL (yes dovecot is dumb that way)
+serviceimap-login{
+ inet_listenerimap{
+ port=0
+ }
+}
+
+servicelmtp{
+ unix_listenerlmtp{
+ mode=0666
+ }
+}
+
+## configuring protocols
+# the dovecot lda, we set it to use sieve
+protocollda{
+ mail_plugins=$mail_pluginssieve
+}
+
+protocollmtp{
+ postmaster_address=whoever@exem.pl
+ mail_plugins=$mail_pluginssieve
+}
+
+plugin{
+ sieve=~/.dovecot.sieve
+ sieve_dir=~/sieve
+}
+
+
+
+
ATTENTION: Sous OpenBSD, remplacez
+
passdb{
+ driver=pam
+}
+
+
+
+
par
+
passdb{
+ driver=bsdauth
+}
+
+
+
+
pour identifier les utilisateurs système
+
Ici aussi, voyons comment ce fichier est structuré :
+
+
Tout d'abord, les configurations de base : ou iront les logs, comment formater
+ leur datation, et l'endroit ou seront stockés les mails des utilisateurs.
+
Nous configurons ensuite la gestion de l'authentification des utilisateurs.
+ Ici nous identifions les utilisateurs avec le fichier /etc/passwd et leurs
+ mots de passe avec PAM (ou BSDAuth)
+
Nous configurons ensuite les protocoles que nous servons. Ici, nous voulons de
+ l'IMAPS, du LMTP local et Sieve (qui sert pour trier les messages).
+
Nous configurons le SSL
+
Le section suivante contient la configuration des services. Nous avons en
+ premier lieu le service IMAP, dont la configuration sert uniquement a
+ désactiver IMAP. En effet, dovecot ne permet d'activer IMAPS qu'en activant
+ IMAP avec. Comme nous ne voulons pas d'IMAP sans SSL, nous le désactivons.
+ La configuration de lmtp sert a attribuer des permissions plus correctes au
+ fifo qu'il utilise
+
Nous configurons maintenant les protocoles, pour faire fonctionner Sieve
+
enfin, nous configurons le plugin sieve en lui indiquant quel fichier et
+ quel dossier utiliser pour sa configuration.
+
+
Enfin, il nous reste a configurer amavis. Comme expliqué, amavis va nous servir
+a deux choses : signer les emails sortants, et filtrer les emails entrants. Il
+doit donc écouter sur les port 10026 pour les signatures et 10024 pour le
+filtrage, et répondre respectivement sur les ports 10027 et 10025 (le tout, en
+SMTP. Comme toutes les transactions se font sur le loopback, il n'y a aucun
+risque a utiliser des protocoles non chiffrés.
+Pour OpenBSD, pensez a copier la configuration par défaut depuis
+/usr/local/share/examples/amavisd-new/amavisd.conf et ajoutez les
+modifications nécessaires a la fin du fichier.
A nouveau, expliquons ce fichier :
+- le premier paragraphe définit que nous voulons qu'amavis signe les emails
+ sortants, vérifie la signature DKIM des emails rentrants, et l'endroit ou se
+ trouve la clé privée servant a signer les emails.
+- le second définit les options DKIM que nous souhaitons utiliser comme défaut.
+ Je vous invite a consulter la RFC 4871
+- nous définissons ensuite les ports sur lesquels nous allons écouter, puis les
+ paramètres que nous utiliserons pour les emails venant de nos utilisateurs :
+ ils seront traités comme "originating" et nous ne vérifierons pas l'OS duquel
+ ils viennent.
+- nous savons que les emails venants du port 10026 sont sortants, nous les
+ traitons donc comme tel
+- le paragraphe suivant décrit le traitement que nous faisons subir aux emails
+ sortants : tout d'abord, nous réaffirmons qu'ils viennent bien de notre
+ serveur. Nous autorisons les disclaimers (voire encore une fois la RFC
+ 4871. Nous déclarons l'adresse a
+ prévenir en cas de spam/virus venants de notre système, et que nous voulons
+ être prévenus. Nous déclarons ou envoyer les mails une fois signés et filtrés,
+ puis qu'il est nécessaire de convertir les emails au format 7 bits avant de
+ les envoyer au MTA, que nous autorisons tous les types et noms de fichiers, et
+ les notifications de succès d'envoi. Et voila!
+
Vous avez pu remarquer qu'a aucun moment nous ne configurions ni la signature
+des emails sortants ni le filtrage des emails entrants. Ces paramètres sont en
+fait inclus par défaut dans amavis.
+
Il nous reste cependant quelques opérations a faire, encore.
+Tout d'abord, il nous faut générer notre clé DKIM. Pour cela, il existe
+différentes méthodes, j'ai personnellement utilisé opendkim (un
+tutorial)
+mais de nombreuses autre méthodes existent.
+Il nous reste encore a configurer spamassassin :
+
#rewrite_header Subject *****SPAM*****
+# report_safe 1
+required_score2.0
+# use_bayes 1
+# bayes_auto_learn 1
+# bayes_ignore_header X-Bogosity
+# bayes_ignore_header X-Spam-Flag
+# bayes_ignore_header X-Spam-Status
+ifpluginMail::SpamAssassin::Plugin::Shortcircuit
+# shortcircuit USER_IN_WHITELIST on
+# shortcircuit USER_IN_DEF_WHITELIST on
+# shortcircuit USER_IN_ALL_SPAM_TO on
+# shortcircuit SUBJECT_IN_WHITELIST on
+# shortcircuit USER_IN_BLACKLIST on
+# shortcircuit USER_IN_BLACKLIST_TO on
+# shortcircuit SUBJECT_IN_BLACKLIST on
+shortcircuitALL_TRUSTEDoff
+# shortcircuit BAYES_99 spam
+# shortcircuit BAYES_00 ham
+
+endif#Mail::SpamAssassin::Plugin::Shortcircuit
+
+
+
+
Comme vous pouvez le voir, les modifications se résument globalement a baisser
+le required_score pour ma part.
+
Pour finir, activez les services nécessaires : opensmtpd, dovecot, amavisd, et
+spamassassin, et tout devrait fonctionner parfaitement
+
+
\ No newline at end of file
diff --git a/output/feeds/feed.language.xml b/output/feeds/feed.language.xml
new file mode 100644
index 0000000..a424677
--- /dev/null
+++ b/output/feeds/feed.language.xml
@@ -0,0 +1,30 @@
+
+Wxcaféfile:///home/wxcafe/code/blog-source/output/2012-09-18T19:07:00+02:00Le Quenya - Épisode ø2012-09-18T19:07:00+02:00Wxcafetag:,2012-09-18:home/wxcafe/code/blog-source/output/posts/le-quenya-episode-o/<p>Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y
+a peu...), le nom que donnait Tolkien au dialecte principal parlé par
+les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des
+Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte
+avant de commencer cet article que l'une des œuvres les plus
+impressionnantes de Tolkien, si ce n'est la plus grande, est
+l'impressionnant travail linguistique passé sur les différentes langues
+présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya,
+la langue des nains, qui est appelé le khazalide, etc. </p>
+<p>En effet, a contrario des "langues" développées dans d'autres œuvres littéraires
+telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot
+de français (ou d'anglais) a un mot de sa "langue", les langues de
+l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des
+racines logiques, des systèmes de grammaire et de conjugaison propres,
+une logique inhérente dans la prononciation ou l'orthographe, et ainsi
+de suite. </p>
+<p>Un véritable rêve de linguiste donc, puisque ces langues sont
+pratiquement entièrement documentées par Tolkien lui même (voir
+l'appendice E du SdA, particulièrement instructif a ce sujet.)</p>
+<p>J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster
+ici des résumés des cours que je suis ( disponibles <a href="http://folk.uib.no/hnohf/qcourse.htm">ici</a> , une
+traduction en français est disponible <a href="http://www.ambar-eldaron.com/telechargements/integraleshelge.pdf">la</a> en pdf ), et des infos ici
+toutes les deux semaines.</p>
+<p>Si ce sujet vous intéresse, le compte twitter @Quenya101 poste
+régulièrement des informations sur le sujet, et pour plus d'infos sur le
+sujet, vous pouvez en trouver <a href="olk.uib.no/hnohf/quenya.htm">par ici</a>.</p>
+<p>Et en tant que première leçon, vous pouvez apprendre que ce mot que vous
+avez prononcé comme le Kenya tout le long de cet article se prononce en
+fait [Kwenïa], ou bien Qwenya!</p>
\ No newline at end of file
diff --git a/output/feeds/feed.notes.xml b/output/feeds/feed.notes.xml
new file mode 100644
index 0000000..1873405
--- /dev/null
+++ b/output/feeds/feed.notes.xml
@@ -0,0 +1,265 @@
+
+Wxcaféfile:///home/wxcafe/code/blog-source/output/2014-05-30T08:25:00+02:00SSL ou la sécurité sur l'internet2014-05-30T08:25:00+02:00Wxcafetag:,2014-05-30:home/wxcafe/code/blog-source/output/posts/SSL-ou-la-securite-sur-internet/<p><em>Disclaimer: Ce billet est écrit après le visionnage de la conférence de Moxie
+Marlinspike suivante: <a href="https://www.youtube.com/watch?v=ibF36Yyeehw">More Tricks for Defeating SSL</a>,
+présentée a la DefCon 17 (en 2011), et la lecture du billet suivant:
+<a href="http://www.thoughtcrime.org/blog/lavabit-critique/">A Critique of Lavabit</a>,
+ce qui peut avoir l'effet de rendre légèrement parano. Si vous considérez que
+c'est le cas ici, veuillez ne pas tenir compte de ce billet (et vous pouvez dès
+a présent dire coucou aux différentes personnes qui écoutent votre connection)</em></p>
+<p>Si vous venez ici souvent (vous devriez), et que vous utilisez SSL pour vous
+connecter a ce site (vous devriez, vraiment, dans ce cas), vous avez peut être
+remarqué quelque chose récemment : il se trouve que le certificat qui permet de
+desservir ce site a changé.</p>
+<p>Cela fait suite aux évènements évoqués dans le <em>Disclaimer</em>, mais aussi a des
+doigts sortis d'un endroit particulier du corps de l'admin/auteur de ce "blog",
+qui a pris <strong>enfin</strong> les 5 minutes nécessaires a la compréhension superficielle
+du fonctionnement de SSL, et les 10 nécessaires a la mise en place d'un système
+fonctionnel utilisant cette compréhension récemment acquise.</p>
+<p>Bref, le certificat a changé. Mais de quelle façon, vous demandez vous peut
+être (ou pas, mais bon, je vais expliquer de toute façon). Et bien c'est très
+simple : il existait auparavant un certificat pour <code>wxcafe.net</code>, un pour
+<code>paste.wxcafe.net</code>, un pour <code>mail.wxcafe.net</code>, etc... Bref, un certificat
+différent pour chaque sous-domaine.</p>
+<p>Il s'avère que c'est a la fois très peu pratique a utiliser (les utilisateurs
+doivent ajouter chaque certificat a leur navigateur séparément, chaque
+changement de sous-domaine conduit a un message d'erreur, etc) et pas plus
+sécurisé que d'avoir un seul certificat wildcard. J'ai donc généré un certificat
+pour <code>*.wxcafe.net</code> hier, et il sera dorénavant utilisé pour tous les
+sous-domaine de <code>wxcafe.net</code>; et un certificat pour <code>wxcafe.net</code>, qui ne matche
+pas <code>*.wxcafe.net</code>, et qui sera donc utilisé... bah pour <code>wxcafe.net</code>.</p>
+<p>Il serait préférable de faire des redirections automatiques des adresses http
+vers les adresses https, cependant, étant donné que le certificat est
+self-signed, il me semble préférable que l'arrivée sur le site ne commence pas
+par une page firefox disant "Something's Wrong!", et ces redirections ne seront
+donc pas mises en place.</p>
+<p>De plus, après la lecture de l'article de blog sur Lavabit dont le lien est plus
+haut, il semble intéressant (et assez important) de faire en sorte que le
+serveur utilise en priorité (et si possible, uniquement) des ciphers supportant
+PFS, soit EDH et EECDH (Ephemeral Diffie-Helmann et la version Elliptic Curves
+de ce même algorithme). Cela permet de faire en sorte que toutes les
+communications avec ce serveur soient future-proof, c'est a dire que, même si
+quelqu'un récupérait la clé privée, elle ne serait pas utile pour déchiffrer les
+communications passées.</p>
+<p>Bon, maintenant que les explications basiques sont faites, voyons
+l'implémentation : <br />
+Pour générer la clé, tout d'abord, il convient d'utiliser les commandes
+suivantes: </p>
+<div class="highlight"><pre><span class="n">sudo</span> <span class="n">openssl</span> <span class="n">genrsa</span> <span class="o">-</span><span class="n">out</span> <span class="n">example</span><span class="p">.</span><span class="n">key</span> <span class="mi">4096</span>
+<span class="cp"># nous utilisons ici une clé de 4096 bits, la taille est laissée a votre appréciation</span>
+<span class="n">sudo</span> <span class="n">openssl</span> <span class="n">req</span> <span class="o">-</span><span class="n">new</span> <span class="o">-</span><span class="n">key</span> <span class="n">example</span><span class="p">.</span><span class="n">key</span> <span class="o">-</span><span class="n">out</span> <span class="n">example</span><span class="p">.</span><span class="n">csr</span>
+<span class="cp"># OpenSSL va ici vous demander de nombreuses informations, "Common Name" devant contenir le FQDN</span>
+<span class="n">sudo</span> <span class="n">openssl</span> <span class="n">X509</span> <span class="o">-</span><span class="n">req</span> <span class="o">-</span><span class="n">days</span> <span class="mi">1095</span> <span class="o">-</span><span class="n">in</span> <span class="n">example</span><span class="p">.</span><span class="n">csr</span> <span class="o">-</span><span class="n">signkey</span> <span class="n">example</span><span class="p">.</span><span class="n">key</span> <span class="o">-</span><span class="n">out</span> <span class="n">example</span><span class="p">.</span><span class="n">crt</span>
+<span class="cp"># enfin, nous générons la clé, d'une durée de vie de 3 ans</span>
+</pre></div>
+
+
+<p>Bien entendu, si vous voulez utiliser une clé wildcard, il vous faut préciser
+<code>*.example.com</code> comme common name.
+Une fois la clé générée, il faut dire aux différents services de l'utiliser, et
+de n'utiliser que des ciphers PFS. La méthode dépend donc du service.
+Je vais lister ici les methodes pour quelques services que j'utilise :</p>
+<h3>apache :</h3>
+<div class="highlight"><pre><span class="cp"># /etc/apache2/mods_enabled/ssl.conf</span>
+<span class="cp"># [...]</span>
+<span class="n">SSLProtocol</span> <span class="n">all</span> <span class="o">-</span><span class="n">SSLv2</span> <span class="o">-</span><span class="n">SSLv3</span>
+<span class="n">SSLHonorCipherOrder</span> <span class="n">on</span>
+<span class="n">SSLCipherSuite</span> <span class="s">"EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \</span>
+<span class="s"> EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \</span>
+<span class="s"> EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"</span>
+<span class="cp"># [...]</span>
+<span class="cp"># /etc/apache2/sites-enabled/default-ssl</span>
+<span class="cp"># [...]</span>
+<span class="n">SSLEngine</span> <span class="n">on</span>
+<span class="n">SSLCertificateFile</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span>
+<span class="n">SSLCertificateKeyFile</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span>
+<span class="cp"># [...]</span>
+</pre></div>
+
+
+<h3>nginx :</h3>
+<div class="highlight"><pre><span class="cp"># /etc/nginx/nginx.conf </span>
+<span class="cp"># [...]</span>
+<span class="n">ssl_protocols</span> <span class="n">TLSv1</span> <span class="n">TLSv1</span><span class="mf">.1</span> <span class="n">TLSv1</span><span class="mf">.2</span><span class="p">;</span>
+<span class="n">ssl_prefer_server_ciphers</span> <span class="n">on</span><span class="p">;</span>
+<span class="n">ssl_ciphers</span> <span class="s">"EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \</span>
+<span class="s"> EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \</span>
+<span class="s"> EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"</span><span class="p">;</span>
+<span class="cp"># [...]</span>
+<span class="cp"># /etc/nginx/sites-enabled/default-ssl</span>
+<span class="cp"># [...]</span>
+<span class="n">ssl</span> <span class="n">on</span><span class="p">;</span>
+<span class="n">ssl_certificate</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span>
+<span class="n">ssl_certificate_key</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span>
+<span class="cp"># [...]</span>
+</pre></div>
+
+
+<h3>prosody (jabber) :</h3>
+<div class="highlight"><pre><span class="cp"># tout d'abord, lancez la commande suivante :</span>
+<span class="n">sudo</span> <span class="n">openssl</span> <span class="n">dhparam</span> <span class="o">-</span><span class="n">out</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">prosody</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">dh</span><span class="o">-</span><span class="mf">2048.</span><span class="n">pem</span> <span class="mi">2048</span>
+<span class="cp"># ensuite, pour chaque VirtualHost dans /etc/prosody/prosody.conf :</span>
+<span class="n">ssl</span> <span class="o">=</span> <span class="p">{</span>
+ <span class="n">dhparam</span> <span class="o">=</span> <span class="s">"/etc/prosody/certs/dh-2048.pem"</span><span class="p">;</span>
+ <span class="n">key</span> <span class="o">=</span> <span class="s">"/etc/certs/example.com.key"</span><span class="p">;</span>
+ <span class="n">certificate</span> <span class="o">=</span> <span class="s">"/etc/certs/example.com.crt"</span><span class="p">;</span>
+<span class="p">}</span>
+<span class="cp"># la cipher suite de prosody utilise par défaut EDH et EECDH</span>
+</pre></div>
+
+
+<h3>postfix (email) :</h3>
+<div class="highlight"><pre><span class="cp"># /etc/postfix/main.cf</span>
+<span class="cp"># [...]</span>
+<span class="n">smtpd_tls_cert_file</span> <span class="o">=</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span>
+<span class="n">smtpd_tls_key_file</span> <span class="o">=</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span>
+<span class="n">tls_preempt_cipherlist</span> <span class="o">=</span> <span class="n">yes</span>
+<span class="n">smtpd_tls_eecdh_grade</span> <span class="o">=</span> <span class="n">strong</span>
+<span class="n">smtdp_tls_mandatory_ciphers</span> <span class="o">=</span> <span class="n">high</span>
+<span class="n">smtpd_tls_mandatory_exclude_ciphers</span> <span class="o">=</span> <span class="n">aNULL</span><span class="p">,</span> <span class="n">eNULL</span><span class="p">,</span> <span class="n">MD5</span><span class="p">,</span> <span class="n">LOW</span><span class="p">,</span> <span class="mi">3</span><span class="n">DES</span><span class="p">,</span> <span class="n">EXP</span><span class="p">,</span> <span class="n">PSK</span><span class="p">,</span> <span class="n">SRP</span><span class="p">,</span> <span class="n">DSS</span>
+<span class="n">smtpd_tls_security_level</span> <span class="o">=</span> <span class="n">encrypt</span>
+<span class="n">smtpd_tls_mandatory_protocols</span> <span class="o">=</span> <span class="o">!</span><span class="n">SSLv2</span><span class="p">,</span> <span class="o">!</span><span class="n">SSLv3</span>
+<span class="n">smtpd_use_tls</span> <span class="o">=</span> <span class="n">yes</span>
+<span class="cp"># [...]</span>
+</pre></div>
+
+
+<h3>dovecot (imap) :</h3>
+<div class="highlight"><pre><span class="cp"># /etc/dovecot/dovecot.conf </span>
+<span class="cp"># [...]</span>
+<span class="n">ssl_cert</span> <span class="o">=</span> <span class="o"></</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span>
+<span class="n">ssl_key</span> <span class="o">=</span> <span class="o"></</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span>
+<span class="n">ssl_cipher_list</span> <span class="o">=</span> <span class="n">HIGH</span><span class="o">+</span><span class="n">kEDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">+</span><span class="n">kEECDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">:!</span><span class="n">PSK</span><span class="o">:!</span><span class="n">SRP</span><span class="o">:!</span><span class="mi">3</span><span class="n">DES</span><span class="o">:!</span><span class="n">aNULL</span>
+</pre></div>
+
+
+<p>Voila. Pour d'autres protocoles/services, je vous invite a RTFM^W vous reporter
+au manuel approprié.</p>
+<p>Cela étant dit, je conseille a tout le monde d'aller voir la conférence dans le
+disclaimer, et tant qu'a faire la conférence du même hacker <a href="https://www.youtube.com/watch?v=8N4sb-SEpcg">SSL and the future
+of Authenticity</a> qui parle de son
+implémentation d'une technologie "remplaçant" le système de CAs qui existe
+actuellement.</p>Redesign du blog, etc2013-06-12T19:14:00+02:00wxcafetag:,2013-06-12:home/wxcafe/code/blog-source/output/posts/redesign-du-blog/<p>Comme vous avez pu le remarquer, ce blog a "un peu" changé récemment.</p>
+<p>Du coup, expliquons. J'ai récemment monté <a href="http://serverporn.fr">serverporn</a>, et ai par la même
+occasion découvert <a href="http://getpelican.com">pelican</a>. J'ai tout de suite accroché a ce générateur de
+site statique en python, du fait de son efficacité, de sa facilité d'utilisation
+et de sa grande customisation. En gros, pelican est un logiciel qui prend des
+fichiers markdown ou reStructuredText, les passe a la moulinette d'un "thème"
+constitué de templates pour les fichiers html et l'organisation du projet et
+d'une partie "statique" contenant le css, et les autres fichiers nécessaires au
+projet, et en fait des pages html. </p>
+<p>Globalement, un thème est constitué ainsi :</p>
+<div class="highlight"><pre><span class="n">th</span><span class="err">è</span><span class="n">me</span>
+<span class="err">├──</span> <span class="k">static</span>
+<span class="err">│</span> <span class="err">├─</span> <span class="n">css</span>
+<span class="err">│</span> <span class="err">│</span> <span class="err">└─</span> <span class="p">[</span><span class="n">css</span> <span class="n">files</span><span class="p">]</span>
+<span class="err">│</span> <span class="err">├─</span> <span class="n">img</span>
+<span class="err">│</span> <span class="err">│</span> <span class="err">└─</span> <span class="p">[</span><span class="n">image</span> <span class="n">files</span><span class="p">]</span>
+<span class="err">│</span> <span class="err">└─</span> <span class="n">js</span>
+<span class="err">│</span> <span class="err">└─</span> <span class="p">[</span><span class="n">javascript</span> <span class="n">files</span><span class="p">]</span>
+<span class="err">└──</span> <span class="n">template</span>
+ <span class="err">├─</span> <span class="n">base</span><span class="p">.</span><span class="n">html</span>
+ <span class="err">├─</span> <span class="n">index</span><span class="p">.</span><span class="n">html</span>
+ <span class="err">├─</span> <span class="n">page</span><span class="p">.</span><span class="n">html</span>
+ <span class="err">├─</span> <span class="p">[...]</span>
+ <span class="err">└─</span> <span class="n">article</span><span class="p">.</span><span class="n">html</span>
+</pre></div>
+
+
+<p>Sachant que les fichiers .html sont en réalité des fichiers suivant la syntaxe
+django, et utilisent des variables particulières telles <code>{{ article.content }}</code>,
+par exemple. La syntaxe complète est très bien documentée dans la <a href="http://docs.getpelican.com/en/3.2/themes.html#templates-and-variables">doc</a> de
+pelican.</p>
+<p>L'un des grands avantages de pelican est aussi la facilité qu'il offre quand a
+la mise a jour du blog.<br />
+En effet, il offre un système de Makefiles permettant, grâce a de nombreuses
+cibles de compilation, de régénérer le site entier, de ne générer que les
+fichiers modifiés depuis la dernière génération, de générer uniquement les
+fichiers n'existant pas la dernière fois, etc...
+La gestion du projet en devient donc très simple, puisque après avoir écrit un
+article, il suffit de faire un <code>make html</code> pour mettre a jour le blog.</p>
+<p>De plus, le système de wordpress commençait a ne plus me convenir, du fait du
+manque de customisation, du fait que ça soit du PHP (beurk), etc. La, avec
+pelican, je contrôle bien plus ce qui est mis sur le serveur (puisque c'est moi
+qui ait modifié les templates et le css), c'est lisible (puisque c'est du
+python, par opposition au PHP...), et c'est plus "efficace". Le markdown est
+très pratique, je peux utiliser mon éditeur de texte de prédilection pour faire
+les articles, je n'ai pas besoin d'un accès continu au net, bref, c'est plus
+efficace.</p>
+<p>En ce qui concerne les points négatifs : </p>
+<ul>
+<li>
+<p>Perte des commentaires:
+ Je vous propose de vous référer a l'article de Gordontesos <a href="http://gordon.re/hacktivisme/la-necessite-des-commentaires.html">ici</a> quand a
+ mon avis sur ce sujet.</p>
+</li>
+<li>
+<p>Perte du bouton flattr:
+ Il va bientôt être remis, c'est juste un manque de temps de ma part, mais vu
+ que toutes les pages passent par les mêmes templates, c'est assez facile a
+ faire.</p>
+</li>
+<li>
+<p>Perte du spam:
+ Pourquoi c'est dans les points négatifs, ca?</p>
+</li>
+<li>
+<p>Temps d'adaptation et d'appréhension du système:
+ Oui, pendant encore un certain temps, il y aura des glitchs plus ou moins
+ réguliers sur le blog, c'est parce que j'apprend a me servir de ce système
+ et que j'apprend du css et du html. Ca arrive, ca passera, mais dans tous
+ les cas ca me permet d'apprendre plein de choses, donc je mets plutôt ca
+ dans la catëgorie positive.</p>
+</li>
+</ul>
+<p>Voila, c'est mon retour d'expérience sur pelican. A plus. </p>Update2013-01-05T18:32:00+01:00Wxcafetag:,2013-01-05:home/wxcafe/code/blog-source/output/posts/update/<p>Juste une petite note pour annoncer le prochain article, consacré a la
+fabrication d'une PirateBox basée sur un Raspberry Pi. Voila, a bientôt
+sur le blog!</p>Update a propos du blog2012-09-18T16:57:00+02:00Wxcafetag:,2012-09-18:home/wxcafe/code/blog-source/output/posts/update-a-propos-du-blog/<p>Bonsoir! Un petit post pour faire un peu le point sur ce blog.<br />
+Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais
+que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y
+avoir un tantinet réfléchi, ceci est du a deux points principaux :</p>
+<ul>
+<li>
+<p>Tout d'abord, le manque d'inspiration, tout simplement. C'est assez
+compliqué de trouver des sujets intéressants liés a l'informatique, et
+qui méritent un article. Je vous invite d'ailleurs a me suggérer des
+sujets via les commentaires ou twitter (<a href="https://twitter.com/wxcafe">@Wxcafe</a>)</p>
+</li>
+<li>
+<p>Ensuite, le délai de 8 jours est trop court pour me permettre de faire
+les recherches nécessaires, tout en manageant mes cours et mon temps
+libre.</p>
+</li>
+</ul>
+<p>A cause de cela, j'ai pris la décision de changer le rythme de parution
+des articles a un *minimum* d'un post tous les 10 jours. Bien entendu,
+si j'ai de l'inspiration en trop, plus de posts sont envisageables.</p>
+<p>Voila. A part ca, je tiens a vous remercier de me lire (c'est assez
+étonnant de voir ca...), et je précise que je vais ajouter une page
+About Me, qui bien entendu rassemblera des informations sur moi, ma vie,
+mon oeuvre :P</p>
+<p>Ceci dit, je vais bosser un peu sur le prochain article.</p>
+<p>A plus tard!</p>Débuts, présentation, etc...2012-08-18T20:27:00+02:00Wxcafetag:,2012-08-18:home/wxcafe/code/blog-source/output/posts/debuts-presentation-etc/<p>Bonjour!</p>
+<p>Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur
+Twitter, mais aussi sur IRC (Je traîne pas mal sur
+irc.freenode.net/##nolife et #debian-fr)</p>
+<p>J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je
+fais partie de ce genre de personne qui sont capables d'investir tout
+leur temps et leur énergie a s’intéresser a un sujet en particulier, et
+qui ne peuvent pas vivre sans leurs passions, avec une petite différence
+cependant, qui est que je m’intéresse a plusieurs choses :
+l'informatique, qui est un champ tellement large qu'on peut passer une
+vie a apprendre des choses dessus, et plus particulièrement à
+l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres
+{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les
+trolls seront a partir de maintenant indiqués avec le tag [tr]] du
+libre, je préfère utiliser de l'open-source si c'est possible},
+programmation en C, python et java, etc...) , mais aussi a
+l’électronique. </p>
+<p>Dans un tout autre registre, je m’intéresse aussi
+beaucoup aux différents aspects du féminisme et des égalités sexuelles
+(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) ,
+et a la culture dite "geek" en général.</p>
+<p>Je tenterai de poster ici le plus souvent possible, mais j'ai de gros
+problèmes en terme de régularité de post, donc ne vous inquiétez pas si
+vous ne voyez rien pendant deux semaines.</p>
+<p>Merci beaucoup de votre attention, et a bientôt!</p>
\ No newline at end of file
diff --git a/output/feeds/feed.programmation.xml b/output/feeds/feed.programmation.xml
new file mode 100644
index 0000000..a51d231
--- /dev/null
+++ b/output/feeds/feed.programmation.xml
@@ -0,0 +1,198 @@
+
+Wxcaféfile:///home/wxcafe/code/blog-source/output/2012-09-08T18:15:00+02:00Introduction a bash en tant que language de programmation.2012-09-08T18:15:00+02:00Wxcafetag:,2012-09-08:home/wxcafe/code/blog-source/output/posts/introduction-a-bash-en-tant-que-language-de-programmation/<p>L’interpréteur de commandes bash (Bourne Again SHell)
+est possiblement le shell le plus connu, notamment grâce a son
+intégration en tant que shell par défaut dans les distributions Linux
+les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva -
+Mageia, etc...).</p>
+<p>Cependant, il n'est souvent connu qu'en tant qu’interpréteur de
+commande. Alors qu'en réalité, le bash est un langage de programmation
+(presque) complet! Ainsi, il intègre les structures de contrôle
+habituelles ( pour mémoire, les structures de contrôle comprennent les
+conditions (les ifs), les boucles (les while), et les choix (les case),
+entre autres.), et est donc ce que l'on pourrait appeler un langage de
+script, interprété, de la même façon que python, a la difference près
+qu'il contient un prompt (un système d'entrée de commande interactif)
+bien plus complet et développé que python. </p>
+<p>Cependant, les programmes en bash ne sont executables que dans un
+environnement de type UNIX, et donc pas sous Windows (cygwin
+(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous
+windows. Il faut malgré tout convenir que cet environnement est bien
+plus compliqué a manipuler, et globalement ne permet pas d'acceder a des
+portages de qualité satisfaisante.)</p>
+<p>Ainsi, il est possible de créer des fichiers .sh, contenant des
+instructions bash mises a la suite (de la même façon qu'un script BATCH
+Windows .bat), et faisant appel autant aux commandes internes de bash,
+aussi bien que les commandes externes mises en place par les programmes
+installés sur le système, exactement comme dans une invite de commande.
+Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit
+panda roux directement dans la boite magique, tandis qu'un if
+[condition] suivi d'un then (quelque chose) lancera le fameux quelque
+chose suscité si la condition est vérifiée. Un peu comme en C, quoi. </p>
+<p>De cette façon, et avec quelques informations et connaissances, il est
+facile de comprendre le fonctionnement de la programmation en bash.
+Quelques exemples commentés:</p>
+<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash </span>
+<span class="c"># La ligne du dessus est très importante, c'est elle qui dit a bash quel doit être </span>
+<span class="c"># l'interpreteur des commandes écrites dans ce script. Ici, on dit a bash d'interpréter </span>
+<span class="c"># lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire </span>
+<span class="c"># executer du python, par exemple, en mettant #!/usr/bin/python a la place.</span>
+<span class="nb">echo</span> <span class="s2">"this is a test of bash as a simple script manager"</span> <span class="c"># echo est une commande d'affichage de message.</span>
+<span class="nb">echo</span> <span class="s2">"what's your name, user?"</span>
+<span class="nb">read </span>your_name <span class="c"># la commande read permet de demander a l'utilisateur de donner une </span>
+<span class="c"># information, stockée dans la variable en paramètre. </span>
+<span class="nb">echo</span> <span class="nv">$your_name</span> <span class="s2">"is your name"</span> <span class="c"># echo permet aussi d'afficher la valeur de variables. </span>
+<span class="c"># Ici, on renvoie la variable remplie précédemment, suivie d'un message. </span>
+<span class="nb">exit</span> <span class="c"># cet appel a exit n'est pas obligatoire, mais donne un aspect plus </span>
+<span class="c"># propre au code. Il ne quittera pas la session de terminal, cependant.</span>
+</pre></div>
+</td></tr></table>
+
+<p>Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite
+d'être clair quand aux capacités et a la simplicité du bash en tant que
+language de programmation. Alors en effet, nous n'avons ici absolument
+pas utilisé les capacités de bash en lui même, et n'avons fait que le
+renvoyer a des programmes externes (sauf read, il est vrai). Voyons
+maintenant la syntaxe de bash quand il s'agit d'utiliser les structures
+de contrôle:</p>
+<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash </span>
+<span class="nb">echo</span> <span class="s2">"welcome to this second bash program. would you please kindly enter the name of the machine you're running this on?"</span>
+<span class="nb">read </span>host_name
+<span class="k">if</span> <span class="o">[</span> <span class="nv">$host_name</span> <span class="o">==</span> <span class="nv">$HOSTNAME</span> <span class="o">]</span> <span class="c">## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système. </span>
+<span class="k">then </span><span class="nb">echo</span> <span class="s2">"you told the truth!"</span>
+<span class="k">fi</span> <span class="c">## le fi est la commande fermant le if, tout comme le EndIf en basic. C'est un peu vieillot, mais important en bash. </span>
+<span class="k">if</span> <span class="o">[</span> <span class="nv">$host_name</span> !<span class="o">=</span> <span class="nv">$HOSTNAME</span> <span class="o">]</span> <span class="c">## l'opérateur != est l'inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes. </span>
+<span class="k">then </span><span class="nb">echo</span> <span class="s2">"you lied!"</span>
+<span class="k">fi </span>
+<span class="nb">exit</span>
+</pre></div>
+</td></tr></table>
+
+<p>Voila un petit programme permettant d'apprendre la syntaxe du if en
+bash. comme vous pouvez le voir, le language est plutôt lite, et la
+structure if n'est pas très difficile a prendre en main.</p>
+<p>Passons maintenant au while:</p>
+<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
+2
+3
+4
+5
+6
+7</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash</span>
+<span class="nb">echo</span> <span class="s2">"what is your name?"</span>
+<span class="nb">read </span>name
+<span class="k">while</span> <span class="o">[</span> 1 < 10 <span class="o">]</span> <span class="c">## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.</span>
+<span class="k">do </span><span class="nb">echo</span> <span class="s2">"i love"</span> <span class="nv">$name</span>
+<span class="k">done</span>
+<span class="nb">exit</span>
+</pre></div>
+</td></tr></table>
+
+<p>Ce petit programme permet d'observer les bases de while (qui est la
+boucle de base en bash).</p>
+<p>Le troisième opérateur de bash est case. Voyons:</p>
+<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash</span>
+<span class="nb">echo</span> <span class="s2">"please enter a number between one and five"</span>
+<span class="nb">read </span>number
+<span class="k">case</span> <span class="nv">$number</span> in
+1<span class="o">)</span>
+<span class="nb">echo</span> <span class="s2">"the choosen number was one"</span>
+;;
+2<span class="o">)</span>
+<span class="nb">echo</span> <span class="s2">"the choosen number was two"</span>
+;;
+3<span class="o">)</span>
+<span class="nb">echo</span> <span class="s2">"the choosen number was three"</span>
+;;
+4<span class="o">)</span>
+<span class="nb">echo</span> <span class="s2">"the choosen number was four"</span>
+;;
+5<span class="o">)</span>
+<span class="nb">echo</span> <span class="s2">"the choosen number was five"</span>
+;;
+*<span class="o">)</span>
+<span class="nb">echo</span> <span class="s2">"this number is not correct"</span>
+;;
+<span class="k">esac</span>
+<span class="nb">exit</span>
+</pre></div>
+</td></tr></table>
+
+<p>case est un opérateur plus complexe a utiliser a bon escient, et sert a
+faire des ifs multiples sans avoir a taper des dizaines de lignes de
+code.<br />
+(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre
+que le code vérifie chacune des conditions : le 1) est validé si la
+valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc..
+le *) désigne toutes les valeurs, et est donc validé si aucune autre
+valeur n'a précédemment acceptée.</p>
+<p>Quelques notions manquent ici:<br />
+- les nombres aléatoires sont générés par un appel a la variable
+\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a
+16 bits donc). il est possible de faire des invocations a des nombres
+aléatoires plus grands, mais les méthodes permettant de faire cela sont
+plus complexes, et je ne les aborderai donc pas ici.<br />
+- comme vous avez pu le constater, les variables sont désignées en tant
+que telles par l'utilisation d'un symbole \$ au début de leur nom.
+Ainsi, echo number renverra "number", tandis que echo \$number renverra
+le résultat de la variable \$number.<br />
+être utilisées dans un programme bash.<br />
+- comme vous avez pu le constater, les commandes doivent tenir en
+théorie en une ligne. Cependant, le caractère \ permet de retourner a
+la ligne en faisant considérer a bash qu'il s'agit de la même ligne.</p>
+<p>Globalement, il faut admettre que bash n'a pas vocation a être un
+langage de programmation extrêmement développé. Sans framework
+graphique, avec peu de manières d'utiliser de grandes variables, ou
+encore une gestion de la mémoire risible, bash n'a rien d'un langage de
+développement professionnel.<br />
+Cependant, le simple fait qu'il soit considéré comme un langage de
+programmation a part entière font de lui un langage de script d'une
+puissance incontestable, et sa simplicité et sa grande popularité font
+de lui un langage de choix pour apprendre la programmation simplement et
+sans trop se prendre la tête.</p>
+<p>J'espère que cet article aura été utile a certain-e-s, et je vous
+souhaite bonne chance dans votre découverte de la programmation (n'allez
+pas voir ceux qui font de l'orienté objet, c'est des méchants :3)</p>
\ No newline at end of file
diff --git a/output/feeds/feed.rss.language.xml b/output/feeds/feed.rss.language.xml
new file mode 100644
index 0000000..3a514c5
--- /dev/null
+++ b/output/feeds/feed.rss.language.xml
@@ -0,0 +1,30 @@
+
+Wxcaféfile:///home/wxcafe/code/blog-source/output/Tue, 18 Sep 2012 19:07:00 +0200Le Quenya - Épisode øfile:///home/wxcafe/code/blog-source/output/posts/le-quenya-episode-o/<p>Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y
+a peu...), le nom que donnait Tolkien au dialecte principal parlé par
+les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des
+Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte
+avant de commencer cet article que l'une des œuvres les plus
+impressionnantes de Tolkien, si ce n'est la plus grande, est
+l'impressionnant travail linguistique passé sur les différentes langues
+présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya,
+la langue des nains, qui est appelé le khazalide, etc. </p>
+<p>En effet, a contrario des "langues" développées dans d'autres œuvres littéraires
+telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot
+de français (ou d'anglais) a un mot de sa "langue", les langues de
+l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des
+racines logiques, des systèmes de grammaire et de conjugaison propres,
+une logique inhérente dans la prononciation ou l'orthographe, et ainsi
+de suite. </p>
+<p>Un véritable rêve de linguiste donc, puisque ces langues sont
+pratiquement entièrement documentées par Tolkien lui même (voir
+l'appendice E du SdA, particulièrement instructif a ce sujet.)</p>
+<p>J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster
+ici des résumés des cours que je suis ( disponibles <a href="http://folk.uib.no/hnohf/qcourse.htm">ici</a> , une
+traduction en français est disponible <a href="http://www.ambar-eldaron.com/telechargements/integraleshelge.pdf">la</a> en pdf ), et des infos ici
+toutes les deux semaines.</p>
+<p>Si ce sujet vous intéresse, le compte twitter @Quenya101 poste
+régulièrement des informations sur le sujet, et pour plus d'infos sur le
+sujet, vous pouvez en trouver <a href="olk.uib.no/hnohf/quenya.htm">par ici</a>.</p>
+<p>Et en tant que première leçon, vous pouvez apprendre que ce mot que vous
+avez prononcé comme le Kenya tout le long de cet article se prononce en
+fait [Kwenïa], ou bien Qwenya!</p>WxcafeTue, 18 Sep 2012 19:07:00 +0200tag:,2012-09-18:home/wxcafe/code/blog-source/output/posts/le-quenya-episode-o/
\ No newline at end of file
diff --git a/output/feeds/feed.rss.notes.xml b/output/feeds/feed.rss.notes.xml
new file mode 100644
index 0000000..4429edd
--- /dev/null
+++ b/output/feeds/feed.rss.notes.xml
@@ -0,0 +1,265 @@
+
+Wxcaféfile:///home/wxcafe/code/blog-source/output/Fri, 30 May 2014 08:25:00 +0200SSL ou la sécurité sur l'internetfile:///home/wxcafe/code/blog-source/output/posts/SSL-ou-la-securite-sur-internet/<p><em>Disclaimer: Ce billet est écrit après le visionnage de la conférence de Moxie
+Marlinspike suivante: <a href="https://www.youtube.com/watch?v=ibF36Yyeehw">More Tricks for Defeating SSL</a>,
+présentée a la DefCon 17 (en 2011), et la lecture du billet suivant:
+<a href="http://www.thoughtcrime.org/blog/lavabit-critique/">A Critique of Lavabit</a>,
+ce qui peut avoir l'effet de rendre légèrement parano. Si vous considérez que
+c'est le cas ici, veuillez ne pas tenir compte de ce billet (et vous pouvez dès
+a présent dire coucou aux différentes personnes qui écoutent votre connection)</em></p>
+<p>Si vous venez ici souvent (vous devriez), et que vous utilisez SSL pour vous
+connecter a ce site (vous devriez, vraiment, dans ce cas), vous avez peut être
+remarqué quelque chose récemment : il se trouve que le certificat qui permet de
+desservir ce site a changé.</p>
+<p>Cela fait suite aux évènements évoqués dans le <em>Disclaimer</em>, mais aussi a des
+doigts sortis d'un endroit particulier du corps de l'admin/auteur de ce "blog",
+qui a pris <strong>enfin</strong> les 5 minutes nécessaires a la compréhension superficielle
+du fonctionnement de SSL, et les 10 nécessaires a la mise en place d'un système
+fonctionnel utilisant cette compréhension récemment acquise.</p>
+<p>Bref, le certificat a changé. Mais de quelle façon, vous demandez vous peut
+être (ou pas, mais bon, je vais expliquer de toute façon). Et bien c'est très
+simple : il existait auparavant un certificat pour <code>wxcafe.net</code>, un pour
+<code>paste.wxcafe.net</code>, un pour <code>mail.wxcafe.net</code>, etc... Bref, un certificat
+différent pour chaque sous-domaine.</p>
+<p>Il s'avère que c'est a la fois très peu pratique a utiliser (les utilisateurs
+doivent ajouter chaque certificat a leur navigateur séparément, chaque
+changement de sous-domaine conduit a un message d'erreur, etc) et pas plus
+sécurisé que d'avoir un seul certificat wildcard. J'ai donc généré un certificat
+pour <code>*.wxcafe.net</code> hier, et il sera dorénavant utilisé pour tous les
+sous-domaine de <code>wxcafe.net</code>; et un certificat pour <code>wxcafe.net</code>, qui ne matche
+pas <code>*.wxcafe.net</code>, et qui sera donc utilisé... bah pour <code>wxcafe.net</code>.</p>
+<p>Il serait préférable de faire des redirections automatiques des adresses http
+vers les adresses https, cependant, étant donné que le certificat est
+self-signed, il me semble préférable que l'arrivée sur le site ne commence pas
+par une page firefox disant "Something's Wrong!", et ces redirections ne seront
+donc pas mises en place.</p>
+<p>De plus, après la lecture de l'article de blog sur Lavabit dont le lien est plus
+haut, il semble intéressant (et assez important) de faire en sorte que le
+serveur utilise en priorité (et si possible, uniquement) des ciphers supportant
+PFS, soit EDH et EECDH (Ephemeral Diffie-Helmann et la version Elliptic Curves
+de ce même algorithme). Cela permet de faire en sorte que toutes les
+communications avec ce serveur soient future-proof, c'est a dire que, même si
+quelqu'un récupérait la clé privée, elle ne serait pas utile pour déchiffrer les
+communications passées.</p>
+<p>Bon, maintenant que les explications basiques sont faites, voyons
+l'implémentation : <br />
+Pour générer la clé, tout d'abord, il convient d'utiliser les commandes
+suivantes: </p>
+<div class="highlight"><pre><span class="n">sudo</span> <span class="n">openssl</span> <span class="n">genrsa</span> <span class="o">-</span><span class="n">out</span> <span class="n">example</span><span class="p">.</span><span class="n">key</span> <span class="mi">4096</span>
+<span class="cp"># nous utilisons ici une clé de 4096 bits, la taille est laissée a votre appréciation</span>
+<span class="n">sudo</span> <span class="n">openssl</span> <span class="n">req</span> <span class="o">-</span><span class="n">new</span> <span class="o">-</span><span class="n">key</span> <span class="n">example</span><span class="p">.</span><span class="n">key</span> <span class="o">-</span><span class="n">out</span> <span class="n">example</span><span class="p">.</span><span class="n">csr</span>
+<span class="cp"># OpenSSL va ici vous demander de nombreuses informations, "Common Name" devant contenir le FQDN</span>
+<span class="n">sudo</span> <span class="n">openssl</span> <span class="n">X509</span> <span class="o">-</span><span class="n">req</span> <span class="o">-</span><span class="n">days</span> <span class="mi">1095</span> <span class="o">-</span><span class="n">in</span> <span class="n">example</span><span class="p">.</span><span class="n">csr</span> <span class="o">-</span><span class="n">signkey</span> <span class="n">example</span><span class="p">.</span><span class="n">key</span> <span class="o">-</span><span class="n">out</span> <span class="n">example</span><span class="p">.</span><span class="n">crt</span>
+<span class="cp"># enfin, nous générons la clé, d'une durée de vie de 3 ans</span>
+</pre></div>
+
+
+<p>Bien entendu, si vous voulez utiliser une clé wildcard, il vous faut préciser
+<code>*.example.com</code> comme common name.
+Une fois la clé générée, il faut dire aux différents services de l'utiliser, et
+de n'utiliser que des ciphers PFS. La méthode dépend donc du service.
+Je vais lister ici les methodes pour quelques services que j'utilise :</p>
+<h3>apache :</h3>
+<div class="highlight"><pre><span class="cp"># /etc/apache2/mods_enabled/ssl.conf</span>
+<span class="cp"># [...]</span>
+<span class="n">SSLProtocol</span> <span class="n">all</span> <span class="o">-</span><span class="n">SSLv2</span> <span class="o">-</span><span class="n">SSLv3</span>
+<span class="n">SSLHonorCipherOrder</span> <span class="n">on</span>
+<span class="n">SSLCipherSuite</span> <span class="s">"EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \</span>
+<span class="s"> EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \</span>
+<span class="s"> EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"</span>
+<span class="cp"># [...]</span>
+<span class="cp"># /etc/apache2/sites-enabled/default-ssl</span>
+<span class="cp"># [...]</span>
+<span class="n">SSLEngine</span> <span class="n">on</span>
+<span class="n">SSLCertificateFile</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span>
+<span class="n">SSLCertificateKeyFile</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span>
+<span class="cp"># [...]</span>
+</pre></div>
+
+
+<h3>nginx :</h3>
+<div class="highlight"><pre><span class="cp"># /etc/nginx/nginx.conf </span>
+<span class="cp"># [...]</span>
+<span class="n">ssl_protocols</span> <span class="n">TLSv1</span> <span class="n">TLSv1</span><span class="mf">.1</span> <span class="n">TLSv1</span><span class="mf">.2</span><span class="p">;</span>
+<span class="n">ssl_prefer_server_ciphers</span> <span class="n">on</span><span class="p">;</span>
+<span class="n">ssl_ciphers</span> <span class="s">"EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \</span>
+<span class="s"> EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \</span>
+<span class="s"> EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"</span><span class="p">;</span>
+<span class="cp"># [...]</span>
+<span class="cp"># /etc/nginx/sites-enabled/default-ssl</span>
+<span class="cp"># [...]</span>
+<span class="n">ssl</span> <span class="n">on</span><span class="p">;</span>
+<span class="n">ssl_certificate</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span>
+<span class="n">ssl_certificate_key</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span>
+<span class="cp"># [...]</span>
+</pre></div>
+
+
+<h3>prosody (jabber) :</h3>
+<div class="highlight"><pre><span class="cp"># tout d'abord, lancez la commande suivante :</span>
+<span class="n">sudo</span> <span class="n">openssl</span> <span class="n">dhparam</span> <span class="o">-</span><span class="n">out</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">prosody</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">dh</span><span class="o">-</span><span class="mf">2048.</span><span class="n">pem</span> <span class="mi">2048</span>
+<span class="cp"># ensuite, pour chaque VirtualHost dans /etc/prosody/prosody.conf :</span>
+<span class="n">ssl</span> <span class="o">=</span> <span class="p">{</span>
+ <span class="n">dhparam</span> <span class="o">=</span> <span class="s">"/etc/prosody/certs/dh-2048.pem"</span><span class="p">;</span>
+ <span class="n">key</span> <span class="o">=</span> <span class="s">"/etc/certs/example.com.key"</span><span class="p">;</span>
+ <span class="n">certificate</span> <span class="o">=</span> <span class="s">"/etc/certs/example.com.crt"</span><span class="p">;</span>
+<span class="p">}</span>
+<span class="cp"># la cipher suite de prosody utilise par défaut EDH et EECDH</span>
+</pre></div>
+
+
+<h3>postfix (email) :</h3>
+<div class="highlight"><pre><span class="cp"># /etc/postfix/main.cf</span>
+<span class="cp"># [...]</span>
+<span class="n">smtpd_tls_cert_file</span> <span class="o">=</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span>
+<span class="n">smtpd_tls_key_file</span> <span class="o">=</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span>
+<span class="n">tls_preempt_cipherlist</span> <span class="o">=</span> <span class="n">yes</span>
+<span class="n">smtpd_tls_eecdh_grade</span> <span class="o">=</span> <span class="n">strong</span>
+<span class="n">smtdp_tls_mandatory_ciphers</span> <span class="o">=</span> <span class="n">high</span>
+<span class="n">smtpd_tls_mandatory_exclude_ciphers</span> <span class="o">=</span> <span class="n">aNULL</span><span class="p">,</span> <span class="n">eNULL</span><span class="p">,</span> <span class="n">MD5</span><span class="p">,</span> <span class="n">LOW</span><span class="p">,</span> <span class="mi">3</span><span class="n">DES</span><span class="p">,</span> <span class="n">EXP</span><span class="p">,</span> <span class="n">PSK</span><span class="p">,</span> <span class="n">SRP</span><span class="p">,</span> <span class="n">DSS</span>
+<span class="n">smtpd_tls_security_level</span> <span class="o">=</span> <span class="n">encrypt</span>
+<span class="n">smtpd_tls_mandatory_protocols</span> <span class="o">=</span> <span class="o">!</span><span class="n">SSLv2</span><span class="p">,</span> <span class="o">!</span><span class="n">SSLv3</span>
+<span class="n">smtpd_use_tls</span> <span class="o">=</span> <span class="n">yes</span>
+<span class="cp"># [...]</span>
+</pre></div>
+
+
+<h3>dovecot (imap) :</h3>
+<div class="highlight"><pre><span class="cp"># /etc/dovecot/dovecot.conf </span>
+<span class="cp"># [...]</span>
+<span class="n">ssl_cert</span> <span class="o">=</span> <span class="o"></</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">crt</span>
+<span class="n">ssl_key</span> <span class="o">=</span> <span class="o"></</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">example</span><span class="p">.</span><span class="n">com</span><span class="p">.</span><span class="n">key</span>
+<span class="n">ssl_cipher_list</span> <span class="o">=</span> <span class="n">HIGH</span><span class="o">+</span><span class="n">kEDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">+</span><span class="n">kEECDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">:!</span><span class="n">PSK</span><span class="o">:!</span><span class="n">SRP</span><span class="o">:!</span><span class="mi">3</span><span class="n">DES</span><span class="o">:!</span><span class="n">aNULL</span>
+</pre></div>
+
+
+<p>Voila. Pour d'autres protocoles/services, je vous invite a RTFM^W vous reporter
+au manuel approprié.</p>
+<p>Cela étant dit, je conseille a tout le monde d'aller voir la conférence dans le
+disclaimer, et tant qu'a faire la conférence du même hacker <a href="https://www.youtube.com/watch?v=8N4sb-SEpcg">SSL and the future
+of Authenticity</a> qui parle de son
+implémentation d'une technologie "remplaçant" le système de CAs qui existe
+actuellement.</p>WxcafeFri, 30 May 2014 08:25:00 +0200tag:,2014-05-30:home/wxcafe/code/blog-source/output/posts/SSL-ou-la-securite-sur-internet/Redesign du blog, etcfile:///home/wxcafe/code/blog-source/output/posts/redesign-du-blog/<p>Comme vous avez pu le remarquer, ce blog a "un peu" changé récemment.</p>
+<p>Du coup, expliquons. J'ai récemment monté <a href="http://serverporn.fr">serverporn</a>, et ai par la même
+occasion découvert <a href="http://getpelican.com">pelican</a>. J'ai tout de suite accroché a ce générateur de
+site statique en python, du fait de son efficacité, de sa facilité d'utilisation
+et de sa grande customisation. En gros, pelican est un logiciel qui prend des
+fichiers markdown ou reStructuredText, les passe a la moulinette d'un "thème"
+constitué de templates pour les fichiers html et l'organisation du projet et
+d'une partie "statique" contenant le css, et les autres fichiers nécessaires au
+projet, et en fait des pages html. </p>
+<p>Globalement, un thème est constitué ainsi :</p>
+<div class="highlight"><pre><span class="n">th</span><span class="err">è</span><span class="n">me</span>
+<span class="err">├──</span> <span class="k">static</span>
+<span class="err">│</span> <span class="err">├─</span> <span class="n">css</span>
+<span class="err">│</span> <span class="err">│</span> <span class="err">└─</span> <span class="p">[</span><span class="n">css</span> <span class="n">files</span><span class="p">]</span>
+<span class="err">│</span> <span class="err">├─</span> <span class="n">img</span>
+<span class="err">│</span> <span class="err">│</span> <span class="err">└─</span> <span class="p">[</span><span class="n">image</span> <span class="n">files</span><span class="p">]</span>
+<span class="err">│</span> <span class="err">└─</span> <span class="n">js</span>
+<span class="err">│</span> <span class="err">└─</span> <span class="p">[</span><span class="n">javascript</span> <span class="n">files</span><span class="p">]</span>
+<span class="err">└──</span> <span class="n">template</span>
+ <span class="err">├─</span> <span class="n">base</span><span class="p">.</span><span class="n">html</span>
+ <span class="err">├─</span> <span class="n">index</span><span class="p">.</span><span class="n">html</span>
+ <span class="err">├─</span> <span class="n">page</span><span class="p">.</span><span class="n">html</span>
+ <span class="err">├─</span> <span class="p">[...]</span>
+ <span class="err">└─</span> <span class="n">article</span><span class="p">.</span><span class="n">html</span>
+</pre></div>
+
+
+<p>Sachant que les fichiers .html sont en réalité des fichiers suivant la syntaxe
+django, et utilisent des variables particulières telles <code>{{ article.content }}</code>,
+par exemple. La syntaxe complète est très bien documentée dans la <a href="http://docs.getpelican.com/en/3.2/themes.html#templates-and-variables">doc</a> de
+pelican.</p>
+<p>L'un des grands avantages de pelican est aussi la facilité qu'il offre quand a
+la mise a jour du blog.<br />
+En effet, il offre un système de Makefiles permettant, grâce a de nombreuses
+cibles de compilation, de régénérer le site entier, de ne générer que les
+fichiers modifiés depuis la dernière génération, de générer uniquement les
+fichiers n'existant pas la dernière fois, etc...
+La gestion du projet en devient donc très simple, puisque après avoir écrit un
+article, il suffit de faire un <code>make html</code> pour mettre a jour le blog.</p>
+<p>De plus, le système de wordpress commençait a ne plus me convenir, du fait du
+manque de customisation, du fait que ça soit du PHP (beurk), etc. La, avec
+pelican, je contrôle bien plus ce qui est mis sur le serveur (puisque c'est moi
+qui ait modifié les templates et le css), c'est lisible (puisque c'est du
+python, par opposition au PHP...), et c'est plus "efficace". Le markdown est
+très pratique, je peux utiliser mon éditeur de texte de prédilection pour faire
+les articles, je n'ai pas besoin d'un accès continu au net, bref, c'est plus
+efficace.</p>
+<p>En ce qui concerne les points négatifs : </p>
+<ul>
+<li>
+<p>Perte des commentaires:
+ Je vous propose de vous référer a l'article de Gordontesos <a href="http://gordon.re/hacktivisme/la-necessite-des-commentaires.html">ici</a> quand a
+ mon avis sur ce sujet.</p>
+</li>
+<li>
+<p>Perte du bouton flattr:
+ Il va bientôt être remis, c'est juste un manque de temps de ma part, mais vu
+ que toutes les pages passent par les mêmes templates, c'est assez facile a
+ faire.</p>
+</li>
+<li>
+<p>Perte du spam:
+ Pourquoi c'est dans les points négatifs, ca?</p>
+</li>
+<li>
+<p>Temps d'adaptation et d'appréhension du système:
+ Oui, pendant encore un certain temps, il y aura des glitchs plus ou moins
+ réguliers sur le blog, c'est parce que j'apprend a me servir de ce système
+ et que j'apprend du css et du html. Ca arrive, ca passera, mais dans tous
+ les cas ca me permet d'apprendre plein de choses, donc je mets plutôt ca
+ dans la catëgorie positive.</p>
+</li>
+</ul>
+<p>Voila, c'est mon retour d'expérience sur pelican. A plus. </p>wxcafeWed, 12 Jun 2013 19:14:00 +0200tag:,2013-06-12:home/wxcafe/code/blog-source/output/posts/redesign-du-blog/Updatefile:///home/wxcafe/code/blog-source/output/posts/update/<p>Juste une petite note pour annoncer le prochain article, consacré a la
+fabrication d'une PirateBox basée sur un Raspberry Pi. Voila, a bientôt
+sur le blog!</p>WxcafeSat, 05 Jan 2013 18:32:00 +0100tag:,2013-01-05:home/wxcafe/code/blog-source/output/posts/update/Update a propos du blogfile:///home/wxcafe/code/blog-source/output/posts/update-a-propos-du-blog/<p>Bonsoir! Un petit post pour faire un peu le point sur ce blog.<br />
+Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais
+que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y
+avoir un tantinet réfléchi, ceci est du a deux points principaux :</p>
+<ul>
+<li>
+<p>Tout d'abord, le manque d'inspiration, tout simplement. C'est assez
+compliqué de trouver des sujets intéressants liés a l'informatique, et
+qui méritent un article. Je vous invite d'ailleurs a me suggérer des
+sujets via les commentaires ou twitter (<a href="https://twitter.com/wxcafe">@Wxcafe</a>)</p>
+</li>
+<li>
+<p>Ensuite, le délai de 8 jours est trop court pour me permettre de faire
+les recherches nécessaires, tout en manageant mes cours et mon temps
+libre.</p>
+</li>
+</ul>
+<p>A cause de cela, j'ai pris la décision de changer le rythme de parution
+des articles a un *minimum* d'un post tous les 10 jours. Bien entendu,
+si j'ai de l'inspiration en trop, plus de posts sont envisageables.</p>
+<p>Voila. A part ca, je tiens a vous remercier de me lire (c'est assez
+étonnant de voir ca...), et je précise que je vais ajouter une page
+About Me, qui bien entendu rassemblera des informations sur moi, ma vie,
+mon oeuvre :P</p>
+<p>Ceci dit, je vais bosser un peu sur le prochain article.</p>
+<p>A plus tard!</p>WxcafeTue, 18 Sep 2012 16:57:00 +0200tag:,2012-09-18:home/wxcafe/code/blog-source/output/posts/update-a-propos-du-blog/Débuts, présentation, etc...file:///home/wxcafe/code/blog-source/output/posts/debuts-presentation-etc/<p>Bonjour!</p>
+<p>Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur
+Twitter, mais aussi sur IRC (Je traîne pas mal sur
+irc.freenode.net/##nolife et #debian-fr)</p>
+<p>J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je
+fais partie de ce genre de personne qui sont capables d'investir tout
+leur temps et leur énergie a s’intéresser a un sujet en particulier, et
+qui ne peuvent pas vivre sans leurs passions, avec une petite différence
+cependant, qui est que je m’intéresse a plusieurs choses :
+l'informatique, qui est un champ tellement large qu'on peut passer une
+vie a apprendre des choses dessus, et plus particulièrement à
+l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres
+{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les
+trolls seront a partir de maintenant indiqués avec le tag [tr]] du
+libre, je préfère utiliser de l'open-source si c'est possible},
+programmation en C, python et java, etc...) , mais aussi a
+l’électronique. </p>
+<p>Dans un tout autre registre, je m’intéresse aussi
+beaucoup aux différents aspects du féminisme et des égalités sexuelles
+(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) ,
+et a la culture dite "geek" en général.</p>
+<p>Je tenterai de poster ici le plus souvent possible, mais j'ai de gros
+problèmes en terme de régularité de post, donc ne vous inquiétez pas si
+vous ne voyez rien pendant deux semaines.</p>
+<p>Merci beaucoup de votre attention, et a bientôt!</p>WxcafeSat, 18 Aug 2012 20:27:00 +0200tag:,2012-08-18:home/wxcafe/code/blog-source/output/posts/debuts-presentation-etc/
\ No newline at end of file
diff --git a/output/feeds/feed.rss.programmation.xml b/output/feeds/feed.rss.programmation.xml
new file mode 100644
index 0000000..11e7258
--- /dev/null
+++ b/output/feeds/feed.rss.programmation.xml
@@ -0,0 +1,198 @@
+
+Wxcaféfile:///home/wxcafe/code/blog-source/output/Sat, 08 Sep 2012 18:15:00 +0200Introduction a bash en tant que language de programmation.file:///home/wxcafe/code/blog-source/output/posts/introduction-a-bash-en-tant-que-language-de-programmation/<p>L’interpréteur de commandes bash (Bourne Again SHell)
+est possiblement le shell le plus connu, notamment grâce a son
+intégration en tant que shell par défaut dans les distributions Linux
+les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva -
+Mageia, etc...).</p>
+<p>Cependant, il n'est souvent connu qu'en tant qu’interpréteur de
+commande. Alors qu'en réalité, le bash est un langage de programmation
+(presque) complet! Ainsi, il intègre les structures de contrôle
+habituelles ( pour mémoire, les structures de contrôle comprennent les
+conditions (les ifs), les boucles (les while), et les choix (les case),
+entre autres.), et est donc ce que l'on pourrait appeler un langage de
+script, interprété, de la même façon que python, a la difference près
+qu'il contient un prompt (un système d'entrée de commande interactif)
+bien plus complet et développé que python. </p>
+<p>Cependant, les programmes en bash ne sont executables que dans un
+environnement de type UNIX, et donc pas sous Windows (cygwin
+(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous
+windows. Il faut malgré tout convenir que cet environnement est bien
+plus compliqué a manipuler, et globalement ne permet pas d'acceder a des
+portages de qualité satisfaisante.)</p>
+<p>Ainsi, il est possible de créer des fichiers .sh, contenant des
+instructions bash mises a la suite (de la même façon qu'un script BATCH
+Windows .bat), et faisant appel autant aux commandes internes de bash,
+aussi bien que les commandes externes mises en place par les programmes
+installés sur le système, exactement comme dans une invite de commande.
+Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit
+panda roux directement dans la boite magique, tandis qu'un if
+[condition] suivi d'un then (quelque chose) lancera le fameux quelque
+chose suscité si la condition est vérifiée. Un peu comme en C, quoi. </p>
+<p>De cette façon, et avec quelques informations et connaissances, il est
+facile de comprendre le fonctionnement de la programmation en bash.
+Quelques exemples commentés:</p>
+<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash </span>
+<span class="c"># La ligne du dessus est très importante, c'est elle qui dit a bash quel doit être </span>
+<span class="c"># l'interpreteur des commandes écrites dans ce script. Ici, on dit a bash d'interpréter </span>
+<span class="c"># lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire </span>
+<span class="c"># executer du python, par exemple, en mettant #!/usr/bin/python a la place.</span>
+<span class="nb">echo</span> <span class="s2">"this is a test of bash as a simple script manager"</span> <span class="c"># echo est une commande d'affichage de message.</span>
+<span class="nb">echo</span> <span class="s2">"what's your name, user?"</span>
+<span class="nb">read </span>your_name <span class="c"># la commande read permet de demander a l'utilisateur de donner une </span>
+<span class="c"># information, stockée dans la variable en paramètre. </span>
+<span class="nb">echo</span> <span class="nv">$your_name</span> <span class="s2">"is your name"</span> <span class="c"># echo permet aussi d'afficher la valeur de variables. </span>
+<span class="c"># Ici, on renvoie la variable remplie précédemment, suivie d'un message. </span>
+<span class="nb">exit</span> <span class="c"># cet appel a exit n'est pas obligatoire, mais donne un aspect plus </span>
+<span class="c"># propre au code. Il ne quittera pas la session de terminal, cependant.</span>
+</pre></div>
+</td></tr></table>
+
+<p>Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite
+d'être clair quand aux capacités et a la simplicité du bash en tant que
+language de programmation. Alors en effet, nous n'avons ici absolument
+pas utilisé les capacités de bash en lui même, et n'avons fait que le
+renvoyer a des programmes externes (sauf read, il est vrai). Voyons
+maintenant la syntaxe de bash quand il s'agit d'utiliser les structures
+de contrôle:</p>
+<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash </span>
+<span class="nb">echo</span> <span class="s2">"welcome to this second bash program. would you please kindly enter the name of the machine you're running this on?"</span>
+<span class="nb">read </span>host_name
+<span class="k">if</span> <span class="o">[</span> <span class="nv">$host_name</span> <span class="o">==</span> <span class="nv">$HOSTNAME</span> <span class="o">]</span> <span class="c">## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système. </span>
+<span class="k">then </span><span class="nb">echo</span> <span class="s2">"you told the truth!"</span>
+<span class="k">fi</span> <span class="c">## le fi est la commande fermant le if, tout comme le EndIf en basic. C'est un peu vieillot, mais important en bash. </span>
+<span class="k">if</span> <span class="o">[</span> <span class="nv">$host_name</span> !<span class="o">=</span> <span class="nv">$HOSTNAME</span> <span class="o">]</span> <span class="c">## l'opérateur != est l'inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes. </span>
+<span class="k">then </span><span class="nb">echo</span> <span class="s2">"you lied!"</span>
+<span class="k">fi </span>
+<span class="nb">exit</span>
+</pre></div>
+</td></tr></table>
+
+<p>Voila un petit programme permettant d'apprendre la syntaxe du if en
+bash. comme vous pouvez le voir, le language est plutôt lite, et la
+structure if n'est pas très difficile a prendre en main.</p>
+<p>Passons maintenant au while:</p>
+<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
+2
+3
+4
+5
+6
+7</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash</span>
+<span class="nb">echo</span> <span class="s2">"what is your name?"</span>
+<span class="nb">read </span>name
+<span class="k">while</span> <span class="o">[</span> 1 < 10 <span class="o">]</span> <span class="c">## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.</span>
+<span class="k">do </span><span class="nb">echo</span> <span class="s2">"i love"</span> <span class="nv">$name</span>
+<span class="k">done</span>
+<span class="nb">exit</span>
+</pre></div>
+</td></tr></table>
+
+<p>Ce petit programme permet d'observer les bases de while (qui est la
+boucle de base en bash).</p>
+<p>Le troisième opérateur de bash est case. Voyons:</p>
+<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24</pre></div></td><td class="code"><div class="highlight"><pre><span class="c">#!/bin/bash</span>
+<span class="nb">echo</span> <span class="s2">"please enter a number between one and five"</span>
+<span class="nb">read </span>number
+<span class="k">case</span> <span class="nv">$number</span> in
+1<span class="o">)</span>
+<span class="nb">echo</span> <span class="s2">"the choosen number was one"</span>
+;;
+2<span class="o">)</span>
+<span class="nb">echo</span> <span class="s2">"the choosen number was two"</span>
+;;
+3<span class="o">)</span>
+<span class="nb">echo</span> <span class="s2">"the choosen number was three"</span>
+;;
+4<span class="o">)</span>
+<span class="nb">echo</span> <span class="s2">"the choosen number was four"</span>
+;;
+5<span class="o">)</span>
+<span class="nb">echo</span> <span class="s2">"the choosen number was five"</span>
+;;
+*<span class="o">)</span>
+<span class="nb">echo</span> <span class="s2">"this number is not correct"</span>
+;;
+<span class="k">esac</span>
+<span class="nb">exit</span>
+</pre></div>
+</td></tr></table>
+
+<p>case est un opérateur plus complexe a utiliser a bon escient, et sert a
+faire des ifs multiples sans avoir a taper des dizaines de lignes de
+code.<br />
+(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre
+que le code vérifie chacune des conditions : le 1) est validé si la
+valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc..
+le *) désigne toutes les valeurs, et est donc validé si aucune autre
+valeur n'a précédemment acceptée.</p>
+<p>Quelques notions manquent ici:<br />
+- les nombres aléatoires sont générés par un appel a la variable
+\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a
+16 bits donc). il est possible de faire des invocations a des nombres
+aléatoires plus grands, mais les méthodes permettant de faire cela sont
+plus complexes, et je ne les aborderai donc pas ici.<br />
+- comme vous avez pu le constater, les variables sont désignées en tant
+que telles par l'utilisation d'un symbole \$ au début de leur nom.
+Ainsi, echo number renverra "number", tandis que echo \$number renverra
+le résultat de la variable \$number.<br />
+être utilisées dans un programme bash.<br />
+- comme vous avez pu le constater, les commandes doivent tenir en
+théorie en une ligne. Cependant, le caractère \ permet de retourner a
+la ligne en faisant considérer a bash qu'il s'agit de la même ligne.</p>
+<p>Globalement, il faut admettre que bash n'a pas vocation a être un
+langage de programmation extrêmement développé. Sans framework
+graphique, avec peu de manières d'utiliser de grandes variables, ou
+encore une gestion de la mémoire risible, bash n'a rien d'un langage de
+développement professionnel.<br />
+Cependant, le simple fait qu'il soit considéré comme un langage de
+programmation a part entière font de lui un langage de script d'une
+puissance incontestable, et sa simplicité et sa grande popularité font
+de lui un langage de choix pour apprendre la programmation simplement et
+sans trop se prendre la tête.</p>
+<p>J'espère que cet article aura été utile a certain-e-s, et je vous
+souhaite bonne chance dans votre découverte de la programmation (n'allez
+pas voir ceux qui font de l'orienté objet, c'est des méchants :3)</p>WxcafeSat, 08 Sep 2012 18:15:00 +0200tag:,2012-09-08:home/wxcafe/code/blog-source/output/posts/introduction-a-bash-en-tant-que-language-de-programmation/
\ No newline at end of file
diff --git a/output/feeds/feed.rss.teaching.xml b/output/feeds/feed.rss.teaching.xml
new file mode 100644
index 0000000..3b4ad13
--- /dev/null
+++ b/output/feeds/feed.rss.teaching.xml
@@ -0,0 +1,344 @@
+
+Wxcaféfile:///home/wxcafe/code/blog-source/output/Sat, 16 May 2015 02:00:00 +0200SSL - STARTTLSfile:///home/wxcafe/code/blog-source/output/posts/ssl-starttls/<p>Le chiffrement SSL pour les services en ligne est un problème relativement
+récent, par rapport a l’histoire d’Internet. Sa mise en place pose
+problème : les protocoles existants ne s’accommodent qu’assez mal de recevoir
+soudainement un flot de données chiffrées, mais développer de nouveaux
+protocoles est complexe et n’apporte rien d’intéressant. Pour palier a ce
+problème, deux solutions sont apparues.</p>
+<p>Le première consiste à faire écouter les services sur un
+autre port, dans un tunnel SSL. De cette façon, le service existant écoute
+normalement, mais il ne répond pas directement aux requêtes. A la place, un
+tunnel SSL est mis en place, et les requêtes et les réponses passent dans le
+tunnel (ou elles apparaissent donc chiffrées pour l’extérieur). Cela permet de
+proposer un service chiffré en modifiant de façon minimale le programme, au prix
+de devoir aussi changer tous les clients, et de devoir les orienter sur un autre
+port.</p>
+<p>L’autre approche qui a été utilisée est une approche d’<em>upgrade</em>. La
+communication commence en mode non chiffré, puis le client demande l’upgrade de
+la connexion vers le mode chiffré s’il le supporte, les deux machines
+machines font un <em>handshake</em> SSL et la communication continue a travers le
+tunnel SSL. Le service peut continuer a écouter sur son port habituel, et seuls
+les clients capables de passer en SSL le feront, ce qui permet de faire la “mise
+a jour” en douceur.</p>
+<p>Il est souvent demandé quelle est la meilleure méthode pour mettre en place un
+service – laisser un port pour le SSL et un pour le trafic non chiffré, ou bien
+un seul, avec <code>STARTTLS</code>, qui <em>upgrade</em> les connexions si nécessaire.<br />
+La réponse est que <code>STARTTLS</code> est plus interessant, pour plusieurs raisons. Tout
+d’abord, il permet de n’utiliser qu’un seul port : ça permet de simplifier la
+configuration du firewall. En plus de ça, il permet aux clients “anciens” (ceux
+qui ne supportent pas SSL, donc ceux qui devraient être changés) de toujours se
+connecter, même si cela signifie que leurs informations seront transmises en
+clair. Surtout, il permet d’éviter aux utilisateurs d’avoir a configurer leurs
+clients. Si le client supporte le chiffrement, il l’activera de lui même s’il
+voit qu’il est disponible.<br />
+Bref, mettez en place du <code>STARTTLS</code>, et pas du SSL. C’est mieux pour la sécurité
+de tout le monde.</p>WxcafeSat, 16 May 2015 02:00:00 +0200tag:,2015-05-16:home/wxcafe/code/blog-source/output/posts/ssl-starttls/Les systèmes de fichiersfile:///home/wxcafe/code/blog-source/output/posts/les-systemes-de-fichiers/<p>Un système de fichiers. Vous en avez surement déjà entendu parlé si vous
+avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous
+connaissez surement NTFS, EXT4, ou encore FAT32.</p>
+<p>Ces différents noms désignent en effet des systèmes de fichiers. Mais
+qu'est-ce qu'un système de fichiers?</p>
+<p>Pour comprendre cela, il faut déjà savoir ce qu'est exactement un
+fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la
+plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio
+(<a href="http://fr.wikipedia.org/wiki/Kibioctet#Multiples_normalis.C3.A9s">kibioctet</a>), en fonction du système de fichier utilisé.), qui est
+donc composé de bits, interprétés différemment en fonction du type de
+fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il
+n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent,
+ou il commence ni où il s'arrête (je schématise un peu, mais c'est
+l'idée). </p>
+<p>Ainsi, le système de fichier donne un cadre et un standard à
+l'arborescence des fichiers. Par exemple, le système de fichier ext4
+utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de
+disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio
+et mesurer la taille des fichiers en blocs de cette façon. Les systèmes
+de fichiers nécessitent l'inclusion de drivers dans le noyau pour
+pouvoir être pris en compte. </p>
+<p>Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs,
+reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu
+près tout type de partition récente.</p>
+<p>Il convient de bien faire la différence entre le système de fichier et
+l'arborescence des fichiers. Si l'arborescence des fichiers est en fait
+une entité virtuelle englobant la racine / et tous les fichiers et
+dossiers contenus dedans, le système de fichier permet a votre système
+GNU/Linux de distinguer les différents fichiers composants cette
+arborescence.</p>
+<p>Détaillons maintenant les types de fichiers les plus répandus:</p>
+<ul>
+<li>
+<p>FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table,
+ soit la définition d'un système de fichier), remplissent leur rôle le
+ plus simplement possible. Ne permettant (historiquement) que des noms de
+ 8 caractères (plus extension de trois caractères), ni chiffrement, ni
+ système de distinction d'utilisateurs (DOS étant un système
+ mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32,
+ utlisants respectivement des blocs de 16 et 32 Kio.</p>
+</li>
+<li>
+<p>NTFS :. Le NTFS (pour New Technology File System, rapport a Windows
+ NT) est un système de fichier qui est apparu avec Windows XP, et qui
+ était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a
+ FAT différentes capacités dont le chiffrement, les liens symboliques, la
+ compression et les quotas pour les volumes, permettant de limiter la
+ taille maximum occupée dans une partition.</p>
+</li>
+<li>
+<p>ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012.
+ Ne différant pas énormément de NTFS, je le mentionne principalement
+ parce qu'il est prévu qu'il soit le défaut pour Windows 8.
+ Il apporte principalement la redondance, c'est a dire que chaque
+ fichier possède une somme de contrôle en 64 bits stockée dans un fichier
+ séparé pour éviter les corruption de disque.</p>
+</li>
+<li>
+<p>Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers
+ les plus utilisés sous linux pour le grand public. (Je traiterai ici
+ d'ext4, puisque c'est le plus récent.) Il dispose de toutes les
+ fonctions que l'on peut attendre d'un système de fichiers moderne, ni
+ plus ni moins. Ainsi, ext4 est un système de fichiers journalisé,
+ acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite
+ "par extent", ce qui signifie que la création d'un fichier réserve
+ automatiquement les zones contiguës de façon a réduire la fragmentation.</p>
+</li>
+<li>
+<p>ReiserFS : ce système de fichiers, créé par le (légèrement mégalo)
+ programmeur Hans Reiser, est a retenir pour avoir été le premier système
+ de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des
+ 4 milliards. Le but de ce système est de créer un système polyvalent, a
+ la fois système de fichiers et base de donnée (de part sa grande
+ capacité en terme de nombre de fichiers et de l'utilisation d'un
+ journal.)</p>
+</li>
+<li>
+<p>Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi
+ l'allocation par extent, mais possède de plus un système de
+ sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers
+ montées en même temps (système pratique et utile pour faire des
+ snapshots de systèmes.). Il permet aussi de redimensionner a chaud la
+ taille des partitions, en les agrandissant ou en les rétrécissant, est
+ compatible avec <a href="http://fr.wikipedia.org/wiki/LVM">LVM</a>, a un système de checking intégré (btrfsck), et
+ utilise un algorithme de compression appelé LZ4, qui accélère les accès
+ aux fichiers compressés d'environ 30% par rapport a LZO, le système
+ utilisé dans ext4.</p>
+</li>
+<li>
+<p>HFS+ : le système de fichier présent sur tous les macs a des capacités
+ relativement standards, et ressemble énormément a l'ext3. Il supporte
+ cependant les liens directs vers les dossiers, fonction rare sur les
+ systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau
+ dans les années a venir</p>
+</li>
+<li>
+<p>ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux
+ et *BSD, est, tel Btrfs, a la fois un système de fichier et un
+ remplaçant/compatible avec LVM, C'est un système de fichiers conçu
+ principalement pour les serveurs, et il intègre ainsi un système de
+ redondance des données pour éviter les corruptions, un mode RAID-Z
+ (apparenté au RAID5), des checks d’intégrité en continu, des snapshots,
+ etc...</p>
+</li>
+</ul>
+<p>Comme on a pu le voir, les systèmes de fichiers disponibles sont
+légions. Cependant, le plus adapté a Linux et a une utilisation grand
+public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier
+n'est pas aujourd'hui proposé par défaut sur les distributions les plus
+utilisées, au profit de l'ext4, qui commence a accuser son âge...</p>
+<p>Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au
+fonctionnement du système, sont en fait de première importance, et ce
+choix ne devrait pas être laissé au hasard, et être mis a jour
+régulièrement (pour éviter les failles de sécurité...)</p>
+<p>Bon courage, et bon choix pour votre prochain système.</p>WxcafeTue, 25 Sep 2012 10:28:00 +0200tag:,2012-09-25:home/wxcafe/code/blog-source/output/posts/les-systemes-de-fichiers/Les différentes couches d'un système d'exploitationfile:///home/wxcafe/code/blog-source/output/posts/les-differentes-couches-dun-systeme-dexploitation/<p>Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques
+années (plus ou moins, parce que j'ai toujours un Windows en dual boot,
+principalement pour les jeux (possiblement plus pour longtemps, avec
+l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou
+moins bien mon système. Or il y a plusieurs choses a savoir sur les
+systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est
+le système de couches.</p>
+<p>Un système d'exploitation (de type UNIX, \<troll>enfin un vrai système quoi.
+\</troll>) incorpore plusieurs systèmes de couches.</p>
+<p>Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique,
+c'est a dire que tous les composants sont intégrés au kernel. Ce qui
+signifie que rien ne peut être ajouté au noyau sans recompiler celui ci.
+Or, quand on sait que le noyau comprend entre autres les drivers du
+matériel et des systèmes de fichier, cela peut poser des problèmes quand
+a la taille du kernel et a la licence libre de ce dernier. </p>
+<p>Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui
+signifie que des modules peuvent être chargé a tout moment en cours
+d’exécution, ce qui permet l'utilisation de nouveaux systèmes de
+fichiers a chaud, ou l'insertion de matériel et l'installation de
+drivers sans interrompre l’exécution du système (Windows utilise un
+système de fausse installation de drivers pour le matériel externe, et
+un système de pré-installation des drivers pour les périphériques dits
+"plug and play")</p>
+<p>Après le noyau intervient le système. Or, au tous premiers instants du
+boot, les systèmes GNU/Linux utilisent un système permettant de limiter
+l'utilisation de ressources systèmes si elles ne sont pas nécessaires,
+et incorpore ainsi un système dit de "runlevels"</p>
+<p>Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce
+runlevel permet de tester le bon démarrage du système sans avoir a
+effectuer de manipulation pour le ré-éteindre</p>
+<p>Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté
+étant donné que ce runlevel donne accès a un système en étant
+automatiquement loggé en tant que root, avec tous les autres
+utilisateurs désactivés, de même que tous les systèmes de réseaux</p>
+<p>Le runlevel 2 est appelé mode multi user, et vous mets en face d'un
+système classique. en ligne de commande, mais avec tous les systèmes de
+réseau désactivés.</p>
+<p>Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux
+activés.</p>
+<p>Le runlevel 4 n'est pas officiellement défini, et est censé être
+activable en fonction des besoins de l'utilisateur. Sur la plupart des
+distributions grand public, ce runlevel est lié au...</p>
+<p>Runlevel 5! Multi-user, networking, with working GUI! c'est le système
+tel que vous le connaissez, avec l'interface graphique et le système de
+login graphique.</p>
+<p>Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine
+quand il devient le runlevel courant.</p>
+<p>(Il est a noter que Debian, et donc toutes les distribs qui en sont
+dérivées, ne font pas de distinction entre les differents runlevels du 2
+au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login
+et une interface graphique, et un mode réseau fonctionnel, bref avec des
+fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)</p>
+<p>Il est possible de changer de runlevel grâce a la commande runlevel
+(oui, c'est évident...)</p>
+<p>Les systèmes Linux utilisent aussi un système dit de SandBox , qui en
+informatique est un système permettant d'isoler les processus les uns
+des autres. Ainsi, la pile réseau, qui est le système auquel les
+différents processus envoient les différents paquets qui doivent sortir
+de la machine , et qui redistribue ces paquets, est isolée du reste du
+système, en cela qu'aucun des autres processus ne peuvent modifier cette
+pile hors du runlevel 1 ou 2.</p>
+<p>De la même façon, le navigateur chrom/ium fait fonctionner tous les
+onglets, ainsi que toutes les extensions, dans des processus différents.
+Certaines distributions linux implémentent un système de cette sorte
+pour toutes les applications, ou seulement pour certaines. ainsi Chakra
+Linux a un système d'installation d'applications dans des disques
+virtuels, ce qui permet une sécurité totale du processus.</p>
+<p>Voila, j'espère vous en avoir appris un peu sur le fonctionnement des
+différentes couches de linux, et j'espère que cet article vous poussera
+a tester un peu votre système et a vous amuser avec les différents
+runlevels</p>WxcafeThu, 06 Sep 2012 23:29:00 +0200tag:,2012-09-06:home/wxcafe/code/blog-source/output/posts/les-differentes-couches-dun-systeme-dexploitation/La programmation expliquée simplementfile:///home/wxcafe/code/blog-source/output/posts/la-programmation-expliquee-simplement/<p>Salut!<br />
+Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire
+récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé
+pas mal de temps assez occupé. </p>
+<p>Enfin, après un certain temps a farfouiller au millieu des connecteurs
+SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques
+durs, je suis de retour pour un court article.<br />
+Du coup, je m'étais dit que j'allais reprendre sur le thème de
+l'informatique expliquée au grand public, en tentant d'aller un peu plus
+loin que la dernière fois sur le thème de la programmation<br />
+Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur.
+Si a peu près tout le monde sait que "les ordinateurs, ils ne
+comprennent que les 1 et les 0!", peu de gens savent comment cela
+fonctionne en détail. </p>
+<p>Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà
+des notions de base en informatique. Ainsi, vous savez surement que les
+ordinateurs fonctionnent avec des programmes, qui sont composés de
+code.<br />
+Ainsi, il faut comprendre que le code (source) est "compilé" en un
+fichier "binaire". Un fichier binaire est un fichier comprenant les
+instructions telles qu’exécutées par le processeur, et donc absolument
+illisible pour un humain. </p>
+<p>La compilation est le processus qui transforme le code source en
+binaire executable. Les binaires ont, sous Windows, l'extension .exe,
+tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension
+particulière.<br />
+Ceci étant dit, il faut comprendre que certains langages sont plus
+proches que d'autres du langage processeur, les langages les plus
+proches sont dits de "bas niveau". Les langages les plus éloignés sont
+donc dits de haut niveau. </p>
+<p>Par exemple, l'assembleur est l'un des languages de plus bas niveau,
+tandis que python par exemple est un langage de plus haut niveau. Les
+langages de haut niveau sont souvent bien plus simples a comprendre et a
+apprendre que les langages de bas niveau </p>
+<p>Ainsi, en C, un langage de niveau relativement bas, pour afficher
+"hello world" sur l'écran, le code nécessaire est :</p>
+<div class="highlight"><pre><span class="cp">#include </span>
+<span class="kt">void</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
+<span class="n">printf</span><span class="p">(</span><span class="s">"hello world"</span><span class="p">);</span>
+<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>le même programme en python s'écrit :</p>
+<div class="highlight"><pre><span class="n">print</span> <span class="s">"hello world"</span>
+</pre></div>
+
+
+<p>et n'a pas besoin d'être compilé , puisqu'il peut être intepreté
+directement. </p>
+<p>Python utilise en effet un système similaire a Java en ayant un
+interpréteur dit "runtime" ou "temps réel", qui interprète le programme
+sans le compiler. Java utilise un système légèrement différent, puisque
+le code a besoin d'être compilé, mais est interpreté par un interpréteur
+et non par le processeur. </p>
+<p>Cette méthode permet le fameux "code once, run everywhere", ce qui
+signifie que le même code est exécutable sur quasiment tous les systèmes
+d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est
+disponible.)</p>
+<p>Voila, je vous laisse sur le fonctionnement de Java et de Python, et je
+vais me coucher.<br />
+A bientôt!</p>WxcafeMon, 27 Aug 2012 00:22:00 +0200tag:,2012-08-27:home/wxcafe/code/blog-source/output/posts/la-programmation-expliquee-simplement/GNU/Linux pour les non technophiles, ou l'OS libre pour votre grand-mèrefile:///home/wxcafe/code/blog-source/output/posts/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere/<p>GNU/Linux est un vaste et extraordinaire territoire technologique, mais
+je ne vais pas m'attarder ici sur les aspects profondément techniques de
+ce territoire pour faire plutôt une sorte d'introduction a ce qu'est
+vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de
+connaissances en informatique.</p>
+<p>GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un
+Système d'Exploitation. Un système d'exploitation est, pour simplifier,
+un ensemble d'outils informatiques qui vous permettent d'utiliser votre
+ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation
+de système d'exploitation (Operating System en anglais) est OS. Les 4
+principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et
+Solaris. Les trois derniers sont issus d'un autre système, plus ancien,
+nommé UNIX.</p>
+<p>De ce fait, on pourrait penser que Linux remplace complètement Windows
+une fois installé, et comprend une interface graphique, et toutes sortes
+d'utilitaires permettant a l'utilisateur d'utiliser le système (sous
+Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer.
+Pour l'interface graphique, pensez a... Pensez que votre système affiche
+autre chose que des lignes de commande.) Or non, une fois installé,
+Linux en lui même ne vous afficherait aucune interface graphique, et
+s'il est effectivement livré avec des utilitaires, ils ne sont que des
+programmes en ligne de commande. Autant les utilisateurs avancés sauront
+s'en servir, et pourront argumenter que c'est plus efficace ou plus
+rapide, autant les utilisateurs basiques préfèrent une interface
+graphique. Alors comment en obtenir une?</p>
+<p>Ici, il convient de faire une précision importante. Si il n'existe
+qu'une seule version de Windows, ou de Mac OS, il existe en fait
+plusieurs centaines de "versions" différentes de Linux. Appelées
+distributions, ces dernière sont développées par des groupes
+complètement séparés, et se basent sur le fait que Linux soit
+entièrement placé sous licence libre (ce qui leur permet de l'utiliser a
+leur guise, a condition que leur travail soit lui aussi placé sous
+licence libre). De ce fait, de nombreuses distributions existent et se
+développent en parallèle. On peut ainsi citer <a href="http://debian.org">Debian</a>, qui est l'une
+des distributions les plus importantes, ou encore <a href="http://ubuntu.com">Ubuntu</a>, qui est
+l'une des plus connues et des plus simples a utiliser.</p>
+<p>Ainsi, ces distributions intègrent une interface graphique. Cependant,
+grâce a la liberté dont bénéficient les développeurs sous Linux, il
+existe de nombreuses interfaces graphiques différentes : <a href="unity.ubuntu.com">Unity</a>, la
+nouvelle interface d'Ubuntu; <a href="gnome.org">GNOME</a> , une interface qui vise a la
+simplicité; ou encore <a href="http://kde.org/">KDE</a>, une interface utilisateur ressemblant a
+Windows 7.</p>
+<p>Ainsi, le choix astronomique de distributions Linux a bien un sens :
+chacune d'entre elle intègre des outils différents. Par exemple, Debian
+intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend
+particulièrement stable. Ubuntu intègre Unity, ce qui en fait une
+distribution particulièrement intuitive. Linux Mint intègre Cinnamon,
+qui est une version dérivée de GNOME 3, ce qui permet encore une autre
+expérience. Et Arch Linux n'intègre pas d'interface graphique du tout,
+ce qui permet a l'utilisateur de choisir entre les multiples interfaces
+existantes.</p>
+<p>Ce qu'il est important de retenir de cela, c'est que Linux est un OS
+complètement libre, ce qui signifie que n'importe qui peut modifier et
+utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi,
+Linux est un OS qui est véritablement créé par des passionnés, pour tous
+et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué
+a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus.
+Cependant, Linux donne la possibilité a l'utilisateur de le rendre
+affreusement complexe, mais aussi de le rendre adapté a ses besoins,
+quels que soient ceux ci. Et c'est la que réside l'incroyable puissance
+de ce Système d'Exploitation. Il est extraordinairement adaptable.</p>
+<p>N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas
+technophiles. Ils pourraient adorer, et peut être même le devenir :)</p>
+<p>A bientôt!</p>WxcafeWed, 22 Aug 2012 20:33:00 +0200tag:,2012-08-22:home/wxcafe/code/blog-source/output/posts/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere/
\ No newline at end of file
diff --git a/output/feeds/feed.rss.tutorial.xml b/output/feeds/feed.rss.tutorial.xml
new file mode 100644
index 0000000..dd04f48
--- /dev/null
+++ b/output/feeds/feed.rss.tutorial.xml
@@ -0,0 +1,368 @@
+
+Wxcaféfile:///home/wxcafe/code/blog-source/output/Fri, 07 Nov 2014 13:04:00 +0100OpenSMTPd comme serveur mail sous debianfile:///home/wxcafe/code/blog-source/output/posts/opensmtpd-debian/<p>J'avais dit il y a un certain temps que j'allais écrire un tutoriel expliquant
+comment gérer ses mails soi-même. Il se trouve que j'ai récemment décidé de
+changer le serveur qui héberge (entre autres) ce blog, et que ce dernier héberge
+aussi mes emails. J'ai donc totalement changé d'infrastructure quand a la
+gestion de mon système de mails.</p>
+<p>Ainsi, j'ai décidé de passer de Postfix a OpenSMTPd, changement que je voulais
+effectuer depuis un certain temps. <a href="https://opensmtpd.org">OpenSMTPd</a> est un
+projet originaire d'<a href="http://openbsd.org">OpenBSD</a> qui a pour but de fournir un
+serveur SMTP fiable, simple, rapide, et surtout sécurisé (les même buts que ceux
+qu'a le projet OpenBSD, globalement).</p>
+<p>Pour rappel, le système d'emails fonctionne d'une façon très simple : votre MUA
+(Mail User Agent, ou client email) contacte le MTA (Mail Transport Agent, ou
+serveur SMTP) de votre fournisseur email, qui contacte le MTA du fournisseur du
+destinataire, qui lui même contacte le MDA (Mail Delivery Agent) qui délivre le
+mail au destinataire.</p>
+<p>Si vous avez bien suivi, vous pouvez voir que je n'ai pas parlé de récupération
+ni de lecture des mails. C'est pour une raison simple, qui est que ces taches
+sont remplies par d'autres services encore (IMAP/POP pour la récupération depuis
+le serveur, des yeux pour la lecture).</p>
+<p>Or ce qui nous intéresse ici, ce n'est pas simplement d'envoyer et de recevoir
+des emails mais bien aussi de pouvoir les récupérer et les lire, et c'est pour
+ça que ce tutoriel ne parlera pas que d'OpenSMTPd mais aussi de
+<a href="http://dovecot.org/">Dovecot</a> qui fait office de serveur IMAP et
+<a href="http://www.ijs.si/software/amavisd/">amavis</a>/<a href="http://spamassassin.apache.org/">spamassassin</a>
+pour filtrer les mails entrants et sortants.
+Le schéma suivant explique la façon dont les mails sont gérés sur le système</p>
+<div class="highlight"><pre> <span class="err">╭────────────────╮</span> <span class="err">╭──────────╮</span>
+ <span class="err">│╭──────────────</span><span class="o">></span><span class="err">│────</span><span class="o">></span> <span class="n">to</span> <span class="n">filter</span> <span class="err">───</span><span class="o">></span><span class="err">│─╮</span> <span class="err">│</span>
+ <span class="n">mail</span> <span class="n">in</span> <span class="err">││</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">amavis</span> <span class="err">│</span>
+<span class="err">───────────</span><span class="o">></span><span class="err">│╯</span> <span class="n">OpenSMTPd</span> <span class="err">╭──│</span><span class="o"><</span><span class="err">───</span> <span class="n">from</span> <span class="n">filter</span><span class="o"><</span><span class="err">───│</span><span class="o"><</span><span class="err">╯</span> <span class="err">│</span>
+ <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╰──────────╯</span>
+ <span class="n">mail</span> <span class="n">out</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╭──────────╮</span>
+<span class="o"><</span><span class="err">───────────│</span><span class="o"><</span><span class="err">────────────┴─</span><span class="o">></span><span class="err">│─────</span><span class="o">></span> <span class="n">to</span> <span class="n">MDA</span> <span class="err">─────</span><span class="o">></span><span class="err">│─────────</span><span class="o">></span><span class="err">│──</span><span class="o">></span> <span class="n">to</span> <span class="n">user</span><span class="err">'</span><span class="n">s</span>
+ <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">dovecot</span> <span class="err">│</span> <span class="n">mailbox</span>
+ <span class="err">╰────────────────╯</span> <span class="err">╰──────────╯</span>
+</pre></div>
+
+
+<p>Normalement, ceci devrait être a peu près clair.
+Pour expliquer vite fait, les emails entrants (venant des utilisateurs mais
+aussi d'autres correspondants) sont transmis a OpenSMTPd, qui envoie tout a
+<code>amavis</code>, qui vérifie a la fois les spams et les malwares pour les mails
+venants de l'exterieur, et qui signe avec DKIM pour les mails venants de
+nos utilisateurs, puis qui rentransmet les mails filtrés/signés a OpenSMTPd,
+qui a ce moment-ci trie en fonction de la destination : les mails gérés
+par le domaine vont via dovecot dans les boites mail des destinataires
+locaux, les mails exterieurs vont directement vers le MTA du serveur
+distant.</p>
+<p>Voyons comment mettre cela en place. Tout d'abord, il faut décider de la façon
+dont les différents services vont communiquer.</p>
+<p>Déjà, amavis étant configuré par défaut pour écouter (en SMTP) sur le port
+10024 et répondre sur le port 10025 quand il s'agit de filtrer et
+écouter sur le port 10026 et répondre sur le port 10027 quand il s'agit de
+signer, nous allons profiter de cette configuration et donc lui parler en SMTP
+sur ces ports.</p>
+<p>Quand a Dovecot, nous allons lui transmettre les emails en LMTP (Local Mail
+Transfer Protocol), non pas sur un port mais via un socket (dans ce cas précis,
+<code>/var/run/dovecot/lmtp</code>).</p>
+<p>Ainsi, pour reprendre le schéma présenté plus haut :</p>
+<div class="highlight"><pre> <span class="err">╭───────────────╮</span> <span class="err">╭───────────╮</span>
+ <span class="err">│╭─────────────</span><span class="o">></span><span class="err">│──</span><span class="o">></span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10026</span><span class="p">)</span> <span class="err">──</span><span class="o">></span><span class="err">│─╮</span> <span class="err">│</span>
+ <span class="n">SMTP</span> <span class="n">in</span> <span class="err">││</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">amavis</span> <span class="err">│</span>
+<span class="err">────────</span><span class="o">></span> <span class="mi">25</span><span class="err">│╯</span> <span class="n">OpenSMTPd</span> <span class="err">╭──│</span><span class="o"><</span><span class="err">──</span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10027</span><span class="p">)</span> <span class="o"><</span><span class="err">──│</span><span class="o"><</span><span class="err">╯</span> <span class="p">(</span><span class="n">sign</span><span class="p">)</span> <span class="err">│</span>
+ <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╰───────────╯</span>
+ <span class="n">SMTP</span> <span class="n">out</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span>
+<span class="mi">25</span> <span class="o"><</span><span class="err">────────│</span><span class="o"><</span><span class="err">───────────╯</span> <span class="err">│</span>
+ <span class="err">╰───────────────╯</span>
+</pre></div>
+
+
+<p>Pour les mails sortants; et</p>
+<div class="highlight"><pre> <span class="err">╭───────────────╮</span> <span class="err">╭────────────╮</span>
+ <span class="err">│╭─────────────</span><span class="o">></span><span class="err">│──</span><span class="o">></span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10024</span><span class="p">)</span> <span class="err">──</span><span class="o">></span><span class="err">│─╮</span> <span class="err">│</span>
+ <span class="n">SMTP</span> <span class="n">in</span> <span class="err">││</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">amavis</span> <span class="err">│</span>
+<span class="err">────────</span><span class="o">></span> <span class="mi">25</span><span class="err">│╯</span> <span class="n">OpenSMTPd</span> <span class="err">╭──│</span><span class="o"><</span><span class="err">──</span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10025</span><span class="p">)</span> <span class="o"><</span><span class="err">──│</span><span class="o"><</span><span class="err">╯</span><span class="p">(</span><span class="n">filter</span><span class="p">)</span> <span class="err">│</span>
+ <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╰────────────╯</span>
+ <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╭────────────╮</span>
+ <span class="err">│</span> <span class="err">╰─</span><span class="o">></span><span class="err">│──</span><span class="o">></span> <span class="n">LMTP</span> <span class="p">(</span><span class="n">socket</span><span class="p">)</span> <span class="err">─</span><span class="o">></span><span class="err">│───────────</span><span class="o">></span><span class="err">│──</span><span class="o">></span> <span class="n">to</span> <span class="n">user</span><span class="err">'</span><span class="n">s</span>
+ <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">dovecot</span> <span class="err">│</span> <span class="n">mailbox</span>
+ <span class="err">╰───────────────╯</span> <span class="err">╰────────────╯</span>
+</pre></div>
+
+
+<p>Pour les mails entrants.</p>
+<p>Maintenant que la théorie est claire, mettons en place tout cela. Je me baserai
+ici sur le fait que vous utilisiez une plateforme Debian ou OpenBSD. Pour
+d'autres plateformes, la configuration devrait être sensiblement la même</p>
+<p>(Vous aurez besoin de certificats SSL pour ce guide, même self-signés.
+Si vous ne savez pas comment en créer, vous pouvez aller voir <a href="http://wxcafe.net/posts/05/30/14/SSL-ou-la-securite-sur-internet/">ce
+post</a>)</p>
+<p>Tout d'abord, commençons par installer les programmes nécessaires :</p>
+<div class="highlight"><pre><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">opensmtpd</span> <span class="n">dovecot</span> <span class="n">dovecot</span><span class="o">-</span><span class="n">pigeonhole</span> <span class="n">amavisd</span><span class="o">-</span><span class="n">new</span> <span class="n">dovecot</span><span class="o">-</span><span class="n">managesieved</span>
+<span class="n">sudo</span> <span class="n">pkg_add</span> <span class="n">dovecot</span> <span class="n">dovecot</span><span class="o">-</span><span class="n">pigeonhole</span> <span class="n">amavisd</span><span class="o">-</span><span class="n">new</span>
+</pre></div>
+
+
+<p>Continuons en configurant OpenSMTPd tel que nous avons vu plus haut :</p>
+<p><code>/etc/smtpd.conf</code></p>
+<div class="highlight"><pre><span class="err">#</span> <span class="nx">This</span> <span class="nx">is</span> <span class="nx">the</span> <span class="nx">smtpd</span> <span class="nx">server</span> <span class="nx">system</span><span class="na">-wide</span> <span class="nx">configuration</span> <span class="nx">file.</span>
+<span class="err">#</span> <span class="nx">See</span> <span class="nx">smtpd.conf</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> <span class="nb">for</span> <span class="nx">more</span> <span class="nx">information.</span>
+
+<span class="err">##</span> <span class="nx">Certs</span>
+<span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nx">certificate</span> <span class="s2">"/etc/certs/exem.pl.crt"</span>
+<span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">key</span> <span class="s2">"/etc/certs/exem.pl.key"</span>
+
+<span class="err">##</span> <span class="nx">Ports</span> <span class="k">to</span> <span class="nb">listen</span> <span class="k">on</span><span class="p">,</span> <span class="ow">and</span> <span class="nx">how</span> <span class="k">to</span> <span class="nb">listen</span> <span class="k">on</span> <span class="nx">them</span>
+<span class="nb">listen</span> <span class="k">on</span> <span class="nx">eth0</span> <span class="nb">port</span> <span class="mi">25</span> <span class="nx">tls</span> <span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">hostname</span> <span class="nx">exem.pl</span> <span class="nb">auth</span><span class="na">-optional</span>
+<span class="nb">listen</span> <span class="k">on</span> <span class="nx">eth0</span> <span class="nb">port</span> <span class="mi">465</span> <span class="nx">tls</span><span class="na">-require</span> <span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">hostname</span> <span class="nx">exem.pl</span> <span class="nb">auth</span> <span class="nx">mask</span><span class="na">-source</span>
+<span class="nb">listen</span> <span class="k">on</span> <span class="nx">eth0</span> <span class="nb">port</span> <span class="mi">587</span> <span class="nx">tls</span><span class="na">-require</span> <span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">hostname</span> <span class="nx">exem.pl</span> <span class="nb">auth</span> <span class="nx">mask</span><span class="na">-source</span>
+
+<span class="err">##</span> <span class="nx">Aliases</span>
+<span class="nb">table</span> <span class="nx">aliases</span> <span class="nb">file</span><span class="p">:/</span><span class="nx">etc</span><span class="p">/</span><span class="nx">aliases</span>
+
+<span class="err">#</span> <span class="nx">coming</span> <span class="nb">from</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nb">checked</span> <span class="nb">for</span> <span class="nx">spam</span><span class="p">/</span><span class="nx">malware</span>
+<span class="nb">listen</span> <span class="k">on</span> <span class="nx">lo</span> <span class="nb">port</span> <span class="mi">10025</span> <span class="kt">tag</span> <span class="nx">Filtered</span>
+<span class="err">#</span> <span class="nx">coming</span> <span class="nb">from</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nx">signed</span> <span class="k">with</span> <span class="nx">DKIM</span>
+<span class="nb">listen</span> <span class="k">on</span> <span class="nx">lo</span> <span class="nb">port</span> <span class="mi">10027</span> <span class="kt">tag</span> <span class="nx">Signed</span>
+
+<span class="err">##</span> <span class="nx">Receiving</span>
+<span class="err">#</span> <span class="k">if</span> <span class="nx">the</span> <span class="p">(</span><span class="nx">incoming</span><span class="p">)</span> <span class="nx">mail</span> <span class="nx">has</span> <span class="nx">been</span> <span class="nx">through</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nx">then</span> <span class="nx">we</span> <span class="nx">can</span> <span class="nx">deliver</span> <span class="nx">it</span>
+<span class="nb">accept</span> <span class="nx">tagged</span> <span class="nx">Filtered</span> <span class="nb">for</span> <span class="nb">any</span> <span class="nx">alias</span> <span class="o"><</span><span class="nx">aliases</span><span class="o">></span> <span class="nx">deliver</span> <span class="k">to</span> <span class="nx">lmtp</span> <span class="s2">"/var/run/dovecot/lmtp"</span>
+<span class="err">#</span> <span class="nx">we</span> <span class="nx">directly</span> <span class="nx">tranfer</span> <span class="nx">incoming</span> <span class="nx">mail</span> <span class="k">to</span> <span class="nx">amavisd</span> <span class="k">to</span> <span class="nx">be</span> <span class="nb">checked</span>
+<span class="nb">accept</span> <span class="nb">from</span> <span class="nb">any</span> <span class="nb">for</span> <span class="nx">domain</span> <span class="s2">"exem.pl"</span> <span class="nx">relay</span> <span class="nx">via</span> <span class="s2">"smtp://localhost:10024"</span>
+<span class="err">#</span> <span class="nx">we</span> <span class="nx">have</span> <span class="k">to</span> <span class="nx">put</span> <span class="nx">these</span> <span class="n">lines</span> <span class="k">in</span> <span class="nx">this</span> <span class="k">order</span> <span class="k">to</span> <span class="nx">avoid</span> <span class="nx">infinite</span> <span class="nx">loops</span>
+
+<span class="err">##</span> <span class="nx">Sending</span>
+<span class="err">#</span> <span class="k">if</span> <span class="nx">the</span> <span class="p">(</span><span class="nx">outgoint</span><span class="p">)</span> <span class="nx">mail</span> <span class="nx">has</span> <span class="nx">been</span> <span class="nx">through</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nx">then</span> <span class="nx">we</span> <span class="nx">can</span> <span class="nx">deliver</span> <span class="nx">it</span>
+<span class="nb">accept</span> <span class="nx">tagged</span> <span class="nx">Signed</span> <span class="nb">for</span> <span class="nb">any</span> <span class="nx">relay</span>
+<span class="err">#</span> <span class="nx">we</span> <span class="nx">tranfer</span> <span class="nx">the</span> <span class="nx">outgoing</span> <span class="nx">mail</span> <span class="k">to</span> <span class="nx">amavisd</span> <span class="k">to</span> <span class="nx">be</span> <span class="nx">signed</span>
+<span class="nb">accept</span> <span class="nb">for</span> <span class="nb">any</span> <span class="nx">relay</span> <span class="nx">via</span> <span class="s2">"smtp://localhost:10026"</span>
+<span class="err">#</span> <span class="nx">same</span><span class="p">,</span> <span class="nx">we</span> <span class="nx">have</span> <span class="k">to</span> <span class="nx">put</span> <span class="nx">these</span> <span class="n">lines</span> <span class="k">in</span> <span class="nx">this</span> <span class="k">order</span> <span class="ow">or</span> <span class="nx">infinite</span> <span class="nx">loops...</span>
+</pre></div>
+
+
+<p>Expliquons un peu ce fichier de configuration :</p>
+<ul>
+<li>Tout d'abord, le paragraphe nommé "Certs" contient les déclaration
+ d'emplacement des certificats SSL.</li>
+<li>Ensuite, le paragraphe contenant les ports externes sur lesquels nous écoutons :
+ port 25 avec TLS optionel et ports 465 et 587 avec TLS obligatoire</li>
+<li>Les alias sont définis juste après</li>
+<li>Le paragraphe suivant contient les ports locaux sur lesquels nous écoutons :
+ 10025 (port de sortie du filtre de amavis) dont on taggue les mails sortants
+ comme "Filtered" et 10027 (port de sortie des mails signés par amavis) dont on
+ taggue les mails sortants comme "Signed"</li>
+<li>Nous avons ensuite le paragraphe qui traite les mails rentrants. Si le mail
+ traité est taggué comme Filtered, alors il a été vérifié par amavis, et on
+ peut donc le transmettre au destinataire. Sinon, c'est qu'il n'a pas encore
+ été vérifié par amavis, donc on lui transmet pour analyse (sur le port 10024
+ donc). Il est important de mettre les déclarations dans ce sens, car la
+ première règle qui matche l'état du paquet est appliquée. Ici, la deuxième
+ ligne matchant tous les mails arrivant et la première seulement ceux filtrés,
+ inverser leur sens voudrait dire que les mails seraient toujours renvoyés a
+ amavis</li>
+<li>Enfin, le dernier paragraphe traite les mails sortants. De la même façon que
+ pour le paragraphe précédent, si le mail sortant est déjà taggué comme Signed
+ on le transmet au MTA du destinataire, sinon il n'a pas encore été signé par
+ DKIM par amavis et on le transmet donc a amavis pour qu'il le signe. Le
+ problème de l'ordre des lignes se pose encore, pour la même raison qu'au
+ dessus.</li>
+</ul>
+<p>Nous allons maintenant configurer dovecot. Comme nous l'avons vu, dovecot doit
+écouter en LMTP via la socket <code>/var/run/dovecot/lmtp</code> et transmettre les
+emails a la boite email de l'utilisateur. Il serait aussi interessant
+qu'il nous permette de récuperer les mails. Pour cette configuration, on ne
+mettra en place que du IMAPS. Cependant, si vous voulez mettre en place du
+POP3[s], différents guides sont trouvables facilement sur internet.</p>
+<p><code>/etc/dovecot/dovecot.conf</code></p>
+<div class="highlight"><pre><span class="cp">## Dovecot configuration file</span>
+
+<span class="cp"># basic config</span>
+<span class="n">info_log_path</span> <span class="o">=</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">log</span><span class="o">/</span><span class="n">dovecot</span><span class="o">-</span><span class="n">info</span><span class="p">.</span><span class="n">log</span>
+<span class="n">log_path</span> <span class="o">=</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">log</span><span class="o">/</span><span class="n">dovecot</span><span class="p">.</span><span class="n">log</span>
+<span class="n">log_timestamp</span> <span class="o">=</span> <span class="s">"%Y-%m-%d %H:%M:%S "</span>
+<span class="n">mail_location</span> <span class="o">=</span> <span class="n">maildir</span><span class="o">:%</span><span class="n">h</span><span class="o">/</span><span class="n">mail</span>
+
+<span class="cp"># authentication</span>
+<span class="n">passdb</span> <span class="p">{</span>
+ <span class="n">driver</span> <span class="o">=</span> <span class="n">pam</span>
+<span class="p">}</span>
+<span class="n">userdb</span> <span class="p">{</span>
+ <span class="n">driver</span> <span class="o">=</span> <span class="n">passwd</span>
+<span class="p">}</span>
+
+<span class="cp"># the protocols we use</span>
+<span class="n">protocols</span> <span class="o">=</span> <span class="n">imap</span> <span class="n">lmtp</span> <span class="n">sieve</span>
+
+<span class="cp"># ssl config</span>
+<span class="n">ssl_cert</span> <span class="o">=</span> <span class="o"></</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">exem</span><span class="p">.</span><span class="n">pl</span><span class="p">.</span><span class="n">cert</span>
+<span class="n">ssl_key</span> <span class="o">=</span> <span class="o"></</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">exem</span><span class="p">.</span><span class="n">pl</span><span class="p">.</span><span class="n">key</span>
+<span class="n">ssl_cipher_list</span> <span class="o">=</span> <span class="n">HIGH</span><span class="o">+</span><span class="n">kEDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">+</span><span class="n">kEECDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">:!</span><span class="n">PSK</span><span class="o">:!</span><span class="n">SRP</span><span class="o">:!</span><span class="mi">3</span><span class="n">DES</span><span class="o">:!</span><span class="n">aNULL</span>
+<span class="n">ssl</span> <span class="o">=</span> <span class="n">yes</span>
+
+<span class="cp">## configuring services </span>
+<span class="cp"># disables imap login without SSL (yes dovecot is dumb that way)</span>
+<span class="n">service</span> <span class="n">imap</span><span class="o">-</span><span class="n">login</span> <span class="p">{</span>
+ <span class="n">inet_listener</span> <span class="n">imap</span> <span class="p">{</span>
+ <span class="n">port</span><span class="o">=</span><span class="mi">0</span>
+ <span class="p">}</span>
+<span class="p">}</span>
+
+<span class="n">service</span> <span class="n">lmtp</span> <span class="p">{</span>
+ <span class="n">unix_listener</span> <span class="n">lmtp</span> <span class="p">{</span>
+ <span class="n">mode</span> <span class="o">=</span> <span class="mo">0666</span>
+ <span class="p">}</span>
+<span class="p">}</span>
+
+<span class="cp">## configuring protocols</span>
+<span class="cp"># the dovecot lda, we set it to use sieve</span>
+<span class="n">protocol</span> <span class="n">lda</span> <span class="p">{</span>
+ <span class="n">mail_plugins</span> <span class="o">=</span> <span class="err">$</span><span class="n">mail_plugins</span> <span class="n">sieve</span>
+<span class="p">}</span>
+
+<span class="n">protocol</span> <span class="n">lmtp</span> <span class="p">{</span>
+ <span class="n">postmaster_address</span> <span class="o">=</span> <span class="n">whoever</span><span class="err">@</span><span class="n">exem</span><span class="p">.</span><span class="n">pl</span>
+ <span class="n">mail_plugins</span> <span class="o">=</span> <span class="err">$</span><span class="n">mail_plugins</span> <span class="n">sieve</span>
+<span class="p">}</span>
+
+<span class="n">plugin</span> <span class="p">{</span>
+ <span class="n">sieve</span> <span class="o">=</span> <span class="o">~/</span><span class="p">.</span><span class="n">dovecot</span><span class="p">.</span><span class="n">sieve</span>
+ <span class="n">sieve_dir</span> <span class="o">=</span> <span class="o">~/</span><span class="n">sieve</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p><strong>ATTENTION: Sous OpenBSD, remplacez</strong></p>
+<div class="highlight"><pre><span class="n">passdb</span> <span class="p">{</span>
+ <span class="n">driver</span> <span class="o">=</span> <span class="n">pam</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p><strong>par</strong></p>
+<div class="highlight"><pre><span class="n">passdb</span> <span class="p">{</span>
+ <span class="n">driver</span> <span class="o">=</span> <span class="n">bsdauth</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p><strong>pour identifier les utilisateurs système</strong></p>
+<p>Ici aussi, voyons comment ce fichier est structuré :</p>
+<ul>
+<li>Tout d'abord, les configurations de base : ou iront les logs, comment formater
+ leur datation, et l'endroit ou seront stockés les mails des utilisateurs.</li>
+<li>Nous configurons ensuite la gestion de l'authentification des utilisateurs.
+ Ici nous identifions les utilisateurs avec le fichier /etc/passwd et leurs
+ mots de passe avec PAM (ou BSDAuth)</li>
+<li>Nous configurons ensuite les protocoles que nous servons. Ici, nous voulons de
+ l'IMAPS, du LMTP local et Sieve (qui sert pour trier les messages).</li>
+<li>Nous configurons le SSL</li>
+<li>Le section suivante contient la configuration des services. Nous avons en
+ premier lieu le service IMAP, dont la configuration sert uniquement a
+ désactiver IMAP. En effet, dovecot ne permet d'activer IMAPS qu'en activant
+ IMAP avec. Comme nous ne voulons pas d'IMAP sans SSL, nous le désactivons.
+ La configuration de lmtp sert a attribuer des permissions plus correctes au
+ fifo qu'il utilise</li>
+<li>Nous configurons maintenant les protocoles, pour faire fonctionner Sieve</li>
+<li>enfin, nous configurons le plugin sieve en lui indiquant quel fichier et
+ quel dossier utiliser pour sa configuration.</li>
+</ul>
+<p>Enfin, il nous reste a configurer amavis. Comme expliqué, amavis va nous servir
+a deux choses : signer les emails sortants, et filtrer les emails entrants. Il
+doit donc écouter sur les port 10026 pour les signatures et 10024 pour le
+filtrage, et répondre respectivement sur les ports 10027 et 10025 (le tout, en
+SMTP. Comme toutes les transactions se font sur le loopback, il n'y a aucun
+risque a utiliser des protocoles non chiffrés.
+Pour OpenBSD, pensez a copier la configuration par défaut depuis
+<code>/usr/local/share/examples/amavisd-new/amavisd.conf</code> et ajoutez les
+modifications nécessaires a la fin du fichier.</p>
+<p><code>/etc/amavis/conf.d/99-local.conf</code> (debian)
+<code>/etc/amavis.conf</code> (OpenBSD)</p>
+<div class="highlight"><pre><span class="n">use</span> <span class="n">strict</span><span class="p">;</span>
+
+<span class="err">$</span><span class="n">enable_dkim_verification</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
+<span class="err">$</span><span class="n">enable_dkim_signing</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
+<span class="n">dkim_key</span><span class="p">(</span><span class="s">"exem.pl"</span><span class="p">,</span> <span class="s">"main"</span><span class="p">,</span> <span class="s">"/etc/certs/dkim.key"</span> <span class="p">);</span>
+
+<span class="err">@</span><span class="n">dkim_signature_options_bysender_maps</span> <span class="o">=</span> <span class="p">(</span>
+ <span class="p">{</span> <span class="sc">'.'</span> <span class="o">=></span>
+ <span class="p">{</span> <span class="n">ttl</span> <span class="o">=></span> <span class="mi">21</span><span class="o">*</span><span class="mi">24</span><span class="o">*</span><span class="mi">3600</span><span class="p">,</span> <span class="n">c</span> <span class="o">=></span> <span class="err">'</span><span class="n">relaxed</span><span class="o">/</span><span class="n">simple</span><span class="err">'</span> <span class="p">}</span>
+ <span class="p">}</span>
+<span class="p">);</span>
+
+<span class="err">$</span><span class="n">inet_socket_port</span> <span class="o">=</span> <span class="p">[</span><span class="mi">10024</span><span class="p">,</span> <span class="mi">10026</span><span class="p">];</span>
+<span class="err">$</span><span class="n">policy_bank</span><span class="p">{</span><span class="err">'</span><span class="n">MYNETS</span><span class="err">'</span><span class="p">}</span> <span class="o">=</span> <span class="p">{</span>
+ <span class="n">originating</span> <span class="o">=></span> <span class="mi">1</span><span class="p">,</span>
+ <span class="n">os_fingerprint_method</span> <span class="o">=></span> <span class="n">undef</span><span class="p">,</span>
+<span class="p">};</span>
+
+<span class="err">$</span><span class="n">interface_policy</span><span class="p">{</span><span class="err">'</span><span class="mi">10026</span><span class="err">'</span><span class="p">}</span> <span class="o">=</span> <span class="err">'</span><span class="n">ORIGINATING</span><span class="err">'</span><span class="p">;</span>
+
+<span class="err">$</span><span class="n">policy_bank</span><span class="p">{</span><span class="err">'</span><span class="n">ORIGINATING</span><span class="err">'</span><span class="p">}</span> <span class="o">=</span> <span class="p">{</span>
+ <span class="n">originating</span> <span class="o">=></span> <span class="mi">1</span><span class="p">,</span>
+ <span class="n">allow_disclaimers</span> <span class="o">=></span> <span class="mi">1</span><span class="p">,</span>
+ <span class="n">virus_admin_maps</span> <span class="o">=></span> <span class="p">[</span><span class="s">"root\@$mydomain"</span><span class="p">],</span>
+ <span class="n">spam_admin_maps</span> <span class="o">=></span> <span class="p">[</span><span class="s">"root\@$mydomain"</span><span class="p">],</span>
+ <span class="n">warnbadhsender</span> <span class="o">=></span> <span class="mi">1</span><span class="p">,</span>
+ <span class="n">forward_method</span> <span class="o">=></span> <span class="err">'</span><span class="n">smtp</span><span class="o">:</span><span class="n">localhost</span><span class="o">:</span><span class="mi">10027</span><span class="err">'</span><span class="p">,</span>
+ <span class="n">smtpd_discard_ehlo_keywords</span> <span class="o">=></span> <span class="p">[</span><span class="err">'</span><span class="mi">8</span><span class="n">BITMIME</span><span class="err">'</span><span class="p">],</span>
+ <span class="n">bypass_banned_checks_maps</span> <span class="o">=></span> <span class="p">[</span><span class="mi">1</span><span class="p">],</span>
+ <span class="n">terminate_dsn_on_notify_success</span> <span class="o">=></span> <span class="mi">0</span><span class="p">,</span>
+<span class="p">};</span>
+
+<span class="cp">#------------ Do not modify anything below this line -------------</span>
+<span class="mi">1</span><span class="p">;</span> <span class="err">#</span> <span class="n">ensure</span> <span class="n">a</span> <span class="n">defined</span> <span class="k">return</span>
+</pre></div>
+
+
+<p>A nouveau, expliquons ce fichier :
+- le premier paragraphe définit que nous voulons qu'amavis signe les emails
+ sortants, vérifie la signature DKIM des emails rentrants, et l'endroit ou se
+ trouve la clé privée servant a signer les emails.
+- le second définit les options DKIM que nous souhaitons utiliser comme défaut.
+ Je vous invite a consulter la <a href="https://tools.ietf.org/html/rfc4871">RFC 4871</a>
+- nous définissons ensuite les ports sur lesquels nous allons écouter, puis les
+ paramètres que nous utiliserons pour les emails venant de nos utilisateurs :
+ ils seront traités comme "originating" et nous ne vérifierons pas l'OS duquel
+ ils viennent.
+- nous savons que les emails venants du port 10026 sont sortants, nous les
+ traitons donc comme tel
+- le paragraphe suivant décrit le traitement que nous faisons subir aux emails
+ sortants : tout d'abord, nous réaffirmons qu'ils viennent bien de notre
+ serveur. Nous autorisons les disclaimers (voire encore une fois la <a href="https://tools.ietf.org/html/rfc4871">RFC
+ 4871</a>. Nous déclarons l'adresse a
+ prévenir en cas de spam/virus venants de notre système, et que nous voulons
+ être prévenus. Nous déclarons ou envoyer les mails une fois signés et filtrés,
+ puis qu'il est nécessaire de convertir les emails au format 7 bits avant de
+ les envoyer au MTA, que nous autorisons tous les types et noms de fichiers, et
+ les notifications de succès d'envoi. Et voila!</p>
+<p>Vous avez pu remarquer qu'a aucun moment nous ne configurions ni la signature
+des emails sortants ni le filtrage des emails entrants. Ces paramètres sont en
+fait inclus par défaut dans amavis.</p>
+<p>Il nous reste cependant quelques opérations a faire, encore.
+Tout d'abord, il nous faut générer notre clé DKIM. Pour cela, il existe
+différentes méthodes, j'ai personnellement utilisé opendkim (<a href="https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy">un
+tutorial</a>)
+mais de nombreuses autre méthodes existent.
+Il nous reste encore a configurer spamassassin :</p>
+<div class="highlight"><pre><span class="cp">#rewrite_header Subject *****SPAM*****</span>
+<span class="cp"># report_safe 1</span>
+<span class="n">required_score</span> <span class="mf">2.0</span>
+<span class="cp"># use_bayes 1</span>
+<span class="cp"># bayes_auto_learn 1</span>
+<span class="cp"># bayes_ignore_header X-Bogosity</span>
+<span class="cp"># bayes_ignore_header X-Spam-Flag</span>
+<span class="cp"># bayes_ignore_header X-Spam-Status</span>
+<span class="n">ifplugin</span> <span class="n">Mail</span><span class="o">::</span><span class="n">SpamAssassin</span><span class="o">::</span><span class="n">Plugin</span><span class="o">::</span><span class="n">Shortcircuit</span>
+<span class="cp"># shortcircuit USER_IN_WHITELIST on</span>
+<span class="cp"># shortcircuit USER_IN_DEF_WHITELIST on</span>
+<span class="cp"># shortcircuit USER_IN_ALL_SPAM_TO on</span>
+<span class="cp"># shortcircuit SUBJECT_IN_WHITELIST on</span>
+<span class="cp"># shortcircuit USER_IN_BLACKLIST on</span>
+<span class="cp"># shortcircuit USER_IN_BLACKLIST_TO on</span>
+<span class="cp"># shortcircuit SUBJECT_IN_BLACKLIST on</span>
+<span class="n">shortcircuit</span> <span class="n">ALL_TRUSTED</span> <span class="n">off</span>
+<span class="cp"># shortcircuit BAYES_99 spam</span>
+<span class="cp"># shortcircuit BAYES_00 ham</span>
+
+<span class="n">endif</span> <span class="err">#</span> <span class="n">Mail</span><span class="o">::</span><span class="n">SpamAssassin</span><span class="o">::</span><span class="n">Plugin</span><span class="o">::</span><span class="n">Shortcircuit</span>
+</pre></div>
+
+
+<p>Comme vous pouvez le voir, les modifications se résument globalement a baisser
+le required_score pour ma part.</p>
+<p>Pour finir, activez les services nécessaires : opensmtpd, dovecot, amavisd, et
+spamassassin, et tout devrait fonctionner parfaitement</p>
+<p>Bon courage pour votre hosting de mail ensuite...</p>WxcaféFri, 07 Nov 2014 13:04:00 +0100tag:,2014-11-07:home/wxcafe/code/blog-source/output/posts/opensmtpd-debian/
\ No newline at end of file
diff --git a/output/feeds/feed.teaching.xml b/output/feeds/feed.teaching.xml
new file mode 100644
index 0000000..11639e3
--- /dev/null
+++ b/output/feeds/feed.teaching.xml
@@ -0,0 +1,344 @@
+
+Wxcaféfile:///home/wxcafe/code/blog-source/output/2015-05-16T02:00:00+02:00SSL - STARTTLS2015-05-16T02:00:00+02:00Wxcafetag:,2015-05-16:home/wxcafe/code/blog-source/output/posts/ssl-starttls/<p>Le chiffrement SSL pour les services en ligne est un problème relativement
+récent, par rapport a l’histoire d’Internet. Sa mise en place pose
+problème : les protocoles existants ne s’accommodent qu’assez mal de recevoir
+soudainement un flot de données chiffrées, mais développer de nouveaux
+protocoles est complexe et n’apporte rien d’intéressant. Pour palier a ce
+problème, deux solutions sont apparues.</p>
+<p>Le première consiste à faire écouter les services sur un
+autre port, dans un tunnel SSL. De cette façon, le service existant écoute
+normalement, mais il ne répond pas directement aux requêtes. A la place, un
+tunnel SSL est mis en place, et les requêtes et les réponses passent dans le
+tunnel (ou elles apparaissent donc chiffrées pour l’extérieur). Cela permet de
+proposer un service chiffré en modifiant de façon minimale le programme, au prix
+de devoir aussi changer tous les clients, et de devoir les orienter sur un autre
+port.</p>
+<p>L’autre approche qui a été utilisée est une approche d’<em>upgrade</em>. La
+communication commence en mode non chiffré, puis le client demande l’upgrade de
+la connexion vers le mode chiffré s’il le supporte, les deux machines
+machines font un <em>handshake</em> SSL et la communication continue a travers le
+tunnel SSL. Le service peut continuer a écouter sur son port habituel, et seuls
+les clients capables de passer en SSL le feront, ce qui permet de faire la “mise
+a jour” en douceur.</p>
+<p>Il est souvent demandé quelle est la meilleure méthode pour mettre en place un
+service – laisser un port pour le SSL et un pour le trafic non chiffré, ou bien
+un seul, avec <code>STARTTLS</code>, qui <em>upgrade</em> les connexions si nécessaire.<br />
+La réponse est que <code>STARTTLS</code> est plus interessant, pour plusieurs raisons. Tout
+d’abord, il permet de n’utiliser qu’un seul port : ça permet de simplifier la
+configuration du firewall. En plus de ça, il permet aux clients “anciens” (ceux
+qui ne supportent pas SSL, donc ceux qui devraient être changés) de toujours se
+connecter, même si cela signifie que leurs informations seront transmises en
+clair. Surtout, il permet d’éviter aux utilisateurs d’avoir a configurer leurs
+clients. Si le client supporte le chiffrement, il l’activera de lui même s’il
+voit qu’il est disponible.<br />
+Bref, mettez en place du <code>STARTTLS</code>, et pas du SSL. C’est mieux pour la sécurité
+de tout le monde.</p>Les systèmes de fichiers2012-09-25T10:28:00+02:00Wxcafetag:,2012-09-25:home/wxcafe/code/blog-source/output/posts/les-systemes-de-fichiers/<p>Un système de fichiers. Vous en avez surement déjà entendu parlé si vous
+avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous
+connaissez surement NTFS, EXT4, ou encore FAT32.</p>
+<p>Ces différents noms désignent en effet des systèmes de fichiers. Mais
+qu'est-ce qu'un système de fichiers?</p>
+<p>Pour comprendre cela, il faut déjà savoir ce qu'est exactement un
+fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la
+plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio
+(<a href="http://fr.wikipedia.org/wiki/Kibioctet#Multiples_normalis.C3.A9s">kibioctet</a>), en fonction du système de fichier utilisé.), qui est
+donc composé de bits, interprétés différemment en fonction du type de
+fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il
+n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent,
+ou il commence ni où il s'arrête (je schématise un peu, mais c'est
+l'idée). </p>
+<p>Ainsi, le système de fichier donne un cadre et un standard à
+l'arborescence des fichiers. Par exemple, le système de fichier ext4
+utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de
+disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio
+et mesurer la taille des fichiers en blocs de cette façon. Les systèmes
+de fichiers nécessitent l'inclusion de drivers dans le noyau pour
+pouvoir être pris en compte. </p>
+<p>Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs,
+reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu
+près tout type de partition récente.</p>
+<p>Il convient de bien faire la différence entre le système de fichier et
+l'arborescence des fichiers. Si l'arborescence des fichiers est en fait
+une entité virtuelle englobant la racine / et tous les fichiers et
+dossiers contenus dedans, le système de fichier permet a votre système
+GNU/Linux de distinguer les différents fichiers composants cette
+arborescence.</p>
+<p>Détaillons maintenant les types de fichiers les plus répandus:</p>
+<ul>
+<li>
+<p>FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table,
+ soit la définition d'un système de fichier), remplissent leur rôle le
+ plus simplement possible. Ne permettant (historiquement) que des noms de
+ 8 caractères (plus extension de trois caractères), ni chiffrement, ni
+ système de distinction d'utilisateurs (DOS étant un système
+ mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32,
+ utlisants respectivement des blocs de 16 et 32 Kio.</p>
+</li>
+<li>
+<p>NTFS :. Le NTFS (pour New Technology File System, rapport a Windows
+ NT) est un système de fichier qui est apparu avec Windows XP, et qui
+ était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a
+ FAT différentes capacités dont le chiffrement, les liens symboliques, la
+ compression et les quotas pour les volumes, permettant de limiter la
+ taille maximum occupée dans une partition.</p>
+</li>
+<li>
+<p>ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012.
+ Ne différant pas énormément de NTFS, je le mentionne principalement
+ parce qu'il est prévu qu'il soit le défaut pour Windows 8.
+ Il apporte principalement la redondance, c'est a dire que chaque
+ fichier possède une somme de contrôle en 64 bits stockée dans un fichier
+ séparé pour éviter les corruption de disque.</p>
+</li>
+<li>
+<p>Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers
+ les plus utilisés sous linux pour le grand public. (Je traiterai ici
+ d'ext4, puisque c'est le plus récent.) Il dispose de toutes les
+ fonctions que l'on peut attendre d'un système de fichiers moderne, ni
+ plus ni moins. Ainsi, ext4 est un système de fichiers journalisé,
+ acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite
+ "par extent", ce qui signifie que la création d'un fichier réserve
+ automatiquement les zones contiguës de façon a réduire la fragmentation.</p>
+</li>
+<li>
+<p>ReiserFS : ce système de fichiers, créé par le (légèrement mégalo)
+ programmeur Hans Reiser, est a retenir pour avoir été le premier système
+ de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des
+ 4 milliards. Le but de ce système est de créer un système polyvalent, a
+ la fois système de fichiers et base de donnée (de part sa grande
+ capacité en terme de nombre de fichiers et de l'utilisation d'un
+ journal.)</p>
+</li>
+<li>
+<p>Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi
+ l'allocation par extent, mais possède de plus un système de
+ sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers
+ montées en même temps (système pratique et utile pour faire des
+ snapshots de systèmes.). Il permet aussi de redimensionner a chaud la
+ taille des partitions, en les agrandissant ou en les rétrécissant, est
+ compatible avec <a href="http://fr.wikipedia.org/wiki/LVM">LVM</a>, a un système de checking intégré (btrfsck), et
+ utilise un algorithme de compression appelé LZ4, qui accélère les accès
+ aux fichiers compressés d'environ 30% par rapport a LZO, le système
+ utilisé dans ext4.</p>
+</li>
+<li>
+<p>HFS+ : le système de fichier présent sur tous les macs a des capacités
+ relativement standards, et ressemble énormément a l'ext3. Il supporte
+ cependant les liens directs vers les dossiers, fonction rare sur les
+ systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau
+ dans les années a venir</p>
+</li>
+<li>
+<p>ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux
+ et *BSD, est, tel Btrfs, a la fois un système de fichier et un
+ remplaçant/compatible avec LVM, C'est un système de fichiers conçu
+ principalement pour les serveurs, et il intègre ainsi un système de
+ redondance des données pour éviter les corruptions, un mode RAID-Z
+ (apparenté au RAID5), des checks d’intégrité en continu, des snapshots,
+ etc...</p>
+</li>
+</ul>
+<p>Comme on a pu le voir, les systèmes de fichiers disponibles sont
+légions. Cependant, le plus adapté a Linux et a une utilisation grand
+public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier
+n'est pas aujourd'hui proposé par défaut sur les distributions les plus
+utilisées, au profit de l'ext4, qui commence a accuser son âge...</p>
+<p>Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au
+fonctionnement du système, sont en fait de première importance, et ce
+choix ne devrait pas être laissé au hasard, et être mis a jour
+régulièrement (pour éviter les failles de sécurité...)</p>
+<p>Bon courage, et bon choix pour votre prochain système.</p>Les différentes couches d'un système d'exploitation2012-09-06T23:29:00+02:00Wxcafetag:,2012-09-06:home/wxcafe/code/blog-source/output/posts/les-differentes-couches-dun-systeme-dexploitation/<p>Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques
+années (plus ou moins, parce que j'ai toujours un Windows en dual boot,
+principalement pour les jeux (possiblement plus pour longtemps, avec
+l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou
+moins bien mon système. Or il y a plusieurs choses a savoir sur les
+systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est
+le système de couches.</p>
+<p>Un système d'exploitation (de type UNIX, \<troll>enfin un vrai système quoi.
+\</troll>) incorpore plusieurs systèmes de couches.</p>
+<p>Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique,
+c'est a dire que tous les composants sont intégrés au kernel. Ce qui
+signifie que rien ne peut être ajouté au noyau sans recompiler celui ci.
+Or, quand on sait que le noyau comprend entre autres les drivers du
+matériel et des systèmes de fichier, cela peut poser des problèmes quand
+a la taille du kernel et a la licence libre de ce dernier. </p>
+<p>Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui
+signifie que des modules peuvent être chargé a tout moment en cours
+d’exécution, ce qui permet l'utilisation de nouveaux systèmes de
+fichiers a chaud, ou l'insertion de matériel et l'installation de
+drivers sans interrompre l’exécution du système (Windows utilise un
+système de fausse installation de drivers pour le matériel externe, et
+un système de pré-installation des drivers pour les périphériques dits
+"plug and play")</p>
+<p>Après le noyau intervient le système. Or, au tous premiers instants du
+boot, les systèmes GNU/Linux utilisent un système permettant de limiter
+l'utilisation de ressources systèmes si elles ne sont pas nécessaires,
+et incorpore ainsi un système dit de "runlevels"</p>
+<p>Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce
+runlevel permet de tester le bon démarrage du système sans avoir a
+effectuer de manipulation pour le ré-éteindre</p>
+<p>Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté
+étant donné que ce runlevel donne accès a un système en étant
+automatiquement loggé en tant que root, avec tous les autres
+utilisateurs désactivés, de même que tous les systèmes de réseaux</p>
+<p>Le runlevel 2 est appelé mode multi user, et vous mets en face d'un
+système classique. en ligne de commande, mais avec tous les systèmes de
+réseau désactivés.</p>
+<p>Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux
+activés.</p>
+<p>Le runlevel 4 n'est pas officiellement défini, et est censé être
+activable en fonction des besoins de l'utilisateur. Sur la plupart des
+distributions grand public, ce runlevel est lié au...</p>
+<p>Runlevel 5! Multi-user, networking, with working GUI! c'est le système
+tel que vous le connaissez, avec l'interface graphique et le système de
+login graphique.</p>
+<p>Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine
+quand il devient le runlevel courant.</p>
+<p>(Il est a noter que Debian, et donc toutes les distribs qui en sont
+dérivées, ne font pas de distinction entre les differents runlevels du 2
+au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login
+et une interface graphique, et un mode réseau fonctionnel, bref avec des
+fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)</p>
+<p>Il est possible de changer de runlevel grâce a la commande runlevel
+(oui, c'est évident...)</p>
+<p>Les systèmes Linux utilisent aussi un système dit de SandBox , qui en
+informatique est un système permettant d'isoler les processus les uns
+des autres. Ainsi, la pile réseau, qui est le système auquel les
+différents processus envoient les différents paquets qui doivent sortir
+de la machine , et qui redistribue ces paquets, est isolée du reste du
+système, en cela qu'aucun des autres processus ne peuvent modifier cette
+pile hors du runlevel 1 ou 2.</p>
+<p>De la même façon, le navigateur chrom/ium fait fonctionner tous les
+onglets, ainsi que toutes les extensions, dans des processus différents.
+Certaines distributions linux implémentent un système de cette sorte
+pour toutes les applications, ou seulement pour certaines. ainsi Chakra
+Linux a un système d'installation d'applications dans des disques
+virtuels, ce qui permet une sécurité totale du processus.</p>
+<p>Voila, j'espère vous en avoir appris un peu sur le fonctionnement des
+différentes couches de linux, et j'espère que cet article vous poussera
+a tester un peu votre système et a vous amuser avec les différents
+runlevels</p>La programmation expliquée simplement2012-08-27T00:22:00+02:00Wxcafetag:,2012-08-27:home/wxcafe/code/blog-source/output/posts/la-programmation-expliquee-simplement/<p>Salut!<br />
+Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire
+récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé
+pas mal de temps assez occupé. </p>
+<p>Enfin, après un certain temps a farfouiller au millieu des connecteurs
+SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques
+durs, je suis de retour pour un court article.<br />
+Du coup, je m'étais dit que j'allais reprendre sur le thème de
+l'informatique expliquée au grand public, en tentant d'aller un peu plus
+loin que la dernière fois sur le thème de la programmation<br />
+Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur.
+Si a peu près tout le monde sait que "les ordinateurs, ils ne
+comprennent que les 1 et les 0!", peu de gens savent comment cela
+fonctionne en détail. </p>
+<p>Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà
+des notions de base en informatique. Ainsi, vous savez surement que les
+ordinateurs fonctionnent avec des programmes, qui sont composés de
+code.<br />
+Ainsi, il faut comprendre que le code (source) est "compilé" en un
+fichier "binaire". Un fichier binaire est un fichier comprenant les
+instructions telles qu’exécutées par le processeur, et donc absolument
+illisible pour un humain. </p>
+<p>La compilation est le processus qui transforme le code source en
+binaire executable. Les binaires ont, sous Windows, l'extension .exe,
+tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension
+particulière.<br />
+Ceci étant dit, il faut comprendre que certains langages sont plus
+proches que d'autres du langage processeur, les langages les plus
+proches sont dits de "bas niveau". Les langages les plus éloignés sont
+donc dits de haut niveau. </p>
+<p>Par exemple, l'assembleur est l'un des languages de plus bas niveau,
+tandis que python par exemple est un langage de plus haut niveau. Les
+langages de haut niveau sont souvent bien plus simples a comprendre et a
+apprendre que les langages de bas niveau </p>
+<p>Ainsi, en C, un langage de niveau relativement bas, pour afficher
+"hello world" sur l'écran, le code nécessaire est :</p>
+<div class="highlight"><pre><span class="cp">#include </span>
+<span class="kt">void</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
+<span class="n">printf</span><span class="p">(</span><span class="s">"hello world"</span><span class="p">);</span>
+<span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>le même programme en python s'écrit :</p>
+<div class="highlight"><pre><span class="n">print</span> <span class="s">"hello world"</span>
+</pre></div>
+
+
+<p>et n'a pas besoin d'être compilé , puisqu'il peut être intepreté
+directement. </p>
+<p>Python utilise en effet un système similaire a Java en ayant un
+interpréteur dit "runtime" ou "temps réel", qui interprète le programme
+sans le compiler. Java utilise un système légèrement différent, puisque
+le code a besoin d'être compilé, mais est interpreté par un interpréteur
+et non par le processeur. </p>
+<p>Cette méthode permet le fameux "code once, run everywhere", ce qui
+signifie que le même code est exécutable sur quasiment tous les systèmes
+d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est
+disponible.)</p>
+<p>Voila, je vous laisse sur le fonctionnement de Java et de Python, et je
+vais me coucher.<br />
+A bientôt!</p>GNU/Linux pour les non technophiles, ou l'OS libre pour votre grand-mère2012-08-22T20:33:00+02:00Wxcafetag:,2012-08-22:home/wxcafe/code/blog-source/output/posts/gnulinux-pour-les-non-technophiles-ou-los-libre-pour-votre-grand-mere/<p>GNU/Linux est un vaste et extraordinaire territoire technologique, mais
+je ne vais pas m'attarder ici sur les aspects profondément techniques de
+ce territoire pour faire plutôt une sorte d'introduction a ce qu'est
+vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de
+connaissances en informatique.</p>
+<p>GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un
+Système d'Exploitation. Un système d'exploitation est, pour simplifier,
+un ensemble d'outils informatiques qui vous permettent d'utiliser votre
+ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation
+de système d'exploitation (Operating System en anglais) est OS. Les 4
+principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et
+Solaris. Les trois derniers sont issus d'un autre système, plus ancien,
+nommé UNIX.</p>
+<p>De ce fait, on pourrait penser que Linux remplace complètement Windows
+une fois installé, et comprend une interface graphique, et toutes sortes
+d'utilitaires permettant a l'utilisateur d'utiliser le système (sous
+Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer.
+Pour l'interface graphique, pensez a... Pensez que votre système affiche
+autre chose que des lignes de commande.) Or non, une fois installé,
+Linux en lui même ne vous afficherait aucune interface graphique, et
+s'il est effectivement livré avec des utilitaires, ils ne sont que des
+programmes en ligne de commande. Autant les utilisateurs avancés sauront
+s'en servir, et pourront argumenter que c'est plus efficace ou plus
+rapide, autant les utilisateurs basiques préfèrent une interface
+graphique. Alors comment en obtenir une?</p>
+<p>Ici, il convient de faire une précision importante. Si il n'existe
+qu'une seule version de Windows, ou de Mac OS, il existe en fait
+plusieurs centaines de "versions" différentes de Linux. Appelées
+distributions, ces dernière sont développées par des groupes
+complètement séparés, et se basent sur le fait que Linux soit
+entièrement placé sous licence libre (ce qui leur permet de l'utiliser a
+leur guise, a condition que leur travail soit lui aussi placé sous
+licence libre). De ce fait, de nombreuses distributions existent et se
+développent en parallèle. On peut ainsi citer <a href="http://debian.org">Debian</a>, qui est l'une
+des distributions les plus importantes, ou encore <a href="http://ubuntu.com">Ubuntu</a>, qui est
+l'une des plus connues et des plus simples a utiliser.</p>
+<p>Ainsi, ces distributions intègrent une interface graphique. Cependant,
+grâce a la liberté dont bénéficient les développeurs sous Linux, il
+existe de nombreuses interfaces graphiques différentes : <a href="unity.ubuntu.com">Unity</a>, la
+nouvelle interface d'Ubuntu; <a href="gnome.org">GNOME</a> , une interface qui vise a la
+simplicité; ou encore <a href="http://kde.org/">KDE</a>, une interface utilisateur ressemblant a
+Windows 7.</p>
+<p>Ainsi, le choix astronomique de distributions Linux a bien un sens :
+chacune d'entre elle intègre des outils différents. Par exemple, Debian
+intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend
+particulièrement stable. Ubuntu intègre Unity, ce qui en fait une
+distribution particulièrement intuitive. Linux Mint intègre Cinnamon,
+qui est une version dérivée de GNOME 3, ce qui permet encore une autre
+expérience. Et Arch Linux n'intègre pas d'interface graphique du tout,
+ce qui permet a l'utilisateur de choisir entre les multiples interfaces
+existantes.</p>
+<p>Ce qu'il est important de retenir de cela, c'est que Linux est un OS
+complètement libre, ce qui signifie que n'importe qui peut modifier et
+utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi,
+Linux est un OS qui est véritablement créé par des passionnés, pour tous
+et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué
+a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus.
+Cependant, Linux donne la possibilité a l'utilisateur de le rendre
+affreusement complexe, mais aussi de le rendre adapté a ses besoins,
+quels que soient ceux ci. Et c'est la que réside l'incroyable puissance
+de ce Système d'Exploitation. Il est extraordinairement adaptable.</p>
+<p>N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas
+technophiles. Ils pourraient adorer, et peut être même le devenir :)</p>
+<p>A bientôt!</p>
\ No newline at end of file
diff --git a/output/feeds/feed.tutorial.xml b/output/feeds/feed.tutorial.xml
new file mode 100644
index 0000000..5455714
--- /dev/null
+++ b/output/feeds/feed.tutorial.xml
@@ -0,0 +1,368 @@
+
+Wxcaféfile:///home/wxcafe/code/blog-source/output/2014-11-07T13:04:00+01:00OpenSMTPd comme serveur mail sous debian2014-11-07T13:04:00+01:00Wxcafétag:,2014-11-07:home/wxcafe/code/blog-source/output/posts/opensmtpd-debian/<p>J'avais dit il y a un certain temps que j'allais écrire un tutoriel expliquant
+comment gérer ses mails soi-même. Il se trouve que j'ai récemment décidé de
+changer le serveur qui héberge (entre autres) ce blog, et que ce dernier héberge
+aussi mes emails. J'ai donc totalement changé d'infrastructure quand a la
+gestion de mon système de mails.</p>
+<p>Ainsi, j'ai décidé de passer de Postfix a OpenSMTPd, changement que je voulais
+effectuer depuis un certain temps. <a href="https://opensmtpd.org">OpenSMTPd</a> est un
+projet originaire d'<a href="http://openbsd.org">OpenBSD</a> qui a pour but de fournir un
+serveur SMTP fiable, simple, rapide, et surtout sécurisé (les même buts que ceux
+qu'a le projet OpenBSD, globalement).</p>
+<p>Pour rappel, le système d'emails fonctionne d'une façon très simple : votre MUA
+(Mail User Agent, ou client email) contacte le MTA (Mail Transport Agent, ou
+serveur SMTP) de votre fournisseur email, qui contacte le MTA du fournisseur du
+destinataire, qui lui même contacte le MDA (Mail Delivery Agent) qui délivre le
+mail au destinataire.</p>
+<p>Si vous avez bien suivi, vous pouvez voir que je n'ai pas parlé de récupération
+ni de lecture des mails. C'est pour une raison simple, qui est que ces taches
+sont remplies par d'autres services encore (IMAP/POP pour la récupération depuis
+le serveur, des yeux pour la lecture).</p>
+<p>Or ce qui nous intéresse ici, ce n'est pas simplement d'envoyer et de recevoir
+des emails mais bien aussi de pouvoir les récupérer et les lire, et c'est pour
+ça que ce tutoriel ne parlera pas que d'OpenSMTPd mais aussi de
+<a href="http://dovecot.org/">Dovecot</a> qui fait office de serveur IMAP et
+<a href="http://www.ijs.si/software/amavisd/">amavis</a>/<a href="http://spamassassin.apache.org/">spamassassin</a>
+pour filtrer les mails entrants et sortants.
+Le schéma suivant explique la façon dont les mails sont gérés sur le système</p>
+<div class="highlight"><pre> <span class="err">╭────────────────╮</span> <span class="err">╭──────────╮</span>
+ <span class="err">│╭──────────────</span><span class="o">></span><span class="err">│────</span><span class="o">></span> <span class="n">to</span> <span class="n">filter</span> <span class="err">───</span><span class="o">></span><span class="err">│─╮</span> <span class="err">│</span>
+ <span class="n">mail</span> <span class="n">in</span> <span class="err">││</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">amavis</span> <span class="err">│</span>
+<span class="err">───────────</span><span class="o">></span><span class="err">│╯</span> <span class="n">OpenSMTPd</span> <span class="err">╭──│</span><span class="o"><</span><span class="err">───</span> <span class="n">from</span> <span class="n">filter</span><span class="o"><</span><span class="err">───│</span><span class="o"><</span><span class="err">╯</span> <span class="err">│</span>
+ <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╰──────────╯</span>
+ <span class="n">mail</span> <span class="n">out</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╭──────────╮</span>
+<span class="o"><</span><span class="err">───────────│</span><span class="o"><</span><span class="err">────────────┴─</span><span class="o">></span><span class="err">│─────</span><span class="o">></span> <span class="n">to</span> <span class="n">MDA</span> <span class="err">─────</span><span class="o">></span><span class="err">│─────────</span><span class="o">></span><span class="err">│──</span><span class="o">></span> <span class="n">to</span> <span class="n">user</span><span class="err">'</span><span class="n">s</span>
+ <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">dovecot</span> <span class="err">│</span> <span class="n">mailbox</span>
+ <span class="err">╰────────────────╯</span> <span class="err">╰──────────╯</span>
+</pre></div>
+
+
+<p>Normalement, ceci devrait être a peu près clair.
+Pour expliquer vite fait, les emails entrants (venant des utilisateurs mais
+aussi d'autres correspondants) sont transmis a OpenSMTPd, qui envoie tout a
+<code>amavis</code>, qui vérifie a la fois les spams et les malwares pour les mails
+venants de l'exterieur, et qui signe avec DKIM pour les mails venants de
+nos utilisateurs, puis qui rentransmet les mails filtrés/signés a OpenSMTPd,
+qui a ce moment-ci trie en fonction de la destination : les mails gérés
+par le domaine vont via dovecot dans les boites mail des destinataires
+locaux, les mails exterieurs vont directement vers le MTA du serveur
+distant.</p>
+<p>Voyons comment mettre cela en place. Tout d'abord, il faut décider de la façon
+dont les différents services vont communiquer.</p>
+<p>Déjà, amavis étant configuré par défaut pour écouter (en SMTP) sur le port
+10024 et répondre sur le port 10025 quand il s'agit de filtrer et
+écouter sur le port 10026 et répondre sur le port 10027 quand il s'agit de
+signer, nous allons profiter de cette configuration et donc lui parler en SMTP
+sur ces ports.</p>
+<p>Quand a Dovecot, nous allons lui transmettre les emails en LMTP (Local Mail
+Transfer Protocol), non pas sur un port mais via un socket (dans ce cas précis,
+<code>/var/run/dovecot/lmtp</code>).</p>
+<p>Ainsi, pour reprendre le schéma présenté plus haut :</p>
+<div class="highlight"><pre> <span class="err">╭───────────────╮</span> <span class="err">╭───────────╮</span>
+ <span class="err">│╭─────────────</span><span class="o">></span><span class="err">│──</span><span class="o">></span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10026</span><span class="p">)</span> <span class="err">──</span><span class="o">></span><span class="err">│─╮</span> <span class="err">│</span>
+ <span class="n">SMTP</span> <span class="n">in</span> <span class="err">││</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">amavis</span> <span class="err">│</span>
+<span class="err">────────</span><span class="o">></span> <span class="mi">25</span><span class="err">│╯</span> <span class="n">OpenSMTPd</span> <span class="err">╭──│</span><span class="o"><</span><span class="err">──</span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10027</span><span class="p">)</span> <span class="o"><</span><span class="err">──│</span><span class="o"><</span><span class="err">╯</span> <span class="p">(</span><span class="n">sign</span><span class="p">)</span> <span class="err">│</span>
+ <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╰───────────╯</span>
+ <span class="n">SMTP</span> <span class="n">out</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span>
+<span class="mi">25</span> <span class="o"><</span><span class="err">────────│</span><span class="o"><</span><span class="err">───────────╯</span> <span class="err">│</span>
+ <span class="err">╰───────────────╯</span>
+</pre></div>
+
+
+<p>Pour les mails sortants; et</p>
+<div class="highlight"><pre> <span class="err">╭───────────────╮</span> <span class="err">╭────────────╮</span>
+ <span class="err">│╭─────────────</span><span class="o">></span><span class="err">│──</span><span class="o">></span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10024</span><span class="p">)</span> <span class="err">──</span><span class="o">></span><span class="err">│─╮</span> <span class="err">│</span>
+ <span class="n">SMTP</span> <span class="n">in</span> <span class="err">││</span> <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">amavis</span> <span class="err">│</span>
+<span class="err">────────</span><span class="o">></span> <span class="mi">25</span><span class="err">│╯</span> <span class="n">OpenSMTPd</span> <span class="err">╭──│</span><span class="o"><</span><span class="err">──</span> <span class="n">SMTP</span> <span class="p">(</span><span class="mi">10025</span><span class="p">)</span> <span class="o"><</span><span class="err">──│</span><span class="o"><</span><span class="err">╯</span><span class="p">(</span><span class="n">filter</span><span class="p">)</span> <span class="err">│</span>
+ <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╰────────────╯</span>
+ <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="err">╭────────────╮</span>
+ <span class="err">│</span> <span class="err">╰─</span><span class="o">></span><span class="err">│──</span><span class="o">></span> <span class="n">LMTP</span> <span class="p">(</span><span class="n">socket</span><span class="p">)</span> <span class="err">─</span><span class="o">></span><span class="err">│───────────</span><span class="o">></span><span class="err">│──</span><span class="o">></span> <span class="n">to</span> <span class="n">user</span><span class="err">'</span><span class="n">s</span>
+ <span class="err">│</span> <span class="err">│</span> <span class="err">│</span> <span class="n">dovecot</span> <span class="err">│</span> <span class="n">mailbox</span>
+ <span class="err">╰───────────────╯</span> <span class="err">╰────────────╯</span>
+</pre></div>
+
+
+<p>Pour les mails entrants.</p>
+<p>Maintenant que la théorie est claire, mettons en place tout cela. Je me baserai
+ici sur le fait que vous utilisiez une plateforme Debian ou OpenBSD. Pour
+d'autres plateformes, la configuration devrait être sensiblement la même</p>
+<p>(Vous aurez besoin de certificats SSL pour ce guide, même self-signés.
+Si vous ne savez pas comment en créer, vous pouvez aller voir <a href="http://wxcafe.net/posts/05/30/14/SSL-ou-la-securite-sur-internet/">ce
+post</a>)</p>
+<p>Tout d'abord, commençons par installer les programmes nécessaires :</p>
+<div class="highlight"><pre><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">opensmtpd</span> <span class="n">dovecot</span> <span class="n">dovecot</span><span class="o">-</span><span class="n">pigeonhole</span> <span class="n">amavisd</span><span class="o">-</span><span class="n">new</span> <span class="n">dovecot</span><span class="o">-</span><span class="n">managesieved</span>
+<span class="n">sudo</span> <span class="n">pkg_add</span> <span class="n">dovecot</span> <span class="n">dovecot</span><span class="o">-</span><span class="n">pigeonhole</span> <span class="n">amavisd</span><span class="o">-</span><span class="n">new</span>
+</pre></div>
+
+
+<p>Continuons en configurant OpenSMTPd tel que nous avons vu plus haut :</p>
+<p><code>/etc/smtpd.conf</code></p>
+<div class="highlight"><pre><span class="err">#</span> <span class="nx">This</span> <span class="nx">is</span> <span class="nx">the</span> <span class="nx">smtpd</span> <span class="nx">server</span> <span class="nx">system</span><span class="na">-wide</span> <span class="nx">configuration</span> <span class="nx">file.</span>
+<span class="err">#</span> <span class="nx">See</span> <span class="nx">smtpd.conf</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> <span class="nb">for</span> <span class="nx">more</span> <span class="nx">information.</span>
+
+<span class="err">##</span> <span class="nx">Certs</span>
+<span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nx">certificate</span> <span class="s2">"/etc/certs/exem.pl.crt"</span>
+<span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">key</span> <span class="s2">"/etc/certs/exem.pl.key"</span>
+
+<span class="err">##</span> <span class="nx">Ports</span> <span class="k">to</span> <span class="nb">listen</span> <span class="k">on</span><span class="p">,</span> <span class="ow">and</span> <span class="nx">how</span> <span class="k">to</span> <span class="nb">listen</span> <span class="k">on</span> <span class="nx">them</span>
+<span class="nb">listen</span> <span class="k">on</span> <span class="nx">eth0</span> <span class="nb">port</span> <span class="mi">25</span> <span class="nx">tls</span> <span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">hostname</span> <span class="nx">exem.pl</span> <span class="nb">auth</span><span class="na">-optional</span>
+<span class="nb">listen</span> <span class="k">on</span> <span class="nx">eth0</span> <span class="nb">port</span> <span class="mi">465</span> <span class="nx">tls</span><span class="na">-require</span> <span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">hostname</span> <span class="nx">exem.pl</span> <span class="nb">auth</span> <span class="nx">mask</span><span class="na">-source</span>
+<span class="nb">listen</span> <span class="k">on</span> <span class="nx">eth0</span> <span class="nb">port</span> <span class="mi">587</span> <span class="nx">tls</span><span class="na">-require</span> <span class="nx">pki</span> <span class="nx">exem.pl</span> <span class="nb">hostname</span> <span class="nx">exem.pl</span> <span class="nb">auth</span> <span class="nx">mask</span><span class="na">-source</span>
+
+<span class="err">##</span> <span class="nx">Aliases</span>
+<span class="nb">table</span> <span class="nx">aliases</span> <span class="nb">file</span><span class="p">:/</span><span class="nx">etc</span><span class="p">/</span><span class="nx">aliases</span>
+
+<span class="err">#</span> <span class="nx">coming</span> <span class="nb">from</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nb">checked</span> <span class="nb">for</span> <span class="nx">spam</span><span class="p">/</span><span class="nx">malware</span>
+<span class="nb">listen</span> <span class="k">on</span> <span class="nx">lo</span> <span class="nb">port</span> <span class="mi">10025</span> <span class="kt">tag</span> <span class="nx">Filtered</span>
+<span class="err">#</span> <span class="nx">coming</span> <span class="nb">from</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nx">signed</span> <span class="k">with</span> <span class="nx">DKIM</span>
+<span class="nb">listen</span> <span class="k">on</span> <span class="nx">lo</span> <span class="nb">port</span> <span class="mi">10027</span> <span class="kt">tag</span> <span class="nx">Signed</span>
+
+<span class="err">##</span> <span class="nx">Receiving</span>
+<span class="err">#</span> <span class="k">if</span> <span class="nx">the</span> <span class="p">(</span><span class="nx">incoming</span><span class="p">)</span> <span class="nx">mail</span> <span class="nx">has</span> <span class="nx">been</span> <span class="nx">through</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nx">then</span> <span class="nx">we</span> <span class="nx">can</span> <span class="nx">deliver</span> <span class="nx">it</span>
+<span class="nb">accept</span> <span class="nx">tagged</span> <span class="nx">Filtered</span> <span class="nb">for</span> <span class="nb">any</span> <span class="nx">alias</span> <span class="o"><</span><span class="nx">aliases</span><span class="o">></span> <span class="nx">deliver</span> <span class="k">to</span> <span class="nx">lmtp</span> <span class="s2">"/var/run/dovecot/lmtp"</span>
+<span class="err">#</span> <span class="nx">we</span> <span class="nx">directly</span> <span class="nx">tranfer</span> <span class="nx">incoming</span> <span class="nx">mail</span> <span class="k">to</span> <span class="nx">amavisd</span> <span class="k">to</span> <span class="nx">be</span> <span class="nb">checked</span>
+<span class="nb">accept</span> <span class="nb">from</span> <span class="nb">any</span> <span class="nb">for</span> <span class="nx">domain</span> <span class="s2">"exem.pl"</span> <span class="nx">relay</span> <span class="nx">via</span> <span class="s2">"smtp://localhost:10024"</span>
+<span class="err">#</span> <span class="nx">we</span> <span class="nx">have</span> <span class="k">to</span> <span class="nx">put</span> <span class="nx">these</span> <span class="n">lines</span> <span class="k">in</span> <span class="nx">this</span> <span class="k">order</span> <span class="k">to</span> <span class="nx">avoid</span> <span class="nx">infinite</span> <span class="nx">loops</span>
+
+<span class="err">##</span> <span class="nx">Sending</span>
+<span class="err">#</span> <span class="k">if</span> <span class="nx">the</span> <span class="p">(</span><span class="nx">outgoint</span><span class="p">)</span> <span class="nx">mail</span> <span class="nx">has</span> <span class="nx">been</span> <span class="nx">through</span> <span class="nx">amavisd</span><span class="p">,</span> <span class="nx">then</span> <span class="nx">we</span> <span class="nx">can</span> <span class="nx">deliver</span> <span class="nx">it</span>
+<span class="nb">accept</span> <span class="nx">tagged</span> <span class="nx">Signed</span> <span class="nb">for</span> <span class="nb">any</span> <span class="nx">relay</span>
+<span class="err">#</span> <span class="nx">we</span> <span class="nx">tranfer</span> <span class="nx">the</span> <span class="nx">outgoing</span> <span class="nx">mail</span> <span class="k">to</span> <span class="nx">amavisd</span> <span class="k">to</span> <span class="nx">be</span> <span class="nx">signed</span>
+<span class="nb">accept</span> <span class="nb">for</span> <span class="nb">any</span> <span class="nx">relay</span> <span class="nx">via</span> <span class="s2">"smtp://localhost:10026"</span>
+<span class="err">#</span> <span class="nx">same</span><span class="p">,</span> <span class="nx">we</span> <span class="nx">have</span> <span class="k">to</span> <span class="nx">put</span> <span class="nx">these</span> <span class="n">lines</span> <span class="k">in</span> <span class="nx">this</span> <span class="k">order</span> <span class="ow">or</span> <span class="nx">infinite</span> <span class="nx">loops...</span>
+</pre></div>
+
+
+<p>Expliquons un peu ce fichier de configuration :</p>
+<ul>
+<li>Tout d'abord, le paragraphe nommé "Certs" contient les déclaration
+ d'emplacement des certificats SSL.</li>
+<li>Ensuite, le paragraphe contenant les ports externes sur lesquels nous écoutons :
+ port 25 avec TLS optionel et ports 465 et 587 avec TLS obligatoire</li>
+<li>Les alias sont définis juste après</li>
+<li>Le paragraphe suivant contient les ports locaux sur lesquels nous écoutons :
+ 10025 (port de sortie du filtre de amavis) dont on taggue les mails sortants
+ comme "Filtered" et 10027 (port de sortie des mails signés par amavis) dont on
+ taggue les mails sortants comme "Signed"</li>
+<li>Nous avons ensuite le paragraphe qui traite les mails rentrants. Si le mail
+ traité est taggué comme Filtered, alors il a été vérifié par amavis, et on
+ peut donc le transmettre au destinataire. Sinon, c'est qu'il n'a pas encore
+ été vérifié par amavis, donc on lui transmet pour analyse (sur le port 10024
+ donc). Il est important de mettre les déclarations dans ce sens, car la
+ première règle qui matche l'état du paquet est appliquée. Ici, la deuxième
+ ligne matchant tous les mails arrivant et la première seulement ceux filtrés,
+ inverser leur sens voudrait dire que les mails seraient toujours renvoyés a
+ amavis</li>
+<li>Enfin, le dernier paragraphe traite les mails sortants. De la même façon que
+ pour le paragraphe précédent, si le mail sortant est déjà taggué comme Signed
+ on le transmet au MTA du destinataire, sinon il n'a pas encore été signé par
+ DKIM par amavis et on le transmet donc a amavis pour qu'il le signe. Le
+ problème de l'ordre des lignes se pose encore, pour la même raison qu'au
+ dessus.</li>
+</ul>
+<p>Nous allons maintenant configurer dovecot. Comme nous l'avons vu, dovecot doit
+écouter en LMTP via la socket <code>/var/run/dovecot/lmtp</code> et transmettre les
+emails a la boite email de l'utilisateur. Il serait aussi interessant
+qu'il nous permette de récuperer les mails. Pour cette configuration, on ne
+mettra en place que du IMAPS. Cependant, si vous voulez mettre en place du
+POP3[s], différents guides sont trouvables facilement sur internet.</p>
+<p><code>/etc/dovecot/dovecot.conf</code></p>
+<div class="highlight"><pre><span class="cp">## Dovecot configuration file</span>
+
+<span class="cp"># basic config</span>
+<span class="n">info_log_path</span> <span class="o">=</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">log</span><span class="o">/</span><span class="n">dovecot</span><span class="o">-</span><span class="n">info</span><span class="p">.</span><span class="n">log</span>
+<span class="n">log_path</span> <span class="o">=</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">log</span><span class="o">/</span><span class="n">dovecot</span><span class="p">.</span><span class="n">log</span>
+<span class="n">log_timestamp</span> <span class="o">=</span> <span class="s">"%Y-%m-%d %H:%M:%S "</span>
+<span class="n">mail_location</span> <span class="o">=</span> <span class="n">maildir</span><span class="o">:%</span><span class="n">h</span><span class="o">/</span><span class="n">mail</span>
+
+<span class="cp"># authentication</span>
+<span class="n">passdb</span> <span class="p">{</span>
+ <span class="n">driver</span> <span class="o">=</span> <span class="n">pam</span>
+<span class="p">}</span>
+<span class="n">userdb</span> <span class="p">{</span>
+ <span class="n">driver</span> <span class="o">=</span> <span class="n">passwd</span>
+<span class="p">}</span>
+
+<span class="cp"># the protocols we use</span>
+<span class="n">protocols</span> <span class="o">=</span> <span class="n">imap</span> <span class="n">lmtp</span> <span class="n">sieve</span>
+
+<span class="cp"># ssl config</span>
+<span class="n">ssl_cert</span> <span class="o">=</span> <span class="o"></</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">exem</span><span class="p">.</span><span class="n">pl</span><span class="p">.</span><span class="n">cert</span>
+<span class="n">ssl_key</span> <span class="o">=</span> <span class="o"></</span><span class="n">etc</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">exem</span><span class="p">.</span><span class="n">pl</span><span class="p">.</span><span class="n">key</span>
+<span class="n">ssl_cipher_list</span> <span class="o">=</span> <span class="n">HIGH</span><span class="o">+</span><span class="n">kEDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">+</span><span class="n">kEECDH</span><span class="o">:</span><span class="n">HIGH</span><span class="o">:!</span><span class="n">PSK</span><span class="o">:!</span><span class="n">SRP</span><span class="o">:!</span><span class="mi">3</span><span class="n">DES</span><span class="o">:!</span><span class="n">aNULL</span>
+<span class="n">ssl</span> <span class="o">=</span> <span class="n">yes</span>
+
+<span class="cp">## configuring services </span>
+<span class="cp"># disables imap login without SSL (yes dovecot is dumb that way)</span>
+<span class="n">service</span> <span class="n">imap</span><span class="o">-</span><span class="n">login</span> <span class="p">{</span>
+ <span class="n">inet_listener</span> <span class="n">imap</span> <span class="p">{</span>
+ <span class="n">port</span><span class="o">=</span><span class="mi">0</span>
+ <span class="p">}</span>
+<span class="p">}</span>
+
+<span class="n">service</span> <span class="n">lmtp</span> <span class="p">{</span>
+ <span class="n">unix_listener</span> <span class="n">lmtp</span> <span class="p">{</span>
+ <span class="n">mode</span> <span class="o">=</span> <span class="mo">0666</span>
+ <span class="p">}</span>
+<span class="p">}</span>
+
+<span class="cp">## configuring protocols</span>
+<span class="cp"># the dovecot lda, we set it to use sieve</span>
+<span class="n">protocol</span> <span class="n">lda</span> <span class="p">{</span>
+ <span class="n">mail_plugins</span> <span class="o">=</span> <span class="err">$</span><span class="n">mail_plugins</span> <span class="n">sieve</span>
+<span class="p">}</span>
+
+<span class="n">protocol</span> <span class="n">lmtp</span> <span class="p">{</span>
+ <span class="n">postmaster_address</span> <span class="o">=</span> <span class="n">whoever</span><span class="err">@</span><span class="n">exem</span><span class="p">.</span><span class="n">pl</span>
+ <span class="n">mail_plugins</span> <span class="o">=</span> <span class="err">$</span><span class="n">mail_plugins</span> <span class="n">sieve</span>
+<span class="p">}</span>
+
+<span class="n">plugin</span> <span class="p">{</span>
+ <span class="n">sieve</span> <span class="o">=</span> <span class="o">~/</span><span class="p">.</span><span class="n">dovecot</span><span class="p">.</span><span class="n">sieve</span>
+ <span class="n">sieve_dir</span> <span class="o">=</span> <span class="o">~/</span><span class="n">sieve</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p><strong>ATTENTION: Sous OpenBSD, remplacez</strong></p>
+<div class="highlight"><pre><span class="n">passdb</span> <span class="p">{</span>
+ <span class="n">driver</span> <span class="o">=</span> <span class="n">pam</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p><strong>par</strong></p>
+<div class="highlight"><pre><span class="n">passdb</span> <span class="p">{</span>
+ <span class="n">driver</span> <span class="o">=</span> <span class="n">bsdauth</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p><strong>pour identifier les utilisateurs système</strong></p>
+<p>Ici aussi, voyons comment ce fichier est structuré :</p>
+<ul>
+<li>Tout d'abord, les configurations de base : ou iront les logs, comment formater
+ leur datation, et l'endroit ou seront stockés les mails des utilisateurs.</li>
+<li>Nous configurons ensuite la gestion de l'authentification des utilisateurs.
+ Ici nous identifions les utilisateurs avec le fichier /etc/passwd et leurs
+ mots de passe avec PAM (ou BSDAuth)</li>
+<li>Nous configurons ensuite les protocoles que nous servons. Ici, nous voulons de
+ l'IMAPS, du LMTP local et Sieve (qui sert pour trier les messages).</li>
+<li>Nous configurons le SSL</li>
+<li>Le section suivante contient la configuration des services. Nous avons en
+ premier lieu le service IMAP, dont la configuration sert uniquement a
+ désactiver IMAP. En effet, dovecot ne permet d'activer IMAPS qu'en activant
+ IMAP avec. Comme nous ne voulons pas d'IMAP sans SSL, nous le désactivons.
+ La configuration de lmtp sert a attribuer des permissions plus correctes au
+ fifo qu'il utilise</li>
+<li>Nous configurons maintenant les protocoles, pour faire fonctionner Sieve</li>
+<li>enfin, nous configurons le plugin sieve en lui indiquant quel fichier et
+ quel dossier utiliser pour sa configuration.</li>
+</ul>
+<p>Enfin, il nous reste a configurer amavis. Comme expliqué, amavis va nous servir
+a deux choses : signer les emails sortants, et filtrer les emails entrants. Il
+doit donc écouter sur les port 10026 pour les signatures et 10024 pour le
+filtrage, et répondre respectivement sur les ports 10027 et 10025 (le tout, en
+SMTP. Comme toutes les transactions se font sur le loopback, il n'y a aucun
+risque a utiliser des protocoles non chiffrés.
+Pour OpenBSD, pensez a copier la configuration par défaut depuis
+<code>/usr/local/share/examples/amavisd-new/amavisd.conf</code> et ajoutez les
+modifications nécessaires a la fin du fichier.</p>
+<p><code>/etc/amavis/conf.d/99-local.conf</code> (debian)
+<code>/etc/amavis.conf</code> (OpenBSD)</p>
+<div class="highlight"><pre><span class="n">use</span> <span class="n">strict</span><span class="p">;</span>
+
+<span class="err">$</span><span class="n">enable_dkim_verification</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
+<span class="err">$</span><span class="n">enable_dkim_signing</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
+<span class="n">dkim_key</span><span class="p">(</span><span class="s">"exem.pl"</span><span class="p">,</span> <span class="s">"main"</span><span class="p">,</span> <span class="s">"/etc/certs/dkim.key"</span> <span class="p">);</span>
+
+<span class="err">@</span><span class="n">dkim_signature_options_bysender_maps</span> <span class="o">=</span> <span class="p">(</span>
+ <span class="p">{</span> <span class="sc">'.'</span> <span class="o">=></span>
+ <span class="p">{</span> <span class="n">ttl</span> <span class="o">=></span> <span class="mi">21</span><span class="o">*</span><span class="mi">24</span><span class="o">*</span><span class="mi">3600</span><span class="p">,</span> <span class="n">c</span> <span class="o">=></span> <span class="err">'</span><span class="n">relaxed</span><span class="o">/</span><span class="n">simple</span><span class="err">'</span> <span class="p">}</span>
+ <span class="p">}</span>
+<span class="p">);</span>
+
+<span class="err">$</span><span class="n">inet_socket_port</span> <span class="o">=</span> <span class="p">[</span><span class="mi">10024</span><span class="p">,</span> <span class="mi">10026</span><span class="p">];</span>
+<span class="err">$</span><span class="n">policy_bank</span><span class="p">{</span><span class="err">'</span><span class="n">MYNETS</span><span class="err">'</span><span class="p">}</span> <span class="o">=</span> <span class="p">{</span>
+ <span class="n">originating</span> <span class="o">=></span> <span class="mi">1</span><span class="p">,</span>
+ <span class="n">os_fingerprint_method</span> <span class="o">=></span> <span class="n">undef</span><span class="p">,</span>
+<span class="p">};</span>
+
+<span class="err">$</span><span class="n">interface_policy</span><span class="p">{</span><span class="err">'</span><span class="mi">10026</span><span class="err">'</span><span class="p">}</span> <span class="o">=</span> <span class="err">'</span><span class="n">ORIGINATING</span><span class="err">'</span><span class="p">;</span>
+
+<span class="err">$</span><span class="n">policy_bank</span><span class="p">{</span><span class="err">'</span><span class="n">ORIGINATING</span><span class="err">'</span><span class="p">}</span> <span class="o">=</span> <span class="p">{</span>
+ <span class="n">originating</span> <span class="o">=></span> <span class="mi">1</span><span class="p">,</span>
+ <span class="n">allow_disclaimers</span> <span class="o">=></span> <span class="mi">1</span><span class="p">,</span>
+ <span class="n">virus_admin_maps</span> <span class="o">=></span> <span class="p">[</span><span class="s">"root\@$mydomain"</span><span class="p">],</span>
+ <span class="n">spam_admin_maps</span> <span class="o">=></span> <span class="p">[</span><span class="s">"root\@$mydomain"</span><span class="p">],</span>
+ <span class="n">warnbadhsender</span> <span class="o">=></span> <span class="mi">1</span><span class="p">,</span>
+ <span class="n">forward_method</span> <span class="o">=></span> <span class="err">'</span><span class="n">smtp</span><span class="o">:</span><span class="n">localhost</span><span class="o">:</span><span class="mi">10027</span><span class="err">'</span><span class="p">,</span>
+ <span class="n">smtpd_discard_ehlo_keywords</span> <span class="o">=></span> <span class="p">[</span><span class="err">'</span><span class="mi">8</span><span class="n">BITMIME</span><span class="err">'</span><span class="p">],</span>
+ <span class="n">bypass_banned_checks_maps</span> <span class="o">=></span> <span class="p">[</span><span class="mi">1</span><span class="p">],</span>
+ <span class="n">terminate_dsn_on_notify_success</span> <span class="o">=></span> <span class="mi">0</span><span class="p">,</span>
+<span class="p">};</span>
+
+<span class="cp">#------------ Do not modify anything below this line -------------</span>
+<span class="mi">1</span><span class="p">;</span> <span class="err">#</span> <span class="n">ensure</span> <span class="n">a</span> <span class="n">defined</span> <span class="k">return</span>
+</pre></div>
+
+
+<p>A nouveau, expliquons ce fichier :
+- le premier paragraphe définit que nous voulons qu'amavis signe les emails
+ sortants, vérifie la signature DKIM des emails rentrants, et l'endroit ou se
+ trouve la clé privée servant a signer les emails.
+- le second définit les options DKIM que nous souhaitons utiliser comme défaut.
+ Je vous invite a consulter la <a href="https://tools.ietf.org/html/rfc4871">RFC 4871</a>
+- nous définissons ensuite les ports sur lesquels nous allons écouter, puis les
+ paramètres que nous utiliserons pour les emails venant de nos utilisateurs :
+ ils seront traités comme "originating" et nous ne vérifierons pas l'OS duquel
+ ils viennent.
+- nous savons que les emails venants du port 10026 sont sortants, nous les
+ traitons donc comme tel
+- le paragraphe suivant décrit le traitement que nous faisons subir aux emails
+ sortants : tout d'abord, nous réaffirmons qu'ils viennent bien de notre
+ serveur. Nous autorisons les disclaimers (voire encore une fois la <a href="https://tools.ietf.org/html/rfc4871">RFC
+ 4871</a>. Nous déclarons l'adresse a
+ prévenir en cas de spam/virus venants de notre système, et que nous voulons
+ être prévenus. Nous déclarons ou envoyer les mails une fois signés et filtrés,
+ puis qu'il est nécessaire de convertir les emails au format 7 bits avant de
+ les envoyer au MTA, que nous autorisons tous les types et noms de fichiers, et
+ les notifications de succès d'envoi. Et voila!</p>
+<p>Vous avez pu remarquer qu'a aucun moment nous ne configurions ni la signature
+des emails sortants ni le filtrage des emails entrants. Ces paramètres sont en
+fait inclus par défaut dans amavis.</p>
+<p>Il nous reste cependant quelques opérations a faire, encore.
+Tout d'abord, il nous faut générer notre clé DKIM. Pour cela, il existe
+différentes méthodes, j'ai personnellement utilisé opendkim (<a href="https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy">un
+tutorial</a>)
+mais de nombreuses autre méthodes existent.
+Il nous reste encore a configurer spamassassin :</p>
+<div class="highlight"><pre><span class="cp">#rewrite_header Subject *****SPAM*****</span>
+<span class="cp"># report_safe 1</span>
+<span class="n">required_score</span> <span class="mf">2.0</span>
+<span class="cp"># use_bayes 1</span>
+<span class="cp"># bayes_auto_learn 1</span>
+<span class="cp"># bayes_ignore_header X-Bogosity</span>
+<span class="cp"># bayes_ignore_header X-Spam-Flag</span>
+<span class="cp"># bayes_ignore_header X-Spam-Status</span>
+<span class="n">ifplugin</span> <span class="n">Mail</span><span class="o">::</span><span class="n">SpamAssassin</span><span class="o">::</span><span class="n">Plugin</span><span class="o">::</span><span class="n">Shortcircuit</span>
+<span class="cp"># shortcircuit USER_IN_WHITELIST on</span>
+<span class="cp"># shortcircuit USER_IN_DEF_WHITELIST on</span>
+<span class="cp"># shortcircuit USER_IN_ALL_SPAM_TO on</span>
+<span class="cp"># shortcircuit SUBJECT_IN_WHITELIST on</span>
+<span class="cp"># shortcircuit USER_IN_BLACKLIST on</span>
+<span class="cp"># shortcircuit USER_IN_BLACKLIST_TO on</span>
+<span class="cp"># shortcircuit SUBJECT_IN_BLACKLIST on</span>
+<span class="n">shortcircuit</span> <span class="n">ALL_TRUSTED</span> <span class="n">off</span>
+<span class="cp"># shortcircuit BAYES_99 spam</span>
+<span class="cp"># shortcircuit BAYES_00 ham</span>
+
+<span class="n">endif</span> <span class="err">#</span> <span class="n">Mail</span><span class="o">::</span><span class="n">SpamAssassin</span><span class="o">::</span><span class="n">Plugin</span><span class="o">::</span><span class="n">Shortcircuit</span>
+</pre></div>
+
+
+<p>Comme vous pouvez le voir, les modifications se résument globalement a baisser
+le required_score pour ma part.</p>
+<p>Pour finir, activez les services nécessaires : opensmtpd, dovecot, amavisd, et
+spamassassin, et tout devrait fonctionner parfaitement</p>
+<p>Bon courage pour votre hosting de mail ensuite...</p>
\ No newline at end of file
diff --git a/output/index3.html b/output/index3.html
new file mode 100644
index 0000000..1171ba5
--- /dev/null
+++ b/output/index3.html
@@ -0,0 +1,1271 @@
+
+
+
+
+ Wxcafé
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Archlinux est réputée être une distribution Linux très complexe a
+installer et a maintenir.
+
Je vais tenter ici de vous convaincre que ce n'est pas le cas, et
+qu'elle peut se monter très intéressante et très instructive a installer
+tout autant qu'a utiliser.
+
Il convient tout d'abord de rappeler a quels principes obéit Arch:
+
+
+
Le KISS : Keep It Simple and Stupid, Archlinux tente de faire des
+ programmes simples et utilisables par tous. Avec comme base de
+ simplicité les utilisateurs de LFS... Mais il n'empêche qu'avec un peu
+ de bonne volonté, la configuration n'est pas si compliquée!
+
+
+
La philosophie UNIX : chaque programme est prévu pour ne remplir
+ qu'une seule tâche. Bien entendu, cela ne concerne que les programmes
+ conçus pour s’insérer dans la philosophie UNIX, et les installations de
+ dépendances avec le gestionnaire de paquet d'Arch fonctionnent
+ superbement bien.
+
+
+
De plus, posons les bases d'Arch : le gestionnaire de paquets s'appelle
+pacman, et les commandes de base sont :
+
+
+
recherche d'un paquet :
+
pacman-Sspaquet
+
+
+
+
+
+
installation d'un paquet :
+
sudopacman-Spaquet
+
+
+
+
+
+
désinstallation d'un paquet :
+
sudopacman-Rpaquet
+
+
+
+
+
+
mise a jour de tous les paquets installés :
+
sudopacman-Syupaquet
+
+
+
+
+
+
Archlinux est une distribution dite "rolling release", ce qui signifie
+qu'il n'y a pas de version a proprement dites, et que les paquets se
+mettent a jour en permanence, sans jamais changer la "version" d'Arch.
+Il n'y a d'ailleurs qu'une seule version de l'installeur sur le site,
+puisqu'une version plus ancienne n'aurait aucun sens.
+
Arch n'offre pas d'interface graphique par défaut : après avoir installé
+le système, vous n'aurez qu'une invite de commande. Heureusement, je
+vais ici vous guider a travers l'installation d'une interface graphique
+(mate, le fork de gnome 2)
+
L'installation d'Arch se fait par le réseau, veillez a avoir une
+connection WiFi ou filaire a proximité avant de suivre ce guide.
+
Ce guide utilise SystemV, alors qu'Arch va prochainement passer sous
+systemd. N'ayant pas encore eu le temps d’expérimenter assez avec ce
+dernier, je ferais un tutoriel pour passer votre Arch a systemd bientôt.
+
Bon, passons a l'explication de l'installation proprement dite :
+
Tout d'abord, téléchargeons l'iso d'arch la plus récente :
Et voila, l'installation est terminée! Plus qu'a quitter la session et a
+redémarrer l'ordinateur!
+
exit
+umount/mnt/home
+umount/mnt
+reboot
+
+
+
+
Fini!
+
Prenons une petite pause. La partie suivante de ce tutoriel consister en
+un paramétrage des principaux services nécessaires a l'utilisation d'un
+OS, disons, moyen :
Installation de sudo et de networkmanager pour faire fonctionner les
+composants essentiels du système sans avoir a tout activer a la main a
+chaque démarrage
+
+
+
Installation de SLiM comme gestionnaire de login graphique, pour
+présenter une interface plus accueillante que la console, et
+configuration de celui-ci
+
+
+
Installation des principaux logiciels utiles non inclus dans mate ni
+base (yaourt, chromium, thunderbird, etc...).
+
+
+
Ce guide est bien sur optionnel, si vous souhaitez utiliser Arch avec un
+gestionnaire de bureau autre que mate, ou sans, vous pouvez vous arrêter
+ici.
+
Bon, reprenons.
+
Nous sommes donc sur une demande de mot de passe. Entrez donc le mot de
+passe paramétré plus haut pour le root, puis retapez la commande
+utilisée plus tôt pour vous connecter a internet.
+
Il convient d'ajouter le dépôt de MATE pour installer ce dernier, puis
+d'effectuer l'action en question :
Sinon, il est possible de juste redémarrer.
+Une fois cela fait, profitez de ce moment pour vous autoriser vous même
+a utiliser sudo. Loggez vous en root, et :
+
vim/etc/sudoers
+
+
+
+
Décommentez la ligne qui commence par # %wheel ALL=(ALL)
+Sauvegardez le fichier, puis, après un su *votrenom*, tentez de faire
+un sudo ls /
+Normalement, vous devriez avoir un listing du dossier /
+Bon, maintenant, pourquoi ne pas tenter de lancer MATE?
+C'est simple comme bonjour :
+
startx
+
+
+
+
Et PAF! Voila un MATE desktop flambant neuf a configurer!
+Avant de faire ça, retournez sur un TTY (CTRL+ALT+Fx), loggez vous,
+puis installez SLiM (sudo pacman -Syu slim).
+Configurons le:
Éditez la ligne
+"sessions xfce4,icewm-session,wmaker,blackbox" de facon a
+ce qu'elle ressemble a "sessions mate-session"
+Puis ajoutez slim dans /etc/rc.conf, dans la section DAEMONS.
+Normalement, tout devrait fonctionner!
+Ah oui, et pour installer thunderbird, firefox, chromium, etc...
Un système de fichiers. Vous en avez surement déjà entendu parlé si vous
+avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous
+connaissez surement NTFS, EXT4, ou encore FAT32.
+
Ces différents noms désignent en effet des systèmes de fichiers. Mais
+qu'est-ce qu'un système de fichiers?
+
Pour comprendre cela, il faut déjà savoir ce qu'est exactement un
+fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la
+plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio
+(kibioctet), en fonction du système de fichier utilisé.), qui est
+donc composé de bits, interprétés différemment en fonction du type de
+fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il
+n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent,
+ou il commence ni où il s'arrête (je schématise un peu, mais c'est
+l'idée).
+
Ainsi, le système de fichier donne un cadre et un standard à
+l'arborescence des fichiers. Par exemple, le système de fichier ext4
+utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de
+disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio
+et mesurer la taille des fichiers en blocs de cette façon. Les systèmes
+de fichiers nécessitent l'inclusion de drivers dans le noyau pour
+pouvoir être pris en compte.
+
Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs,
+reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu
+près tout type de partition récente.
+
Il convient de bien faire la différence entre le système de fichier et
+l'arborescence des fichiers. Si l'arborescence des fichiers est en fait
+une entité virtuelle englobant la racine / et tous les fichiers et
+dossiers contenus dedans, le système de fichier permet a votre système
+GNU/Linux de distinguer les différents fichiers composants cette
+arborescence.
+
Détaillons maintenant les types de fichiers les plus répandus:
+
+
+
FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table,
+ soit la définition d'un système de fichier), remplissent leur rôle le
+ plus simplement possible. Ne permettant (historiquement) que des noms de
+ 8 caractères (plus extension de trois caractères), ni chiffrement, ni
+ système de distinction d'utilisateurs (DOS étant un système
+ mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32,
+ utlisants respectivement des blocs de 16 et 32 Kio.
+
+
+
NTFS :. Le NTFS (pour New Technology File System, rapport a Windows
+ NT) est un système de fichier qui est apparu avec Windows XP, et qui
+ était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a
+ FAT différentes capacités dont le chiffrement, les liens symboliques, la
+ compression et les quotas pour les volumes, permettant de limiter la
+ taille maximum occupée dans une partition.
+
+
+
ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012.
+ Ne différant pas énormément de NTFS, je le mentionne principalement
+ parce qu'il est prévu qu'il soit le défaut pour Windows 8.
+ Il apporte principalement la redondance, c'est a dire que chaque
+ fichier possède une somme de contrôle en 64 bits stockée dans un fichier
+ séparé pour éviter les corruption de disque.
+
+
+
Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers
+ les plus utilisés sous linux pour le grand public. (Je traiterai ici
+ d'ext4, puisque c'est le plus récent.) Il dispose de toutes les
+ fonctions que l'on peut attendre d'un système de fichiers moderne, ni
+ plus ni moins. Ainsi, ext4 est un système de fichiers journalisé,
+ acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite
+ "par extent", ce qui signifie que la création d'un fichier réserve
+ automatiquement les zones contiguës de façon a réduire la fragmentation.
+
+
+
ReiserFS : ce système de fichiers, créé par le (légèrement mégalo)
+ programmeur Hans Reiser, est a retenir pour avoir été le premier système
+ de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des
+ 4 milliards. Le but de ce système est de créer un système polyvalent, a
+ la fois système de fichiers et base de donnée (de part sa grande
+ capacité en terme de nombre de fichiers et de l'utilisation d'un
+ journal.)
+
+
+
Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi
+ l'allocation par extent, mais possède de plus un système de
+ sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers
+ montées en même temps (système pratique et utile pour faire des
+ snapshots de systèmes.). Il permet aussi de redimensionner a chaud la
+ taille des partitions, en les agrandissant ou en les rétrécissant, est
+ compatible avec LVM, a un système de checking intégré (btrfsck), et
+ utilise un algorithme de compression appelé LZ4, qui accélère les accès
+ aux fichiers compressés d'environ 30% par rapport a LZO, le système
+ utilisé dans ext4.
+
+
+
HFS+ : le système de fichier présent sur tous les macs a des capacités
+ relativement standards, et ressemble énormément a l'ext3. Il supporte
+ cependant les liens directs vers les dossiers, fonction rare sur les
+ systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau
+ dans les années a venir
+
+
+
ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux
+ et *BSD, est, tel Btrfs, a la fois un système de fichier et un
+ remplaçant/compatible avec LVM, C'est un système de fichiers conçu
+ principalement pour les serveurs, et il intègre ainsi un système de
+ redondance des données pour éviter les corruptions, un mode RAID-Z
+ (apparenté au RAID5), des checks d’intégrité en continu, des snapshots,
+ etc...
+
+
+
Comme on a pu le voir, les systèmes de fichiers disponibles sont
+légions. Cependant, le plus adapté a Linux et a une utilisation grand
+public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier
+n'est pas aujourd'hui proposé par défaut sur les distributions les plus
+utilisées, au profit de l'ext4, qui commence a accuser son âge...
+
Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au
+fonctionnement du système, sont en fait de première importance, et ce
+choix ne devrait pas être laissé au hasard, et être mis a jour
+régulièrement (pour éviter les failles de sécurité...)
+
Bon courage, et bon choix pour votre prochain système.
Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y
+a peu...), le nom que donnait Tolkien au dialecte principal parlé par
+les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des
+Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte
+avant de commencer cet article que l'une des œuvres les plus
+impressionnantes de Tolkien, si ce n'est la plus grande, est
+l'impressionnant travail linguistique passé sur les différentes langues
+présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya,
+la langue des nains, qui est appelé le khazalide, etc.
+
En effet, a contrario des "langues" développées dans d'autres œuvres littéraires
+telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot
+de français (ou d'anglais) a un mot de sa "langue", les langues de
+l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des
+racines logiques, des systèmes de grammaire et de conjugaison propres,
+une logique inhérente dans la prononciation ou l'orthographe, et ainsi
+de suite.
+
Un véritable rêve de linguiste donc, puisque ces langues sont
+pratiquement entièrement documentées par Tolkien lui même (voir
+l'appendice E du SdA, particulièrement instructif a ce sujet.)
+
J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster
+ici des résumés des cours que je suis ( disponibles ici , une
+traduction en français est disponible la en pdf ), et des infos ici
+toutes les deux semaines.
+
Si ce sujet vous intéresse, le compte twitter @Quenya101 poste
+régulièrement des informations sur le sujet, et pour plus d'infos sur le
+sujet, vous pouvez en trouver par ici.
+
Et en tant que première leçon, vous pouvez apprendre que ce mot que vous
+avez prononcé comme le Kenya tout le long de cet article se prononce en
+fait [Kwenïa], ou bien Qwenya!
Bonsoir! Un petit post pour faire un peu le point sur ce blog.
+Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais
+que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y
+avoir un tantinet réfléchi, ceci est du a deux points principaux :
+
+
+
Tout d'abord, le manque d'inspiration, tout simplement. C'est assez
+compliqué de trouver des sujets intéressants liés a l'informatique, et
+qui méritent un article. Je vous invite d'ailleurs a me suggérer des
+sujets via les commentaires ou twitter (@Wxcafe)
+
+
+
Ensuite, le délai de 8 jours est trop court pour me permettre de faire
+les recherches nécessaires, tout en manageant mes cours et mon temps
+libre.
+
+
+
A cause de cela, j'ai pris la décision de changer le rythme de parution
+des articles a un *minimum* d'un post tous les 10 jours. Bien entendu,
+si j'ai de l'inspiration en trop, plus de posts sont envisageables.
+
Voila. A part ca, je tiens a vous remercier de me lire (c'est assez
+étonnant de voir ca...), et je précise que je vais ajouter une page
+About Me, qui bien entendu rassemblera des informations sur moi, ma vie,
+mon oeuvre :P
+
Ceci dit, je vais bosser un peu sur le prochain article.
L’interpréteur de commandes bash (Bourne Again SHell)
+est possiblement le shell le plus connu, notamment grâce a son
+intégration en tant que shell par défaut dans les distributions Linux
+les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva -
+Mageia, etc...).
+
Cependant, il n'est souvent connu qu'en tant qu’interpréteur de
+commande. Alors qu'en réalité, le bash est un langage de programmation
+(presque) complet! Ainsi, il intègre les structures de contrôle
+habituelles ( pour mémoire, les structures de contrôle comprennent les
+conditions (les ifs), les boucles (les while), et les choix (les case),
+entre autres.), et est donc ce que l'on pourrait appeler un langage de
+script, interprété, de la même façon que python, a la difference près
+qu'il contient un prompt (un système d'entrée de commande interactif)
+bien plus complet et développé que python.
+
Cependant, les programmes en bash ne sont executables que dans un
+environnement de type UNIX, et donc pas sous Windows (cygwin
+(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous
+windows. Il faut malgré tout convenir que cet environnement est bien
+plus compliqué a manipuler, et globalement ne permet pas d'acceder a des
+portages de qualité satisfaisante.)
+
Ainsi, il est possible de créer des fichiers .sh, contenant des
+instructions bash mises a la suite (de la même façon qu'un script BATCH
+Windows .bat), et faisant appel autant aux commandes internes de bash,
+aussi bien que les commandes externes mises en place par les programmes
+installés sur le système, exactement comme dans une invite de commande.
+Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit
+panda roux directement dans la boite magique, tandis qu'un if
+[condition] suivi d'un then (quelque chose) lancera le fameux quelque
+chose suscité si la condition est vérifiée. Un peu comme en C, quoi.
+
De cette façon, et avec quelques informations et connaissances, il est
+facile de comprendre le fonctionnement de la programmation en bash.
+Quelques exemples commentés:
+
1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
#!/bin/bash
+# La ligne du dessus est très importante, c'est elle qui dit a bash quel doit être
+# l'interpreteur des commandes écrites dans ce script. Ici, on dit a bash d'interpréter
+# lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire
+# executer du python, par exemple, en mettant #!/usr/bin/python a la place.
+echo"this is a test of bash as a simple script manager"# echo est une commande d'affichage de message.
+echo"what's your name, user?"
+read your_name # la commande read permet de demander a l'utilisateur de donner une
+# information, stockée dans la variable en paramètre.
+echo$your_name"is your name"# echo permet aussi d'afficher la valeur de variables.
+# Ici, on renvoie la variable remplie précédemment, suivie d'un message.
+exit# cet appel a exit n'est pas obligatoire, mais donne un aspect plus
+# propre au code. Il ne quittera pas la session de terminal, cependant.
+
+
+
+
Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite
+d'être clair quand aux capacités et a la simplicité du bash en tant que
+language de programmation. Alors en effet, nous n'avons ici absolument
+pas utilisé les capacités de bash en lui même, et n'avons fait que le
+renvoyer a des programmes externes (sauf read, il est vrai). Voyons
+maintenant la syntaxe de bash quand il s'agit d'utiliser les structures
+de contrôle:
+
1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
#!/bin/bash
+echo"welcome to this second bash program. would you please kindly enter the name of the machine you're running this on?"
+read host_name
+if[$host_name==$HOSTNAME]## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système.
+then echo"you told the truth!"
+fi## le fi est la commande fermant le if, tout comme le EndIf en basic. C'est un peu vieillot, mais important en bash.
+if[$host_name !=$HOSTNAME]## l'opérateur != est l'inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes.
+then echo"you lied!"
+fi
+exit
+
+
+
+
Voila un petit programme permettant d'apprendre la syntaxe du if en
+bash. comme vous pouvez le voir, le language est plutôt lite, et la
+structure if n'est pas très difficile a prendre en main.
+
Passons maintenant au while:
+
1
+2
+3
+4
+5
+6
+7
#!/bin/bash
+echo"what is your name?"
+read name
+while[ 1 < 10 ]## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.
+do echo"i love"$name
+done
+exit
+
+
+
+
Ce petit programme permet d'observer les bases de while (qui est la
+boucle de base en bash).
#!/bin/bash
+echo"please enter a number between one and five"
+read number
+case$number in
+1)
+echo"the choosen number was one"
+;;
+2)
+echo"the choosen number was two"
+;;
+3)
+echo"the choosen number was three"
+;;
+4)
+echo"the choosen number was four"
+;;
+5)
+echo"the choosen number was five"
+;;
+*)
+echo"this number is not correct"
+;;
+esac
+exit
+
+
+
+
case est un opérateur plus complexe a utiliser a bon escient, et sert a
+faire des ifs multiples sans avoir a taper des dizaines de lignes de
+code.
+(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre
+que le code vérifie chacune des conditions : le 1) est validé si la
+valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc..
+le *) désigne toutes les valeurs, et est donc validé si aucune autre
+valeur n'a précédemment acceptée.
+
Quelques notions manquent ici:
+- les nombres aléatoires sont générés par un appel a la variable
+\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a
+16 bits donc). il est possible de faire des invocations a des nombres
+aléatoires plus grands, mais les méthodes permettant de faire cela sont
+plus complexes, et je ne les aborderai donc pas ici.
+- comme vous avez pu le constater, les variables sont désignées en tant
+que telles par l'utilisation d'un symbole \$ au début de leur nom.
+Ainsi, echo number renverra "number", tandis que echo \$number renverra
+le résultat de la variable \$number.
+être utilisées dans un programme bash.
+- comme vous avez pu le constater, les commandes doivent tenir en
+théorie en une ligne. Cependant, le caractère \ permet de retourner a
+la ligne en faisant considérer a bash qu'il s'agit de la même ligne.
+
Globalement, il faut admettre que bash n'a pas vocation a être un
+langage de programmation extrêmement développé. Sans framework
+graphique, avec peu de manières d'utiliser de grandes variables, ou
+encore une gestion de la mémoire risible, bash n'a rien d'un langage de
+développement professionnel.
+Cependant, le simple fait qu'il soit considéré comme un langage de
+programmation a part entière font de lui un langage de script d'une
+puissance incontestable, et sa simplicité et sa grande popularité font
+de lui un langage de choix pour apprendre la programmation simplement et
+sans trop se prendre la tête.
+
J'espère que cet article aura été utile a certain-e-s, et je vous
+souhaite bonne chance dans votre découverte de la programmation (n'allez
+pas voir ceux qui font de l'orienté objet, c'est des méchants :3)
Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques
+années (plus ou moins, parce que j'ai toujours un Windows en dual boot,
+principalement pour les jeux (possiblement plus pour longtemps, avec
+l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou
+moins bien mon système. Or il y a plusieurs choses a savoir sur les
+systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est
+le système de couches.
+
Un système d'exploitation (de type UNIX, \<troll>enfin un vrai système quoi.
+\</troll>) incorpore plusieurs systèmes de couches.
+
Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique,
+c'est a dire que tous les composants sont intégrés au kernel. Ce qui
+signifie que rien ne peut être ajouté au noyau sans recompiler celui ci.
+Or, quand on sait que le noyau comprend entre autres les drivers du
+matériel et des systèmes de fichier, cela peut poser des problèmes quand
+a la taille du kernel et a la licence libre de ce dernier.
+
Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui
+signifie que des modules peuvent être chargé a tout moment en cours
+d’exécution, ce qui permet l'utilisation de nouveaux systèmes de
+fichiers a chaud, ou l'insertion de matériel et l'installation de
+drivers sans interrompre l’exécution du système (Windows utilise un
+système de fausse installation de drivers pour le matériel externe, et
+un système de pré-installation des drivers pour les périphériques dits
+"plug and play")
+
Après le noyau intervient le système. Or, au tous premiers instants du
+boot, les systèmes GNU/Linux utilisent un système permettant de limiter
+l'utilisation de ressources systèmes si elles ne sont pas nécessaires,
+et incorpore ainsi un système dit de "runlevels"
+
Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce
+runlevel permet de tester le bon démarrage du système sans avoir a
+effectuer de manipulation pour le ré-éteindre
+
Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté
+étant donné que ce runlevel donne accès a un système en étant
+automatiquement loggé en tant que root, avec tous les autres
+utilisateurs désactivés, de même que tous les systèmes de réseaux
+
Le runlevel 2 est appelé mode multi user, et vous mets en face d'un
+système classique. en ligne de commande, mais avec tous les systèmes de
+réseau désactivés.
+
Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux
+activés.
+
Le runlevel 4 n'est pas officiellement défini, et est censé être
+activable en fonction des besoins de l'utilisateur. Sur la plupart des
+distributions grand public, ce runlevel est lié au...
+
Runlevel 5! Multi-user, networking, with working GUI! c'est le système
+tel que vous le connaissez, avec l'interface graphique et le système de
+login graphique.
+
Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine
+quand il devient le runlevel courant.
+
(Il est a noter que Debian, et donc toutes les distribs qui en sont
+dérivées, ne font pas de distinction entre les differents runlevels du 2
+au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login
+et une interface graphique, et un mode réseau fonctionnel, bref avec des
+fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)
+
Il est possible de changer de runlevel grâce a la commande runlevel
+(oui, c'est évident...)
+
Les systèmes Linux utilisent aussi un système dit de SandBox , qui en
+informatique est un système permettant d'isoler les processus les uns
+des autres. Ainsi, la pile réseau, qui est le système auquel les
+différents processus envoient les différents paquets qui doivent sortir
+de la machine , et qui redistribue ces paquets, est isolée du reste du
+système, en cela qu'aucun des autres processus ne peuvent modifier cette
+pile hors du runlevel 1 ou 2.
+
De la même façon, le navigateur chrom/ium fait fonctionner tous les
+onglets, ainsi que toutes les extensions, dans des processus différents.
+Certaines distributions linux implémentent un système de cette sorte
+pour toutes les applications, ou seulement pour certaines. ainsi Chakra
+Linux a un système d'installation d'applications dans des disques
+virtuels, ce qui permet une sécurité totale du processus.
+
Voila, j'espère vous en avoir appris un peu sur le fonctionnement des
+différentes couches de linux, et j'espère que cet article vous poussera
+a tester un peu votre système et a vous amuser avec les différents
+runlevels
Salut!
+Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire
+récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé
+pas mal de temps assez occupé.
+
Enfin, après un certain temps a farfouiller au millieu des connecteurs
+SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques
+durs, je suis de retour pour un court article.
+Du coup, je m'étais dit que j'allais reprendre sur le thème de
+l'informatique expliquée au grand public, en tentant d'aller un peu plus
+loin que la dernière fois sur le thème de la programmation
+Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur.
+Si a peu près tout le monde sait que "les ordinateurs, ils ne
+comprennent que les 1 et les 0!", peu de gens savent comment cela
+fonctionne en détail.
+
Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà
+des notions de base en informatique. Ainsi, vous savez surement que les
+ordinateurs fonctionnent avec des programmes, qui sont composés de
+code.
+Ainsi, il faut comprendre que le code (source) est "compilé" en un
+fichier "binaire". Un fichier binaire est un fichier comprenant les
+instructions telles qu’exécutées par le processeur, et donc absolument
+illisible pour un humain.
+
La compilation est le processus qui transforme le code source en
+binaire executable. Les binaires ont, sous Windows, l'extension .exe,
+tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension
+particulière.
+Ceci étant dit, il faut comprendre que certains langages sont plus
+proches que d'autres du langage processeur, les langages les plus
+proches sont dits de "bas niveau". Les langages les plus éloignés sont
+donc dits de haut niveau.
+
Par exemple, l'assembleur est l'un des languages de plus bas niveau,
+tandis que python par exemple est un langage de plus haut niveau. Les
+langages de haut niveau sont souvent bien plus simples a comprendre et a
+apprendre que les langages de bas niveau
+
Ainsi, en C, un langage de niveau relativement bas, pour afficher
+"hello world" sur l'écran, le code nécessaire est :
et n'a pas besoin d'être compilé , puisqu'il peut être intepreté
+directement.
+
Python utilise en effet un système similaire a Java en ayant un
+interpréteur dit "runtime" ou "temps réel", qui interprète le programme
+sans le compiler. Java utilise un système légèrement différent, puisque
+le code a besoin d'être compilé, mais est interpreté par un interpréteur
+et non par le processeur.
+
Cette méthode permet le fameux "code once, run everywhere", ce qui
+signifie que le même code est exécutable sur quasiment tous les systèmes
+d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est
+disponible.)
+
Voila, je vous laisse sur le fonctionnement de Java et de Python, et je
+vais me coucher.
+A bientôt!
GNU/Linux est un vaste et extraordinaire territoire technologique, mais
+je ne vais pas m'attarder ici sur les aspects profondément techniques de
+ce territoire pour faire plutôt une sorte d'introduction a ce qu'est
+vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de
+connaissances en informatique.
+
GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un
+Système d'Exploitation. Un système d'exploitation est, pour simplifier,
+un ensemble d'outils informatiques qui vous permettent d'utiliser votre
+ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation
+de système d'exploitation (Operating System en anglais) est OS. Les 4
+principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et
+Solaris. Les trois derniers sont issus d'un autre système, plus ancien,
+nommé UNIX.
+
De ce fait, on pourrait penser que Linux remplace complètement Windows
+une fois installé, et comprend une interface graphique, et toutes sortes
+d'utilitaires permettant a l'utilisateur d'utiliser le système (sous
+Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer.
+Pour l'interface graphique, pensez a... Pensez que votre système affiche
+autre chose que des lignes de commande.) Or non, une fois installé,
+Linux en lui même ne vous afficherait aucune interface graphique, et
+s'il est effectivement livré avec des utilitaires, ils ne sont que des
+programmes en ligne de commande. Autant les utilisateurs avancés sauront
+s'en servir, et pourront argumenter que c'est plus efficace ou plus
+rapide, autant les utilisateurs basiques préfèrent une interface
+graphique. Alors comment en obtenir une?
+
Ici, il convient de faire une précision importante. Si il n'existe
+qu'une seule version de Windows, ou de Mac OS, il existe en fait
+plusieurs centaines de "versions" différentes de Linux. Appelées
+distributions, ces dernière sont développées par des groupes
+complètement séparés, et se basent sur le fait que Linux soit
+entièrement placé sous licence libre (ce qui leur permet de l'utiliser a
+leur guise, a condition que leur travail soit lui aussi placé sous
+licence libre). De ce fait, de nombreuses distributions existent et se
+développent en parallèle. On peut ainsi citer Debian, qui est l'une
+des distributions les plus importantes, ou encore Ubuntu, qui est
+l'une des plus connues et des plus simples a utiliser.
+
Ainsi, ces distributions intègrent une interface graphique. Cependant,
+grâce a la liberté dont bénéficient les développeurs sous Linux, il
+existe de nombreuses interfaces graphiques différentes : Unity, la
+nouvelle interface d'Ubuntu; GNOME , une interface qui vise a la
+simplicité; ou encore KDE, une interface utilisateur ressemblant a
+Windows 7.
+
Ainsi, le choix astronomique de distributions Linux a bien un sens :
+chacune d'entre elle intègre des outils différents. Par exemple, Debian
+intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend
+particulièrement stable. Ubuntu intègre Unity, ce qui en fait une
+distribution particulièrement intuitive. Linux Mint intègre Cinnamon,
+qui est une version dérivée de GNOME 3, ce qui permet encore une autre
+expérience. Et Arch Linux n'intègre pas d'interface graphique du tout,
+ce qui permet a l'utilisateur de choisir entre les multiples interfaces
+existantes.
+
Ce qu'il est important de retenir de cela, c'est que Linux est un OS
+complètement libre, ce qui signifie que n'importe qui peut modifier et
+utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi,
+Linux est un OS qui est véritablement créé par des passionnés, pour tous
+et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué
+a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus.
+Cependant, Linux donne la possibilité a l'utilisateur de le rendre
+affreusement complexe, mais aussi de le rendre adapté a ses besoins,
+quels que soient ceux ci. Et c'est la que réside l'incroyable puissance
+de ce Système d'Exploitation. Il est extraordinairement adaptable.
+
N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas
+technophiles. Ils pourraient adorer, et peut être même le devenir :)
Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur
+Twitter, mais aussi sur IRC (Je traîne pas mal sur
+irc.freenode.net/##nolife et #debian-fr)
+
J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je
+fais partie de ce genre de personne qui sont capables d'investir tout
+leur temps et leur énergie a s’intéresser a un sujet en particulier, et
+qui ne peuvent pas vivre sans leurs passions, avec une petite différence
+cependant, qui est que je m’intéresse a plusieurs choses :
+l'informatique, qui est un champ tellement large qu'on peut passer une
+vie a apprendre des choses dessus, et plus particulièrement à
+l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres
+{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les
+trolls seront a partir de maintenant indiqués avec le tag [tr]] du
+libre, je préfère utiliser de l'open-source si c'est possible},
+programmation en C, python et java, etc...) , mais aussi a
+l’électronique.
+
Dans un tout autre registre, je m’intéresse aussi
+beaucoup aux différents aspects du féminisme et des égalités sexuelles
+(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) ,
+et a la culture dite "geek" en général.
+
Je tenterai de poster ici le plus souvent possible, mais j'ai de gros
+problèmes en terme de régularité de post, donc ne vous inquiétez pas si
+vous ne voyez rien pendant deux semaines.
Archlinux est réputée être une distribution Linux très complexe a
+installer et a maintenir.
+
Je vais tenter ici de vous convaincre que ce n'est pas le cas, et
+qu'elle peut se monter très intéressante et très instructive a installer
+tout autant qu'a utiliser.
+
Il convient tout d'abord de rappeler a quels principes obéit Arch:
+
+
+
Le KISS : Keep It Simple and Stupid, Archlinux tente de faire des
+ programmes simples et utilisables par tous. Avec comme base de
+ simplicité les utilisateurs de LFS... Mais il n'empêche qu'avec un peu
+ de bonne volonté, la configuration n'est pas si compliquée!
+
+
+
La philosophie UNIX : chaque programme est prévu pour ne remplir
+ qu'une seule tâche. Bien entendu, cela ne concerne que les programmes
+ conçus pour s’insérer dans la philosophie UNIX, et les installations de
+ dépendances avec le gestionnaire de paquet d'Arch fonctionnent
+ superbement bien.
+
+
+
De plus, posons les bases d'Arch : le gestionnaire de paquets s'appelle
+pacman, et les commandes de base sont :
+
+
+
recherche d'un paquet :
+
pacman-Sspaquet
+
+
+
+
+
+
installation d'un paquet :
+
sudopacman-Spaquet
+
+
+
+
+
+
désinstallation d'un paquet :
+
sudopacman-Rpaquet
+
+
+
+
+
+
mise a jour de tous les paquets installés :
+
sudopacman-Syupaquet
+
+
+
+
+
+
Archlinux est une distribution dite "rolling release", ce qui signifie
+qu'il n'y a pas de version a proprement dites, et que les paquets se
+mettent a jour en permanence, sans jamais changer la "version" d'Arch.
+Il n'y a d'ailleurs qu'une seule version de l'installeur sur le site,
+puisqu'une version plus ancienne n'aurait aucun sens.
+
Arch n'offre pas d'interface graphique par défaut : après avoir installé
+le système, vous n'aurez qu'une invite de commande. Heureusement, je
+vais ici vous guider a travers l'installation d'une interface graphique
+(mate, le fork de gnome 2)
+
L'installation d'Arch se fait par le réseau, veillez a avoir une
+connection WiFi ou filaire a proximité avant de suivre ce guide.
+
Ce guide utilise SystemV, alors qu'Arch va prochainement passer sous
+systemd. N'ayant pas encore eu le temps d’expérimenter assez avec ce
+dernier, je ferais un tutoriel pour passer votre Arch a systemd bientôt.
+
Bon, passons a l'explication de l'installation proprement dite :
+
Tout d'abord, téléchargeons l'iso d'arch la plus récente :
Et voila, l'installation est terminée! Plus qu'a quitter la session et a
+redémarrer l'ordinateur!
+
exit
+umount/mnt/home
+umount/mnt
+reboot
+
+
+
+
Fini!
+
Prenons une petite pause. La partie suivante de ce tutoriel consister en
+un paramétrage des principaux services nécessaires a l'utilisation d'un
+OS, disons, moyen :
Installation de sudo et de networkmanager pour faire fonctionner les
+composants essentiels du système sans avoir a tout activer a la main a
+chaque démarrage
+
+
+
Installation de SLiM comme gestionnaire de login graphique, pour
+présenter une interface plus accueillante que la console, et
+configuration de celui-ci
+
+
+
Installation des principaux logiciels utiles non inclus dans mate ni
+base (yaourt, chromium, thunderbird, etc...).
+
+
+
Ce guide est bien sur optionnel, si vous souhaitez utiliser Arch avec un
+gestionnaire de bureau autre que mate, ou sans, vous pouvez vous arrêter
+ici.
+
Bon, reprenons.
+
Nous sommes donc sur une demande de mot de passe. Entrez donc le mot de
+passe paramétré plus haut pour le root, puis retapez la commande
+utilisée plus tôt pour vous connecter a internet.
+
Il convient d'ajouter le dépôt de MATE pour installer ce dernier, puis
+d'effectuer l'action en question :
Sinon, il est possible de juste redémarrer.
+Une fois cela fait, profitez de ce moment pour vous autoriser vous même
+a utiliser sudo. Loggez vous en root, et :
+
vim/etc/sudoers
+
+
+
+
Décommentez la ligne qui commence par # %wheel ALL=(ALL)
+Sauvegardez le fichier, puis, après un su *votrenom*, tentez de faire
+un sudo ls /
+Normalement, vous devriez avoir un listing du dossier /
+Bon, maintenant, pourquoi ne pas tenter de lancer MATE?
+C'est simple comme bonjour :
+
startx
+
+
+
+
Et PAF! Voila un MATE desktop flambant neuf a configurer!
+Avant de faire ça, retournez sur un TTY (CTRL+ALT+Fx), loggez vous,
+puis installez SLiM (sudo pacman -Syu slim).
+Configurons le:
Éditez la ligne
+"sessions xfce4,icewm-session,wmaker,blackbox" de facon a
+ce qu'elle ressemble a "sessions mate-session"
+Puis ajoutez slim dans /etc/rc.conf, dans la section DAEMONS.
+Normalement, tout devrait fonctionner!
+Ah oui, et pour installer thunderbird, firefox, chromium, etc...
Je m'appelle Wxcafé, et ça fait pas mal de temps que je sévis sur
+Twitter, mais aussi sur IRC (Je traîne pas mal sur
+irc.freenode.net/##nolife et #debian-fr)
+
J'ai 17 ans, je suis donc étudiant (bac général), je vis a Paris, et je
+fais partie de ce genre de personne qui sont capables d'investir tout
+leur temps et leur énergie a s’intéresser a un sujet en particulier, et
+qui ne peuvent pas vivre sans leurs passions, avec une petite différence
+cependant, qui est que je m’intéresse a plusieurs choses :
+l'informatique, qui est un champ tellement large qu'on peut passer une
+vie a apprendre des choses dessus, et plus particulièrement à
+l'informatique avancée (Noyaux dérivés d'UNIX et de Linux, outils libres
+{bien que n'étant pas un barbu intégriste [ceci est un troll assumé. Les
+trolls seront a partir de maintenant indiqués avec le tag [tr]] du
+libre, je préfère utiliser de l'open-source si c'est possible},
+programmation en C, python et java, etc...) , mais aussi a
+l’électronique.
+
Dans un tout autre registre, je m’intéresse aussi
+beaucoup aux différents aspects du féminisme et des égalités sexuelles
+(anti-homophobie/transphobie/biphobie/etc , anti-sexisme, et cætera) ,
+et a la culture dite "geek" en général.
+
Je tenterai de poster ici le plus souvent possible, mais j'ai de gros
+problèmes en terme de régularité de post, donc ne vous inquiétez pas si
+vous ne voyez rien pendant deux semaines.
GNU/Linux est un vaste et extraordinaire territoire technologique, mais
+je ne vais pas m'attarder ici sur les aspects profondément techniques de
+ce territoire pour faire plutôt une sorte d'introduction a ce qu'est
+vraiment GNU/Linux, pour les gens n'ayant aucune ou très peu de
+connaissances en informatique.
+
GNU/Linux, que j’abrégerai ici en Linux pour plus de simplicité, est un
+Système d'Exploitation. Un système d'exploitation est, pour simplifier,
+un ensemble d'outils informatiques qui vous permettent d'utiliser votre
+ordinateur, ainsi, Windows est un système d'exploitation. L'abréviation
+de système d'exploitation (Operating System en anglais) est OS. Les 4
+principaux OS existants aujourd'hui sont Windows, Mac OS, GNU/Linux, et
+Solaris. Les trois derniers sont issus d'un autre système, plus ancien,
+nommé UNIX.
+
De ce fait, on pourrait penser que Linux remplace complètement Windows
+une fois installé, et comprend une interface graphique, et toutes sortes
+d'utilitaires permettant a l'utilisateur d'utiliser le système (sous
+Windows, pensez a l'explorateur de fichiers, ou a Internet Explorer.
+Pour l'interface graphique, pensez a... Pensez que votre système affiche
+autre chose que des lignes de commande.) Or non, une fois installé,
+Linux en lui même ne vous afficherait aucune interface graphique, et
+s'il est effectivement livré avec des utilitaires, ils ne sont que des
+programmes en ligne de commande. Autant les utilisateurs avancés sauront
+s'en servir, et pourront argumenter que c'est plus efficace ou plus
+rapide, autant les utilisateurs basiques préfèrent une interface
+graphique. Alors comment en obtenir une?
+
Ici, il convient de faire une précision importante. Si il n'existe
+qu'une seule version de Windows, ou de Mac OS, il existe en fait
+plusieurs centaines de "versions" différentes de Linux. Appelées
+distributions, ces dernière sont développées par des groupes
+complètement séparés, et se basent sur le fait que Linux soit
+entièrement placé sous licence libre (ce qui leur permet de l'utiliser a
+leur guise, a condition que leur travail soit lui aussi placé sous
+licence libre). De ce fait, de nombreuses distributions existent et se
+développent en parallèle. On peut ainsi citer Debian, qui est l'une
+des distributions les plus importantes, ou encore Ubuntu, qui est
+l'une des plus connues et des plus simples a utiliser.
+
Ainsi, ces distributions intègrent une interface graphique. Cependant,
+grâce a la liberté dont bénéficient les développeurs sous Linux, il
+existe de nombreuses interfaces graphiques différentes : Unity, la
+nouvelle interface d'Ubuntu; GNOME , une interface qui vise a la
+simplicité; ou encore KDE, une interface utilisateur ressemblant a
+Windows 7.
+
Ainsi, le choix astronomique de distributions Linux a bien un sens :
+chacune d'entre elle intègre des outils différents. Par exemple, Debian
+intègre GNOME 2, qui est l'ancienne version de GNOME, ce qui la rend
+particulièrement stable. Ubuntu intègre Unity, ce qui en fait une
+distribution particulièrement intuitive. Linux Mint intègre Cinnamon,
+qui est une version dérivée de GNOME 3, ce qui permet encore une autre
+expérience. Et Arch Linux n'intègre pas d'interface graphique du tout,
+ce qui permet a l'utilisateur de choisir entre les multiples interfaces
+existantes.
+
Ce qu'il est important de retenir de cela, c'est que Linux est un OS
+complètement libre, ce qui signifie que n'importe qui peut modifier et
+utiliser tout le code de Linux gratuitement et comme il l'entend. Ainsi,
+Linux est un OS qui est véritablement créé par des passionnés, pour tous
+et toutes. Surtout, il convient de retenir que Linux n'est pas compliqué
+a utiliser, ni a installer. Windows et Mac OS ne le sont pas non plus.
+Cependant, Linux donne la possibilité a l'utilisateur de le rendre
+affreusement complexe, mais aussi de le rendre adapté a ses besoins,
+quels que soient ceux ci. Et c'est la que réside l'incroyable puissance
+de ce Système d'Exploitation. Il est extraordinairement adaptable.
+
N'hésitez donc pas a le présenter a vos proches, même s'ils ne sont pas
+technophiles. Ils pourraient adorer, et peut être même le devenir :)
L’interpréteur de commandes bash (Bourne Again SHell)
+est possiblement le shell le plus connu, notamment grâce a son
+intégration en tant que shell par défaut dans les distributions Linux
+les plus répandues (Debian - Ubuntu, Fedora, OpenSUSE, Mandriva -
+Mageia, etc...).
+
Cependant, il n'est souvent connu qu'en tant qu’interpréteur de
+commande. Alors qu'en réalité, le bash est un langage de programmation
+(presque) complet! Ainsi, il intègre les structures de contrôle
+habituelles ( pour mémoire, les structures de contrôle comprennent les
+conditions (les ifs), les boucles (les while), et les choix (les case),
+entre autres.), et est donc ce que l'on pourrait appeler un langage de
+script, interprété, de la même façon que python, a la difference près
+qu'il contient un prompt (un système d'entrée de commande interactif)
+bien plus complet et développé que python.
+
Cependant, les programmes en bash ne sont executables que dans un
+environnement de type UNIX, et donc pas sous Windows (cygwin
+(cygwin.com) propose ceci dit un système permettant d'utiliser bash sous
+windows. Il faut malgré tout convenir que cet environnement est bien
+plus compliqué a manipuler, et globalement ne permet pas d'acceder a des
+portages de qualité satisfaisante.)
+
Ainsi, il est possible de créer des fichiers .sh, contenant des
+instructions bash mises a la suite (de la même façon qu'un script BATCH
+Windows .bat), et faisant appel autant aux commandes internes de bash,
+aussi bien que les commandes externes mises en place par les programmes
+installés sur le système, exactement comme dans une invite de commande.
+Ainsi, pour appeller firefox, la commande 'firefox' lancera le petit
+panda roux directement dans la boite magique, tandis qu'un if
+[condition] suivi d'un then (quelque chose) lancera le fameux quelque
+chose suscité si la condition est vérifiée. Un peu comme en C, quoi.
+
De cette façon, et avec quelques informations et connaissances, il est
+facile de comprendre le fonctionnement de la programmation en bash.
+Quelques exemples commentés:
+
1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
#!/bin/bash
+# La ligne du dessus est très importante, c'est elle qui dit a bash quel doit être
+# l'interpreteur des commandes écrites dans ce script. Ici, on dit a bash d'interpréter
+# lui même les commandes comprises dans ce script. On aurait tout de fois pu lui faire
+# executer du python, par exemple, en mettant #!/usr/bin/python a la place.
+echo"this is a test of bash as a simple script manager"# echo est une commande d'affichage de message.
+echo"what's your name, user?"
+read your_name # la commande read permet de demander a l'utilisateur de donner une
+# information, stockée dans la variable en paramètre.
+echo$your_name"is your name"# echo permet aussi d'afficher la valeur de variables.
+# Ici, on renvoie la variable remplie précédemment, suivie d'un message.
+exit# cet appel a exit n'est pas obligatoire, mais donne un aspect plus
+# propre au code. Il ne quittera pas la session de terminal, cependant.
+
+
+
+
Voila. Ce script bash ne sert pas a grand chose, mais il a le mérite
+d'être clair quand aux capacités et a la simplicité du bash en tant que
+language de programmation. Alors en effet, nous n'avons ici absolument
+pas utilisé les capacités de bash en lui même, et n'avons fait que le
+renvoyer a des programmes externes (sauf read, il est vrai). Voyons
+maintenant la syntaxe de bash quand il s'agit d'utiliser les structures
+de contrôle:
+
1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
#!/bin/bash
+echo"welcome to this second bash program. would you please kindly enter the name of the machine you're running this on?"
+read host_name
+if[$host_name==$HOSTNAME]## voici la syntaxe du if. Attention a bien penser a mettre les espaces avant la première variable, et après la seconde. La variable $HOSTNAME ici utilisée est une variable présente par défaut sur le système.
+then echo"you told the truth!"
+fi## le fi est la commande fermant le if, tout comme le EndIf en basic. C'est un peu vieillot, mais important en bash.
+if[$host_name !=$HOSTNAME]## l'opérateur != est l'inverse de ==, il vérifie donc si les deux variables ne sont pas les mêmes.
+then echo"you lied!"
+fi
+exit
+
+
+
+
Voila un petit programme permettant d'apprendre la syntaxe du if en
+bash. comme vous pouvez le voir, le language est plutôt lite, et la
+structure if n'est pas très difficile a prendre en main.
+
Passons maintenant au while:
+
1
+2
+3
+4
+5
+6
+7
#!/bin/bash
+echo"what is your name?"
+read name
+while[ 1 < 10 ]## le while se présente sous la forme while (truc); do (machin); done. Les [] sont en fait des programmes differents, inclus dans bash.
+do echo"i love"$name
+done
+exit
+
+
+
+
Ce petit programme permet d'observer les bases de while (qui est la
+boucle de base en bash).
#!/bin/bash
+echo"please enter a number between one and five"
+read number
+case$number in
+1)
+echo"the choosen number was one"
+;;
+2)
+echo"the choosen number was two"
+;;
+3)
+echo"the choosen number was three"
+;;
+4)
+echo"the choosen number was four"
+;;
+5)
+echo"the choosen number was five"
+;;
+*)
+echo"this number is not correct"
+;;
+esac
+exit
+
+
+
+
case est un opérateur plus complexe a utiliser a bon escient, et sert a
+faire des ifs multiples sans avoir a taper des dizaines de lignes de
+code.
+(pour ceux qui auraient du mal avec cet opérateur, il faut comprendre
+que le code vérifie chacune des conditions : le 1) est validé si la
+valeur de \$number est 1, le 2) est validé si cette valeur est 2, etc..
+le *) désigne toutes les valeurs, et est donc validé si aucune autre
+valeur n'a précédemment acceptée.
+
Quelques notions manquent ici:
+- les nombres aléatoires sont générés par un appel a la variable
+\$RANDOM, qui renvoie un nombre aléatoire entre 0 et 32767 (un entier a
+16 bits donc). il est possible de faire des invocations a des nombres
+aléatoires plus grands, mais les méthodes permettant de faire cela sont
+plus complexes, et je ne les aborderai donc pas ici.
+- comme vous avez pu le constater, les variables sont désignées en tant
+que telles par l'utilisation d'un symbole \$ au début de leur nom.
+Ainsi, echo number renverra "number", tandis que echo \$number renverra
+le résultat de la variable \$number.
+être utilisées dans un programme bash.
+- comme vous avez pu le constater, les commandes doivent tenir en
+théorie en une ligne. Cependant, le caractère \ permet de retourner a
+la ligne en faisant considérer a bash qu'il s'agit de la même ligne.
+
Globalement, il faut admettre que bash n'a pas vocation a être un
+langage de programmation extrêmement développé. Sans framework
+graphique, avec peu de manières d'utiliser de grandes variables, ou
+encore une gestion de la mémoire risible, bash n'a rien d'un langage de
+développement professionnel.
+Cependant, le simple fait qu'il soit considéré comme un langage de
+programmation a part entière font de lui un langage de script d'une
+puissance incontestable, et sa simplicité et sa grande popularité font
+de lui un langage de choix pour apprendre la programmation simplement et
+sans trop se prendre la tête.
+
J'espère que cet article aura été utile a certain-e-s, et je vous
+souhaite bonne chance dans votre découverte de la programmation (n'allez
+pas voir ceux qui font de l'orienté objet, c'est des méchants :3)
PGP (pour pretty good privacy) est un système de
+chiffrement asymétrique (pour plus d'information sur le chiffrement
+asymétrique, voir ici) utilisant en général les algorithmes RSA
+et/ou DSA, et pouvant servir a chiffrer tout fichier, mais aussi a
+signer des emails. Le système de signature consiste a s'identifier en
+tant que la personne que l'on est, en certifiant de son identité, et
+repose sur un système dit de Web of Trust.
+
Ce concept de Web of Trust est simple: si je valide le code vous
+identifiant (votre clé), en certifiant que vous êtes qui vous êtes et
+que je vous connais, et que d'autres personnes m'ont déjà
+personnellement validé, les autres utilisateurs seront enclins a croire
+que vous êtes en effet la personne que vous prétendez être. Bien
+entendu, les utilisateurs validant trop de clés rapportées comme fausses
+voient la valeur de leurs signatures baissée, et toutes les clés signées
+par ces utilisateurs voient leur crédibilité baisser.
+Inversement, les "bons utilisateurs" voient la valeur de leurs
+signatures augmentée, ce qui augmente la crédibilité des clés qu'ils ont
+signées.
+
Ceci dit, un email peut être a la fois signé et chiffré, de façon a être
+sûr, non seulement que l’expéditeur de l'email est bien celui qu'il dit
+être, mais aussi que l'email n'a pas été modifié entre l'envoi et
+la réception (en effet, avec un chiffrement de type RSA/DSA, une
+modification du corps de l'email rend ce dernier illisible, la clé
+publique ne correspondant plus a la phrase de passe du message), ce qui
+offre bien évidemment des avantages non négligeables dans un
+environnement ou la protection des échanges est importante (soit a peu
+près partout sur internet, si vous tenez a votre vie privée. Pensez a
+quitter Gmail aussi, par exemple).
+
Il est cependant a noter que les clés publiques sont généralement
+situées sur un serveur de clés publiques, tel pgp.mit.edu ou encore
+subkeys.pgp.net (certaines personnes préfèrent garder leur clés hors des
+serveurs de clés publiques, craignant une compromission de ces serveurs.
+Dans le cas d'utilisateurs normaux (c'est a dire n'échangeant pas de
+secrets classés secret-défense par email), la protection offerte par les
+serveurs de clé publiques est suffisante)
+
L'une des implémentations les plus connues et utilisées de PGP est sans
+conteste GPG (GNU Privacy Guard) , qui comme son nom l'indique fait
+partie du projet GNU, et qui (<troll> de façon surprenante pour un
+programme GNU</troll>) est extrêmement efficace et claire.
+
Après ces explications techniques, voici venue le
+moment intéressant/utile, a savoir l'application. Le chiffrement et la
+signature de mails doivent cependant attendre un petit peu, étant donné
+qu'il vous faut d'abord créer votre clé et la placer sur un serveur de
+clés publiques, de façon à ce que votre destinataire puisse vous
+identifier lorsqu'il recevra le mail, mais aussi a configurer votre
+client mail pour utiliser gpg (je baserai les explications de cet
+article sur Thunderbird, mais des explications efficaces sont trouvables
+facilement sur les interwebs).
+
Tout d'abord, générons une clé GPG :
+
gpg--gen-key
+
+
+
+
GPG va vous demander les méthodes de chiffrement que vous voulez
+utiliser, le plus sur est de laisser la valeur par défaut. La question
+suivante est de savoir quelle taille votre clé doit faire, il est
+préférable de choisir la taille la plus importante possible (4096). GPG
+veut ensuite savoir quand votre clé doit expirer. La méthode simple est
+bien évidemment de ne jamais la faire expirer, il est cependant plus
+intéressant dans une logique de sécurité de régler cette durée a six
+mois/un an.
+
Des informations personnelles vous sont ensuite demandées,
+concernant votre nom (mettez le vrai, tel qu'il apparaît sur votre carte
+d'identité, si vous souhaitez utiliser votre véritable identité), votre
+adresse mail (mettez la plus utilisée, vous pourrez en rajouter plus
+tard), et un mot de passe pour la clé (utilisez un mot de passe
+sécurisé!! Il est conseillé d'utiliser au moins 8 caractères, dont majuscules,
+minuscules, caractères spéciaux et nombres (vous pouvez utiliser la
+commande makepasswd, qui génère automatiquement un mot de
+passe)
+
GPG va maintenant prendre un peu de temps pour générer le couple clé
+publique/clé privée, vous devriez profiter de ce temps pour effectuer
+des opérations autres sur votre ordinateur : taper des textes, lancer
+des films, écouter de la musique... De façon à augmenter les chances
+d'obtenir un nombre bien aléatoire (le générateur d'aléatoire se base
+sur la RAM pour obtenir des bits au hasard)
+
Une fois cela fini, vous obtenez un couple clé publique/clé privée, que
+vous ne pouvez pas visualiser entièrement pour l'instant. Il est
+cependant possible (et recommandé) de les exporter pour les sauvegarder
+via une commande:
pour la clé privée. Il est possible et même souhaitable de copier ces
+clés sur une clé USB, une carte SD, ou un autre support de stockage
+résistant, de façon a avoir une solution de sauvegarde, au cas ou vous
+perdiez ces clés sur ce PC.
+
Cela fait, listons les informations sur votre clé publique :
La partie pub indique que c'est une clé publique, 4096R indique que c'est
+une clé RSA sur 4096 bits. La partie 27D81AC8 est
+l'identifiant de la clé publique, Key fingerprint = 6345 A91A FF89 97E0 13D0
+96A9 9E2A 1917 27D8 1AC8 est appelé fingerprint de la clé. Les champs
+uid sont des manières d'identifier la clé et la personne associée a
+celle-ci, et enfin le champ sub est indicateur d'une subkey, système
+uniquement pris en charge par GPG et non inclus dans les premières
+versions de PGP, donc non-implémentées dans nombre de clients pgp.
+Passons maintenant a la mise en place de cette clé publique sur un
+serveur de clés : nous utiliserons ici le serveur pgp.mit.edu.
Maintenant que votre clé publique a été uploadée, vous pouvez l'utiliser
+pour signer et chiffrer vos emails!
+Installons donc l'extension Enigmail pour Thunderbird, permettant de
+chiffrer/signer vos emails de façon transparente. Il conviendra de
+paramétrer cette extension, via le menu OpenPGP dans Thunderbird, puis
+Setup Wizard (l'option entre Help et About OpenPGP). Normalement,
+Enigmail détecte votre installation de gpg automatiquement, si cependant
+ce n'était pas le cas, vous pouvez utiliser la clé exportée tout a
+l'heure (pubkey.gpg) en l'important (import key from file).
+
Selon les options que vous avez utilisées, vos emails seront
+automatiquement signés et/ou chiffrés a l'envoi. Gardez cependant a
+l'esprit que si tout le monde peut lire les mails signés, il n'en est
+pas de même pour les mails chiffrés, pour lesquels il est nécessaire de
+posséder la clé publique du correspondant en question, et de posséder
+soi même une clé privée, donc d'utiliser OpenPGP aussi.
+Concernant les signatures de clés, elles fonctionnent de manière très
+simple :
+Vous devez télécharger la clé de votre correspondant, via un
(a noter que cette commande fonctionne aussi en cherchant une adresse
+email ou un nom. Cependant, en cherchant via l'identifiant de la clé,
+vous êtes sur de trouver votre correspondant. Globalement, l'email est
+lui aussi assez sûr en terme de recherche de clés, tandis que le nom
+donne rarement un résultat). L'étape suivante est de vérifier que votre
+correspondant est bien la personne qui est spécifiée sur sa clé. Pour
+cela, il convient d'avoir déjà vu physiquement cette personne et si
+possible d'avoir vu une pièce d'identité lui appartenant, et d'avoir une
+confirmation de cette personne que la clé que vous voyez lui appartient
+bien.
+Ceci fait, vous pouvez signer la clé via un
Salut!
+Tout d'abord, je tiens a m'excuser de ne pas avoir eu le temps d'écrire
+récement, mais j'ai eu la chance d'avoir un PC a monter, donc j'ai passé
+pas mal de temps assez occupé.
+
Enfin, après un certain temps a farfouiller au millieu des connecteurs
+SATA et a apprendre que, oui, l'alimentation sert aussi pour les disques
+durs, je suis de retour pour un court article.
+Du coup, je m'étais dit que j'allais reprendre sur le thème de
+l'informatique expliquée au grand public, en tentant d'aller un peu plus
+loin que la dernière fois sur le thème de la programmation
+Ce qu'il faut comprendre, c'est la facon dont fonctionne un ordinateur.
+Si a peu près tout le monde sait que "les ordinateurs, ils ne
+comprennent que les 1 et les 0!", peu de gens savent comment cela
+fonctionne en détail.
+
Si vous êtes sur ce blog, il y a pas mal de chance que vous ayez déjà
+des notions de base en informatique. Ainsi, vous savez surement que les
+ordinateurs fonctionnent avec des programmes, qui sont composés de
+code.
+Ainsi, il faut comprendre que le code (source) est "compilé" en un
+fichier "binaire". Un fichier binaire est un fichier comprenant les
+instructions telles qu’exécutées par le processeur, et donc absolument
+illisible pour un humain.
+
La compilation est le processus qui transforme le code source en
+binaire executable. Les binaires ont, sous Windows, l'extension .exe,
+tandis que sous les systèmes UNIX-like, ils n'ont pas d'extension
+particulière.
+Ceci étant dit, il faut comprendre que certains langages sont plus
+proches que d'autres du langage processeur, les langages les plus
+proches sont dits de "bas niveau". Les langages les plus éloignés sont
+donc dits de haut niveau.
+
Par exemple, l'assembleur est l'un des languages de plus bas niveau,
+tandis que python par exemple est un langage de plus haut niveau. Les
+langages de haut niveau sont souvent bien plus simples a comprendre et a
+apprendre que les langages de bas niveau
+
Ainsi, en C, un langage de niveau relativement bas, pour afficher
+"hello world" sur l'écran, le code nécessaire est :
et n'a pas besoin d'être compilé , puisqu'il peut être intepreté
+directement.
+
Python utilise en effet un système similaire a Java en ayant un
+interpréteur dit "runtime" ou "temps réel", qui interprète le programme
+sans le compiler. Java utilise un système légèrement différent, puisque
+le code a besoin d'être compilé, mais est interpreté par un interpréteur
+et non par le processeur.
+
Cette méthode permet le fameux "code once, run everywhere", ce qui
+signifie que le même code est exécutable sur quasiment tous les systèmes
+d'exploitation (en fait, tous ceux sur lesquels l’interpréteur est
+disponible.)
+
Voila, je vous laisse sur le fonctionnement de Java et de Python, et je
+vais me coucher.
+A bientôt!
+
+
\ No newline at end of file
diff --git a/output/posts/la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne/index.html b/output/posts/la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne/index.html
new file mode 100644
index 0000000..c70e708
--- /dev/null
+++ b/output/posts/la-separation-des-eglises-et-de-letat-une-idee-quelle-est-bonne/index.html
@@ -0,0 +1,313 @@
+
+
+
+
+ La séparation des églises et de l'état, une idée qu'elle est bonne?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Aujourd'hui, et depuis 1901 (j'ai révisé mon histoire récemment), il
+existe une loi dite de séparation des églises et de l'état, qui consiste
+a faire en sorte que l'état n'ait rien a voir avec les differentes
+églises, pour de sombres histoires d'indépendance et de laïcité.
+(principes qui sont aujourd'hui en voie de disparition, mais ce n'est
+pas le propos qui nous occupe ici). Cela dit, cette bonne idée
+politique, si elle a évité a ses auteurs de nombreux tracas, et leur a
+surement permis de conserver une tête en état de fonctionnement bien
+reliée a leur colonne vertébrale, ne vous interesse que moyennement, et
+vous voudriez retourner répondre a vos mails sur Gmail et micro-blogguer
+(quel mot horrible...) sur twitter?
+
Ça tombe bien, vous abordez justement le sujet véritable de cet article
+(non, mon blog n'est pas devenu un histoblog, désolé aux déçus...), a savoir
+la centralisation qui se met progressivement en place sur internet depuis
+quelques années : Twitter, Google, Facebook, Micro$oft, Apple, tous ces
+acteurs du web (et pas que, pour certains...) ont commencé a prendre
+pour manie de centraliser vos données : pour prendre un exemple simple,
+si vous utilisez Gmail (qui depuis quelque temps, lit aussi vos mails
+pour accorder la publicité, dites adieu a votre vie privée), vous avez
+un compte Google Talk, probablement aussi un Google+.
+
L'outil le plus pratique aujourd'hui pour aggreger des flux RSS est
+Google Reader, et vous l'utilisez aussi probablement. Votre téléphone
+est un android? Ah, un Nexus? Vous avez donc toutes les applications
+google installées, et Chrome mobile comme navigateur par défaut, qui est
+synchronisé avec la version qui tourne sur votre PC (via les serveurs de
+Google, bien sur).
+Depuis peu, les recherches sur le moteur de recherche
+sont elles aussi ajoutées a votre profil, enregistrées a jamais par
+Google (qui n'est pas touchée, en tant que société américaine, par la
+"loi des 10 ans" francaise.). Vous commencez a voir le truc? Non, ne
+jetez pas ce telephone, enfin! (je refuse de rembourser tout smartphone
+ayant été perdu a cause de cet article) J'ai pris ici comme exemple
+Google, parce que c'est celui qui propose le plus de services, mais
+Apple avec iCloud, iTunes et son iPhone fait pareil, tout comme M$ avec
+WP8 et Skydrive.
+
Twitter et Facebook n'ont de rôle dans ce sujet qu'en ce que vous leur
+fournissez des informations dont ils s'empressent de devenir seuls
+propriétaires (cf les Conditions d'Utilisation de ces deux services),
+puis de les revendre a des annonceurs faisant de la publicité
+ciblée. Le problème est simple a apprehender, vous ne voulez pas que
+l'un de ces services connaisse trop de choses sur vous (et ils recoupent
+très bien les informations venant de sources differentes), car il est
+évident qu'ils les vendent a des entreprises peu scrupuleuses quand
+a leurs engagements de confidentialité, quand a leurs securité
+aussi; mais surtout parce que depuis le 11 Septembre 2001 et le
+Patriot Act, toute entreprise américaine doitfournir toutes ses
+informations au gouvernement américain sans aucune intervention d'un
+juge, ou de quelque institution de controle que ce soit.
+
Ce qui est, comme vous pouvez le comprendre, relativement
+problématique. (pour ceux qui a ce point se disent "je n'ai rien a
+cacher, donc je m'en fous si le gouvernement américain sait tout de
+moi", je vous conseille d'aller lire cet article de Jean Marc
+Manach, plein de bon sens...) Pour éviter cela, vous avez plusieurs
+possibilités: utiliser des services concurrents pour tout (Facebook
+Mail, Skydrive, Twitter et Google Reader par exemple), tout en vous
+souvenant que comme ces entreprises sont toutes américaines, le
+gouvenrnement américain détient tout de même vos informations, et que ca
+lui prendra juste un peu plus de temps.
+
Vous pouvez aussi n'utiliser que des entreprises francaises,
+mais cela ne regle que le problème du Patriot Act, et pas celui de
+la revente de vos données. Et puis essayez de trouver un service équivalent
+a Google Reader et fourni par une entreprise française, on en reparlera.
+Non, la véritable alternative, c'est d'héberger vos services vous
+même, d'avoir votre propre serveur sur lequel vous possedez le plus
+de services possibles, et d'utiliser des concurents ou des services
+libres au maximum pour les autres, ceux qui ne sont pas distribuables
+(par exemple, les cartes sont difficiles a mettre en commun,
+or plusieurs alternatives existent: Google Maps, <troll>Apple
+Maps</troll>, Bing Maps, OpenStreetMaps, etc...).
+Beaucoup de ces services sont cependant très facilement
+décentralisables, surement parce qu'ils ont a la base étés conçus comme
+des services décentralisés. Ainsi les emails, le web, le chat (via XMPP)
+par exemple sont basés sur un système décentralisé.
+
De plus, votre serveur peut vous servir a beaucoup d'autres des
+choses que vous feriez habituellement sur votre ordinateur
+personnel: conserver une présence sur IRC, compiler du code, faire
+du rendu vidéo, etc... En bref, un serveur peut vous servir
+a effectuer toutes les opérations que vous effectuez sur votre
+ordinateur sans les inconvénients de la consommation éléctrique
+ni du bruit, mais vous permet aussi de ne dépendre aucunement
+d'une entreprise américaine, et cependant de disposer de tous les
+services utiles offerts par ces dernières.
+
Un serveur peut de plus vous permettre de controller parfaitement
+tous ces services, sans aucune limitation d'aucune sorte,
+voire de vous créer une page web. Bien entendu, il est bien plus
+utile d'avoir un serveur si vous avez aussi un nom de domaine.
+Heureusement, ils sont peu chers et souvent fournis avec le serveur.
+
Dans de prochains articles, je vous expliquerai comment louer puis
+configurer votre serveur pour qu'il serve de serveur mail (IMAP/SMTP),
+web, base de données, et proxy. Cela dit, comme c'est un serveur sous
+linux, vous pouvez l'utiliser pour a peu près n'importe quoi.
+Voila, a bientôt!
Le Quenya est, pour ceux qui ne connaissent pas (comme moi jusqu’à il y
+a peu...), le nom que donnait Tolkien au dialecte principal parlé par
+les Elfes dans les différentes œuvres de l'auteur, dont Le Seigneur des
+Anneaux, le Hobbit, ou encore le Silmarillion. Il faut se rendre compte
+avant de commencer cet article que l'une des œuvres les plus
+impressionnantes de Tolkien, si ce n'est la plus grande, est
+l'impressionnant travail linguistique passé sur les différentes langues
+présentes dans son œuvre littéraire : L'elfique, qui est donc le quenya,
+la langue des nains, qui est appelé le khazalide, etc.
+
En effet, a contrario des "langues" développées dans d'autres œuvres littéraires
+telles Eragon ou Harry Potter, où l'auteur-e se contente de lier un mot
+de français (ou d'anglais) a un mot de sa "langue", les langues de
+l'oeuvre de Tolkien sont des langues complètes. Elles possèdent des
+racines logiques, des systèmes de grammaire et de conjugaison propres,
+une logique inhérente dans la prononciation ou l'orthographe, et ainsi
+de suite.
+
Un véritable rêve de linguiste donc, puisque ces langues sont
+pratiquement entièrement documentées par Tolkien lui même (voir
+l'appendice E du SdA, particulièrement instructif a ce sujet.)
+
J'ai donc décidé d'apprendre le Quenya récemment, et je vais donc poster
+ici des résumés des cours que je suis ( disponibles ici , une
+traduction en français est disponible la en pdf ), et des infos ici
+toutes les deux semaines.
+
Si ce sujet vous intéresse, le compte twitter @Quenya101 poste
+régulièrement des informations sur le sujet, et pour plus d'infos sur le
+sujet, vous pouvez en trouver par ici.
+
Et en tant que première leçon, vous pouvez apprendre que ce mot que vous
+avez prononcé comme le Kenya tout le long de cet article se prononce en
+fait [Kwenïa], ou bien Qwenya!
Étant utilisateur plus ou moins fidèle de GNU/Linux depuis quelques
+années (plus ou moins, parce que j'ai toujours un Windows en dual boot,
+principalement pour les jeux (possiblement plus pour longtemps, avec
+l'arrivée de Steam pour Linux... ) ), je commence a connaître plus ou
+moins bien mon système. Or il y a plusieurs choses a savoir sur les
+systèmes d'exploitation, et celle dont je vais parler aujourd'hui, c'est
+le système de couches.
+
Un système d'exploitation (de type UNIX, \<troll>enfin un vrai système quoi.
+\</troll>) incorpore plusieurs systèmes de couches.
+
Ainsi, Linux (le noyau) a commencé en étant un kernel monolithique,
+c'est a dire que tous les composants sont intégrés au kernel. Ce qui
+signifie que rien ne peut être ajouté au noyau sans recompiler celui ci.
+Or, quand on sait que le noyau comprend entre autres les drivers du
+matériel et des systèmes de fichier, cela peut poser des problèmes quand
+a la taille du kernel et a la licence libre de ce dernier.
+
Depuis un certain temps, le kernel linux est devenu un kernel modulaire, ce qui
+signifie que des modules peuvent être chargé a tout moment en cours
+d’exécution, ce qui permet l'utilisation de nouveaux systèmes de
+fichiers a chaud, ou l'insertion de matériel et l'installation de
+drivers sans interrompre l’exécution du système (Windows utilise un
+système de fausse installation de drivers pour le matériel externe, et
+un système de pré-installation des drivers pour les périphériques dits
+"plug and play")
+
Après le noyau intervient le système. Or, au tous premiers instants du
+boot, les systèmes GNU/Linux utilisent un système permettant de limiter
+l'utilisation de ressources systèmes si elles ne sont pas nécessaires,
+et incorpore ainsi un système dit de "runlevels"
+
Ainsi, au runlevel 0, le système s'éteint après avoir booté. Ainsi, ce
+runlevel permet de tester le bon démarrage du système sans avoir a
+effectuer de manipulation pour le ré-éteindre
+
Le runlevel 1 est appelé mode single user, et c'est un nom plutôt adapté
+étant donné que ce runlevel donne accès a un système en étant
+automatiquement loggé en tant que root, avec tous les autres
+utilisateurs désactivés, de même que tous les systèmes de réseaux
+
Le runlevel 2 est appelé mode multi user, et vous mets en face d'un
+système classique. en ligne de commande, mais avec tous les systèmes de
+réseau désactivés.
+
Le runlevel 3 est le même que le 2, mais avec les systèmes de réseaux
+activés.
+
Le runlevel 4 n'est pas officiellement défini, et est censé être
+activable en fonction des besoins de l'utilisateur. Sur la plupart des
+distributions grand public, ce runlevel est lié au...
+
Runlevel 5! Multi-user, networking, with working GUI! c'est le système
+tel que vous le connaissez, avec l'interface graphique et le système de
+login graphique.
+
Le runlevel 6, enfin, est le bien nommé "reboot", qui reboot la machine
+quand il devient le runlevel courant.
+
(Il est a noter que Debian, et donc toutes les distribs qui en sont
+dérivées, ne font pas de distinction entre les differents runlevels du 2
+au 5. Ainsi, Ubuntu fonctionne par défaut au runlevel 2, avec un login
+et une interface graphique, et un mode réseau fonctionnel, bref avec des
+fonctionnalités qui ne sont normalement disponibles que sous le runlevel 5.)
+
Il est possible de changer de runlevel grâce a la commande runlevel
+(oui, c'est évident...)
+
Les systèmes Linux utilisent aussi un système dit de SandBox , qui en
+informatique est un système permettant d'isoler les processus les uns
+des autres. Ainsi, la pile réseau, qui est le système auquel les
+différents processus envoient les différents paquets qui doivent sortir
+de la machine , et qui redistribue ces paquets, est isolée du reste du
+système, en cela qu'aucun des autres processus ne peuvent modifier cette
+pile hors du runlevel 1 ou 2.
+
De la même façon, le navigateur chrom/ium fait fonctionner tous les
+onglets, ainsi que toutes les extensions, dans des processus différents.
+Certaines distributions linux implémentent un système de cette sorte
+pour toutes les applications, ou seulement pour certaines. ainsi Chakra
+Linux a un système d'installation d'applications dans des disques
+virtuels, ce qui permet une sécurité totale du processus.
+
Voila, j'espère vous en avoir appris un peu sur le fonctionnement des
+différentes couches de linux, et j'espère que cet article vous poussera
+a tester un peu votre système et a vous amuser avec les différents
+runlevels
Un système de fichiers. Vous en avez surement déjà entendu parlé si vous
+avec déjà installé Linux, ou formaté une clé USB. Dans ces cas, vous
+connaissez surement NTFS, EXT4, ou encore FAT32.
+
Ces différents noms désignent en effet des systèmes de fichiers. Mais
+qu'est-ce qu'un système de fichiers?
+
Pour comprendre cela, il faut déjà savoir ce qu'est exactement un
+fichier. Un fichier est un ensemble de blocs (les blocs sont l'unité la
+plus petite traitable par le matériel, ils font généralement 1 ou 4 Kio
+(kibioctet), en fonction du système de fichier utilisé.), qui est
+donc composé de bits, interprétés différemment en fonction du type de
+fichier. Cependant, seul, le fichier n'est pas accessible, puisqu'il
+n'est pas indexé, c'est a dire que l'OS ne sait pas qu'il est présent,
+ou il commence ni où il s'arrête (je schématise un peu, mais c'est
+l'idée).
+
Ainsi, le système de fichier donne un cadre et un standard à
+l'arborescence des fichiers. Par exemple, le système de fichier ext4
+utilise des blocs de 1 Kio, et de ce fait, toutes les partitions de
+disque dur formatées en ext4 peuvent prendre comme unité de base 1 Kio
+et mesurer la taille des fichiers en blocs de cette façon. Les systèmes
+de fichiers nécessitent l'inclusion de drivers dans le noyau pour
+pouvoir être pris en compte.
+
Le noyau linux inclut par défaut les drivers pour ext2/3/4, btrfs,
+reiserfs, ntfs, fat16/32 et hfsx, ce qui permet de monter a peu
+près tout type de partition récente.
+
Il convient de bien faire la différence entre le système de fichier et
+l'arborescence des fichiers. Si l'arborescence des fichiers est en fait
+une entité virtuelle englobant la racine / et tous les fichiers et
+dossiers contenus dedans, le système de fichier permet a votre système
+GNU/Linux de distinguer les différents fichiers composants cette
+arborescence.
+
Détaillons maintenant les types de fichiers les plus répandus:
+
+
+
FAT16/32 : Les systèmes de fichier FAT (pour File Allocation Table,
+ soit la définition d'un système de fichier), remplissent leur rôle le
+ plus simplement possible. Ne permettant (historiquement) que des noms de
+ 8 caractères (plus extension de trois caractères), ni chiffrement, ni
+ système de distinction d'utilisateurs (DOS étant un système
+ mono-utilisateur), Il fut décliné par microsoft en FAT16 et en FAT32,
+ utlisants respectivement des blocs de 16 et 32 Kio.
+
+
+
NTFS :. Le NTFS (pour New Technology File System, rapport a Windows
+ NT) est un système de fichier qui est apparu avec Windows XP, et qui
+ était une mise a jour nécessaire du FAT32 vieillissant. NTFS ajoute a
+ FAT différentes capacités dont le chiffrement, les liens symboliques, la
+ compression et les quotas pour les volumes, permettant de limiter la
+ taille maximum occupée dans une partition.
+
+
+
ReFS : ReFS est le système de fichiers introduit dans Windows Server 2012.
+ Ne différant pas énormément de NTFS, je le mentionne principalement
+ parce qu'il est prévu qu'il soit le défaut pour Windows 8.
+ Il apporte principalement la redondance, c'est a dire que chaque
+ fichier possède une somme de contrôle en 64 bits stockée dans un fichier
+ séparé pour éviter les corruption de disque.
+
+
+
Ext2/3/4 : les systèmes ext (extended) sont les systèmes de fichiers
+ les plus utilisés sous linux pour le grand public. (Je traiterai ici
+ d'ext4, puisque c'est le plus récent.) Il dispose de toutes les
+ fonctions que l'on peut attendre d'un système de fichiers moderne, ni
+ plus ni moins. Ainsi, ext4 est un système de fichiers journalisé,
+ acceptant les capacités jusqu’à 1 Exioctet, et utilise l'allocation dite
+ "par extent", ce qui signifie que la création d'un fichier réserve
+ automatiquement les zones contiguës de façon a réduire la fragmentation.
+
+
+
ReiserFS : ce système de fichiers, créé par le (légèrement mégalo)
+ programmeur Hans Reiser, est a retenir pour avoir été le premier système
+ de fichiers journalisé, et accepte un nombre de fichiers de l'ordre des
+ 4 milliards. Le but de ce système est de créer un système polyvalent, a
+ la fois système de fichiers et base de donnée (de part sa grande
+ capacité en terme de nombre de fichiers et de l'utilisation d'un
+ journal.)
+
+
+
Btrfs : ce système est l'évolution logique d'ext4, et inclut lui aussi
+ l'allocation par extent, mais possède de plus un système de
+ sous-volumes, qui permet d’accéder a plusieurs arborescences de fichiers
+ montées en même temps (système pratique et utile pour faire des
+ snapshots de systèmes.). Il permet aussi de redimensionner a chaud la
+ taille des partitions, en les agrandissant ou en les rétrécissant, est
+ compatible avec LVM, a un système de checking intégré (btrfsck), et
+ utilise un algorithme de compression appelé LZ4, qui accélère les accès
+ aux fichiers compressés d'environ 30% par rapport a LZO, le système
+ utilisé dans ext4.
+
+
+
HFS+ : le système de fichier présent sur tous les macs a des capacités
+ relativement standards, et ressemble énormément a l'ext3. Il supporte
+ cependant les liens directs vers les dossiers, fonction rare sur les
+ systèmes de fichiers actuels. Il est possible qu'il évolue a nouveau
+ dans les années a venir
+
+
+
ZFS : Ce système de fichier, venu de Solaris mais utilisable par Linux
+ et *BSD, est, tel Btrfs, a la fois un système de fichier et un
+ remplaçant/compatible avec LVM, C'est un système de fichiers conçu
+ principalement pour les serveurs, et il intègre ainsi un système de
+ redondance des données pour éviter les corruptions, un mode RAID-Z
+ (apparenté au RAID5), des checks d’intégrité en continu, des snapshots,
+ etc...
+
+
+
Comme on a pu le voir, les systèmes de fichiers disponibles sont
+légions. Cependant, le plus adapté a Linux et a une utilisation grand
+public aujourd'hui est probablement Btrfs. Malheureusement, ce dernier
+n'est pas aujourd'hui proposé par défaut sur les distributions les plus
+utilisées, au profit de l'ext4, qui commence a accuser son âge...
+
Les systèmes de fichiers, s'ils peuvent ne pas sembler primordiaux au
+fonctionnement du système, sont en fait de première importance, et ce
+choix ne devrait pas être laissé au hasard, et être mis a jour
+régulièrement (pour éviter les failles de sécurité...)
+
Bon courage, et bon choix pour votre prochain système.
Après avoir lu cet article paru sur écrans.fr, et au vu des
+nombreuses réflexions que j'ai eu sur ce sujet au cours des années, je
+commence a me demander si la réponse logique ne serait pas d'enseigner
+les bases de l'informatique (bases d’électronique, de programmation et
+de logique formelle) dès le collège.
+
En effet, l'exemple qui me revient toujours est celui des technoprêtres
+de warhammer 40 000, dans un univers ou la technologie est ritualisée et
+incomprise même des plus savants, qui se contentent de reproduire ce qui
+existe, et parfois par chance de retrouver un schéma explicatif lisible
+par une machine, et qu'ils ne comprennent pas eux mêmes, ou toute
+technologie est ointe d'onguents sacrés, entourée d'encens avant d'être
+péniblement actionnée par des assistants ne comprenant rien a cette
+technologie (ayant lu Hackers - Heroes of the Computer Revolution de
+Steven Levy, c'est l'ambiance que l'on retrouve quand l'auteur décrit
+l'ambiance près des machines IBM au MIT, au début de l'ouvrage), et il
+me semble que de plus en plus la société se rapproche de cela.
+
Cette culture de l’ingénierie, qui existait beaucoup lors des débuts de
+l'informatique (telle que décrite par exemple par Steve Wozniak dans son
+livre iWoz) disparait pour laisser place a une culture de la
+consommation et de l'utilisation de contenus existants, et même a une
+certaine peur de la compréhension de la technologie. Ceux qui s'y
+intéressent sont considérés comme marginaux (combien de hackers créent
+des outils sur lesquels seront construits tous les systèmes du siècle a
+venir, tels des Dennis Ritchie en puissance? Combien d'entre eux ne sont
+pas intégrés a la société dite "normale"?), et on peut souvent observer
+les réactions de peur que lancent les actions des hackers, ne serait-ce
+que dans les journaux (combien de journaux 'mainstream' ont-ils parlés
+des hackers en bien, c'est a dire tels qu'ils sont réellement, depuis
+les années 80?) ou a la télévision.
+
Ainsi, la culture et la connaissance de ces appareils que
+sont les ordinateurs, qui aujourd'hui se trouvent du fond de nos
+poches a dans l'espace en passant par l’intérieur des pacemakers
+jusqu’à être une composante indispensable de la société, se perdent et
+rendent ainsi la compréhension de ces appareils impossible (j'ai eu
+la désagréable surprise récemment de voir un camarade de classe
+me poser ingénument la question "Ah, mais en fait, quand tu installes
+Linux, ça change le fond d'écran et les icônes?". Au-delà du niveau,
+la misère de cette question est que cette personne n'avait probablement
+aucune idée de la façon dont fonctionnait son ordinateur, a part
+pour le fond d'écran en question et pour les fameuses icônes.) pour
+le grand public, et cet évolution crée de fait une sorte d'oligarchie de
+techno-comprenants, seuls capables de manier et de créer la technologie.
+
C'est pour cela qu'il me semble intéressant, important, peut être même
+requis, d'inclure au programme du collège puis du lycée des cours
+d’électronique et d'informatique tels que décrits plus haut, de façon a
+ce que les élèves comprennent le monde qui les entoure. Car c'est la le
+but du cycle scolaire secondaire, me semble-t-il, et non pas de former
+des futurs travailleurs. Sinon, pourquoi y aurait-il des cours de
+musique, d'arts plastiques, ou encore de philosophie? Si le but du cycle
+secondaire est bien d'ouvrir l'esprit des élèves sur le monde et sur ce
+qui les entoure, alors les cours sur l'informatique s'imposent comme une
+évidence, puisque ceux-ci nous entourent aujourd'hui bien plus que quoi
+que soit d'autre...
+
Ces cours seraient susceptibles de s’insérer en un mélange entre des
+cours de technologie (qui aujourd'hui sont bien plus orientés physique
+et machines-outils qu'informatique ou électronique, alors que la
+technologie d'aujourd'hui et vraisemblablement de demain aussi est
+l'informatique) et de physique, pour le côté électronique, et de façon a
+donner enfin aux cours de physique un intérêt quelconque, sortir au delà
+de la théorie et de l'abstraction complète que sont actuellement ces
+cours et passer un peu dans la réalisation, avec des arduinos par
+exemple.
+
Vous aussi, intéressez vous a cela, de façon a ce que les jeunes ne
+finissent pas par ne rien comprendre a ce qui est aujourd'hui l'une des
+composante les plus importantes du monde tel qu'il est programmé.
Bonsoir! Un petit post pour faire un peu le point sur ce blog.
+Comme vous avez pu le remarquer, j'ai un peu de mal a tenir les délais
+que je m'étais fixés pour ce blog (un post tous les 8 jours), et après y
+avoir un tantinet réfléchi, ceci est du a deux points principaux :
+
+
+
Tout d'abord, le manque d'inspiration, tout simplement. C'est assez
+compliqué de trouver des sujets intéressants liés a l'informatique, et
+qui méritent un article. Je vous invite d'ailleurs a me suggérer des
+sujets via les commentaires ou twitter (@Wxcafe)
+
+
+
Ensuite, le délai de 8 jours est trop court pour me permettre de faire
+les recherches nécessaires, tout en manageant mes cours et mon temps
+libre.
+
+
+
A cause de cela, j'ai pris la décision de changer le rythme de parution
+des articles a un *minimum* d'un post tous les 10 jours. Bien entendu,
+si j'ai de l'inspiration en trop, plus de posts sont envisageables.
+
Voila. A part ca, je tiens a vous remercier de me lire (c'est assez
+étonnant de voir ca...), et je précise que je vais ajouter une page
+About Me, qui bien entendu rassemblera des informations sur moi, ma vie,
+mon oeuvre :P
+
Ceci dit, je vais bosser un peu sur le prochain article.