Artisan Développeur

Qualité, amélioration continue, agilité, professionnalisme.

Get started node.js

Je me lance ! Un pote me parle de node.js, forcément c’est pas mon truc le javascript, alors je me dis bon, dans une autre vie. Mais trop tard, quand t’es passionné de prog, de web et que t’as des trucs à faire, tu finis par te dire, et si je le faisais en node.js ? Au moins pour essayer, et voilà… Here I am !

Node.js est dispo dans les dépôts backports, il faut donc l’ajouter à votre source.list

nano /etc/apt/sources.list

Ajouter cette ligne dedans :

deb http://ftp.debian.org/debian wheezy-backports main contrib non-free

Avec nano ctrl+o pour sauvegarder, ctrl+x pour fermer, ensuite :

apt-get update
apt-cache search node.js

ruby-amqp - feature-rich, asynchronous AMQP 0.9.1 client
nodejs - evented I/O for V8 javascript
nodejs-dbg - evented I/O for V8 javascript (debug)
nodejs-dev - evented I/O for V8 javascript (development files)
nodejs-legacy - evented I/O for V8 javascript (legacy symlink)

Là je vois que j’ai node.js disponible :

apt-get install nodejs nodejs-legacy

Et après je fais quoi ? Je vais chercher un tuto «hello world» 🙂 Sur le site node.js

Je crée un répertoire, le fichier exemple.js

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

Je lance la commande:

node example.js

J’accède avec le navigateur et c’est bon, maintenant y’a plus qu’à apprendre à coder en Javascript !

 Source

 

 

 

 

 

 

WordPress multi site, mod vhost alias et sous domaines

WordPress multisite, apache, mod_vhost_alias

Comment utiliser mod_vhost_alias avec wordpress en mode multisite

Si comme moi, cher lecteur (j’ai toujours voulu écrire ça ^^ ) tu aimes bien avoir la possibilité d’avoir automatiquement un sous domaine lorsque tu crées un répertoire à la racine de ton site, tu dois connaître ou utiliser (sans connaître) mod_vhost_alias. Et dans les directives de ton vhost avoir une ligne de ce genre :

VirtualDocumentRoot /var/www/monjolisiteweb/htdocs/%1
virtualdocumentroot

J’étais très heureux comme ça ! Un jour, j’ai commencé à écouter ce que disent, entre autre, les gens de the family (http://www.thefamily.co/)  sur le growth hacking.

(Un super MOOC proposer par IONISx est disponible d’ailleurs.)

Entre temps j’ai retenu une chose il faut segmenter pour communiquer plus précisément, cibler, adapter le discours, avoir du feedback … Pour notre projet de startup ([maj 2016 ]qui n’a pas abouti), en version lean, low cost, on a opté pour un template wordpress « tout fait » (c’est très moche ce que la pauvreté du début de l’aventure te fait faire ^^ mais faut être pragmatique ! ). Une flat page, responsive très à la mode, mais comment je fais pour segmenter ?

Avec wordpress je savais que le mutisite (network) était possible, donc go sur le codex (comment configurer le multisite), j’ouvre mon wp-config.php, j’ajoute la ligne

/* Multisite */
define('WP_ALLOW_MULTISITE', true);

bref je suis le tuto du codex.

Évidemment, les sous répertoires, c’est moches, moi j’aime pas les sous répertoires – comme dirait le schtroumpf grognon, wiki.kaizendo.fr est mieux que kaizendo.fr/wiki, ça n’engage que moi, mais comme c’est moi qui décide « that’s it ! ».

Le multisite aussi me permettra, à terme, d’avoir des personnes différentes qui s’occuperont indépendamment des segments, en tout cas je l’espère.

J’active le multi-site wordpress, je crée le 2ème site de mon réseau wordpress, j’essaye d’afficher la page et là, c’est le drame… Erreur 404.

Après cinq minutes à me creuser la tête, un petit tour par la zone dns, deux trois tests, je repense à mes sous domaines automatiques ! La solution est d’avoir un vhost spécifique pour le WordPress network qui va contenir les alias nécessaires, un alias par site.

Je crée un vhost avant la directive VirtualDocumentRoot, avet comme document root l’install wordpress. Pour chaque site de mon WordPress network il faudra faire un alias à ce vhost.

<VirtualHost *:80>
ServerName sousdomaine.kaizendo.fr
ServerAlias autreSousDomaine.kaizendo.fr
DocumentRoot /var/www/monjolisiteweb/htdocs 
<Directory /var/www/monjolisiteweb/htdocs >
Options ExecCGI FollowSymlinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Vhost wordpress multi site

Quand le requête est traitée, le vhost est trouvé, renvoyé vers le document root du wordpress master, et ça fonctionne ! Comme ça je garde la flexibilité des sous domaines automatiques et j’utilise la capacité multisite de wordpress.

 

Ubuntu 14.04 LTS mise à jour Kubuntu /boot plein

Espace libre insuffisant sur le disque

/boot n’a plus assez d’espace, il faut supprimer des anciens kernel pour gagner les quelques MO qu’il manque.

En suivant les indications de la page d’ ubuntu-fr on va nettoyer un peu les vielles versions, je vais garder uniquement le dernier, puisque je sais qu’il fonctionne et je vais installer le nouveau pendant l’upgrade. Si le nouveau kernel pose problème je pourrais démarrer sur celui d’avant.

uname -r

Résultat chez moi :

3.11.0-19-generic
dpkg -l | grep -Ei "linux-headers|linux-image"

dpkg – l liste les paquets installés, ensuite | pour rediriger la sortie de la commande précédente vers la commande grep qui va chercher l’expression et montrer uniquement les résultats qui correspondent.

Résultat chez moi :

ii  linux-headers-3.11.0-12                                     3.11.0-12.19                            all          Header files related to Linux kernel version 3.11.0
ii  linux-headers-3.11.0-12-generic                             3.11.0-12.19                            amd64        Linux kernel headers for version 3.11.0 on 64 bit x86 SMP
ii  linux-headers-3.11.0-14                                     3.11.0-14.21                            all          Header files related to Linux kernel version 3.11.0
ii  linux-headers-3.11.0-14-generic                             3.11.0-14.21                            amd64        Linux kernel headers for version 3.11.0 on 64 bit x86 SMP
ii  linux-headers-3.11.0-15                                     3.11.0-15.25                            all          Header files related to Linux kernel version 3.11.0
ii  linux-headers-3.11.0-15-generic                             3.11.0-15.25                            amd64        Linux kernel headers for version 3.11.0 on 64 bit x86 SMP
ii  linux-headers-3.11.0-17                                     3.11.0-17.31                            all          Header files related to Linux kernel version 3.11.0
ii  linux-headers-3.11.0-17-generic                             3.11.0-17.31                            amd64        Linux kernel headers for version 3.11.0 on 64 bit x86 SMP
ii  linux-headers-3.11.0-18                                     3.11.0-18.32                            all          Header files related to Linux kernel version 3.11.0
ii  linux-headers-3.11.0-18-generic                             3.11.0-18.32                            amd64        Linux kernel headers for version 3.11.0 on 64 bit x86 SMP
ii  linux-headers-3.11.0-19                                     3.11.0-19.33                            all          Header files related to Linux kernel version 3.11.0
ii  linux-headers-3.11.0-19-generic                             3.11.0-19.33                            amd64        Linux kernel headers for version 3.11.0 on 64 bit x86 SMP
ii  linux-headers-generic                                       3.11.0.19.20                            amd64        Generic Linux kernel headers
ii  linux-image-3.11.0-12-generic                               3.11.0-12.19                            amd64        Linux kernel image for version 3.11.0 on 64 bit x86 SMP
ii  linux-image-3.11.0-14-generic                               3.11.0-14.21                            amd64        Linux kernel image for version 3.11.0 on 64 bit x86 SMP
ii  linux-image-3.11.0-15-generic                               3.11.0-15.25                            amd64        Linux kernel image for version 3.11.0 on 64 bit x86 SMP
ii  linux-image-3.11.0-17-generic                               3.11.0-17.31                            amd64        Linux kernel image for version 3.11.0 on 64 bit x86 SMP
ii  linux-image-3.11.0-18-generic                               3.11.0-18.32                            amd64        Linux kernel image for version 3.11.0 on 64 bit x86 SMP
ii  linux-image-3.11.0-19-generic                               3.11.0-19.33                            amd64        Linux kernel image for version 3.11.0 on 64 bit x86 SMP
ii  linux-image-extra-3.11.0-12-generic                         3.11.0-12.19                            amd64        Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP
ii  linux-image-extra-3.11.0-14-generic                         3.11.0-14.21                            amd64        Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP
ii  linux-image-extra-3.11.0-15-generic                         3.11.0-15.25                            amd64        Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP
ii  linux-image-extra-3.11.0-17-generic                         3.11.0-17.31                            amd64        Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP
ii  linux-image-extra-3.11.0-18-generic                         3.11.0-18.32                            amd64        Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP
iF  linux-image-extra-3.11.0-19-generic                         3.11.0-19.33                            amd64        Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP
iU  linux-image-generic                                         3.11.0.19.20                            amd64        Generic Linux kernel image
sudo apt-get remove linux-headers-3.11.0-12 linux-headers-3.11.0-12-generic linux-headers-3.11.0-14 linux-headers-3.11.0-14-generic linux-headers-3.11.0-15 linux-headers-3.11.0-15-generic linux-headers-3.11.0-17 linux-headers-3.11.0-17-generic linux-headers-3.11.0-18 linux-headers-3.11.0-18-generic linux-image-3.11.0-12-generic linux-image-3.11.0-14-generic linux-image-3.11.0-15-generic linux-image-3.11.0-17-generic linux-image-3.11.0-18-generic linux-image-extra-3.11.0-12-generic linux-image-extra-3.11.0-14-generic linux-image-extra-3.11.0-15-generic linux-image-extra-3.11.0-17-generic --purge

Je n’ai pas redémarré entre temps, la flemme ^^, je ferme la fenêtre d’erreur et je relance l’upgrade vers Kubuntu 14.04, ce coup ci pas de soucis /boot a de l’espace libre.

Edit: Pendant la mise à jour, les écrans s’éteignent, et je me retrouve juste avec le curseur blanc sur fond noir en haut à gauche. Après 3-4 minutes de patience, je reset mon pc, je n’ai pas envie d’attendre 1h00 devant. Et là évidemment avec le nouveau kernel ça ne démarre pas, dpkg (qui gère les package) n’ayant pas finis de tout configurer.

Je reset de nouveau et dans la liste de GRUB je choisis le kernel que j’avais conservé (3.11.0-19), le système repart, j’ouvre une console, ensuite je vais dire à dpkg de finir son boulot :

sudo dpkg --configure -a

Enfin, après un redémarrage, tout va bien !